Você está na página 1de 79

Unidad 1: Introduccin a los SO

1. Concepto de Sistema Operativo


Un sistema operativo es un programa que controla la ejecucin de los programas de
aplicacin y que acta como interfaz entre las aplicaciones del usuario y el hardware de un
computador.

2. Objetivo del SO
Tiene tres objetivos fundamentales:
a. Comodidad: hace que un computador sea ms facil de utilizar.
b. Eficiencia: permite que los recursos de un sistema informtico se aprovechen de
manera ms eficiente.
c. Capacidad de evolucin: debe construirse de modo que permita el desarrollo
efectivo, la verificacin y la introduccin de nuevas funciones al sistema.
A continuacin se detallaran estos tres aspectos:

a. El sistema operativo como interfaz de usuario/computador


De forma resumida, un SO ofrece servicios en las siguientes res:
Creacin de programas: ofrece mltiples funcionalidades y servicios para ayudar al
programador a la creacin de programas. Normalmente, estos servicios estn en
forma de programas de utilidad, que realmente no forman parte del SO pero son
accesibles a travs del mismo.
Ejecucin de programas: para ejecutar un programa, se necesita llevar a cabo un
cierto nmero de tareas. El SO administra estas tareas para el usuario.
Acceso a los dispositivos de E/S: el SO proporciona una interfaz uniforme que
oculta los detalles de acceso y control de los dispositivos, de modo que el
programador pueda utilizarlos de una manera simple y clara.
Acceso controlado a los archivos: el SO se encarga de los detalles de control y
acceso a los archivos.
Acceso al sistema: en el caso de un sistema compartido, el SO controla el acceso
al sistema como un todo y a los recursos especficos del mismo.
Deteccin y respuesta a errores: cuando un sistema informtico est en
funcionamiento puede producirse una serie de errores. En cada caso, el SO debe
dar una respuesta que elimine la condicin de error con el menor impacto posible
sobre las aplicaciones que estn en ejecucin.

b. El sistema operativo como administrador de recursos


Un computador es un conjunto de recursos para el movimiento, almacenamiento y proceso
de datos y para el control de estas funciones. El SO es el responsable de la gestin y
control de estos recursos.

Normalmente, se piensa en un mecanismo de control como algo externo a lo que se est


controlando. ste no es el caso de un SO, que nos habitual como mecanismo de contro en
dos aspectos:
El SO funciona de la misma manera que el software normal de un computador, es
decir, es un programa o una serie de programas ejecutados por el procesador.
El SO abandona con frecuencia el control y debe depender del procesador para
recuperarlo.
Entonces, como otros programas, el SO proporciona instrucciones al procesador. La
diferencia clave est en el propsito del programa. El SO dirige al procesador en el empleo
de otros recursos del sistema y en el control del tiempo de ejecucin de otros programas.
Los recursos principales que el SO debe administrar y controlar son la memoria, el tiempo
de procesador y los dispositivos de E/S.

c. Facilidad de evolucin de un sistema operativo


Un SO importante evolucionar en el tiempo por una serie de razones:
Actualizacin del hardware y nuevos tipos de hardware
Nuevos servicios: como respuesta a las demandas del usuario o las necesidades
de los administradores del sistema.
Correcciones: desafortunadamente, el SO tiene fallos que se descubrirn con el
curso del tiempo y que es necesario corregir.

3 Evolucin de los sistemas operativos


3.1 Proceso en serie
En los primeros computadores, de finales de los 40 hasta mediado de los 50, el
programador actuaba directamente con el hardware, no haba SO. La operacin con estas
mquinas era desde una consola consistente en unos indicadores luminosos, unos
conmutadores, algn tipo de dispositivo de entrada y otro de salida como una impresora.
Los programas en cdigo mquina se cargaban a travs del dispositivo de entrada y el
programa se ejecutaba hasta su culminacin normal o se detena en caso de producirse un
error.
Estos primeros sistemas presentaban dos problemas:
Planificacin: la mayora de las instalaciones empleaban un formulario de reserva
de tiempo de mquina. Un usuario poda reservar una hora y terminar en 45
minutos; esto daba como resultado un desperdicio de tiempo del computador.
Tambin poda presentarse el caso de el que usuario no termine en el tiempo
reservado.
Tiempo de preparacin: un programa sencillo, llamado trabajo, cargaba un
compilador y un programa en lenguaje de alto nivel (programa fuente) en la
memoria, salvaba el programa compilado (programa objeto) y luego cargaba y
montaba el programa objeto junto con las funciones comunes. Si se produca un
error en algn paso, el usuario tena que volver al inicio de este proceso de
preparacin.

3.2 Sistemas sencillos de proceso por lotes


El primer sistema operativo por lotes (y primer SO del tipo que sea) fue desarrollado a
mediados de los 50 por General Motors para usar en una IBM 701.
La idea central que est detrs del sencillo esquema de proceso por lotes es el uso de un
elemento de software conocido como monitor. Con el uso de esta clase de SO, los usuarios
ya no tenan acceso directo a la mquina. Los trabajos se agrupaban por lotes y se
ubicaban los lotes enteros en un dispositivo de entrada para su empleo por parte del
monitor. Cada programa se construa de modo tal que volviera al monitor al terminar su
procesamiento y, en ese momento, el monitor comenzaba a cargar automticamente el
siguiente programa.
Este esquema se puede entender mejor vindolo desde dos puntos de vista:
Punto de vista del monitor: gran parte del monitor debe estar en la memoria
principal y disponible para su ejecucin. El resto del monitor consta de utilidades y
funciones comunes que se cargan como subrutinas a los programas de usuario
cuando las necesiten. A medida que lee un trabajo, este se ubica en la zona del
programa de usuario y el control pasa al trabajo. Cuando el trabajo termina, se
devuelve el control al monitor quien lee inmediatamente un nuevo trabajo.
Punto de vista del procesador: en un cierto momento el procesador est
ejecutando instrucciones de la zona de memoria principal que contiene al monitor.
Estas instrucciones hacen que el trabajo siguiente sea ledo en otra zona de la
memoria principal. Una vez que el trabajo se ha ledo, el procesador encuentra en el
monitor una instruccin de bifurcacin que ordena al procesador continuar con la
ejecucin en el inicio del programa de usuario.
Este tipo de sistema posean las siguientes caractersticas necesarias para su
funcionamiento:
Proteccin de memoria: mientras el programa de usuario se est ejecutando, no
debe modificar la zona de memoria en la que est el monitor.
Temporizador: para prevenir que un solo trabajo monopolice el sistema. Si expira el
tiempo de un trabajo, se producir una interrupcin y el control volver al monitor.
Instrucciones privilegiadas: ciertas instrucciones de mquina, se consideran
privilegiadas y pueden ser ejecutadas solamente por el monitor. Por ejemplo, una
instruccin que tenga control sobre un dispositivo de E/S.

3.3 Sistemas por lotes con multiprogramacin


An con el secuenciamiento automtico de trabajos ofrecidos por un sistema sencillo por
lotes, el procesador est desocupado con frecuencia. El problema es que los dispositivos de
E/S son lentos en comparacin del procesador.
Esta ineficiencia no es necesaria. Si se cuenta con espacio suficiente en memoria para el
sistema operativo y dos o ms programas de usuario, cuando un trabajo necesite esperar
una E/S, el procesador puede cambiar a otro trabajo. Esto se conoce como
multiprogramacin o multitarea.
Una caracterstica adicional y til que presentan estos sistemas, es que el hardware debe
respaldar las interrupciones de E/S y el DMA (Acceso Directo a Memoria). Se debe tener
tambin alguna forma de gestin de memoria para administrar los trabajos listos para
ejecutarse alojados en la memoria principal. Adems, si hay varios trabajos listos para
ejecutarse, el procesador debe decidir cul de ellos va a ejecutar, lo que requiere un
algoritmo de planificacin.

3.4 Sistema de tiempo compartido


La tcnica de tiempo compartido, refleja el hecho de que el tiempo del procesador se
comparte entre los diversos usuarios. En un sistema de este tipo, mltiples usuarios
acceden simultneamente al sistema por medio de terminales, donde el sistema operativo
intercala la ejecucin de cada programa de usuario en rfagas cortas o cuantos (quantum)
de computacin. El tiempo de respuesta de un sistema correctamente diseado debera ser
comparable al de un computador dedicado.

4 Caractersticas de los SO modernos


Con el paso de los aos, se ha producido una evolucin gradual en la estructura y
capacidades de los SO. Estos responden a nuevos desarrollos del hardware y nuevas
aplicaciones.
Muchos de los diferentes enfoques y elementos de diseo se han probado tanto en SO
experimentales como comerciales, y muchos encajan dentro de las siguientes categoras:
Arquitectura microncleo.
Multihilos
Multiprocesamiento simtrico
Sistemas operativos distribuidos
Diseo orientado a objetos

Unidad 2: Administracin y gestin de


archivos
1. Archivos
1.1 Concepto
Los archivos son un mecanismo de abstraccin que permite almacenar informacin en el
disco y leerla despus.

1.2 Nombres de archivos


Las reglas exactas para nombrar archivos varan un tanto de un sistema a otro, pero todos
los sistemas operativos permiten usar por ejemplo cadenas de una a ocho letras como
nombre de archivos vlidos. Es comn que se permita tambin dgitos y caracteres
especiales. Muchos sistemas de archivos reconocen nombres de hasta 255 caracteres de
longitud.
Algunos sistemas de archivos distinguen entre maysculas y minsculas, pero otros no.
UNIX pertenece a la primer categora; MS-DOS, a la segunda.
Muchos sistemas de archivos manejan nombres de archivos en dos partes, separadas con
un punto. La parte que sigue al punto se denomina extensin de archivo, y por lo regular
indica algo acerca del archivo. En MS-DOS, por ejemplo, los nombres de archivo tienen de
uno a ocho caracteres, ms una extensin opcional de uno a tres caracteres. En UNIX, el
tamao de la extensin, si la hay, se deja a criterio de usuario, y un archivo podra incluso
tener dos o ms extensiones.

1.3 Estructura de archivos


Los archivos pueden estructurarse de varias maneras:
a. Sucesin de bytes: con este enfoque, el SO no sabe que contiene el archivo, ni le
interesa; lo nico que ve son bytes. Cualquier significado que tenga el archivo
debern imponrselo los programas en el nivel de usuario. Tanto UNIX como
Windows utilizan este enfoque que ofrece el mximo de flexibilidad.
b. Sucesin de registros: en este modelo, un archivo es una sucesin de registros de
longitud fija, cada uno de los cuales tiene una cierta estructura interna. Un aspecto
fundamental de la idea de que un archivo es una sucesin de registros es la idea de
que la operacin de lectura devuelve un registro y que las operaciones de escritura
sobrescribe o anexa un registro.
c. rbol: en esta organizacin, un archivo consiste en un rbol de registros, no todos
necesariamente de la misma longitud, cada uno de los cuales contiene un campo
clave en una posicin fija del registro. El rbol est ordenado segn el campo clave,
con objeto de poder hallar con rapidez una clave en particular. Este enfoque se
utiliza en forma amplia en las grandes computadoras mainframe que todava se
emplean en el procesamiento comercial de datos.

1.4 Tipos de archivos


Muchos SO reconocen varios tipos de archivos. UNIX y Windows, por ejemplo, tienen un
archivo y directorios normales. UNIX tambin tiene archivos especiales de bloques y de
caracteres.
Archivos normales: son los que contienen informacin de usuario.
Directorios: son archivos del sistema que sirven para mantener la estructura del
sistema de archivos.
Archivos especiales de caracteres: tienen que ver con entrada/salida y sirven para
modelar dispositivos de E/S en serie como terminales, impresoras y redes.
Archivos especiales de bloque: sirven para modelar discos.
Los archivos normales por lo regular son archivos ASCII o archivos binarios. Los archivos
ASCII consisten en lneas de texto. La gran ventaja de estos es que pueden exhibirse e
imprimirse tal cual, y pueden modificarse con cualquier editor de texto. Por otro lado, los
archivos binarios si se imprimen en una impresora se produce un listado incomprensible que
parece estar lleno de basura. Por lo regular, tienen alguna estructura conocida por el
programa que los usan.

1.5 Acceso a los archivos


Los primeros sistemas operativos solo permitan un tipo de acceso a los archivos: acceso
secuencial. En esos sistemas, un proceso poda leer todos los bytes o registros de un
archivo en orden, comenzando por el principio, pero no se poda efectuar saltos y leerlos en
otro orden. Eran convenientes cuando el medio de almacenamiento era una cinta
magntica.
Cuando comenzaron a usarse discos para almacenar archivos se hizo posible leer bytes o
registros de un archivo sin un orden especfico, o tener acceso a los registros por clave, no

por posicin. Los archivos cuyos bytes o registros pueden leerse en cualquier orden se
denominan archivos de acceso aleatorio.
Se usan dos mtodos para especificar donde debe iniciar la lectura en archivos de acceso
aleatorio. En el primero, cada operacin read da la posicin en el archivo donde debe
comenzarse a leer. En el segundo, se cuenta con una operacin especial, seek, para
establecer la posicin actual. Despus del seek, el archivo podr leerse en forma secuencial
a partir de la posicin que ahora es actual.

1.6 Atributos de archivos


Todo archivo tiene un nombre y datos. Adems, todos los SO asocian otra informacin a
cada archivo. Esta informacin adicional recibe el nombre de atributos.

1.7 Operaciones con archivos


A continuacin se listaran las llamadas al sistema ms comunes relacionadas con archivos:
Create. Se crea el archivo sin datos.
Delete. Si ya no se necesita un archivo, se borra con esta operacin.
Open. Antes de usar un archivo, un proceso debe abrirlo. El propsito de esta
llamada, es que el sistema obtenga los atributos y la lista de direcciones de disco y
los coloque en la memoria principal para tener acceso a ellos en llamadas
posteriores.

Close. Una vez que terminaron todos los accesos, se cierra el archivo para
desocupar espacio en memoria.
Read. Se leen datos de un archivo. Quien efecta la llamada debe especificar
cuantos datos necesita, y el bfer donde deben colocarse.
Write. Se escriben datos en un archivo, por lo regular, en la posicin actual.
Append. Es una forma restringida de write; solo puede agregar datos al final del
archivo.
Seek. Reubica el apuntador de archivo en un lugar especifio del mismo.
Get attributes. Para leer atributos de un archivo.
Set attributes. Para establecer ciertos atributos o modificarlos despus de que se
cre el archivo.
Rename. Es muy comn necesitar cambiar el nombre de un archivo, esta llamada lo
hace posible.

2. Directorios
Para llevar el control de los archivos, los sistemas de archivos suelen tener directorios o
carpetas que, en muchos sistemas, tambin son archivos.

2.1 Sistemas de directorios de un solo nivel


La forma ms sencilla de sistemas de directorios es que un directorio contenga todos los
archivos. A veces se le llama directorio raz, pero dado que es el nico, el nombre no
importa mucho.
Las ventajas de este esquema son su sencillez y la capacidad para localizar archivos con
rapidez; despus de todo, solo pueden estar en un solo lugar.
El problema de tener un directorio en un sistema con mltiples usuarios es que diferentes
usuarios podran usar por accidente los mismos nombres para sus archivos y esto puede
generar problemas.

2.2 Sistemas de directorios de dos niveles


Para evitar conflictos cuando dos usuarios escogen el mismo nombre para sus propios
archivos, el siguiente escaln sera dar a cada usuario un directorio privado.
Algo implcito en este diseo es que cuando un usuario trata de abrir un archivo, el sistema
necesita saber de qu usuario se trata para saber en cual directorio buscar. Por ello, se
requiere algn tipo de procedimiento de login en el que el usuario especifica un nombre o
una identificacin de inicio de sesin.

2.3 Sistema de directorios jerrquicos


Es muy comn que los usuarios quieran agrupar sus archivos de una forma lgica. Se
necesita alguna forma de agrupar sus archivos dentro de esquemas flexibles
determinados por el usuario.
Se necesita de una jerarqua general (es decir, un rbol de directorios). Con este enfoque,
cada usuario puede tener tantos directorios como necesite para agrupar archivos en
categoras naturales.
Casi todos los sistemas de archivos modernos estn organizados de esta manera, por su
flexibilidad y ser una herramienta potente para organizar archivos.

2.4 Nombres de ruta


Cuando un sistema de archivos est organizado como un rbol de directorios, se necesita
un mecanismo para especificar los nombres de los archivos. Por lo comn se utilizan dos
mtodos. En el primero, cada archivo recibe un nombre de ruta absoluta que consiste en
el camino que debe seguirse para llegar del directorio raz hasta el archivo.
El otro tipo de nombre es el nombre de ruta relativa. Este se usa junto con el concepto de
directorio de trabajo o actual. Un usuario puede designar un directorio como su directorio
actual, en cuyo caso todos los nombres de ruta que no empiecen en el directorio raz se
consideraran relativos al directorio de trabajo.

2.5 Operaciones con directorios


Create, Delete, Opendir, Closedir, Readdir, Rename, Link, Unlink.

3. Implementacin de sistemas de archivos


3.1 Organizacin del sistema de archivos
Los sistemas de archivos se almacenan en discos. Casi todos pueden dividirse en una o
ms particiones, con sistemas de archivos independientes en cada una. El sector 0 del
disco se llama Registro Maestro de Arranque (MBR, Master Boot Record) y sirve para
arrancar la computadora. El final de la MBR contiene una tabla de particiones, la cual
contiene las direcciones inicial y final de cada particin. Una de las particiones de la tabla
est marcada como activa. Cuando se enciende la computadora, el BIOS lee el MBR del
disco y lo ejecuta. Lo primero que hace el programa del MBR es localizar la particin activa,
leer su primer bloque (llamado bloque de arranque), y ejecutarlo. El programa del bloque de
arranque carga el SO contenido en esa particin.
La organizacin de una particin de disco vara en forma considerable de un sistema de
archivos a otro. Es comn que el sistema de archivos contenga algunos de los elementos
que se muestran en la siguiente figura.

3.2 Implantacin de archivos


Tal vez el aspecto ms importante de la implementacin del almacenamiento de archivos
sea llevar el control de cuales bloques de discos corresponden a cul archivo. Para ello
existen diversos mtodos explicados a continuacin.
Asignacin contigua:
El esquema de asignacin ms simple es almacenar cada archivo en una serie contigua de
bloques de disco. Cabe sealar que cada archivo inicia al principio de un bloque nuevo, de
modo que si un archivo ocupa por ejemplo 3,5 bloques, se desperdiciara mitad de un
bloque.
La asignacin de espacio contiguo en disco tiene dos ventajas importantes. La primera es
que su implementacin es sencilla porque para llevar el control de dnde estn los bloques

de un archivo basta con recordad dos nmeros: la direccin en disco del primer bloque y el
nmero de bloques del archivo.
La segunda es que el desempeo de lectura es excelente porque puede leerse todo un
archivo del disco en una sola operacin. Solo se necesita un desplazamiento del brazo (al
primer bloque). Despus, no se requieren ms desplazamientos ni retrasos rotacionales.
Por desgracia, la asignacin contigua tambin tiene una importante desventaja: con el
tiempo, el disco se fragmenta.
Asignacin por lista enlazada:
Consiste en mantener cada archivo como una lista enlazada de bloques de disco. La primer
palabra de cada bloque se usa como apuntador al siguiente; el resto del bloque se usa para
datos.
Con este mtodo pueden usarse todos los bloques del disco. No se pierde espacio por
fragmentacin de disco (solo por fragmentacin interna en el ltimo bloque).
Aunque la lectura secuencial de un archivo es directa, el acceso aleatorio es lento en
extremo. Para llegar al bloque n, el SO tiene que comenzar por el principio y leer los n-1
bloques que lo preceden, uno por uno.
Adems, la cantidad de datos almacenados en un bloque ya no es potencia de 2 porque el
apuntador ocupa unos cuantos bytes. Por este motivo, merma la eficiencia porque muchos
programas leen y escriben bloques cuyo tamao es una potencia de 2. De esta manera, las
lecturas de bloques enteros requieren obtener y concatenar informacin de dos bloques de
disco, lo cual genera un gasto adicional.

Asignacin por lista enlazada empleando una tabla en memoria


Las dos desventajas de las asignacin por lista enlazada pueden eliminarse sacando al
apuntador de cada bloque de disco y colocndolo en una tabla en memoria, la cual se
denomina Tabla de Asignacin de Archivos (FAT, File Allocation Table).
Al igual que con el mtodo anterior, basta con que la entrada de directorio guardo un solo
entero (el nmero de bloque inicial) para poder localizar todos los bloques, sin importar qu
tamao tenga el archivo.
La desventaja primordial de este mtodo es que, para que funcione, toda la tabla debe estar
en la memoria todo el tiempo.

Nodos-i
Este mtodo consiste en asociar a cada archivo una estructura de datos llamada nodo-i
(nodo ndice), que contiene los atributos y direcciones en disco de los bloques del archivo.
La gran ventaja de este enfoque es que el nodo-i solo tiene que estar en memoria cuando el
archivo correspondiente este abierto.
En contraste con una tabla FAT, que aumenta proporcionalmente al tamao de los discos,
este esquema requiere un arreglo en la memoria cuyo tamao sea proporcional al nmero
mximo de archivos que pueden estar abiertos a la vez. No importa el tamao del disco.
Un problema de los nodos-i es que si cada uno tiene un espacio para un nmero fijo de
direcciones de disco, Qu sucede cuando un archivo crece ms all del lmite? Una
solucin es reservar la ltima direccin de disco no para un bloque de datos, sino para la
direccin de un bloque que contenga ms direcciones de bloques de disco. Algo, an ms
avanzado seria tener dos o ms de esos bloques llenos de direcciones de disco o incluso
bloques de disco que apunten a otros bloques de disco llenos de direcciones.

4 Implantacin de directorios
Para poder leer un archivo, es preciso abrirlo primero. Cuando se abre un archivo, el SO
utiliza el nombre de ruta proporcionado por el usuario para localizar la entrada de directorio.
sta proporciona la informacin necesaria para hallas los bloques de disco. Por lo tanto, la
funcin principal del sistema de directorios es establecer una correspondencia entre el
nombre de archivo ASCII y la informacin necesaria para localizar datos.
Todo sistema de archivos mantiene atributos de los mismos. Una posibilidad obvia es
guardarlos directamente en la entrada de directorio. Muchos sistemas hacen precisamente
esto. En un diseo sencillo, un directorio es una lista de entradas de tamao fijo, una por
archivo, que contiene un nombre de archivo (de longitud fija), una estructura con los
atributos del archivo y una o ms direcciones de disco que indiquen donde estn los

archivos. En los sistemas que usan Nodos-i, otra posibilidad es almacenar los atributos en
los mismos, en lugar de en las entradas de directorio.
Hasta ahora hemos supuesto que los archivos tienen nombre cortos de longitud fija. Sin
embargo, casi todos los OS actuales reconocen nombres de archivos ms largos, de
longitud de variable. Una alternativa para esto, es abandonar la idea de que todas las
entradas de directorio tienen el mismo tamao. Con este mtodo, cada entrada contiene
una porcin fija, que por lo regular principia con la longitud de la entrada y seguida de los
atributos. Este encabezado de longitud fija va seguido del nombre de archivo en s, que
puede tener cualquier longitud. (Figura 6-17a)
Una desventaja de este mtodo es que cuando se elimina un archivo queda en el directorio
un hueco de tamao variable, aunque es factible compactar el directorio porque est por
completo en memoria. Otro problema es que una sola entrada de directorio podra cruzar
fronteras de pgina, por lo que podra presentarse un fallo de pgina durante la lectura de
un nombre de archivo.
Otra forma de manejar los nombres variables es hacer que todas las entradas de directorio
sean de longitud fija y mantener los nombres de archivo juntos en un heap al final del
directorio. (Figura 6-17b)
Una forma de acelerar la bsqueda es utilizar una tabla de hash en cada directorio. Se
examina la entrada de tabla correspondiente al cdigo de hash calculado a partir del
nombre del archivo especificado. Si est desocupada, se coloca en ella un apuntador a la
entrada del archivo. Si ya est en uso es ranura, se construye una lista enlazada,
encabezada por esa entrada de tabla, que encadena todas las entradas que tienen el
mismo valor de hash. Aunque la bsqueda es ms rpida, la administracin de este mtodo
es ms compleja.

5 Archivos compartidos
Cuando varios usuarios colaboran en un proyecto, es comn que necesiten compartir
archivos. La conexin entre el directorio de un usuario y un archivo compartido se llama
enlace (link).
Hay dos formas de crear un enlace. En la primera, los bloques de disco no se listan en los
directorios, sino en una pequea estructura de datos asociada con el archivo mismo. Los
directorios apuntaran entonces solo a la pequea estructura de datos. ste es el mtodo

que se usa en UNIX (donde la pequea estructura es el nodo-i). Este tipo de enlace se
denomina enlace duro.
En la segunda solucin, un directorio se enlaza con otro archivo pidiendo al sistema que
cree un archivo nuevo, de tipo link, y lo introduzca en el directorio. El nuevo archivo solo
contiene el nombre de la ruta del archivo con el cual est enlazando. Este mtodo se llama
enlace simblico.
El problema de los enlaces simblicos es el procesamiento adicional requerido. Es preciso
leer el archivo que contiene la ruta, la cual entonces debe analizarse y seguirse,
componente por componente, hasta llegar al nodo-i o la estructura de datos
correspondiente. A pesar de esto, tienen la ventaja de que pueden enlazarse con archivos
de mquinas que pueden estar en cualquier lugar del mundo.

6 Administracin de espacio en disco


6.1 Tamao de bloque
Una vez que se ha decidido almacenar archivos en bloques de tamao fijo, surge la
pregunta de qu tamao debe tener un bloque.
Tener una unidad de asignacin grande, por ejemplo 64kb, implica que todos los archivos,
as tengan un solo byte, ocuparan un bloque entero de 64kb. Por otra parte, el uso de una
unidad de asignacin pequea implica que cada archivo va a constar de varios bloques.
Leer cada bloque por lo regular requiere un desplazamiento del bazo y un retraso rotacional,
por lo que la lectura es lenta.
A partir de lo planteado, se puede afirmar que la tasa de transferencia de datos es
proporcional al tamao de los bloques; mientras que el aprovechamiento del disco es
inversamente proporcional al tamao de bloques.
En caso de UNIX, es comn usar 1kb de tamao de bloque. Mientras que en MS-DOS, el
tamao de bloque puede ser cualquier potencia de 2, desde 512 bytes, hasta 32kb.

6.2 Control de bloques libres


Se usan principalmente dos mtodos para administrar los bloques libres. El primer consiste
en utilizar una lista enlazada de bloques libres de disco, en cada uno de los cuales se
guardan tantos nmeros de bloques de disco como quepan.
La otra tcnica de administracin de espacio libre es un mapa de bits. Un disco con n
bloques requiere un mapa de bits con n bits. Los bloques libres se representan con unos y
los asignados con cero (o viceversa).

6.3 Cuotas de disco


Para evitar que las personas acaparen demasiado espacio de disco, los SO multiusuario a
menudo tienen un mecanismo para imponer cuotas de disco. La idea consiste en que el
administrador asigne a cada usuario una porcion mxima de archivos y bloques, y que el
SO cuide que los usuarios no excedan su cuota.
Cuando un usuario abre un archivo, se localizan los atributos y direcciones de disco y se
colocan en una tabla de archivos abiertos en la memoria principal. Entre los atributos hay
una entrada que indica quien es el dueo del archivo. Cualquier aumento en el tamao del
archivo, se cargar a la cuota del dueo.
Una segunda tabla contiene los registros de cuota de cada uno de los usuarios que tienen
un archivo abierto en ese momento.
Cuando se inserta una nueva entrada en la tabla de archivos abiertos, se incluyen en ella un
apuntador al registro de cuota del dueo de ese archivo, para poder hallar los diversos
lmites. Cada vez que se aade un bloque a un archivo, se incrementa el nmero total de
bloques cargados al dueo, y se coteja con ambos lmites, el estricto y el no estricto. El
lmite no estricto puede excederse, pero el estricto no. Un intento de aumentar el tamao de
un archivo cuando se ha llegado al lmite de bloques estricto producir un error. Se hacen
verificaciones analogas para el nmero de archivos.
Cuando un usuario intenta iniciar sesin, si se ha violado cualquiera de esos lmites, se
exhibe una advertencia y se reduce en uno la cuenta de advertencias restantes. Si esa
cuente llega a cero, no se le permitir ms iniciar sesin.

Unidad 3: Administracin de Procesos


1 Procesos y programas
La misin principal del procesador es ejecutar las instrucciones de la mquina que residen
que residen en la memoria principal. Estas instrucciones se dan en forma de programas.
Para que un programa se ejecute se debe crear un proceso o tarea para l. Desde el punto
de vista del procesador, este ejecutara instrucciones de su repertorio en una secuencia
dictada por los valores cambiantes del registro contador de programa. A lo largo del tiempo,
este contador puede apuntar al cdigo de distintos programas que son parte de diferentes
procesos. Desde el punto de vista de un programa individual, su ejecucin involucra una
secuencia de instrucciones dentro de ese programa.
El comportamiento de un proceso individual puede caracterizarse por la lista de la
secuencia de instrucciones que se ejecutan para dicho proceso. Dicho listado se llama traza
del proceso. El comportamiento del procesador puede caracterizarse mostrando la forma en
que se intercalan las trazas de varios procesos.

2. Creacin de procesos
Cuando se aade un proceso, hay que construir las estructuras de datos que se utilizan
para su administracin y asignar el espacio de direcciones en la memoria principal para el
proceso.
Cuatro sucesos comunes conducen a la creacin de un proceso:
En un entorno de trabajo por lotes, un proceso se crea como respuesta a la emisin
de un trabajo.

En un entorno interactivo, se crea un proceso cuando usuario intenta conectarse.


Un sistema operativo puede crear un proceso como parte de una aplicacin para dar
un servicio.
Un proceso tambin puede crear otros procesos.

3. Terminacin de procesos
Cualquier sistema informtico debe ofrecer alguna forma para que un proceso pueda indicar
que ha terminado. Las causas tpicas de terminacin de un proceso pueden ser: terminacin
normal, tiempo lmite excedido, no hay memoria disponible, error de proteccin, instruccin
ilegal, mal uso de los datos, terminacin del padre, solicitud del padre.

4. El modelo de cinco estados


Este modelo consta de los siguientes estados:
Ejecucin: el proceso que actualmente est en ejecucin.
Listo: proceso que est preparado para ejecutarse, en cuanto se le d la
oportunidad.
Bloqueado: proceso que no se puede ejecutar hasta que se produzca cierto suceso,
como la terminacin de una E/S.
Nuevo: proceso que se acaba de crear, pero que an no ha sido admitido por el
sistema operativo en el grupo de procesos ejecutables. An no est cargado en
memoria principal.
Terminado: un proceso que ha sido excluido por el SO del grupo de procesos
ejecutables, bien porque se detuvo o porque fue abandonado por alguna razn.

Las tipos de sucesos que producen cada transicin de estados son:


Nulo -> Nuevo: se crea un nuevo proceso para ejecutar un programa.
Nuevo -> Listo: se producir cuando el SO est preparado para aceptar un proceso
ms.
Listo -> Ejecucin: cuando es el momento de seleccionar un nuevo proceso para
ejecutar, el SO elige uno de los procesos del estado Listo.
Ejecucin -> Terminado: el proceso que se est ejecutando es finalizado por el SO
si indica que termin o si se abandona.
Ejecucin -> Listo: la razn ms comn de esta transicin es que el proceso que
est en ejecucin ha alcanzado el tiempo mximo permitido de ejecucin

ininterrumpida. Otra razn es si el SO asigna diferentes niveles de prioridad a los


procesos y cambia un proceso por otro con mayor prioridad.
Ejecucin -> Bloqueado: un proceso se pone en estado de bloqueado si solicita
algo por lo que debe esperar. Puede pedir un recurso o iniciar una accin como una
operacin de E/S.
Bloqueado -> Listo: un proceso que est en el estado bloqueado pasar al estado
listo cuando se produzca el suceso que estaba esperando.
Listo -> Terminado: en algunos SO, el proceso padre puede terminar con su
proceso hijo en cualquier momento.
Bloqueado -> Terminado: se aplica lo mismo que para la transicin anterior.

5. Procesos suspendidos
Dado que el procesador es tan rpido comparado con la E/S que suele ser habitual que
todos los procesos de memoria estn esperando por E/S. As pues, incluso con
multiprogramacin, el procesador podra estar desocupado la mayor parte del tiempo. Una
solucin sera alojar ms procesos con una mayor cantidad de memoria principal, pero esta
solucin no es factible.
Otra solucin es el intercambio, lo que significa mover una parte o todo el proceso de la
memoria principal al disco. Cuando ninguno de los procesos en memoria principal est en
estado Listo, el SO pasa al disco uno de los procesos que est Bloqueado y lo lleva a una
cola de Suspendidos. El espacio que se libero puede entonces utilizarse entonces para traer
otro proceso, ya sea de la cola de suspendidos o aceptar la creacin de un nuevo proceso.
Al emplear intercambio, se debe aadir un nuevo estado al modelo de cinco estado,
Suspendido.
Pero este razonamiento presenta una dificultad. Todos los procesos que fueron
suspendidos estaban en el estado de Bloqueado. Realmente no hara ningn bien traer de
nuevo a la memoria principal un proceso Bloqueado porque no est todava listo para
ejecutarse. Para resolver esto se necesitan estos cuatro estados:
Listo: el proceso est en la memoria principal y listo para la ejecucin.
Bloqueado: el proceso est en la memoria principal esperando un suceso.
Bloqueado y suspendido: el proceso est en la memoria secundaria esperando un
suceso.
Listo y suspendido: el proceso est en la memoria secundaria pero est disponible
para su ejecucin tan pronto como se cargue en la memoria principal.

6. Estructuras de control del sistema operativo


Si el SO va a administrar los procesos y los recursos, entonces tiene que disponer de
informacin sobre el estado actual de cada proceso y de cada recurso; para ello, el SO
construye y mantiene tablas de informacin sobre cada entidad que est administrando

6.1 Tablas de memoria


Se utilizan para seguir la pista de la memoria principal (real) y secundaria (virtual). Parte de
la memoria principal est reservada para el SO; el resto est disponible para los procesos.
La tablas deben incluir la siguiente informacin:
La asignacin de memoria principal a los procesos.
La asignacin de memoria secundaria a los procesos.
Cualesquiera atributos de proteccin de bloques de memoria principal o virtual.
Cualquier informacin necesaria para gestionar la memoria virtual.

6.2 Tablas de E/S


Son utilizadas por el SO para administrar dispositivos y los canales de E/S del sistema
informtico. Si hay una operacin de E/S en marcha, el SO necesita conocer el estado de la

operacin y la posicin de memoria principal que se est utilizando como origen o destino
de la transferencia de E/S.

6.3 Tablas de archivos


Ofrecen informacin sobre la existencia de los archivos, su posicin en la memoria
secundaria, su estado actual y otros atributos.
Adems de ests tablas, el SO deber mantener una tabla de procesos para poder
administrarlos. Debe quedar claro tambin, que todas estas tablas no son independientes
unas de otras, deben estar enlazadas de alguna manera.

7. Estructuras de control de procesos


7.1 Ubicacin de los procesos
Un proceso constar, al menos, de la memoria suficiente para albergar los programas y los
datos del proceso. Adems de esto, en la ejecucin de un programa entra en juego
normalmente una pila, que se utiliza para llevar la cuenta de las llamadas a procedimientos
y de los parmetros que se pasan entre los procedimientos. Por ltimo, asociado a cada
proceso hay una serie de atributos utilizados por el SO para su control. Estos atributos se
conocen como bloque de control. Esta coleccin de programa, datos, pila y atributos se
conoce como imagen del proceso.
En el caso ms simple, la imagen del proceso se guarda como un bloque contiguo, o
continuo de memoria. Para que el SO pueda administrar el proceso, al menos una pequea
parte de su imagen, que contiene la informacin a usar por el SO, debe mantenerse en
memoria principal. Para ejecutar el proceso, la imagen completa debe cargarse a la
memoria principal, o al menos a la memoria virtual. Por lo tanto, las tablas mantenidas por el
SO, deben mostrar la ubicacin de cada segmento o pgina (dependiendo el esquema que
se use) de cada imagen de proceso.

7.2 Atributos de los procesos


Se puede agrupar la informacin de los bloques de control de procesos en tres categoras
generales:
Identificador de proceso: en casi todos los SO se le asigna a cada proceso un
identificador numrico nico. Este identificador es til en varios sentidos. Muchas de
las tablas controladas por el SO pueden usar identificadores de procesos como
referencias cruzadas a las tablas de procesos.
Informacin del estado del proceso: est formada por el contenido de los registros
del procesador. Mientras un proceso est ejecutndose, la informacin est en los
registros. Cuando se interrumpe el proceso, toda la informacin de los registros debe
salvarse de forma que pueda restaurarse cuando el proceso reanude su ejecucin.
La naturaleza y el nmero de los registros involucrados dependen del diseo del
procesador.
Informacin de control del proceso: esta es la informacin adicional necesaria
para que el SO controle y coordine los diferentes procesos activos. Esta informacin
puede estar formada por: estado, estructura de datos, comunicacin entre procesos,
privilegios, gestin de memoria, propiedad de recursos y utilizacin.

8. Modos de ejecucin
La mayora de los procesadores soportan al menos dos modos de ejecucin. Ciertas
instrucciones solamente se pueden ejecutar en el modo ms privilegiado, como as tambin
el acceso a ciertas regiones de memoria necesitan este modo.
Modo usuario: es as como se conoce al modo menos privilegiado. Los programas
de usuario se ejecutan normalmente en este modo.
Modo ncleo: este el modo ms privilegiado, con el cual el software tiene control
completo del procesador y de todas sus instrucciones, registros y memoria. Este
nivel de control no es necesario y, por seguridad, tampoco conveniente para los
programas de usuario.
Normalmente hay un bit en la palabra de estado de programa (PSW) que indica el modo de
ejecucin. El bit puede cambiar como respuesta a ciertos sucesos.

9. Creacin de procesos
Una vez que el SO decide, por alguna razn, crear un nuevo proceso, ste puede proceder
como sigue:
1. Asignar un identificador nico al nuevo proceso: en este instante se aade una
nueva entrada a la tabla principal de procesos.
2. Asignar espacio para los procesos: esto incluye todos los elementos de la imagen
del proceso.
3. Iniciar el bloque de control del proceso
4. Establecer los enlaces apropiados: por ejemplo, poner el proceso nuevo en la
cola de listos.
5. Crear o ampliar otras estructuras de datos: por ejemplo, algn tipo de archivo de
contabilidad para futuros informes de rendimiento.

10. Cambio de proceso


Un cambio de proceso puede producirse en cualquier momento en que el SO haya tomado
el control a partir del proceso que est actualmente ejecutndose. Los posibles sucesos que
pueden dar el control al SO son:
Interrupcin: el control primero se transfiere al gestor de interrupciones, quien lleva
a cabo algunas tareas bsicas y despus, se salta a una rutina del SO que se ocupa
del tipo de interrupcin producida. Algunos tipos son:
Interrupcin de reloj
Interrupcin de E/S
Fallo de memoria: cuando el procesador encuentra una referencia a una
direccin de memoria virtual de una palabra que no est en la memoria
principal.
Cepos: es un tipo de interrupcin que tiene que ver con una condicin de error o de
excepcin generada dentro del proceso que est ejecutndose, como un intento
ilegal de acceso a un archivo. El SO determina si el error es fatal. Si lo es, el proceso
que estaba ejecutando pasa al estado de Terminado y se produce un cambio de
proceso; si no es fatal, la accin del SO depender de la naturaleza del error y el
diseo del SO.
Llamada del supervisor: el uso de una llamada al sistema hace que el proceso de
usuario pase al estado Bloqueado y el control pase al SO.
Cuando se cambia un proceso se debe cumplir una serie de pasos:

1. Salvar el contexto del procesador, incluyendo el contador de programa y otros


registros.
2. Actualizar el BCP (Bloque de Control de Proceso) que estaba en ejecucin. Incluye
cambiar el estado y otra informacin.
3. Mover el BCP a la cola apropiada segn el estado al que se actualiz.
4. Seleccionar otro proceso para su ejecucin.
5. Actualizar el BCP del proceso seleccionado.
6. Actualizar las estructuras de datos de la gestin de memoria.
7. Restaurar el contexto del procesador segn los registros salvados anteriormente del
proceso que fue seleccionado para la ejecucin.

11. Hilos
Un proceso incluye dos caractersticas fundamentales:
Unidad de propiedad de los recursos: al proceso se le puede asignar el control o
la propiedad de recursos.
Unidad de expedicin: un proceso tiene un estado (ejecucin, listo, etc.) y una
prioridad; y adems es la unidad expedida y planificada por el sistema operativo.
Para distinguir estas dos caractersticas, la unidad de expedicin se conoce como hilo,
mientras que a la unidad de propiedad de los recursos se la suele llamar proceso o tarea.
Dicho de otra manera, el proceso posee los recursos y los hilos son los motores que los
comparten y los utilizan.

12. Multihilo
Hace referencia a la capacidad de un sistema operativo para mantener varios hilos de
ejecucin dentro de un mismo proceso.
En un entorno multihilo, un proceso se define como la unidad de proteccin y unidad de
asignacin de recursos. A los procesos se les asocian los siguientes elementos:
Un espacio de direcciones virtuales que contiene la imagen del proceso.
Acceso protegido a los procesadores, otros procesos, archivos y recursos.
En un proceso puede haber uno o ms hilos, cada uno con lo siguiente:
El estado de ejecucin del hilo.
El contexto del procesador.
Una pila de ejecucin.
Almacenamiento esttico para las variables locales.
Acceso a la memoria y los recursos del proceso, compartidos por todos los otros
procesos, ya que todos los hilos residen en el mismo espacio de direcciones y tienen
acceso a los mismos datos.
Ventajas:
Se tarda mucho menos en crear un nuevo hilo en un proceso existente que crear un
nuevo proceso.
Se tarda menos tiempo en terminar un hilo que un proceso.
Se tarda menos tiempo en cambiar entre dos hilos de un mismo proceso que entre
dos procesos.
Los hilos de un mismo proceso comparten memoria y archivos, por lo tanto pueden
comunicarse entre s sin invocar al ncleo.

Desventajas:
La suspensin de un proceso implica la descarga del espacio de direcciones fuera de la
memoria principal. Puesto que todos los hilos de un proceso comparten el mismo espacio
de direcciones, todos deben entrar en estado suspendido al mismo tiempo. De manera
similar, la terminacin de un proceso supone terminar con todos los hilos dentro de dicho
proceso.

13. Estados de un hilo

Creacin: normalmente, cuando se crea un nuevo proceso, tambin se crea un hilo


para ese proceso. Posteriormente, un hilo puede crear otros hilos dentro del mismo
proceso.
Bloqueo: cuando un hilo necesita esperar por un suceso, se bloquea. Ahora, el
procesador podr pasar a ejecutar otro hilo en estado listo.
Desbloqueo: cuando se produce el suceso por el que el hilo se desbloque, el hilo
pasa a la cola de listos.
Terminacin: cuando un hilo finaliza, se libera su contexto y sus pilas.
En general, no tiene sentido asociar estados de suspensin a hilos porque esos estados
pertenecen al concepto de proceso.

14. Implementacin de hilos


Existen dos grandes categoras para la implementacin de hilos: los hilos a nivel de usuario
(ULT) y los hilos a nivel de ncleo (KLT).

14.1 Hilos a nivel de usuario ULT


En una aplicacin ULT pura, todo el trabajo de gestin de hilos lo realiza la aplicacin y el
ncleo no es consciente de la existencia de hilos.
La creacin de nuevos hilos dentro de un proceso se lleva a cabo ejecutando la utilidad de
creacin de la biblioteca de hilos. Esta crea una estructura de datos para el nuevo hilo y
cede el control a uno de los hilos del proceso que est en estado de listo. Cuando el control
pasa a la biblioteca, se salva el contexto del hilo actual, que se restaura cuando el control
pasa de la biblioteca al hilo.
Todas las operaciones anteriores, se llevan a cabo en el espacio de usuario y dentro de un
mismo proceso. El ncleo no tiene conocimiento de ellas, planifica al proceso como una
unidad.
Ventajas:
El proceso no debe cambiar a modo ncleo para gestionar hilos. Con ello se evita la
sobrecarga de dos cambios de modo (de usuario a ncleo y de ncleo a usuario).
Los ULT pueden ejecutarse en cualquier sistema operativo. La biblioteca de hilos es
un conjunto de utilidades de aplicacin compartidas por todas las aplicaciones.

Desventajas:
Cuanto un ULT ejecuta una llamada al sistema no solo se bloquea ese hilo, sino
todos los hilos del proceso.
En una estrategia ULT pura, una aplicacin multihilo no puede aprovechar las
ventajas de multiprocesadores. El ncleo asigna un proceso a un solo procesador a
la vez.

14.2 Hilos a nivel de ncleo KLT


En una aplicacin KLT pura, todo el trabajo de gestin de hilos lo realiza el ncleo. En el
rea de la aplicacin no hay cdigo de gestin de hilos, nicamente una Interfaz de
Programas de Aplicacin (API) para las funciones de gestin de hilos en el ncleo.
El ncleo mantiene la informacin de contexto del proceso como un todo y la de cada hilo
dentro del proceso. Tambin puede planificar simultneamente mltiples hilos del mismo
proceso en mltiples procesadores. Si se bloquea uno de los hilos del proceso, el ncleo
puede planificar otro hilo del mismo proceso.
La principal desventaja de la solucin KLT comparada con la ULT es que el paso del
control de un hilo a otro dentro de un mismo proceso necesita un cambio de modo a modo
ncleo. Otra desventaja es que la programacin depende de la plataforma.

14.3 Mixto
En un sistema combinado, la creacin de hilos, as como la mayor parte da la planificacin y
sincronizacin de los hilos de una aplicacin se realizan por completo en el espacio de
usuarios. Los mltiples ULT de una sola aplicacin se asocian con varios (el mismo o menor
nmero) KLT.
En un mtodo combinado, los mltiples hilos pueden ejecutarse en paralelo en mltiples
procesadores y las llamadas al sistema bloqueadoras no necesitan bloquear todo el
proceso.

15. Multiprocesamiento Simtrico


Dentro de la clasificacin de Flynn de sistemas informticos, la arquitectura SMP entra en el
tipo MIMD (Flujo de instruccin mltiple/datos mltiples).
En un multiprocesador simtrico, el ncleo puede ejecutar en cualquier procesador y,
normalmente, cada procesador se autoplanifica a partir de una cola de procesos o hilos
libres. Con este enfoque, el sistema operativo es ms complejo ya que se deben usar
tcnicas para resolver y sincronizar las solicitudes concurrentes de recursos.

15.1 Organizacin SMP


En un SMP hay mltiples procesadores, cada uno de los cuales tiene su propia unidad de
control, unidad aritmtico-lgica y registros. Cada procesador tiene acceso a una memoria
principal compartida y a los dispositivos de E/S a travs de algn tipo de mecanismo de
interconexin: un modo habitual es mediante un bus compartido.
En las mquinas modernas, los procesadores suelen tener al menos un nivel de memoria
cache privado. Este uso de la cache introduce algunas consideraciones nuevas al diseo.
Debido a que cada cache local contiene una imagen de parte de la memoria principal, si se
modifica una palabra de una de las caches, debera anularse la palabra de las otras caches.
Para permitirlo, se avisa al resto de los procesadores de que se ha realizado una
modificacin.

16. Microncleo
Un microncleo es un pequeo ncleo del sistema operativo que proporciona las bases
para ampliaciones modulares.
La filosofa en que se basa el microncleo es que solo las funciones absolutamente
esenciales del sistema operativo deben permanecer en el ncleo. Las aplicaciones y los
servicios menos esenciales se construyen sobre el microncleo y se ejecutan en modo
usuario.
Los componentes del sistema operativo externos al microncleo se implementan como
procesos servidores; estos interactan uno con otro sobre una base comn, normalmente a
travs de mensajes distribuidos a travs del microncleo. De este modo, el microncleo
funciona como un distribuidor de mensajes.
Ventajas:
Extensibilidad: la arquitectura del microncleo permite aadir nuevos servicios al
conjunto de servicios ya existentes en algunas de las reas funcionales.
Flexibilidad: no solo permite aadir nuevas caractersticas al SO, sino que se
pueden reducir las caractersticas actuales para dar lugar a una implementacin ms
pequea y eficiente.
Portabilidad: la mayora del cdigo especfico del procesador est en el
microncleo. De este modo, los cambios necesarios para portar el sistema a un
nuevo procesador son menores y tienden a estar ordenados en agrupaciones
lgicas.
Ocupa menos lugar en la memoria fsica.
Los mensajes se pueden hacer por red a otras computadoras. Entonces el
microkernel facilita el procesamiento distribuido.
Fiabilidad: la arquitectura brinda fiabilidad gracias a su reducido tamao y todas las
dems caractersticas descritas.
Desventaja:
Su principal desventaja es el rendimiento. Consume ms tiempo construir y enviar un
mensaje, o aceptar y codificar la respuesta, a travs del micro ncleo que mediante una
simple llamada al sistema.

17. Comunicaciones entre Procesos


Se desarrolla a travs de:

Mensajes: de misma o diferente PC. Son el mecanismo bsico de comunicacin


entre procesos o hilo. Incluye una cabecera, y un cuerpo.
Memoria compartida: de una misma PC. El paso de mensajes entre procesos
independientes supone copias de memoria a memoria y est limitado por la
velocidad de la misma, y no depende de la velocidad del procesador.
Los procesos necesitan comunicarse para:
Compartir informacin: el que la genera es el productor, el que la consume,
consumidor.
Generar servicios: los que solicitan servicios son clientes, los que los ofrecen,
servidores.
Cuando dos o ms procesos comparten recursos involuntariamente, interactan
implcitamente o de una manera no programada. Esto puede generar conflictos, que para
evitarlos, tiene que existir algn mtodo de sincronizacin.
En situaciones en la que dos o ms procesos estn leyendo o escribiendo datos
compartidos y el resultado final depende de quin y cundo se ejecuta, se denomina
situaciones o condiciones de competencia. Es decir, una situacin que genera conflicto
cuando interactan 2 o ms procesos que tienen que ver con los tiempos de ejecucin de
los procesos. Para evitarlo, se necesita una exclusin mutua, es decir, alguna forma de
asegurarnos que si un proceso est utilizando un recurso compartido, los dems procesos
no podrn hacer uso de l. Hay situaciones en las que un proceso tiene que acceder a
memoria o archivos compartidos que pueden generar competencia. La parte del programa
en la que se tiene acceso a la memoria compartida se denomina regin crtica. Por lo que,
resumiendo, la solucin para las situaciones de competencia seria que 1 solo proceso
pueda entrar en la regin crtica (exclusin mutua).
Para lograrla, se pueden proponer varias alternativas:
Inhabilitacin de interrupciones: la solucin ms simple es hacer que cada
proceso inhabilite todas las interrupciones inmediatamente despus de ingresar a su
regin crtica y las vuelva a habilitar justo antes de salir de ella. Con las
interrupciones inhabilitadas, no puede haber interrupciones de reloj. Este es un
enfoque poco atractivo porque no es prudente conferir a los procesos de usuario la
capacidad de inhabilitar todas las interrupciones.
Variable de cerradura o de bloqueo: una solucin de software es utilizar una sola
variable compartida que inicialmente es cero (desbloqueado). Cuando un proceso
quiere entrar en su regin crtica, primero prueba el bloqueo. Si este es 0, el proceso
lo establece a 1 (bloqueado) y entra en la regin critica. Si la variable es 1, el
proceso espera hasta que cambie a 0. La desventaja aqu es que se pueden generar
inconsistencias en la lectura de los datos por interrupciones de reloj en tiempos
inoportunos.
Variable TSL: esta solucin requiere un poco de ayuda del hardware. Muchas
computadoras, sobre todo las diseadas pensando en mltiples procesadores,
tienen una instruccin TSL RX, BLOQUEO (Test and Set Lock). Esta lee el
contenido de la palabra de memoria bloqueo, la coloca en el registro RX y luego
guarda un valor distinto a cero en la direccin de memoria bloqueo. Se garantiza que
las operaciones de leer la palabra y escribir en ella son indivisibles. La CPU que
ejecuta la instruccin TSL cierra el bus de memoria para impedir que otras CPUs
tengan acceso a la memoria antes que termine.
Alternancia estricta: esta solucin usa una variable de cerradura pero permite el
acceso a 2 procesos en base a los valores de las variables, por lo que no hay

posibilidad de que entren los 2. Un proceso entra en un ciclo corto en la espera que
el otro que est en la regin critica salga de la misma y cambie la variable de
cerradura para permitirle el acceso. Aqu se pueden generar inconsistencias por
interrupciones de reloj y; adems, como un proceso es el que llama a otro, si el
proceso 0 no entra en la regin critica, el 1 no entrara.
Todas estas alternativas son correctas, pero tienen el defecto de que requieren espera
activa. Es decir, cuando un proceso quiere entrar en su regin critica, verifica si tal ingreso
est permitido. Si no lo est, el proceso entra en un ciclo corto para esperar hasta que lo
est.
Otra alternativa para lograr exclusin mutua, es empleando modelos sin espera activa:
aqu cuando a un proceso no se le permite entrar a la regin crtica, en lugar de esperar y
perder tiempo en la CPU, se bloquea. Cuando se le habilita la entrada, se desbloquea. Para
lograr esto se debe hacer uso de algunas primitivas de comunicacin entre procesos, unas
de las ms sencillas son el par sleep y wakeup:
sleep: hace que el invocador se bloquee, hasta que otro proceso lo active
wakeup: desbloquea un proceso. Tiene un parmetro, el proceso a desbloquear

18. Modelo productor consumidor


Este es un modelo que utiliza las dos primitivas nombradas anteriormente. Dos procesos
comparten un bfer de tamao fijo. Uno de ellos, el productor, coloca la informacin all y el
otro, el consumidor, la saca.
Los problemas de este modelo surgen cuando el productor quiere colocar un nuevo
elemento en el bfer pero este ya est lleno. La solucin es que el productor se desactive y
se vuelva a activar cuando el consumidor haya sacado uno o ms elementos. Asimismo, si
el consumidor quiere sacar un elemento del bfer y ve que esta vaco, se desactiva hasta
que el productor coloca algo all y lo activa.
Siendo c el nmero de elementos del bfer y n el nmero de elementos mximo que se
puede guardar, el cdigo de este modelo es:
Cdigo para el productor:

Cdigo para el consumidor:

while(true) {
producir();
si (c==n) sleep();
colocar();
c=c+1;
}

while(true) {
si (c==0) sleep
sacar();
si (c==n-1) wakeUp(prod)
consumir();
}

A pesar de que este modelo no posee espera activa, sigue teniendo el problema de las
interrupciones de reloj en momentos inoportunos.

19. Semforos
Otro manera de implementar la comunicacin entre procesos es utilizando semforos. Cabe
aclarar que no es un mtodo de comunicacin, estos son un tipo de variable a la que se le

aplican dos operaciones, down y up. La primera, aplicada a un semforo determina si su


valor es mayor a 0. En tal caso, decrementa el valor y simplemente contina. Si el valor es
0, el proceso se desactiva sin terminar la operacin down por el momento. La operacin up,
incrementa el valor del semforo indicado. Si uno o ms procesos estn inactivos en espera
de un semforo, sin haber podido terminar una operacin down previa, el sistema escoge
uno de ellos y le permite terminar dicha operacin.
Ambas primitivas son funciones atmicas, es decir, no pueden ser interrumpidas, porque
son llamadas al SO. Con esto, se garantiza que una vez iniciada la operacin de semforo,
ningn otro proceso podr tener acceso al semforo antes que la operacin haya terminado
o se haya desbloqueado.
Utilizando semforos al modelo productor-consumidor, se tiene:
lleno = 0, para contar el nmero de ranuras ocupadas.
vaco = N, para contar el nmero de ranuras desocupadas.
mutex = 1, para asegurar que el productor y consumidor no tengan acceso al bfer
al mismo tiempo. Los semforos que solo pueden adoptar dos valores, se
denominan semforos binarios o mutex.
Cdigo para el productor:

Cdigo para el consumidor:

while(true) {
producir();
down(vacio);
down(mutex);
colocar();
up(mutex);
up(lleno);
}

while(true) {
down(lleno);
down(mutex);
sacar();
up(mutex);
up(vacio);
consumir();
}

20. Monitores
Otra forma de evitar que dos procesos entren en la regin critica es utilizando monitores.
Este es una coleccin de procedimientos, variables y estructuras de datos que se agrupan
en un tipo especial de modulo o paquete. Los procesos pueden invocar a los
procedimientos de un monitor cuando lo deseen, pero no pueden acceder en forma directa
a sus estructuras de datos internas desde procedimientos declarados fuera de dicho
monitor. Los monitores tienen una propiedad importante que los hace tiles para lograr la
exclusin mutua: solo un proceso puede estar activo en un monitor a la vez.

21. Transferencia de mensajes


Otra manera de lograr la comunicacin entre procesos es a travs de mensajes. Este
mtodo utiliza dos primitivas, send y receive, que son llamadas al sistema, no
construcciones del lenguaje. Especficamente, cada una se estructura:
send(destino, mensaje) : enva un mensaje a un destino dado.
receive(origen, mensaje) : recibe un mensaje de un origen dado.
Si no hay mensajes disponibles, el receptor puede bloquearse hasta que llegue uno, o bien,
regresar de inmediato con un cdigo de error. Hay dos formas de llevar la administracin
con los mensajes:

Administracin Distribuida: los mensajes se van almacenando en una tabla


llamada almacn de mensajes. Cada
proceso tiene su propio almacn, por lo
tanto, no se necesita exclusin mutua.
Administracin Centralizada: en lugar de tener cada uno un almacn, los
mensajes se guardan todos en una estructura de datos llamada buzn que los
maneja.

Los sistemas de transferencia de mensajes presentan muchos problemas y cuestiones de


diseo difciles. Cabe la posibilidad de que en la red se pierdan los mensajes. Para
protegerse contra tal perdida, el emisor y el receptor pueden convenir en que tan pronto
como el receptor reciba un mensaje, devolver en mensaje especial de acuse. Si el emisor
no recibe tal acuse dentro de cierto plazo, retransmitir el mensaje.
Otro problema, es lo que sucede si el mensaje se recibe de forma correcta, pero el acuse se
pierde. El emisor retransmitir el mensaje y el emisor lo obtendr dos o ms veces. Este
problema se resuelve anexando nmeros de sucesin consecutivos a cada mensaje
original. Si el receptor recibe un mensaje con el mismo nmero de sucesin que el mensaje
anterior, sabr que est repetido y puede ignorarlo.
El modelo productor consumidor con mensajes es de la siguiente manera:
Cdigo del productor:

Cdigo del consumidor:

int elem;
mensaje m;

int elem i;
mensaje m;

while(true){
elem = producir();
receive(consumidor, m);
formar_mensaje(m, elem);
send(consumidor, m);
}

for(i=0; i<N; i++) send(productor, m);


while(true){
receive(productor, m);
elem = extraer(m);
send(productor, m);
consumir(elem);
}

21. Interbloqueos o bloqueos irreversibles


Un conjunto de procesos cae en un bloqueo irreversible si cada proceso del conjunto est
esperando un suceso que solo otro proceso del conjunto puede causar. Puesto que todos
ellos estn esperando, ninguno causara jams ninguno de los eventos que podran
despertar a algn otro miembro del conjunto, y todos seguirn esperando de manera
indefinida. Pueden ocurrir cuando se ha otorgado a los procesos acceso exclusivo a
recursos.
Generalizando, un recurso puede ser un dispositivo de hardware (una unidad de cinta, disco
rgido, etc.) o informacin (un registro bloqueado de una base de datos). Otra forma de
generalizar los recursos es en fsicos, un componente de hardware y en lgicos, estructuras
fabricadas por el SO.
Adems, existen dos tipos de recursos segn caractersticas de expropiacin:
Expropiables: es uno que se le puede quitar al proceso que lo tiene sin causar
daos. La memoria es un ejemplo de este tipo.
No expropiables: no puede quitrsele a su actual dueo sin hacer que el cmputo
falle. La grabadora de CD-ROM es un ejemplo de este tipo.

21.1 Condiciones de Coffman para el bloqueo irreversible


Se demostr que deben cumplirse cuatro condiciones para que haya un bloqueo
irreversible:
1. Exclusin mutua: cada recurso est asignado a exactamente un proceso, o est
disponible.
2. Retencin y espera: los procesos tienen recursos previamente otorgados pueden
solicitar otros recursos.
3. No expropiacin: los recursos ya otorgados no pueden arrebatarse al proceso que
los tiene; ste debe liberarlo de forma limpia y explcita.
4. Espera circular: debe haber una cadena circulas de dos o ms procesos, cada uno
de los cuales est esperando un recurso que est en manos del siguiente miembro
de la cadena.
Deben existir estas cuatro condiciones para que ocurra un bloqueo irreversible. Si falta
alguna de ellas, no podr ocurrir.

21.2 Estrategias para manejar bloqueos irreversibles


En general, se usan cuatro estrategias:
1. Simplemente ignorar el problema bajo la suposicin de que la mayora de los
usuarios prefieren un bloqueo irreversible ocasional que una regla limite a todos los
usuarios a tener un solo proceso. Este es el modelo de Windows y Linux. Esto
tambin es llamado como Algoritmo del Avestruz. La ventaja de esta perspectiva
es que al aplicar una tcnica para evitarlos, significara no usar recursos que dispone
la PC, y eso no es eficiente.
2. Deteccin y superacin. Dejar que se presenten los bloqueos, detectarlos y tomar
medidas.
3. Evitacin dinmica mediante asignacin cuidadosa de recursos.
4. Prevencin, anulando en forma estructural una de las cuatro condiciones necesarias
para que haya un bloqueo irreversible.

21.3 Prevencin de bloqueos irreversibles


Existen dos formas de prevenirlos:
Mediante la negacin de las condiciones: si el SO impide que se cumplan, ser
estructuralmente imposible que se produzcan los interbloqueos.
Evitar la exclusin mutua: que los recursos no sean exclusivos. Poco
probable en los sistemas operativos.
Evitar la posesin y espera: si se puede evitar que los procesos que tiene
recursos esperen cuando traten de adquirir ms recursos, se eliminara el
interbloqueos. Para ello, se exige que todos los procesos soliciten todos sus
recursos antes de comenzar a trabajar. Ineficiente, porque el proceso a
veces no sabe todos los recursos que usara, o captura cierta cantidad de
recursos y a lo mejor luego no los usa a todos
Evitar la no apropiacin: expropiarle un recurso a un proceso, muchas veces
es muy poco prometedor. Por lo que atacar desde este punto de vista no es
recomendado.
Evitar la espera circular: una manera de evitar la espera circular, es cualquier
proceso tenga derecho a tener tan solo un recurso en todo momento. Otra

forma es asignar a cada recurso un nmero, y la unica forma de que un


proceso pueda solicitarlos es en orden numrico.

Prediccin mediante la asignacin cuidadosa de recursos: un proceso pide un


recurso y el SO se lo concede solo si verifica que no se va a producir un
interbloqueo, aunque el recurso est disponible. Para ello:
Negacin de la activacin de los procesos: si el SO predice que los recursos
producirn interbloqueos, no activa un nuevo proceso, lo deja en estado de
creacin.
Verificacin de estados seguros: algoritmo del banquero. Este verifica si
conceder una solicitud conduce a un estado inseguro o no. Si lo hace, no se
autoriza la solicitud. Si no es as, se concede lo que pidi.

21.4 Deteccin y recuperacin de bloqueos irreversibles

Deteccin: es posible construir un grafo de recursos cada cierto intervalo de tiempo


o eligiendo otro momento, si contiene uno o ms ciclos, quiere decir que hay un
interbloqueo. En los sistemas reales se necesita de un algoritmo formal para
detectar dichos bloqueos.
Recuperacin: existen 2 formas.
Eliminacin de procesos: es la forma ms eficaz. Se elimina uno o ms
procesos. Lo mejor es eliminar un proceso que pueda volver a ejecutarse
desde el principio sin efectos perjudiciales. Tambin es factible eliminar al
que hace menos tiempo que est en ejecucin o al que tiene una gran
cantidad de recursos.
Apropiacin de recursos: arrebatarle de manera temporal un recurso a su
actual poseedor y drselo a otro. La capacidad para arrebatar un recurso,
dejar que otro proceso lo use y devolverlo sin que el proceso se percate,
depende de la naturaleza del recurso. Depende si es crtico o no. Si es
crtico, es un recurso solicitado por muchos procesos.
Revisin: es posible hacer que los procesos pasen por puntos de
verificacin en forma peridica. En tal punto, el estado del proceso se graba
en un archivo que contendr la imagen como asi tambin el estado de los
recursos del proceso. Cuando se detecta un bloqueo irreversible, el proceso
que tiene un recurso requerido se revierte hasta un momento anterior a la
adquisicin del mismo.

22. Inanicin
Este es un problema ntimamente ligado con los bloqueos irreversibles. En un sistema
dinmico, se necesita alguna poltica para decidir quin recibe qu recurso y cundo. Esta
poltica, aunque al parecer es razonable, puede hacer que algunos procesos nunca sean
atendidos, aunque no hayan cado en un bloqueo irreversible. Por ejemplo, un proceso que
no se atiende porque siempre llega uno con ms prioridad.

23. Calendarizacin
Es muy importante en un sistema, decidir cul proceso se ejecutara a continuacin. La parte

del SO que toma la decisin se denomina calendarizador, y el algoritmo que usa,


algoritmo de calendarizacin.
Adems de escoger el proceso que ms conviene ejecutar, el calendarizador debe
preocuparse por aprovechar con eficiencia la CPU, porque la conmutacin de procesos es
costosa.

23.1 Cuando calendarizar


Hay diversas situaciones en las que es necesario calendarizar.
Cuando se crea un proceso, pues hay que decidir si se ejecutara el proceso padre o
el hijo.
Cuando un proceso termina, pues se debe tomar una decisin de calendarizacin. Si
ningn proceso est listo, lo normal es que se ejecute un proceso inactivo
suministrado por el sistema.
Cuando un proceso se bloquea por E/S tambin hay que tomar una decisin de
calendarizacin.
Si algn reloj de hardware genera interrupciones cada una cierta frecuencia, puede
tomarse una decisin de calendarizacin en cada interrupcin o cada cierta cantidad
de interrupciones.

23.2 Tipos de algoritmos de calendarizacin


Bsicamente, existen dos tipos de algoritmos dependiendo de cmo se manejan las
interrupciones de reloj:
No expropiativo: escoge al proceso que se ejecutar, y luego simplemente le
permite ejecutarse hasta que se bloquee, o hasta que ceda la CPU en forma
voluntaria. En este caso no se toman decisiones de calendarizacin durante las
interrupciones de reloj. Luego de que la interrupcin termina de procesarse, siempre
se reanuda el proceso que se estaba ejecutando antes de ella.
Expropiativo: escoge un proceso y le permite ejecutarse durante un tiempo
establecido (quantum). Si al trmino de este tiempo el proceso continua en
ejecucin, se le suspende y el calendarizador escoge otro proceso para que se
ejecute (si hay disponible). Este tipo requiere que haya una interrupcin de reloj al
trmino del intervalo de tiempo para que el calendarizador pueda recuperar el control
de la CPU.

23.3 Categoras de algoritmos de calendarizacin


Lo que el calendarizador debe optimizar en un sistema, no es lo mismo para todos. Por lo
tanto, se diferencian tres entornos que vale la pena distinguir:
Por lotes: suelen ser aceptables los algoritmos no expropiativos, o los expropiativos
con intervalos de tiempo largos para cada proceso. Este enfoque reduce la
conmutacin de procesos y, por lo tanto, mejora el desempeo.
Interactivo: en un entorno con usuarios interactivos, la expropiacin es
indispensable para evitar que un proceso acapare la CPU y niegue otros servicios.
Tiempo real: en estos sistemas a veces no es necesaria la expropiacin, porque lo
procesos saben que tal vez no se ejecuten durante mucho tiempo y, por lo general,
realizan su trabajo y se bloquean rpido.

23.4 Algoritmos de calendarizacin en sistemas por lotes


Primero en llegar, primero en ser atendido (FCFS)
Este algoritmo es no expropiativo y es el ms sencillo de todos. Aqu, la CPU se asigna a
los procesos en el orden que la solicitan. De manera bsica, hay una sola cola de procesos
listos.
Cuando el primer trabajo entra al sistema, se le inicia de inmediato y se le permite ejecutar
todo el tiempo que desee. A medida que llegan otros trabajos, se les coloca al final de la
cola. Cuando se bloquea el proceso en ejecucin, se ejecuta el primer proceso de la cola. Si
un proceso bloqueado vuelve a estar listo, se le coloca al final de la cola como si fuera un
trabajo recin llegado.
La gran ventaja de este algoritmo es que es muy fcil de entender y de programar.

Trabajo ms corto primero (SJF)


Algoritmo no expropiativo. Su funcionamiento es similar al FCFS, pero la diferencia es que
si hay varios trabajos de la misma importancia en la cola de entrada, el calendarizador
escoge al trabajo ms corto primero.
Vale la pena sealar que esta estrategia de trabajo ms corto primero slo es ptima si
todos los trabajos estn disponibles en forma simultnea.

Tiempo restante ms corto a continuacin (SRTF)


Esta es una versin expropiativa de la estrategia anterior. Cuando llega un trabajo nuevo, su
tiempo total se comprara con el tiempo que resta para que el proceso actual termine de
ejecutarse. Si es menor, el proceso actual se suspende y se pone en marcha el trabajo
recin llegado. La ventaja de este esquema es que permite que trabajos cortos nuevos
obtengan un buen servicio.

23.5 Algoritmos de calendarizacin en sistemas interactivos


Calendarizacin por turno circular
Este es uno de los mtodos ms antiguos, sencillos y equitativos muy utilizado. Tambin se
lo conoce como Round Robin. A cada proceso se le asigna un intervalo de tiempo, llamado
cuanto o quantum, durante el que se le permitir ejecutarse. Claro que si el proceso se
bloquea o termina antes de expirar el cuanto, la conmutacin de la CPU se efecta en ese
momento. Lo nico que necesita hacer el calendarizador es mantener una lista de procesos
ejecutables. Cuando un proceso consume su cuanto, se le coloca al final de la lista.
Hay SO que usan dos listas: 1 para los que gastaron su quantum, y otra para los que no lo
hicieron (los que pasaron de Ejecucin a Bloqueados). Esta ltima lista tiene mayor
prioridad.
En este mtodo hay aspectos muy importantes referidos con el tiempo de ejecucin: un
cuanto demasiado corto causa demasiadas conmutaciones de procesos y reduce la
eficiencia de la CPU, pero uno demasiado largo puede reducir la rapidez de respuesta a

solicitudes interactivas cortas. Aun cuando de alrededor de 20-50 ms suele ser un trmino
medio razonable.

Calendarizacin por prioridades


La idea bsica aqu es sencilla: a cada proceso se le asigna una prioridad, y el proceso listo
que tenga mayor prioridad es el que se ejecuta.
El SO reconoce la urgencia del proceso y le asigna una prioridad. A mayor numero, mayor
es la prioridad, o viceversa, depende del SOP Puede ser expropiativo (en ese caso, si
aparece uno de mayor prioridad que uno que estaba, se cambia), o no (se respeta el tiempo
de ejecucin del proceso).
Las razones para asignar la prioridad dependen de si son:
Procesos de tiempo real: el comportamiento est relacionado con el tiempo y no
deben sufrir demoras porque afectan su normal funcionamiento.
Procesos normales: interesa la tarea que se realice, sin importar el tiempo.

Mltiples colas - MLQ


Colas de diferentes nmeros de prioridad. Una de mayor, una de menor, y las otras
intermedias. En cada nivel se tienen varios procesos. Un proceso de una lista no se puede
pasar a otra. Hay que definir la cantidad de niveles, la prioridad de los niveles, y porque un
proceso entra a una lista y no a otra, y que algoritmo se usa para cada cola. Adems, hay
que definir un orden para cada cola. Este orden, puede ser el FCFS o el RR.

MLQF
El que se usa en Linux y Windows. Similar al MLQ, pero los procesos pueden cambiar de
cola. Adems de todo lo del MLQ, hay que definir un mecanismo para que un proceso pase
de una cola a la otra.

Calendarizacin garantizada
Una estrategia es hacer promesas reales en cuanto al desempeo y luego cumplirlas.
Para cumplir estar promesas, el sistema necesita llevar la cuenta de cuanto tiempo de CPU
ha recibido cada proceso desde su creacin. Luego se calcula el tiempo de CPU al que
cada uno tiene derecho, que sera el tiempo de creacin dividido n procesos existentes.
Entonces se puede calcular el cociente entre el tiempo de CPU de consumido entre el
tiempo al que el proceso tiene derecho. El algoritmo consiste entonces en ejecutar el
proceso cuyo cociente es ms bajo.

Unidad 4: Administracin de Memoria


La parte del sistema operativo que administra la jerarqua de memorias se llama
administrador de memoria. Su obligacin es mantearse al tanto de que partes de la
memoria estn en uso y cules no, asignar memoria a los procesos cuando la necesitan y

liberarla cuando terminan, y administrar los intercambios entre la memoria principal y el


disco cuando la primera es demasiado pequea para contener a todos los procesos.

1. Monoprogramacin sin intercambio ni paginacin


Este es el esquema de administracin de memoria ms sencillo. Consiste en ejecutar solo
un programa a la vez, repartiendo la memoria entre ese programa y el SO. Existen tres
variaciones de este caso:
El SO podra estar en la parte ms baja de la memoria RAM.
El SO podra estar en la parte ms alta de la memoria ROM.
Los controladores de dispositivos podran estar en la parte ms alta de la memoria
ROM y el resto del sistema en RAM ms bajo.

2. Multiprogramacin con particiones fijas


La forma ms fcil de lograr la multiprogramacin es simplemente dividir a la memoria en n
particiones (tal vez desiguales).
Cuando llega un trabajo, se puede colocar en la cola de entrada de la particin ms
pequea en la que cabe. Puesto que en este esquema las particiones son fijas, cualquier
espacio de una particin no ocupada por un trabajo se desperdicia.
La desventaja de repartir los trabajos que llegan entre las distintas colas se hace evidente
cuando la cola de una particin grande est vaca y la de una particin pequea est llena.
Para solucionar esto, se puede mantener una sola cola. Entonces, cada vez que se
desocupe una particin, el trabajo ms cercano al frente de la cola y, que quepa en esa
particin, se cargar en la particin vaca y se ejecutar. Otra estrategia sera examinar toda
la cola de entrada cada vez que se desocupe una particin y escoger el trabajo ms grande
que quepa en ella.

3. Intercambio de memoria

Con los sistemas de tiempo compartido o las computadoras personales, a veces no hay
suficiente memoria principal para contener todos los procesos que estn activos, as los
procesos excedentes deben mantenerse en el disco y traerse a la memoria de forma
dinmica para que se ejecuten. Pueden usarse dos enfoques generales para lograr esto,
dependiendo, en parte, del hardware disponible. La ms sencilla, llamada intercambio
(swaping), consiste en traer a la memoria un proceso entero, ejecutarlo durante un tiempo y
volver a guardarlo en el disco. La otra estrategia, llamada memoria virtual, permite que los
programas se ejecuten aunque slo una parte de ellos est en memoria.

4 Intercambio o swaping
Consiste en traer a la memoria un proceso entero, ejecutarlo durante un tiempo y volver a
guardarlo en el disco.
Al traer y sacar varios procesos, se pueden generar fragmentacin en la memoria, dejando
partes de ella sin utilizar por momentos. Cuando el intercambio genera mltiples huecos, es
posible combinar tales huecos en uno solo ms grande, desplazando todos los procesos
hacia abajo hasta donde sea posible. Esta tcnica se denomina compactacin de
memoria, aunque no es muy comn puesto que demanda mucho tiempo de CPU.
Otro problema que se presenta con este enfoque, es que si por ejemplo un proceso esta
contiguo a otros dos (por arriba y por abajo) este no puede seguir creciendo. Lo ms
conveniente sera asignar un poco de memoria adicional cada vez que se intercambie un
proceso a la memoria o se cambie de lugar, a fin de reducir el gasto extra asociado con el
cambio de lugar de un proceso que quiere crecer. En la siguiente figura se presentan dos
soluciones diferentes para solucionar el problema del crecimiento del proceso.

5. Administracin de memoria en mapa de bits


Si la memoria se asigna en forma dinmica, el sistema operativo debe administrarla de
alguna manera. Con un mapa de bits, la memoria se divide en unidades de asignacin, que
pueden ser desde unas cuantas palabras hasta varios kilobytes. A cada unidad de

asignacin corresponde un bit del mapa de bits. El bit es 0 si la unidad est desocupada y 1
si est ocupada (o viceversa).
Un mapa de bits es un mecanismo sencillo para llevar el control de las palabras de memoria
en una cantidad fija de sta, porque su tamao slo depende del tamao de la memoria y
del de la unidad de asignacin. Su principal desventaja es que una vez que se ha decidido
traer a la memoria un proceso de k unidades, el administrador de memoria deber examinar
el mapa de bits en busca de una serie de k bits consecutivos en 0.

6. Administracin de memoria con listas enlazadas


Otra forma de llevar el control de la memoria es mantener una lista enlazada de segmentos
de memoria asignados y libres, donde un segmento es un proceso, o bien, un hueco entre
dos procesos. Cada entrada de la lista especifica un hueco (H) o un proceso (P), la
direccin donde comienza, la longitud y un apuntador a la siguiente entrada.

7. Algoritmos de asignacin de memoria


7.1 Algoritmo del primer ajuste
Este es el mtodo ms simple. El administrador de memoria explora la lista de segmentos
hasta hallar un hueco lo bastante grande. Luego el hueco se divide en dos partes, una para
el proceso y una para la memoria desocupada, salvo en un caso poco probable que el
ajuste sea exacto. Este algoritmo es rpido porque la bsqueda es lo ms corta posible.

7.2 Algoritmo de siguiente ajuste

El funcionamiento es similar al del primer ajuste, solo que el algoritmo recuerda en que
punto de la lista se qued la ltima vez que encontr un hueco apropiado. Simulaciones
demostraron que es ms lento que el anterior.

7.3 Algoritmo del mejor ajuste


En este caso, se explora toda la lista y se escoge el hueco ms pequeo que alcance. Este
algoritmo desperdicia ms memoria que los otros dos porque tiende a saturar la memoria
con pequeos huecos que no sirven para nada.

7.4 Algoritmo del peor ajuste


Este algoritmo se asegura de escoger el hueco ms grande disponible, de modo que el
hueco restante sea lo bastante grande como para ser til. Las simulaciones han demostrado
que este modelo no es factible.

7.5 Algoritmo de ajuste rpido


Este algoritmo mantiene listas individuales para algunos de los tamaos que se solicitan en
forma ms comn. Por ejemplo, podra mantenerse una tabla de n elementos, donde el
primero es un apuntador a la cabeza de una lista de huecos 4kb, el segundo un apuntador a
una lista de huecos de 8kb, etc.
Con este algoritmo, la localizacin de un hueco del tamao requerido es extremadamente
rpida.
Los cuatro primeros algoritmos pueden acelerarse manteniendo listas distintas para los
procesos y los huecos. As, se dedica toda la energa a inspeccionar huecos, no procesos.
El precio, la mayor complejidad y lentitud de liberacin de memoria, pues un segmento
liberado debe quitarse de la lista de procesos e insertarse en la lista de huecos.

8. Memoria Virtual
La idea bsica de este esquema es que el tamao combinado del programa, sus datos y su
pila podran exceder la cantidad de memoria fsica que se le puede asignar. El sistema
mantiene en la memoria principal las partes del programa que se estn usando en ese
momento, y el resto en el disco.

8.1 Paginacin
La mayora de los sistemas con memoria virtual utilizan una tcnica llamada paginacin. En
cualquier computadora existe un conjunto de direcciones de memoria que los programas
pueden producir.

Estas direcciones generadas por el programa se denominan direcciones virtuales y


constituyen el espacio de direcciones virtual. En computadoras sin memoria virtual, la
direccin virtual se coloca en forma directa en el bus de memoria y esto hace que se lea o
escriba la palabra fsica de memoria que tiene esa direccin. Cuando se utiliza memoria
virtual, las direcciones virtuales no se envan de manera directa al bus de memoria, sino a
una Unidad de Administracin de Memoria (MMU, Memory Managment Unit) que
establece una correspondencia entre las direcciones virtuales y fsicas de la memoria.
El espacio de direcciones virtuales se divide en unidades llamadas pginas. Las unidades
correspondientes en la memoria fsica se denominan marcos de pgina. Estas dos
estructuras siempre tienen el mismo tamao.
En el caso de que un programa trate de usar una pgina que no tiene correspondencia, la
MMU se da cuenta de esto y hace que la CPU salte al sistema operativo. Esta interrupcin
de sistema se denomina fallo de pgina. El sistema operativo escoge un marco de pgina
que no est usando mucho y vuelve a escribir su contenido en el disco, despus de lo cual
trae la pgina a la que se acaba de hacer referencia y la coloca en el marco recin
desocupado, modifica el mapa y reinicia la instruccin interrumpida.
La MMU interpreta por ejemplo una direccin virtual de 16 bits de la siguiente manera:
Los primero 4 bits indican un nmero de pgina. Este se utiliza como ndice para
consultar la tabla de pgina y as obtener el nmero de marco de pgina
correspondiente.
Los siguientes 12 bits indican un desplazamiento o offset, por lo que si se tienen
marcos de pgina de 4KB, estos 12 bits se utilizan para direccionas los 4096 bytes
de cada marco.

8.2 Tablas de Pgina


El propsito de la tabla de pginas es establecer una correspondencia entre las pginas
virtuales y los marcos de pgina. En trminos matemticos, la tabla de pginas es una
funcin, el nmero de pgina virtual es su argumento y el marco de pgina es el resultado.
Cuando la MMU consulta la tabla de pgina por una direccin virtual recibida, primero se fija
si el bit presente/ausente. Si es cero, se genera una interrupcin de sistema. Si el bit es
uno, el nmero de marco de pgina hallado en la tabla de pginas se copia en los 3 bits de
orden ms alto del registro de salida, junto con el desplazamiento de 12 bits que se copian

sin modificaciones de la direccin virtual recibida. Juntos, estos 15 bits constituyen la


direccin fsica que luego sale por el bus de memoria. Todo esto suponiendo direcciones
virtuales de 16 bits.
Cabe destacar que cada proceso debe tener su propia tabla de pgina, porque tiene su
propio espacio de direcciones virtuales.
Diseos para la implementacin de tablas de pginas:
El diseo ms sencillo consiste en tener una sola tabla de pginas conformada por
un arreglo de registros rpidos de hardware, con una entrada por cada pgina virtual
e indizada por el nmero de pgina virtual. Cuando se inicia un proceso, el SO carga
los registros con la tabla de pginas del proceso, tomada de una copia que se
guarda en memoria principal. Durante la ejecucin, no se necesitan ms referencias
a la memoria para la tabla de pginas ni para la transformacin de direcciones. Una
desventaja es que puede ser costoso (si la tabla de pginas es grande); adems,
tener que cargar toda la tabla en cada conmutacin de contexto perjudica el
desempeo.
En el otro extremo, la tabla de pginas podra estar en su totalidad en la memoria
principal. Por lo tanto, lo nico que se necesita del hardware es un solo registro que
apunte al principio de la tabla de pginas. Este diseo permite cambiar el mapa de
memoria con solo cargar un registro cuando se efecta una conmutacin de
contexto.

8.3 Tablas de pginas multinivel


Este modelo es el utilizado por Pentium. Dado que las tablas de pginas pueden ocupar
mucha

Memoria, muchas computadoras utilizan una tabla de pginas multinivel. En este modelo,
no es necesario tener todas las tablas de pginas en memoria todo el tiempo. En particular,
las que no se necesitan no debern tenerse en ella.

8.4 Estructura de una entrada de tabla de pgina


El tamao de cada entrada vara de una computadora a otra, lo comn es de 32 bits. Los
atributos son:
Nmero de marco de pgina: este es el campo ms importante.
Bit presente/ausente: si este bit es 1, la entrada es vlida y puede usarse; si es 0,
la pgina virtual a la que la entrada corresponde no est en memoria. Tener acceso
a una entrada de tabla de pgina que tiene este bit en 0 causa un fallo de pgina.
Bits de proteccin: indican cuales tipos de accesos estn permitidos. Bit 0 se
permite leer y escribir y 1 si no se permite leer.
Bit solicitada: se enciende cada vez que se hace referencia a una pgina, ya sea
para leer o para escribir. Este bit ayuda al sistema a elegir entre que pgina
seleccionar para sacar cuando se presente un fallo de pgina.
Bit cache: este bit permite inhabilitar el uso de cach con la pgina.
Cabe sealar que la direccin de disco que se usa para guardar la pgina cuando no est
en la memoria no forma parte de la tabla de pginas.

Buffers de consulta para traduccin - Cache TLB


Puesto que la velocidad de ejecucin por lo general est limitada por la velocidad con que la
CPU puede sacar instrucciones y datos de memoria, tener que hacer dos referencias a la
tabla de pgina por cada referencia a la memoria reduce mucho el desempeo.

La solucin que se hall consiste en equipar las computadoras con un pequeo dispositivo
de hardware que traduce direcciones virtuales a direcciones fsicas, sin pasar por la tabla de
pginas. Este dispositivo, llamado bfer de consulta para traduccin (TLB), tambin
conocido como memoria asociativa. Por lo general, esto est dentro de la MMU. Cada
entrada contiene informacin sobre una pgina, incluido el nmero de pgina virtual, un bit
que se establece cuando la pgina se modifica, el cdigo de proteccin (permisos) y el
marco de pgina fsico en el que esta la pgina.
Cuando se presenta una direccin virtual a la MMU para que la traduzca, el hardware
verifica primero si su nmero de pgina virtual est presente en el TLB o no, comparndolo
con todas las entradas paralelamente. Si se encuentra el nmero y el acceso no viola los
bits de proteccin, el nmero de marco de pgina se toma directo del TLB, sin recurrir a la
traba de pginas.
Cuando el nmero de pgina virtual no est en la TLB, la MMU detecta esto y realiza la
consulta ordinaria en la tabla de pginas. Luego desaloja una de las entradas del TLB y la
sustituye por la entrada de tabla de pginas que acaba de buscar.

9. Algoritmos para reemplazo de pginas


Cuando se presenta un fallo de pgina, el SO tiene que escoger la pgina que desalojar
de la memoria para hacer espacio para colocar la nueva que traer del disco. Para ello
existen diferentes tipos de algoritmos:
Algoritmo ptimo: cada pgina puede rotularse con el nmero de instrucciones que
se ejecutarn antes de que se haga la primera referencia a esa pgina. Este
algoritmo simplemente dice que debe desalojarse la pgina con el rtulo ms
grande. El nico problema con este mtodo es que no puede ponerse en prctica,
debido a que en el momento en que se presenta un fallo de pgina, el SO no tiene
forma de saber cundo se volver a hacer referencia a una pgina determinada.
Algoritmo FIFO: el primero en entrar, el primero en salir. El SO mantiene una lista
de todas las pginas que estn actualmente en memoria, con las ms antiguas al
principio de la lista y la ms nueva al final. Al presentarse un fallo de pgina, se
desaloja la pgina que est al principio de la lista y la nueva se anexa al final.

Algoritmo de segunda oportunidad: este es una modificacin sencilla del FIFO.


Utiliza un bit R, si es 0, quiere decir que la pgina no solo es antigua sino que
tampoco se usa mucho. Si el bit R es 1, se apaga, la pgina se coloca el final de la
lista de pginas y su tiempo de carga se actualiza como si acabara de entrar en
memoria. Luego contina la bsqueda.
Algoritmo tipo reloj: mantiene todas las pginas en una lista circular parecida a un
reloj, y una manecilla apunta a la pgina ms antigua. Cuando se presenta un fallo
de pgina, se examina la pgina a la que apunta la manecilla. Si su bit R es 0, dicha
se desaloja, la nueva se inserta en su lugar y la manecilla se adelanta. Si R es 1, se
cambia a 0 y la manecilla adelanta una pgina tambin.
Algoritmo de pginas no usadas recientemente: cuando se presenta un fallo de
pgina, el SO examina todas las pginas y las divide en cuatro categoras con base
a los valores actuales de sus bits R (pgina con referencia reciente o no) y M
(modificada o no): clase 0: no solicitada, no modificada - clase 1: no solicitada,
modificada - clase 2: solicitada, no modificada - clase 3: solicitada, modificada. Este
algoritmo, desaloja al azar una pgina de la clase de nmero ms bajo que no est
vaca.

9.1 El algoritmo de reemplazo de pginas de conjunto de trabajo


Antes de explicar cmo funciona el algoritmo, es necesario introducir algunos conceptos.
Las pginas de un proceso solo se cargan cuando se necesita, no por adelantado, esto se
conoce como paginacin por demanda. Por otro lado, los procesos exhiben una localidad
de referencia, lo que significa que durante cualquier fase de su ejecucin, el proceso solo
hace referencia a una fraccin relativamente pequea de sus pginas. El conjunto que est
usando en un momento dado se conoce como conjunto de trabajo.
Si la memoria disponible es demasiado reducida para contener todo el conjunto de trabajo,
el proceso causar muchos fallos de pgina y se ejecutar con lentitud. Se dice que un
programa que causa fallos de pginas cada pocas instrucciones est hiperpaginado.
Muchos sistemas paginados tratan de mantenerse al tanto de cul es el conjunto de trabajo
de cada proceso y se aseguran de tenerlo en la memoria antes de permitir ejecutar al
proceso. Este enfoque se denomina modelo de conjunto de trabajo, y est diseado para
reducir de forma considerable la tasa de fallos de pgina.
Para implementar cualquier algoritmo de este tipo, debe escogerse por adelantado el valor
k, es decir, las pginas que se usaron en las k referencias ms recientes a la memoria. En
vez de ese enfoque, se puede utilizar el tiempo de ejecucin de un proceso. Con esta
aproximacin, el conjunto de trabajo de un proceso es el conjunto de pginas a las que ha
hecho referencia durante los ltimos t segundos de tiempo virtual (tiempo de CPU
consumido por el proceso).
La idea fundamental del algoritmo, es hallar una pgina que no est en el conjunto de
trabajo y desalojarla, funciona como sigue. Se examina el bit R de cada pgina una por una:
Si es 1, se escribe el tiempo virtual actual en el campo tiempo de ltimo uso en la
tabla de pginas, para indicar que la pgina se estaba usando. Es evidente que la
pgina pertenece al conjunto de trabajo y no es candidata para el desalojo.
Si es 0, podra ser candidata para el desalojo. Se calcula su edad, es decir, el tiempo
virtual actual menos su tiempo de ultimo uso y se compara con t. Si la edad es
mayor a t, quiere decir que la pgina ya no est en el conjunto de trabajo y se
desaloja dando lugar a otra pgina.
Si se explora todas las pginas sin encontrar una candidata, significa que todas las
pginas estn en el conjunto de trabajo. En tal caso, si se encontr una o ms
pginas con R=0, se desaloja la de mayor edad.

10. Aspectos de diseo de los sistemas con paginacin


10.1 Polticas de asignacin global y local
Los algoritmos locales equivalen a asignar una porcin fija de la memoria a cada proceso,
entonces si el proceso solicita una pgina nueva, deber ser reemplazada por una sus
pginas en memoria.
Los algoritmos globales asignan en forma dinmica los marcos de pginas entre los
procesos ejecutables. As, el nmero de marcos asignados a cada proceso vara con el
tiempo.
En general, los algoritmos globales funcionan mejor, sobre todo si el tamao de conjunto de
trabajo puede variar durante la vida de los procesos. Si se usa un algoritmo local y el
conjunto de trabajo crece, habr hiperpaginacin, aunque haya muchos marcos de pgina
desocupados. Si el conjunto de trabajo se encoge, los algoritmos locales desperdician
memoria. Si se usa un algoritmo global, el sistema debe decidir de manera continua cuantos
marcos de pgina asignar a cada proceso.

10.2 Tamao de pgina


La determinacin del tamao de pgina ptimo requiere equilibrar varios factores opuestos.
Si la pgina es muy grande un segmento de texto, datos o pila cualquiera no llenara un
nmero entero de pginas. En promedio, la mitad de una pgina se desperdicia. Dicho
desperdicio se denomina fragmentacin interna. Adems, un tamao de pgina grande
hace que ms partes no utilizadas del programa estn en memoria.
Por otro lado, el uso de pginas pequeas implica que los programas van a necesitar
muchas y, por lo tanto, una tabla ms grande. Transferir pginas pequeas requiere casi el
mismo tiempo que transferir una grande.

11. Segmentacin
La memoria virtual que se trat hasta ahora es unidimensional porque las direcciones
virtuales van desde cero hasta alguna direccin mxima, y son consecutivas.
Consideremos que sucede si un programa tiene un nmero excepcionalmente grande de
variables pero una cantidad normal de todo lo dems. El trozo de espacio de direcciones
asignado a la tabla de smbolos (variables) podra llenarse, pero podra haber espacio de
sobra en las dems tablas.
Una solucin directa y extremadamente general consiste en proporcionar a la mquina
varios espacios de direcciones independientes por completos, llamados segmentos. Cada
segmento consta de una sucesin lineal de direcciones, desde cero hasta algn mximo.
Los segmentos pueden tener longitudes distintas, y por lo general las tienen. Adems, las
longitudes de segmento pueden variar durante la ejecucin.
Para especificar una direccin en una memoria segmentada, el programa debe proporcionar
una direccin de dos partes: un nmero de segmento y una direccin dentro del segmento.
Cabe destacar que un segmento es una entidad lgica de las cual tiene conocimiento el
programador.

11.1 Implementacin de la segmentacin pura


La implementacin de la segmentacin difiere de la paginacin en un aspecto fundamental:
las pginas son de tamao fijo y los segmentos no. La siguiente figura muestra un ejemplo
de la memoria fsica con segmentacin:

Unidad 5: Entrada y salida


1. Interrupciones
Virtualmente todos los computadores proporcionan un mecanismo mediante el cual otros
mdulos de (E/S, memoria) pueden interrumpir la ejecucin normal del procesador. Las
interrupciones aparecen, principalmente, como una va para mejorar la eficiencia del
procesamiento. Por ejemplo, la mayora de los dispositivos externos son ms lentos que el
procesador.
Las clases de interrupciones son las siguientes:
De programa: generadas por alguna condicin que se produce como resultado de la
ejecucin de una instruccin.
De reloj: generadas por un reloj interno del procesador.
De E/S: generadas por el controlador de E/S.
Por fallo de hardware: generadas por fallos tales como un corte de energa o un
error de paridad en memoria.

1.1 Las interrupciones y el ciclo de instruccin


Con las interrupciones, el procesador se puede dedicar a la ejecucin de otras instrucciones
mientras una operacin de E/S est en proceso. Cuando el dispositivo externo est
disponible, es decir, cuando est preparado para aceptar ms datos desde el procesador, el
mdulo de E/S de dicho dispositivo enviar una seal de solicitud de interrupcin al
procesador. ste responde suspendiendo la operacin del programa en curso y
bifurcndose a un programa que da servicio al dispositivo de E/S en particular, conocido
como rutina de tratamiento de la interrupcin, reanudando la ejecucin original despus de
haber atendido al dispositivo.
El procesador y el SO son los responsables de manejar las interrupciones.
Para que sean posibles las interrupciones, se aade un ciclo de interrupcin al ciclo de
instruccin. En el ciclo de interrupcin, el procesador comprueba si ha ocurrido alguna
interrupcin. Si no hay interrupciones pendientes, el procesador continua con el ciclo de
lectura. Si hay una interrupcin pendiente, el procesador suspende la ejecucin del
programa en curso y ejecuta una rutina de tratamiento de la interrupcin.

1.2 Tratamiento de la interrupcin


Una interrupcin desencadena una serie de sucesos, tanto en el hardware del procesador
como en el software. Cuando un dispositivo de E/S completa una operacin de E/S, se
produce en el hardware la siguiente secuencia de sucesos:
1. El dispositivo emite una seal de interrupcin al procesador.
2. El procesador finaliza la ejecucin de la instruccin en curso antes de responder a la
interrupcin.
3. El procesador enva una seal de reconocimiento al dispositivo que genero la
interrupcin.

4. El procesador necesita ahora prepararse para trasferir el control a la rutina de


interrupcin. Por lo tanto, es preciso salvar la informacin necesaria para abandonar
la ejecucin. Lo requerido es la palabra de estado del programa (PSW) y la
ubicacin de la prxima instruccin a ejecutar.
5. El procesador carga ahora el contador de programa, con la ubicacin de la entrada
del programa de tratamiento de la interrupcin que responder a la interrupcin
correspondiente.
Una vez cargado el contador de programa, el procesador continua con el prximo ciclo de
instruccin, dando como resultado el paso del control al programa de tratamiento de
interrupcin. La ejecucin de este programa se traduce en las siguientes operaciones:
6. En este punto, se necesita salvar el contenido de los registros del procesador, ya
que estos pueden ser utilizados por la rutina de tratamiento de la interrupcin,
7. La rutina de tratamiento de interrupcin puede ahora proceder a procesar la
interrupcin.
8. Cuando se completa el tratamiento, se recuperan de la pila los valores de los
registros que se salvaron y se restauran sobre los registros del procesador.
9. La operacin final es restaurar los valores de la PSW y el contador de programa.
Como resultado, la prxima instruccin a ser ejecutada ser el programa
interrumpido previamente.

1.3 Interrupciones mltiples


Hay dos enfoques para tratar interrupciones mltiples.
El primero es inhabilitar las interrupciones mientras se est procesando una. Una
interrupcin inhabilitada quiere decir que el procesador ignorar la seal de
interrupcin, quedar pendiente y ser comprobada por el procesador despus de
que se habiliten las interrupciones. La limitacin de este enfoque es que no tiene en
cuenta las prioridades relativas o necesidades crticas de tiempo.
Un segundo enfoque es definir prioridades para las interrupciones y permitir que una
interrupcin de una prioridad ms alta pueda interrumpir a la rutina de tratamiento de
una interrupcin de prioridad ms baja.

1.4 Multiprogramacin
An con el uso de interrupciones, puede que un procesador no sea aprovechado
eficientemente. Si el tiempo necesario para completar una operacin de E/S es mucho
mayor que el cdigo del usuario entre llamadas de E/S (situacin habitual), entonces el

procesador va a estar desocupado durante una gran parte del tiempo. Una posible solucin
a este problema es permitir a varios programas de usuario estar activos al mismo tiempo.
Cuando el procesador tiene que tratar con una serie de programas, el orden en que estos
se ejecutan depender de su prioridad relativa y de si estn esperando una E/S.

2. Dispositivos de entrada y salida


2.1 Tipos
Los distintos tipos de dispositivos de E/S salida se pueden clasificar segn:
Su inteligencia:
Orientados al dispositivo: cuando el mdulo de E/S a travs de una interfaz
maneja partes fsicas del perifrico. Se usaba en dispositivos viejos.
Orientados al sistema: cuando hay un software o inteligencia en el
perifrico. Solo se le envan rdenes y este las procesa
Segn la conexin:
Paralela: varios cables y cada uno lleva un bit. Son cables cortos.
Seriales: un cable y los bits van en cola. Son ms fciles de estandarizar por
su simplicidad. Ej: cable USB
Segn su rapidez:
Lentos: teclado por ejemplo, solo unos bits por segundo.
Rpidos: un disco por ejemplo.
Segn su formato de salida:
Legibles por el humano: apropiados para la comunicacin con los usuarios.
Ej: terminal de video.
No legibles por el humano: adecuado para comunicarse con dispositivos
electrnicos como discos, unidades de cinta, sensores, etc.

2.2 Tipos de gestin de E/S


Existen tres tcnicas para realizar la E/S:
E/S programada: el procesador emite una orden de E/S de parte de un proceso a
un mdulo de E/S; el proceso espera entonces que termine la operacin antes de
seguir. Con esta tcnica, el procesador es el responsable de extraer los datos de la
memoria principal cuando va a realizar una salida o almacenar los datos en la
memoria principal cuando se realiza una entrada.
E/S dirigida por interrupciones: el procesador emite una orden de E/S de parte de
un proceso, continua la ejecucin de las instrucciones siguientes y el mdulo de E/S
lo interrumpe cuando completa el trabajo.
Acceso directo a memoria (DMA): un mdulo de DMA controla el intercambio de
datos entre la memoria principal y un mdulo de E/S. El procesador enva una
peticin de transferencia de un bloque de datos al mdulo de DMA y se interrumpe
slo cuando se ha transferido el bloque entero.

2.3 Evolucin de las funciones de E/S


Las etapas de su evolucin pueden resumirse como sigue:
1. El procesador controla directamente los dispositivos perifricos.

2. Se aade un controlador o mdulo de E/S. El procesador utiliza E/S programada sin


interrupciones. En este punto, el procesador parece aislarse de los detalles
especficos de las interfaces con dispositivos externos.
3. Se considera la misma configuracin del punto anterior, pero empleando
interrupciones.
4. El mdulo de E/S recibe el control directo de la memoria a travs de DMA. Ahora
puede mover un bloque de datos a la memoria o desde la misma sin que intervenga
el procesador, excepto al principio y al final de la transferencia.
5. Se mejora el mdulo de E/S hasta llegar a ser un procesador separado con un
conjunto de interrupciones especializadas de E/S. El CPU ordena al procesador de
E/S la ejecucin de un programa de E/S en la memoria principal.
6. El mdulo de E/S posee su propia memoria local y es, de hecho, un computador
independiente.

2.3 Acceso directo a memoria


La unidad de DMA es capaz de imitar al procesador y, de hecho, es capaz de tomar el
control del sistema desde el procesador. Necesita hacerlo para transferir datos desde y
hacia la memoria a travs del bus del sistema. Normalmente, el mdulo de DMA debe usar
el bus solamente cuando el procesador no lo necesite, o debe obligar al procesador a que
suspenda temporalmente su operacin. Esta ltima tcnica es ms comn y se denomina
robo de ciclos porque la unidad de DMA debe robar un ciclo del bus.

3. Almacenamiento intermedio de la E/S


3.1 Memoria intermedia sencilla
Cuando un proceso de usuario realiza una solicitud de E/S, el sistema operativo le asigna a
la operacin un espacio en la parte del sistema de la memoria principal.
Para los dispositivos orientados a bloque, el esquema de almacenamiento intermedio
sencillo puede describirse como sigue. Las transferencias de entrada se realizan en el
espacio del sistema. Cuando se ha completado la trasferencia, el proceso mueve el bloque

al espacio del usuario y solicita otro bloque inmediatamente. Esta tcnica se llama lectura
por adelantado o entrada anticipada.
El proceso de usuario puede procesar un bloque de datos mientras se est leyendo el
siguiente. Esta tcnica complica al SO ya que debe guardar constancia de las asignaciones
de memorias intermedias del sistema a procesos de usuario.
Se pueden aplicar consideraciones similares a la salida con dispositivos orientados a
bloques. Cuando se transmiten datos a un dispositivo, deben copiarse primero del espacio
de usuario a un espacio del sistema, desde donde sern finalmente escritos.

3.2 Memoria intermedia doble


Se pueden realizar una mejora sobre la memoria intermedia sencilla asignando a la
operacin dos almacenes intermedios del sistema. De esta forma, un proceso puede
transferir datos hacia (o desde) una memoria intermedia mientras que el SO vaca (o
rellena) el otro. Esta mejora sufre el coste de un incremento de la complejidad.

3.3 Memoria intermedia circular


Si preocupa el rendimiento de un proceso determinado, sera deseable que las operaciones
de E/S fueran capaces de ir al ritmo del proceso. La memoria intermedia doble puede ser
inapropiada si el proceso lleva a cabo rpidas rfagas de E/S. En este caso, el problema
puede mitigarse usando ms de dos memorias intermedias.
Como se emplean ms de dos, el conjunto de memorias intermedias se conoce como
memoria intermedia circular.

4. Planificacin de discos
4.1 Parmetros de rendimiento del disco
Los detalles reales de las operaciones de E/S con los discos dependen de los sistemas
informticos, el SO y la naturaleza del canal de E/S y el hardware controlador del disco.
Cuando la unidad de disco est operando, el disco gira a una velocidad constante. Pera leer
o escribir, la cabeza debe ponerse en la pista deseada. En un sistema de cabezas mviles,
el tiempo que se tarda en ubicar la cabeza en la pista se llama tiempo de bsqueda. Una
vez que se ha seleccionado la pista, el controlador del disco esperar hasta que el sector
apropiado se alinee con la cabeza en su rotacin. El tiempo que tarda el comienzo del
sector en llegar hasta la cabeza se conoce como retardo de giro. La suma del tiempo de
bsqueda y el retardo de giro es el tiempo de acceso. Una vez que la cabeza est ubicada,
se puede llevar a cabo la operacin de lectura o escritura a medida que el sector se mueve
bajo la cabeza; esta es la parte de transferencia real de datos de la operacin.
Adems, existen algunos retrasos en las colas que normalmente tienen asociadas una
operacin de E/S a disco. Cuando un proceso emite una solicitud de E/S, primero debe
esperar en una cola a que el dispositivo est disponible. Puede que haya una espera
adicional por el canal de E/S si el dispositivo lo comparte junto con otros.
Por lo tanto, el tiempo total desde la peticin hasta el final de la transferencia est dado por
la sumatoria de:
1. Tiempo de cola de proceso
2. Tiempo de bsqueda
3. Tiempo de establecimiento: tiempo hasta que deja de vibrar por el movimiento
4. Tiempo de rotacin/2: promedio de ubicacin de un sector del disco
5. Tiempo de transferencia del sector: depende de la velocidad del disco y la
densidad de bits.
6. Tiempo de transferencia de interfaz: depende de la norma de la interfaz, si es
SATA, USB, etc.

4.2 Polticas o algoritmos de planificacin de discos


Primero en entrar, primero en salir
Este es el esquema ms sencillo de planificacin. Los elementos se procesan de la cola en
un orden secuencial. Tiene la ventaja de ser justa porque las solicitudes son servidas en el
orden en que llegaron.
Prioridad
Con un sistema basado en prioridades, el control de la planificacin queda aislado del
control del software gestor del disco. Este enfoque no persigue la optimizacin del uso del
disco, sino cumplir con otros objetivos del SO. Los trabajos por lotes que sean cortos y los
trabajos interactivos reciben frecuentemente una prioridad ms alta que trabajos mayores
que realicen largas operaciones.

ltimo en entrar, primero en salir


Sorprendentemente, esta poltica cuenta con virtudes. En los sistemas de proceso de
transacciones, conceder el dispositivo al ltimo usuario acarrea pocos o nulos movimientos
del brazo al recorrer un archivo se secuencial. Sin embargo, si el disco est ocupado con
una larga cola de espera, existe una clara posibilidad de inanicin.
Una vez que un trabajo haya lanzado una solicitud de E/S a la cola y haya abandonado la
cabeza de la lnea, no podr volver a ganar la cabeza de la lnea a menos que se vayan
todos los que estn por delante.

Primero el tiempo de servicio ms corto


La poltica SSTF (shortest service time firts) es elegir la solicitud de E/S de disco que
requiera el menor movimiento posible del brazo del disco desde su posicin actual. De este
modo, siempre es elige procurando el mnimo tiempo de bsqueda.
SCAN
Con el SCAN, el brazo solo se puede mover en un sentido, resolviendo todas las solicitudes
pendientes en su ruta, hasta que alcance la ltima pista o hasta que no haya ms
solicitudes en esa direccin.
Esta poltica favorece a los trabajos con solicitudes de pistas cercanas a los cilindros ms
interiores y exteriores, as como a los ltimos en llegar.

C-SCAN
La poltica del C-SCAN (SCAN circular) restringe el rastreo a una sola direccin. As,
cuando se haya visitado la ltima pista en un sentido, el brazo vuelve al extremo opuesto
del disco y comienza a recorrerlo de nuevo, lo que reduce el retardo mximo sufrido por las
nuevas solicitudes.

SCAN de N pasos
Con SSTF, SCAN y C-SCAN, es posible que el brazo no se mueva durante un periodo
considerable. Por ejemplo, si uno o varios procesos tienen mucho acceso a una pista,
pueden monopolizar el dispositivo. Para evitar esta monopolizacin del brazo, la cola de
solicitudes del disco puede dividirse en segmentos, procesndose un segmento por
completo cada vez.
La poltica de SCAN de N pasos divide a la cola de solicitudes del disco en subcolas de
longitud N. Cada subcola se procesa mediante un SCAN.
FSCAN
Mismo concepto que la anterior, pero emplea dos subcolas. Cuando comienza un rastreo,
todas las solicitudes estn en una de las colas y la otra permanece vaca. Durante el
recorrido, todas las solicitudes nuevas se colocan en la cola que inicialmente estaba vaca.

De este modo, el servicio de nuevas solicitudes se retrasar hasta que hayan procesado las
viejas.

5 RAID
La industria a acordado un esquema estndar para el diseo de base de datos sobre
mltiples discos, llamado RAID (Redundant Array of Independent Disks). El esquema RAID
consta de siete niveles, de cero a seis. Estos niveles no implican una relacin jerrquica
pero designan distintas arquitecturas de diseo que comparten tres caractersticas
comunes:
1. RAID es un conjunto de unidades de disco fsico vistas por el SO como una sola
unidad lgica.
2. Los datos estn distribuidos a travs de las unidades fsicas del vector.
3. La capacidad del disco redundante se utiliza para almacenar informacin de paridad,
que garantiza la recuperabilidad de datos en caso de fallo del disco.

5.1 Nivel RAID 0


Este nivel no es un miembro verdadero de la familia RAID, porque no incluye redundancia
para mejorar el rendimiento.
En RAID 0, el usuario y los datos del sistema estn distribuidos a lo largo de todo el vector
de discos. Esto tiene una notable ventaja sobre el uso de un solo disco: si hay pendientes
dos solicitudes de E/S distintas en dos bloques de datos diferentes, entonces existe una
buena oportunidad para que los bloques solicitados estn en discos diferentes. De este
modo, se pueden realizar en paralelo las dos solicitudes reduciendo el tiempo en la cola de
E/S.
El disco lgico de este esquema RAID 0, est dividido en bandas (strip); estas bandas
pueden ser bloques fsicos, sectores o alguna otra unidad. Un conjunto de bandas
consecutivas lgicamente que se corresponden exactamente con una banda de cada
miembro del vector (disco fsico), se denomina franja (stripe).

5.2 Nivel RAID 1


RAID 1 difiere de los niveles RAID 2 hasta el 6 en el modo en que consigue la redundancia.
En RAID 1 la redundancia se consigue por el simple medio de duplicar todos los datos. Los
datos se dividen igual que en RAID 0. Pero en este caso, cada banda lgica se corresponde
con dos discos fsicos independientes, por lo que cada disco del vector tiene un disco
espejo que contiene los mismos datos.
Este tipo de organizacin tiene varios aspectos positivos:
1. Una solicitud de lectura le puede servir cualquiera de los dos discos que contienen
los datos solicitados.
2. Una solicitud de escritura requiere la actualizacin de las bandas correspondientes a
ambos discos, pero esto se puede hacer en paralelo.
3. La recuperacin de fallos es sencilla. Cuando una unidad falla, los datos estn
todava accesibles de la segunda unidad.
La principal desventaja de RAID 1 es el coste, requiere dos veces el espacio de disco del
disco lgico que soporta.
En este esquema, se puede conseguir altas tasas de solicitudes de E/S si el grueso de las
solicitudes es de lectura.

5.3 Nivel RAID 2


Los niveles RAID 2 y 3 utilizan una tcnica de acceso paralelo. En un vector de acceso
paralelo, todos los discos participan en la ejecucin de cada solicitud de E/S. Normalmente,
el eje de las unidades individuales est sincronizado, por lo que cada cabeza de disco est
en la misma posicin de cada disco en un instante dado.
En el caso de RAID 2 y 3 existe tambin la divisin de datos. En este caso, las bandas son
muy pequeas, a menudo tan pequeas como un nico byte o palabra. En RAID 2, se
calcula un cdigo de correccin de errores a lo largo de los bits correspondientes sobre
cada disco de datos, y los bits del cdigo se almacenan en las respectivas posiciones de bit
sobre los discos de paridad mltiple. Normalmente, se utiliza cdigo Hamming, que es
capaz de corregir errores de un solo bit y detectar errores de dos bit.
Aunque RAID 2 requiere menos discos que RAID 1, el coste es algo alto. El nmero de
discos redundantes es proporcional al logaritmo del nmero de discos de datos.
RAID 2 solamente es una buena eleccin en un entorno efectivo en el que se produjeran
muchos errores de disco. Dada la alta fiabilidad de los discos y de las unidades de disco,
RAID 2 est superado y ya no se implementa.

5.4 Nivel RAID 3


Se organiza de una forma similar a RAID 2. La diferencia es que RAID 3 requiere solo un
disco redundante, no importa el tamao del vector de discos. RAID 3 emplea acceso
paralelo, con los datos distribuidos en pequeas bandas. En lugar de un cdigo de
correccin de errores, se calcula un solo bit de paridad para el conjunto de bits en la misma
posicin de todos los discos de datos.
Teniendo en cuenta que los datos estn divididos en pequeas bandas, puede alcanzar una
taza de transferencia de datos muy alta. Por otro lado, solo se puede ejecutar en cada
instante una sola solicitud de E/S.

5.4 Nivel RAID 4


Los niveles RAID 4 al 6 usan una tcnica de acceso independiente. Cada disco opera de
manera independiente, por lo que se pueden satisfacer en paralelo solicitudes de E/S
individuales. Son ms apropiados para aplicaciones que requieran tasas altas de solicitudes
de E/S, y son relativamente menos apropiados para aplicaciones que requieran tasas alta
de transferencia de datos.
En el caso de RAID 4 al 6, las bandas son relativamente grandes. Con RAID 4, se calcula
una banda de la paridad bit a bit a lo largo de las bandas correspondientes de cada disco de
datos, y los bits de paridad se almacenan en la banda correspondiente del disco de paridad.

5.5 Nivel RAID 5


RAID 5 est organizado de forma similar a RAID 4. La diferencia es que distribuye las
bandas de paridad a travs de todos los discos. Para un vector de n discos, la banda de
paridad est sobre un disco distinto para las n primeras bandas y, despus, se repite el
patrn.

5.6 Nivel RAID 6


En este esquema se realizan dos clculos distintos de paridad, y se almacenan en bloques
independientes de diferentes discos. As, un vector RAID 6 cuyos datos de usuario
requieran N discos est formado por N + 2 discos.
La ventaja de RAID 6 es que ofrece disponibilidad de datos extremadamente alta. Deberan
fallar tres discos para hacer que los datos no estuvieran disponibles. Por otro lado, sufre
una importante penalizacin de escritura, porque cada escritura afecta a dos bloques de
paridad.

6. Cach de disco
El trmino memoria cache se aplica normalmente a una memoria ms pequea y ms
rpida que la memoria principal y que se sita entre esta y el procesador.
El mismo concepto puede aplicarse a la memoria de disco. Concretamente, un cache de
disco es una memoria intermedia situada en la memoria principal para sectores de disco. La
cache contiene una copia de algunos sectores del disco. Cuando se hace una solicitud de
E/S para un sector especfico, se comprueba si el sector est en la cache de disco.

6.1 Consideraciones sobre el diseo


En primer lugar, cuando una solicitud de E/S se satisface desde la cache de disco, los datos
de la misma deben entregarse al proceso que los solicit. La entrega puede hacerse
transfiriendo el bloque de datos de la memoria principal, desde la cache del disco a la
memoria asignada al proceso de usuario, o simplemente usando la capacidad de la
memoria compartida y pasando un puntero a la entrada apropiada de la cache del disco.
Una segunda cuestin de diseo tiene que ver con la estrategia de reemplazo. Cuando se
trae un nuevo sector a la cache de disco, debe ser reemplazado por uno de los bloques
existentes. El algoritmo ms utilizado es LRU (Least Recently Used, Usado menos
recientemente), en el que se reemplaza el bloque que ha permanecido sin referencias en la
cache durante ms tiempo.
Otra posibilidad es el algoritmo de Usado Menos Frecuentemente (LFU, Least Frecuently
Used), donde se sustituye el bloque de la cach que ha sufrido un menor nmero de
referencias. LFU podra implementarse incorporando un contador a cada bloque. Puede
presentarse el problema de que muchas veces el contador no es representativo debido a
muchas llamadas en un periodo corto solamente.
Este problema, se soluciona con un reemplazo en funcin de la frecuencia. Los bloques
estn organizados lgicamente en una pila, como en el algoritmo LRU. Una parte
determinada de la cima de la pila se reserva como una seccin nueva. Cuando se acierta en
la cache, el bloque referenciado se traslada a la cima de pila. Si el bloque ya estaba en la
seccin nueva, su contador de referencias no se incrementar; en otro caso, se incrementa
en 1.
Una mejora adicional es dividir la pila en tres secciones: nueva, media y antigua. Las
cuentas de referencia no se incrementan en los bloques de la seccin nueva. Sin embargo,
slo los bloques de la seccin antigua sern candidatos para el reemplazo.

Unidad 6: Seguridad
1. Amenazas a la seguridad
La seguridad de computadoras y redes aborda los siguientes cuatro requisitos:
1. Secreto: exige que la informacin de un sistema de computadoras sea accesible
para lectura solamente por partes autorizadas.
2. Integridad: exige que los elementos de un sistema de computadoras puedan ser
modificadas solo por partes autorizadas.
3. Disponibilidad: exige que los elementos de un sistema de computadoras estn
disponibles para las partes autorizadas.
4. Autenticidad: requiere que un sistema de computadores sea capaz de verificar la
identidad del usuario.
5. Irrefutabilidad: quien genere o modifique informacin luego no puede negar su
accin.

1.1 Tipos de amenazas


Los tipos de amenazas a la seguridad de un sistema de computadoras o una red se
caracterizan mejor contemplando la funcin del sistema como un suministrador de
informacin. Existen cuatro categoras generales de amenazas:
Interrupcin: se destruye un elemento del sistema o se hace inasequible o intil.
Este es un ataque a la disponibilidad.
Interceptacin: una parte no autorizada consigue acceder a un elemento. Este
ataque al secreto.
Modificacin: una parte no autorizada no solo consigue acceder, sino que falsifica
un elemento. Este es un ataque a la integridad.
Invencin: una parte no autorizada inserta objetos falsos en el sistema. Este es un
ataque a la autenticidad.

2. Elementos de un sistema de computadoras y sus amenzas

3. Proteccin
La introduccin a la multiprogramacin origin la posibilidad de compartir recursos entre los
usuarios. La necesidad de compartir recursos introdujo la necesidad de proteccin. Un
sistema operativo puede ofrecer proteccin de las siguientes maneras:
Ninguna proteccin: apropiada cuando se ejecutan procedimientos delicados en
distintos instantes.
Aislamiento: este enfoque implica que cada proceso opera separadamente de los
dems.
Compartir todo o nada: el propietario de un objeto lo declara como pblico o
privado.
Compartir por limitacin de acceso: el SO comprueba la licencia de cada acceso
de un usuario especfico a un objeto.
Compartir por capacidades dinmica: incorpora la creacin dinmica de derechos
de compartimiento para los objetos.
Uso limitado de un objeto: esta forma de proteccin limita no solo el acceso a un
objeto, sino tambin el uso a que se puede dedicar dicho objeto. Por ejemplo, se
puede dejar ver un documento delicado a un usuario pero no imprimirlo.

3.1 Proteccin de la memoria


La separacin del espacio de memoria de los diversos procesos se lleva a cabo fcilmente
con un esquema de memoria virtual. La segmentacin, paginacin o la combinacin de
ambas proporcionan un medio eficaz de gestin de memoria principal. Si se persigue un
aislamiento total, el SO simplemente debe asegurar que cada segmento o pgina es
accesible solo para el proceso al que se est asignada. Esto se lleva a cabo fcilmente
exigiendo que no haya entradas duplicadas en las tablas de pginas o segmentos.
Si se va a permitir el compartimiento, el mismo segmento o pgina puede ser referenciado
en ms de una tabla. Este tipo de compartimiento se consigue mejor en un sistema que
soporta segmentacin o combinacin de segmentacin y paginacin. En tal caso, la
estructura del segmento es visible a la aplicacin y la aplicacin puede declarar segmentos
individuales como compartibles o no compartibles.

3.2 Control de acceso orientado al usuario


La tcnica ms habitual de control de acceso al usuario en un sistema de tiempo compartido
o en un servidor es la conexin del usuario, que requiere un identificador de usuario (ID) y
una contrasea. Este esquema ID/contrasea es un mtodo notablemente poco fiable de
control de acceso al usuario. Los usuarios pueden olvidar sus contraseas y pueden
revelarlas accidental o deliberadamente.
El control de acceso a usuario en entornos distribuidos puede ser centralizado o
descentralizado. Con un enfoque centralizado, la red proporciona un servicio de conexin
para determinar a quien se le permite usar la red y a qu se le permite conectarse.
El control de acceso descentralizado considera la red como un enlace transparente de
comunicacin y el procedimiento usual de conexin lo lleva a cabo un servidor de destino.
En muchas redes, pueden emplearse dos niveles de control de acceso. Los servidores
individuales pueden estar provistos de un servicio de conexin que proteja las aplicaciones
y los recursos especficos del servidor. Adems, la red en su conjunto puede ofrecer una
proteccin para restringir el acceso a la red a los usuarios no autorizados.

3.3 Control de acceso orientado a los datos


Despus de una conexin con xito, al usuario le habr concedido el acceso a uno o ms
servidores y aplicaciones. Asociado con cada usuario, puede haber un perfil de usuario que
especifique las operaciones y los accesos a archivos permisibles. Mientras el SO puede
otorgar a un usuario permiso para acceder a un archivo o utilizar una aplicacin, el sistema
gestor de base de datos debe tomar decisiones sobre cada intento de acceso individual.
Un modelo general de control de acceso ejercido por un sistema gestor de archivos o bases
de datos es el de una matriz de acceso. Los elementos bsicos del modelo son los
siguientes:
Sujeto: entidad capaz de acceder a un objeto. Cualquier usuario o aplicacin
consigue acceder en realidad a un objeto por medio de un proceso que representa al
usuario o aplicacin.
Objeto: cualquier cosa cuyo acceso deba controlarse.
Derecho de acceso: la manera en que un sujeto accede a un objeto.
Una dimensin de la matriz consta de los sujetos identificados que pueden intentar acceder
a los datos. La otra dimensin enumera a los objetos a los que se puede acceder.
La matriz puede descomponerse en columnas para obtener listas de control de acceso.
Con la descomposicin por filas se obtienen etiquetas de capacidad de acceso. Esta
especifica los objetos y las operaciones autorizadas para un usuario. Cada usuario tiene un
nmero de etiquetas y puede estar autorizado o no para prestarlas o concederlas a otros
usuarios.
Normalmente, el control de acceso orientado a los datos es descentralizado, es decir,
controlado mediante sistemas de gestores de base de datos radicados en los servidores. Si
hay un servidor de base de datos en una red, el control de acceso a los datos se convierte
en una funcin de la red.

4. Intrusos
Una de las dos amenazas ms conocidas a la seguridad (la otra es la de los virus) es el
intruso, conocido en general como pirata informtico, hacker o cracker. Existen tres tipos de
intrusos:
Suplantador: un individuo que no est autorizado a usar el computador y que
penetra en un sistema de control de acceso para explotar una legitima entrada de
usuario.
Abusador: un usuario legtimo que accede a datos, programas o recursos a los que
no estn autorizado, o que est autorizado pero hace un mal uso de sus privilegios.
Usuario clandestino: un individuo que est a cargo del control de la supervisin del
sistema y utiliza ese control para evadir la auditoria y el control de acceso o para
suprimir la recopilacin de datos.

4.1 Tcnicas de intrusin


El objetivo de los intrusos es obtener acceso a un sistema o aumentar el conjunto de
privilegios accesibles en un sistema. En general, esto requiere que el intruso obtenga
informacin que debera estar protegida. En la mayora de los casos, esta informacin est
en forma de contrasea de usuario.
Normalmente, un sistema debe mantener un archivo que asocia una contrasea de cada
usuario autorizado. El archivo de contraseas puede protegerse de dos maneras:

Cifrado unidimensional: el sistema almacena contraseas de los usuarios de


forma cifrada solamente. Cuando un usuario presenta una contrasea, el sistema
cifra contrasea y la compara con el valor almacenado.
Control de acceso: el acceso a los archivos de contraseas est limitado a una o
muy pocas cuentas.

4.2 Proteccin de contraseas


La contrasea sirve para autentificas el ID del individuo que se conecta al sistema. A su vez,
el ID introduce una seguridad en los siguientes sentidos:
El ID determina si el usuario est autorizado para obtener acceso al sistema.
El ID determina los privilegios que corresponden al usuario.
Esquema UNIX para proteccin de contraseas
Cada usuario elige una contrasea de hasta 8 caracteres. ste se convierte a un valor de
56 bits (empleando ASCII de 7 bits) que sirve como entrada clave a una funcin de cifrado.
La rutina de cifrado, llamada crypt(3), est basada en el algoritmo Estndar de Cifrado de
Datos. El algoritmo DES se modifica mediante un valor semilla de 12 bits. Este algoritmo
DES modificado se ejecuta con una entrada de datos que consiste en un bloque de ceros
de 64 bits. La salida del algoritmo sirve como entrada para un segundo cifrado. Este
proceso se repite por un total de 25 cifrados. La salida resultante de 64 bits se traduce
entonces a una secuencia de 11 caracteres. En el archivo de contraseas se guarda la
contrasea cifrada, junto con una copia sin cifrar de la semilla para el ID de usuario
correspondiente. La semilla sirve para tres fines:
Impide que las contraseas duplicadas sean visibles en el archivo de contraseas.
Aumenta en forma efectiva la longitud de las contraseas.

4.3 Deteccin de intrusos


La deteccin de intrusos se basa en el supuesto de que el comportamiento del intruso se
diferencia del comportamiento de un usuario legtimo en formas que puede certificarse.
Las tcnicas para la deteccin de intrusiones son las siguientes:
Deteccin de anomalas estadsticas: este mtodo supone una recoleccin de
datos del comportamiento de los usuarios legtimos durante un periodo de tiempo.
Despus se aplican pruebas estadisticas al comportamiento observado para
determinar, con un alto grado de confianza, si los comportamientos de los usuarios
son legtimos.

Deteccin basada en reglas: este mtodo supone un intento de definir un conjunto


de reglas que pueden emplearse para decidir si un comportamiento dado es el de un
intruso.
Deteccin de anomalas: se construyen reglas para detectar desviaciones
con respecto a pautas de uso anteriores.
Identificacin de penetraciones: un mtodo de un sistema experto que
persigue comportamientos sospechosos.

Una herramienta fundamental para la deteccin de intrusiones se un registro de auditoria.


Bsicamente se utilizan dos planes para realizarlos:
Registros de auditoria nativos: casi todos los SO multiusuarios ya incorporan un
software de contabilidad que rene informacin sobre la actividad de los usuarios.
Registros de auditoras especficos para la deteccin: se puede implantar un
servicio de recopilacin que genere registros de auditoras que contenga solo
aquella informacin que sea necesaria para el sistema de deteccin de intrusiones.

5 Software maligno
Quizs, los tipos de ataque ms sofisticados a los sistemas informticos son los
presentados por los programas que se aprovechan de los puntos vulnerables de los
mismos.

5.1 Programas malignos


Se puede distinguir entre las amenazas de software que no se reproducen y las que lo
hacen. Las primeras son fragmentos de programas que se activan cuando se invoca el
programa anfitrin para realizar una funcin determinada. Las segundas consisten en un
fragmento de programa (virus) o un programa independiente (gusanos y bacterias) que,
cuando se ejecutan, pueden hacer una o ms copias de s mismos que se activarn, ms
tarde, en el mismo sistema o en algn otro.
Trampillas
Una trampilla es un punto de entrada secreto a un programa que permite a alguien que lo
conozca conseguir el acceso sin pasar por los procedimientos usuales de seguridad de
acceso. Las trampillas las han usado los programadores de una forma legtima durante
muchos aos para depurar y probar los programas.
La trampilla es un cdigo que reconoce alguna secuencia de entrada especial o que se
activa al ser ejecutado por cierto ID de usuario o mediante una secuencia improbable de
sucesos.
Se convierten en una amenaza cuando las emplean programadores desaprensivos para
conseguir acceso no autorizado.
Bombas lgicas
Uno de los tipos de amenaza ms antiguos, anterior a los virus y gusanos. La bomba lgica
es un cdigo incrustado en algn programa legtimo que explota cuando se cumplen
ciertas condiciones.

Caballos de Troya
Un caballo de Troya es un programa o procedimiento til o aparentemente til que contiene
un cdigo oculto que, cuando se invoca, lleva a cabo alguna funcin daina o no deseada.
Los programas con caballos de Troya se pueden usar para efectuar funciones
indirectamente que un usuario no autorizado no podra efectuar directamente. Otra intencin
habitual es la destruccin de datos.
Virus
Un virus es un programa que puede infectar a otros programas, alterndolos; la alteracin
incluye una copia del programa de virus, que puede entonces seguir infectando a otros
programas.
Gusanos
Los programas gusanos de la red empleaban las conexiones de la red para extenderse de
un sistema a otro. Una vez activos en un sistema, un gusano de red puede comportarse
como un virus o bien plantar caballos de Troya o realizar cualquier nmero de acciones
trastornadoras o destructoras.
Para reproducirse un gusano utiliza algn tipo de vehculo de la red. Como por ejemplo,
correo electrnico, capacidad de ejecucin remota y capacidad de conexin remota.
Un gusano muestra las mismas caractersticas o fases que un virus.
Zombies
Un zombie es un programa que secretamente toma posesin de otro computador conectado
a internet y le usa para lanzar ataques que hacen difcil detectar a su creador. Los zombies
se utilizan en ataques de denegacin de servicio, normalmente contras sitios web. El
zombie se instala en cientos de computadores pertenecientes a terceras partes no
sospechosas y, entonces, suele sobrecargar al sitio web objetivo lanzando una excesiva
carga de trfico de red.

5.2 La naturaleza de los virus


Un virus puede hacer cualquier cosa que hagan otros programas. La nica diferencia es que
se acopla a otro programa y se ejecuta de forma oculta cada vez que se ejecuta el
programa anfitrin.
Durante su vida, un virus tpico pasa por las siguientes cuatro etapas:
1. Fase latente: el virus est inactivo. Se activar luego por algn suceso. No todos los
virus pasan por esta fase.
2. Fase de propagacin: el virus hace copias idnticas a el en otros programas o en
ciertas reas del sistema del disco.
3. Fase de activacin: el virus se activa para llevar a cabo la funcin para la que est
pensado. Puede producirse por mltiples sucesos el sistema.
4. Fase de ejecucin: se lleva a cabo la funcin. La funcin puede ser no daina,
como dar un mensaje por pantalla, o daina, como la destruccin de archivos.
Los tipos de virus existentes ms significativos son:

Virus parsitos: la forma ms tradicional y, todava, ms comn. Se engancha a


archivos ejecutables y se reproduce al ejecutar el programa infectado, buscando
otros archivos ejecutables para infectar.
Virus residentes en la memoria: se alojan en la memoria principal como parte de
un programa del sistema residente. Desde entonces, el virus infecta a todos los
programas que se ejecutan.
Virus del sector de arranque: infecta al sector principal de arranque MRB y se
propaga cuando el sistema arranca desde el disco que contiene el virus.
Virus clandestino: una forma de virus diseado explcitamente para esconderse de
la deteccin mediante en software antivirus.
Virus paliforme: un virus que muta con cada infeccin, haciendo imposible la
deteccin por la firma del virus.

Unidad 7: Procesamiento Distribuido


Un sistema de procesamiento distribuido implica la particin de la funcin de computacin y
puede, tambin, conllevar una organizacin distribuida de la base de datos, el control de los
dispositivos y el control de las interacciones (redes).
Se ha explorado un espectro de capacidades distribuidas de los sistemas operativos, como
son:
Arquitectura de comunicaciones: este es el software que da soporte a una red de
computadoras independientes. Ofrece soporte para las aplicaciones distribuidas,
tales como correo electrnico, transferencia de archivos y acceso a terminales
remotos. Cada computadora tiene su propio SO, y es posible una mezcla
heterognea de computadoras y SO, siempre que todas las mquinas soporten la
misma arquitectura de comunicaciones. Por ejemplo, protocolo TCP/IP.
Sistema operativo en red: esta es una configuracin en la existe una red de
mquinas de aplicacin, generalmente estaciones de trabajo monousuario y uno o
ms servidores. Los servidores proporcionan servicios o aplicaciones a toda la red,
tales como almacenamiento de archivos y la gestin de impresoras. Cada
computador tiene si propio SO privado.
Sistemas operativos distribuidos: un SO comn compartido por una red de
computadores. Este SO puede depender de una arquitectura de comunicaciones
para las funciones bsicas de comunicacin.

1. Proceso cliente/servidor
Como el termino sugiere, el entorno cliente/servidor est poblado de clientes y servidores.
Las mquinas clientes son, en general, PC monousuario o puestos de trabajo que ofrecen
una interfaz muy amigable para el usuario final.
En un entorno cliente/servidor, cada servidor ofrece una serie de servicios de usuario
compartidos a los clientes. Actualmente, el tipo ms comn de servidor es el servidor de
base de datos, que, generalmente, controla una base de datos relacional.
Adems de los clientes y servidores, el tercer ingrediente bsico es la red, ya que el
proceso cliente/servidor es un proceso distribuido.

2. Aplicaciones cliente/servidor
La caracterstica central de la arquitectura cliente/servidor es la ubicacin de las tareas del
nivel de aplicacin entre clientes y servidores. Tanto en el cliente como en el servidor el
software bsico es un SO que se ejecuta en la plataforma del hardware. La plataforma y los
SO del cliente y servidor pueden ser diferentes. En tanto que un cliente particular y un
servidor compartan los mismos protocolos de comunicacin y soporten las mismas
aplicaciones, estas diferencias de niveles inferiores no son relevantes.
En mayora de los sistemas cliente/servidor, se hace un gran hincapi en ofrecer una
interfaz de usuario que sea fcil de utilizar y fcil de aprender, pero potente y flexible.

2.1 Aplicaciones de base de datos


La familia ms comn de aplicaciones cliente/servidor son aquellas que utilizan base de
datos relacionales. En este entorno, el servidor es, bsicamente, un servidor de base de
datos. La interaccin entre el cliente y el servidor se hace de forma de transacciones, donde
el cliente realiza una peticin a la base de datos y recibe una respuesta de aquella.

2.2 Clases de aplicaciones cliente/servidor


Dentro del entorno general cliente/servidor, se dispone de una gama de posibles
implementaciones que dividen el trabajo entre el cliente y el servidor de manera diferente.
Algunas de las opciones principales para las aplicaciones de base de datos son:
Proceso basado en una mquina central o host: el proceso basado en una
mquina central (host) no es realmente un proceso cliente/servidor. Se refiere ms
bien al entorno tradicional de grandes sistemas en el que todo o casi todo el
tratamiento se realiza en un computador central. La interfaz de usuario consiste a
menudo en un terminal tonto.
Proceso basado en el servidor: el tipo ms bsico de configuracin cliente/servidor
es aqul en que el servidor bsicamente responsable de ofrecer una interfaz de
usuario grfica, mientras casi todo el tratamiento se hace en el servidor.
Proceso basado en el cliente: en el otro extremo, casi todo el proceso de la
aplicacin puede hacerse en el cliente, con la excepcin de las rutinas de validacin
de datos y otras funciones lgicas de la base de datos que se realizan mejor en el
servidor. Es posiblemente el mtodo cliente/servidor ms utilizado actualmente.
Proceso cooperativo: el proceso de la aplicacin se lleva a cabo de forma
optimizada, aprovechando la potencia de las mquinas de cliente y servidora y la
distribucin de los datos. Es ms compleja de instalar y mantener.

2.3 Arquitectura cliente/servidor de tres capas


La arquitectura tradicional cliente/servidor implica dos niveles o capas: una capa cliente y
una capa servidor. En los ltimos aos la arquitectura que ms se ha pasado a utilizar es
una de tres capas. En esta arquitectura el software de aplicacin est distribuido entre tres
tipos de mquinas: una mquina usuario, un servidor de capa intermedia y un servidor final
(backend). La mquina de usuario en esta arquitectura, por lo general es un cliente delgado.
Las mquinas de capa intermedia son esencialmente pasarelas entre los clientes delgados
y una variedad de servidores finales de base de datos.

2.4 Consistencia de la cache de archivos


Cuando se utiliza un servidor de archivos, el rendimiento de E/S referente a los accesos
locales a archivos puede degradarse sensiblemente por causa del retardo introducido por la
red. Para reducir esta carga, los sistemas individuales pueden usar cache de archivos para
almacenar los registros a los que se ha accedido hace poco.
Cuando las caches contienen siempre copias exactas de los datos remotos, se dice que las
caches son consistentes. Puede ser posible que lleguen a ser inconsistentes cuando se
cambian los datos remotos y no se desechan las copias obsoletas correspondientes de las
caches locales. El problema de mantener actualizadas las copias de las caches locales se
conoce como problema de consistencia de caches.
El mtodo ms simple para la consistencia de caches consiste en emplear tcnicas de
bloqueo de archivos para prevenir el acceso simultneo a un archivo por parte de ms de
un cliente. Un mtodo ms potente es que cualquier nmero de procesos remotos puede
abrir un archivo para la lectura y crear su propia cache del cliente. Pero cuando la solicitud
al servidor es de abrir un archivo para escritura y otros procesos tienen el mismo archivo
abierto para lectura, el servidor realizada dos acciones. En primer lugar, notifica al proceso
escritor que, aunque puede mantener una cache, debe reescribir todos los bloques
alterados inmediatamente despus de actualizarlos. Puede haber muchos clientes de este
tipo. En segundo lugar, el servidor notifica a todos los procesos lectores que tengan abierto
el archivo que sus copias en cache ya no son vlidas.

3. Middleware
Como gran parte de las ventajas de la filosofa cliente/servidor viene dadas por su
modularidad y por la capacidad de combinar plataformas y aplicaciones para ofrecer
soluciones comerciales, debe resolverse este problema de interoperacin.
Para alcanzar las ventajas reales de la filosofa cliente/servidor, los desarrolladores deben
disponer de un conjunto de herramientas que proporcionen una manera uniforme de
acceder a los recursos del sistema en todas las plataformas.
La forma ms comn de cumplir con este requisito es utilizar interfaces estndares de
programacin y protocolos que se siten entre la aplicacin y el software de comunicacin y
el sistema operativo. Dichas interfaces y protocolos estndares han venido a llamarse
middleware.
Existe una gran variedad de paquetes de middleware, desde los muy simples a los muy
complejos. Todos ellos tienen en comn la capacidad de ocultar las complejidades y
diferencias de los diferentes protocolos de red y sistemas operativos. En otras palabras, el
middleware proporciona una capa de software que permite un acceso uniforme a sistemas
diferentes. Aunque hay una amplia variedad de productos middleware, estos se basan
normalmente en uno de dos mecanismos bsicos: el paso de mensajes o las llamadas a
procedimientos remotos.

3.1 Arquitectura middleware

4. Paso distribuido de mensajes


En los sistemas de proceso distribuido reales se suele dar el caso de que los computadores
no compartan una memoria principal; cada una es un sistema aislado. Por lo tanto, no es
posible emplear tcnicas de comunicacin entre procesadores basadas en memoria
compartida, como son los semforos y el uso de un rea de memoria comn. En su lugar,
se usan tcnicas basadas en el paso de mensajes.

Con este mtodo, un proceso cliente solicita un servicio y enva, a un proceso servidor, un
mensaje que contiene una peticin de servicio. El proceso servidor satisface la peticin y
enva un mensaje de respuesta. En su forma ms simple, solo se necesitan dos funciones:
send y receive.
La primitiva send la utiliza el proceso que quiere enviar el mensaje. Sus parmetros
son el identificador del proceso de destino y el contenido del mensaje.
La primitiva receive la utiliza el proceso receptor para anuncia su intencin de recibir
el mensaje, designado un rea de almacenamiento intermedio e informando al
mdulo de paso de mensajes.
Los procesos hacen uso de los servicios de un mdulo de pasos de mensajes, el cual sera
un middleware.

4.1 Fiabilidad frente a no fiabilidad


Un servicio de paso de mensajes fiable es aquel que garantiza la entrega, si es posible.
Dicho servicio debera hacer uso de un protocolo de transporte fiable o de alguna lgica
similar. Como la entrega est garantizada, no es necesario hacer que el proceso emisor
sepa que se entreg el mensaje. Sin embargo, puede ser til proporcionar un acuse de
recibo al proceso emisor de manera que se entere de que ya se ha entregado.
En el otro extremo, el servicio de paso de mensajes puede enviar simplemente el mensaje a
la red de comunicaciones sin informar de su xito ni de su fracaso. Esta alternativa reduce
enormemente la complejidad y la sobrecarga de proceso y de comunicaciones en el servicio
de paso de mensajes.

4.2 Bloqueante frente a no bloqueante


Con primitivas no bloqueantes, o asncronas, un proceso no queda suspendido como
resultado de su send o receive. De esta forma, su por ejemplo un proceso utiliza una
primitiva send, el SO le devolver en control tan pronto como el mensaje se haya puesto en
la cola para su transmisin o se haya hecho una copia. Cuando el mensaje se haya
transmitido o se haya copiado a un lugar seguro para su posterior transmisin, se
interrumpe al proceso emisor para informarle de que el buffer del mensaje puede reciclarse.
Las desventajas de este enfoque es que los programas que lo emplean son difciles de
probar y de depurar.
La otra alternativa es emplear primitivas bloqueantes, o sncronas. Un send bloqueante no
devuelve el control al proceso emisor hasta que el mensaje haya sido transmitido.

5. Llamadas a procedimientos remotos


Es un mtodo comn muy aceptado actualmente para encapsular la comunicacin en un
sistema distribuido. Lo fundamental de la tcnica es permitir que programas de mquinas
diferentes interacten mediante la semntica de llamadas/retornos a simples
procedimientos, como si los dos programas estuvieran en la misma mquina. Las ventajas
de este mtodo son:
La llamada al procedimiento es una abstraccin muy usada, aceptada y bien
comprendida.

Como la interfaz es estndar y est definida de forma precisa, el cdigo de


comunicaciones de una aplicacin puede generarse automticamente.
Como la interfaz es estndar y est definida de forma precisa, los desarrolladores de
software pueden escribir mdulos clientes y servidores que pueden trasladarse entre
computadoras y SO con pocas modificaciones.
El mecanismo de las llamas a procedimientos remotos puede considerarse como una
refinamiento del paso de mensajes fiables y bloqueante.
El programa llamador realiza una llamada normal a un procedimiento con los parmetros
situados en su mquina. Por ejemplo: CALL P(X, Y) donde P es el nombre del
procedimiento, X son los argumentos pasados e Y son los valores devueltos.
El espacio de direcciones del llamador debe incluir un procedimiento P de presentacin o
tonto, o bien debe enlazarse dinmicamente en el momento de la llamada. Este
procedimiento crea un mensaje que identifica al procedimiento llamado e incorpora los
parmetros. Cuando se recibe la respuesta, el procedimiento de presentacin retorna al
programa llamador, proporcionndole los valores devueltos.

5.1 Enlace cliente/servidor


Un enlace se forma cuando dos aplicaciones han establecido una conexin lgica y se
encuentran preparadas para intercambiar rdenes y datos.
Los enlaces no persistentes suponen que la conexin lgica se establece entre dos
procesos en el momento de la llamada remota y que la conexin lgica se pierde tan pronto
como se devuelven los valores. Como una conexin requiere el mantenimiento de
informacin de estado en ambos extremos, consume recursos.
Con enlaces persistentes, una conexin establecida para una llamada a un procedimiento
remoto se mantiene despus de que el procedimiento termina. La conexin puede utilizarse
para futuras llamadas a procedimiento remoto. Si transcurre un periodo de tiempo
determinado sin actividad en la conexin, la misma finaliza.

6. Agrupaciones
Las agrupaciones son una alternativa al SMP como mtodo de proporcionar alto
rendimiento y alta disponibilidad. Una agrupacin se puede definir como un grupo de
computadores completos interconectados que trabajan juntos como un recurso de proceso
unificado que puede crear la ilusin de ser una mquina.
Existen cuatro ventajas tambin consideradas objetivos o requisitos del diseo de
agrupaciones:
Escalabilidad total: es posible crear agrupaciones grandes que sobrepasen con
crecer las mquinas autnomas grandes.
Escalabilidad incremental: una agrupacin se configura de tal forma que es
posible aadir sistemas nuevos a la agrupacin en pequeos incrementos.
Alta disponibilidad: puesto que cada uno de los nodos de la agrupacin es un
computador autnomo, el fallo de un nodo no implica la prdida de servicio.
Mejor relacin rendimiento/precio: es posible armar una agrupacin con una
potencia de proceso igual o mayor que una mquina grande, a un precio mucho ms
bajo.

6.1 Configuracin de agrupaciones


Quizs la clasificacin ms simple se basa en si los computadores de una agrupacin
comparten el acceso a los mismos discos.

En una configuracin sin discos compartidos, la nica interconexin se realiza por medio de
un enlace de alta velocidad que se puede utilizar para el intercambio de mensajes y para
coordinar la actividad de la agrupacin.
La otra alternativa es una agrupacin con discos compartidos. En este caso, generalmente
existe un enlace de mensajes entre nodos. Adems, hay un subsistema de disco
directamente enlazado a varios computadores de la agrupacin.

6.2 Concepto de diseo de los sistemas operativos


Gestin de fallos
La forma en que se gestionarn los fallos depende del mtodo de agrupacin utilizado. En
general, para tratar los fallos se pueden seguir dos enfoques:
Una agrupacin de alta disponibilidad ofrece una alta probabilidad de que todos los
recursos estn siendo utilizados. Si se produce un fallo, cualquier consulta perdida,
si se retoma, ser atendida por un computador diferente de la agrupacin.
Una agrupacin tolerante a fallos garantiza que los recursos siempre van a estar
disponibles. Esto se logra mediante el uso de discos compartidos redundantes y de
mecanismos de respaldo para transacciones sin confirmar y transacciones
completadas y confirmadas.
La funcin de intercambiar una aplicacin y los datos de un sistema fallido por un sistema
alternativo en un agrupacin se denomina resistencia a fallos. Una funcin afn a la
anterior es la restauracin de aplicaciones y de datos al sistema original una vez que se ha
reparado; esto se denomina restauracin de fallos.
Equilibrio de carga
Una agrupacin requiere una capacidad eficaz para balancear la carga entre los
computadores disponibles. Los mecanismos middleware necesitan reconocer que servicios
pueden aparecer en los diferentes miembros de la agrupacin y pueden migrar de un
miembro a otro.

Proceso paralelo
Existen tres enfoque generales para este caso:
Compilador paralelo: un compilador paralelo determina, en tiempo de compilacin,
que partes de la aplicacin se pueden ejecutar en paralelo. Estas se dividen para
asignarlas a distintos computadores de la agrupacin.
Aplicaciones paralelas: en este enfoque, el programador disea la aplicacin
desde el principio para ejecutar en una agrupacin.
Computacin paramtrica: este enfoque se puede utilizar si el centro de la
aplicacin es un algoritmo o programa que debe ejecutarse muchas veces, cada vez
con un conjunto diferente de condiciones o parmetros.

6.3 Arquitectura de computadores de agrupacin


El middleware de la agrupacin ofrece una imagen unificada del sistema al usuario,
conocida como imagen de sistema nico. El middleware tambin es responsable de
ofrecer una alta disponibilidad, mediante el balanceo de carga y respondiendo a fallos en los
componentes individuales. Los siguientes servicios y funciones son los deseables en un
middleware de agrupacin:
nico punto de entrada: un usuario se identifica en la agrupacin en lugar de un
computador individual.
nica jerarqua de archivos: el usuario ve una nica jerarqua de directorios bajo el
mismo directorio raz.
nico punto de control: existe una nica estacin de trabajo utilizada para la
gestin y control de la agrupacin.
nica gestin de red virtual: cualquier nodo puede acceder a cualquier punto de la
agrupacin.
nico espacio de memoria: la memoria compartida distribuida permite a los
programas compartir variables.
nica interfaz de usuario: una interfaz grfica comn da soporte a todos los
usuarios, independientemente de la estacin de trabajo desde la que entren a la
agrupacin.
nico espacio de E/S: cualquier nodo puede acceder de forma remota a cualquier
dispositivo perifrico.
Puntos de recuperacin: esta funcin guarda peridicamente el estado del
proceso, para permitir la recuperacin de un fallo.
Migracin de procesos: esta funcin permite el equilibrio de la carga.

Você também pode gostar