Professional Documents
Culture Documents
Estrategias de administracin
Monoprogramacin sin intercambio ni paginacin
Multiprogramacin con particiones fijas
Reubicacin y proteccin
Administracin de memoria
Intercambio (swapping)
Particiones variables
Administracin de memoria con mapa de bits
Administracin de memoria con listas enlazadas
Memoria virtual
Paginacin
Tablas de pgina
Memoria asociativa (bferes de consulta para traduccin)
Algoritmos para el reemplazo de pginas
Modelo del conjunto de trabajo (algoritmo de reemplazo de
pginas de conjunto de trabajo
Aspectos de diseo de los sistemas con paginacin
Polticas de asignacin locales vs. globales
Tamao de pgina
Aspectos de implementacin
Segmentacin
Paginacin vs. Segmentacin
Unidad N5 Entrada / Salida
Interrupciones
Clases de interrupciones
Las interrupciones y el ciclo de instruccin
Tratamiento de las interrupciones
Interrupciones mltiples
Multiprogramacin
Dispositivos de Entrada/Salida
Tipos de dispositivos
Controlador de dispositivos (Drivers)
Funcionamiento
Organizacin del sistema de la E/S
Tcnicas de comunicacin de la E/S
E/S programada
E/S dirigida por interrupciones
DMA (acceso directo a memoria)
Evolucin de las funciones de E/S
Aspectos de diseo en los sistemas operativos
Objetivos del diseo
Estructura lgica de las funciones de E/S
Almacenamiento intermedio de la E/S (Buffering)
Memoria intermedia sencilla
Memoria intermedia doble
Memoria intermedia circular
Planificacin de discos
Parmetros de rendimiento del disco
Polticas de planificacin de discos
RAID
Caractersticas
Niveles
RAID 0 (sin redundancia)
RAID 1 (mirroring)
RAID 2
RAID 3 (paridad por intercalacin de bits)
RAID 4
RAID 5 (paridad por intercalacin distribuida de bloques)
RAID 6 (paridad doble por intercalacin distribuida de bloque)
Cach de disco
Consideraciones sobre el diseo
Unidad N6 Seguridad
Amenazas a la seguridad
Tipos de amenazas
Componentes de un sistema informtico
Proteccin
Proteccin de la memoria
Control de acceso orientado al usuario (autenticacin)
Control de acceso orientado a los datos (autorizacin)
Intrusos
Tipos de intrusos
Tcnicas de intrusin
Tcnicas de obtencin de contraseas
Proteccin de contraseas
Vulnerabilidad de las contraseas
Estrategias de eleccin de contraseas
Deteccin de intrusos
Software malicioso
Programas malignos
Fases de un virus
Tipos de virus
Virus de macros
Unidad N7 Procesamiento distribuido
Introduccin
Proceso cliente/servidor
Aplicaciones cliente/servidor
Aplicaciones de bases de datos
Clases de aplicaciones cliente/servidor
Arquitectura cliente/servidor de tres capas
Consistencia de la cach de archivos
Middleware
Arquitectura middleware
Paso distribuido de mensajes
Servicio fiable vs. servicio no fiable
Bloqueante vs no bloqueante
Llamadas a procedimiento remoto (RPC)
Paso de parmetros
Enlace cliente/servidor
Sincronismo vs asincronismo
Agrupaciones (Clusters)
Configuraciones de clusters
Conceptos de diseo de los sistemas operativos
Gestin de fallos
Equilibrio de carga
Proceso paralelo
UTN FRC
1/8
UTN FRC
El SO dirige al procesador en el empleo de otros recursos del sistema y en el control del tiempo de la ejecucin de otros
programas. Pero para que el procesador pueda hacer estas cosas, debe cesar la ejecucin del programa del SO y ejecutar
otros programas. El SO cede el control del procesador, para realizar algn trabajo y luego lo recupera durante el tiempo
suficiente para preparar al procesador para llevar a cabo la siguiente parte del trabajo.
Una parte del SO est en la memoria principal. En esta parte est el ncleo (kernel), que incluye las funciones ms utilizadas
frecuentemente del SO. El resto de la memoria principal contiene datos y otros programas de usuario. La asignacin de la
memoria principal es controlada conjuntamente por el SO y por el hardware de gestin de memoria del procesador. El SO
decide cundo un programa en ejecucin puede utilizar un dispositivo de E/S y controla el acceso y la utilizacin de los
archivos. El procesador es un recurso y es el SO el que debe determinar cunto tiempo del procesador debe dedicarse a la
ejecucin de un programa de usuario en particular.
La necesidad de hacer cambios en forma regular, introduce ciertos requisitos de diseo. El sistema debe tener una
construccin modular, con interfaces bien definidas entre los mdulos y debe estar bien documentado.
Procesos en serie.
Sistemas sencillos de proceso por lotes.
Sistemas por lotes con multiprogramacin.
Sistemas de tiempo compartido.
Proceso en serie
En las primeras computadoras los programadores interactuaban directamente con el hardware de los mismos, no haba
sistema operativo. Se operaba desde una consola consistente en unos indicadores luminosos, unos conmutadores, algn
tipo de dispositivo de entrada y alguna impresora.
Los programas en cdigo mquina se cargaban con un dispositivo de entrada (lector de tarjetas). Se ejecutaban hasta su
culminacin donde la impresora mostraba el resultado, si se produca un error se mostraba con los indicadores luminosos.
Presentaban dos problemas principales:
UTN FRC
El monitor es quien gestiona el problema de la planificacin. Se pone en cola un lote de trabajos y stos son ejecutados tan
rpidamente como sea posible, evitando tiempos de inactividad. El monitor tambin organiza mejor el tiempo de organizacin
del trabajo utilizando un lenguaje de control de trabajos, que es un lenguaje para dar instrucciones al monitor.
Este tipo de sistemas necesitaban nuevas caractersticas como:
Proteccin de memoria: mientras se ejecuta un programa de usuario no debe modificar la zona de memoria donde
est el monitor.
Temporizador: se utiliza para evitar que un solo trabajo monopolice el sistema.
Instrucciones privilegiadas: algunas instrucciones mquina solo las puede ejecutar el monitor.
Interrupciones: le flexibilidad al sistema operativo para ceder y retomar el control de los programas de usuario.
Arquitectura microncleo.
Multihilos.
Multiproceso simtrico.
Sistemas operativos distribuidos.
Diseo orientado a objetos.
Arquitectura microncleo
La arquitectura microncleo asigna solamente unas pocas funciones esenciales al ncleo. Otros servicios del sistema
operativo los proporcionan procesos que se ejecutan en modo usuario y que el microncleo trata como cualquier otra
aplicacin.
Este enfoque simplifica la implementacin, proporciona flexibilidad, y se adapta bien para entornos distribuidos.
Multihilos
Los multihilos son una tcnica por lo cual un proceso, ejecutando una aplicacin, se divide en hilos que pueden ejecutarse
concurrentemente.
Hilo: unidad de trabajo que se puede expedir para su ejecucin. Conjunto de instrucciones que pertenecen a un
proceso. Se les suele llamar procesos ligeros o contextos de ejecucin. Se ejecuta secuencialmente y es
interrumpible para que el procesador puede ceder el turno a otro hilo.
Proceso: un conjunto de uno o ms hilos y los recursos del sistema asociados (cdigo, datos, archivos abiertos y
dispositivos). Al dividir una aplicacin en mltiples hilos, el programador tiene un gran control sobre la modularidad
de la aplicacin y la coordinacin de los sucesos relativos al sistema.
3/8
UTN FRC
Los multihilos son muy tiles para las aplicaciones que ejecutan un nmero de tareas esencialmente independientes que no
necesitan ser consecutivas.
Multiproceso simtrico
Es un trmino que se refiere a una arquitectura hardware y al comportamiento de la misma. Un multiprocesador simtrico
puede definirse como un sistema de computadores de un solo usuario con las siguientes caractersticas:
Ventajas:
Microsoft Windows
Resea histrica
MS DOS 1.0 (1981). Sistema operativo de Microsoft para la primera computadora personal de IBM. Se ejecutaba
en 8K de memoria utilizando el microprocesador Intel 8086.
MS DOS 2.0 (1983). Para el PC XT de IBM. Aadi soporte para discos duros y ofreca directorios jerrquicos
(directorios con subdirectorios y archivos). Se aadieron tambin caractersticas de UNIX como el
redireccionamiento de E/S (capacidad de cambiar la identidad de la entrada o salida de una aplicacin) y la impresin
subordinada (background). La memoria creci hasta 24 Kb.
MS DOS 3.0 (1984). Para el PC AT de IBM con micro Intel 80286 que aadi direccionamiento extendido y recursos
de proteccin de memoria, pero DOS no los utiliz. Uso el 80286 como un 8086 rpido para mantener
compatibilidad. Los requisitos de memoria crecieron hasta 36 KB.
1. MS DOS 3.1 (1984). Aade soporte para redes de PC.
2. MS DOS 3.3 (1987). Soporte para PS/2. El sistema pas a utilizar 46 KB.
Windows 3.0 (1990). El DOS estaba siendo utilizado en un entorno que iba ms all de sus capacidades. Microsoft
comienza el desarrollo de una Interfaz Grfica de Usuario (GUI) que podra ejecutarse entre el usuario y el DOS. En
1990, Microsoft presenta una versin de la GUI, el Windows 3.0, la cual segua maniatada por la necesidad de
ejecutarse sobre DOS.
4/8
UTN FRC
Windows NT (1993). Luego de una tentativa fallida por Microsoft de desarrollar junto a IBM un SO de nueva
generacin que aprovechara las caractersticas de los actuales microprocesadores, IBM desarrolla OS/2 y Microsoft
lanza Windows NT. Ofrece multitarea en entornos monousuarios y multiusuarios.
Windows NT 4.0. Despus de varias versiones NT 3.X, Microsoft desarrolla la versin 4.0, que proporciona la misma
interfaz de Windows 98. El mayor cambio consiste en que varios de los componentes grficos que se ejecutaban
tanto en modo usuario como formando parte del subsistema Win 32 en 3.X, han sido trasladados al ejecutor de
Windows NT, que ejecuta en modo ncleo, lo que implica una aceleracin en tales ejecuciones. El inconveniente es
que servicios del sistema tienen acceso a funciones graficas de bajo nivel, pudiendo impactar con la fiabilidad del
SO.
Windows 2000 (2000). Nuevamente el ejecutor y la arquitectura microncleo son fundamentalmente los mismos que
en NT 4.0. Se han aadido nuevas caractersticas, como el soporte al procesamiento distribuido. El directorio activo
es un servicio del directorio distribuido capaz de traducir los nombres de objetos arbitrarios a cualquier tipo de
informacin acerca de los mismos. Una consideracin final sobre Windows 2000 es la distribucin entre Windows
2000 Server y Professional, en donde la versin Server incluye servicios para su uso como servidor de red.
Windows XP (2001).
Windows 7 (2009).
Windows 8 (2011).
1. Windows 8.1 (2012).
Arquitectura
Como en casi todos los sistemas operativos, se separa el software orientado a las aplicaciones del software del sistema
operativo.
El software del modo ncleo tiene acceso a los datos del sistema y al hardware. El software restante, que se encuentra en
modo usuario, tiene acceso limitado a los datos del sistema.
5/8
UTN FRC
Capa de abstraccin del hardware (HAL): asla el sistema operativo de las diferencias de hardware especficas
de cada plataforma. El SO da rdenes que pasan por la HAL y sta las transforma para que el hardware especfico
las entienda; y al revs, el hardware da rdenes a al SO a travs de la HAL para que el SO las entienda. As no hay
dependencia entre el SO y el hardware.
Microncleo (kernel): formado por los componentes ms usados y fundamentales del sistema operativo
(planificacin de hilos, cambios de contexto, gestin de excepciones e interrupciones y sincronizacin de
microprocesadores).
Controladores de dispositivos: incluye los drivers de dispositivos que traducen las llamadas a funciones de E/S
del usuario a peticiones a dispositivos hardware de E/S especficos.
Administrador de E/S: distribuye los controladores de dispositivos (drivers) entre los distintos procesos.
Administrador de objetos: crea, gestiona y elimina los objetos del Ejecutor de Windows.
Monitor de seguridad: impone la validacin de acceso y la generacin de reglas de auditora para los objetos
protegidos.
Administrador de procesos/hilos: crea y elimina objetos y sigue la pista de los objetos proceso e hilo.
Servicios de llamadas a procedimiento local (LPC): impone las relaciones cliente/servidor entre las aplicaciones
y los subsistemas del Ejecutor dentro de un mismo sistema, de forma similar al servicio de llamadas a procedimiento
remoto (RPC) utilizadas en el procesamiento distribuido.
Administrador de memoria virtual: traduce direcciones virtuales en el espacio de direcciones del proceso a
pginas fsicas en la memoria de la computadora.
Administrador de cach: mejora el rendimiento de las E/S sobre archivos.
Mdulos para grficos/ventanas: crea las interfaces de pantalla (ventanas) y gestiona los dispositivos grficos.
Procesos de usuario
Modelo cliente/servidor
Cada subsistema del entorno y el subsistema de servicios del Ejecutor se implementan como uno o ms procesos. Cada
proceso espera la solicitud de un cliente para uno de sus servicios. Un cliente (un programa de aplicacin u otro mdulo del
SO) solicita un servicio enviando un mensaje. El mensaje es encaminado a travs del Ejecutor hasta el servidor apropiado.
El servidor lleva a cabo la operacin solicitada y devuelve el resultado o la informacin de estado por medio de otro mensaje,
que se encamina a travs del Ejecutor hasta el cliente.
6/8
UTN FRC
Ventajas
UNIX
Historia
Descripcin
El hardware bsico est rodeado por el software del SO (el kernel). UNIX cuenta con varios servicios e interfaces de usuario
que se consideran parte del sistema (interprete de rdenes, conocido como shell, o un software de interfaz grfica). El nivel
exterior est formado por las aplicaciones de los usuarios y la interfaz de usuario del compilador C. Los programas de
usuario pueden invocar servicios del SO directamente o a travs de programas de biblioteca (libreras).
Linux
Historia
Linux aparece como variante de UNIX para la arquitectura del IBM PC.
La versin inicial fue escrita por Linus Torvals.
Torvals distribuy una primera versin de Linux en Internet en 1991. Desde entonces un gran nmero de personas
han contribuido al desarrollo de Linux.
Linux es libre y est disponible su cdigo fuente.
Linux es altamente modular y fcilmente configurable. Esto hace que sea fcil de obtener el rendimiento ptimo para
mltiples plataformas de hardware.
Estructura modular
Linux est organizado como un conjunto de bloques independientes denominados mdulos cargables, que tienen dos
caractersticas importantes:
Enlace dinmico: un mdulo del ncleo puede cargarse y enlazarse dentro del ncleo. Tambin, un mdulo puede
ser desenlazado y borrado de la memoria en cualquier momento. Esto facilita la tarea de configuracin y protege la
memoria del ncleo. En Linux, un programa de usuario o un usuario puede cargar y descargar explcitamente
mdulos del ncleo usando las rdenes insmod y rmmod.
7/8
UTN FRC
Mdulos apilables: los mdulos se organizan jerrquicamente, pudiendo definir dependencias entre mdulos. Esto
tiene dos ventajas:
1. El cdigo comn de un conjunto de mdulos similares puede ser trasladado a un nico mdulo, reduciendo
la duplicacin.
2. El ncleo puede asegurar que los mdulos necesarios estn presentes, despreocupndose de descargar
un mdulo del que dependen otros mdulos en ejecucin y cargando cualquier mdulo adicional necesario
cuando se cargue un mdulo nuevo.
8/8
UTN FRC
Nombre
Cuando un proceso crea un archivo, le asigna nombre. Cuando el proceso termina, el archivo sigue existiendo y otros
procesos pueden tener acceso a l mediante su nombre.
Las reglas exactas para nombrar archivos varan segn el sistema. Algunos sistemas de archivos distinguen entre
maysculas y minsculas (UNIX), pero otros no (MS-DOS).
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 general indica algo acerca del archivo. En algunos sistemas (como UNIX)
las extensiones de archivo son slo convenciones y el SO no vigila que se usen de alguna forma especfica. El nombre sirve
de recordatorio para el usuario en vez de servirle informacin a la computadora. En cambio, Windows tiene conocimiento
de las extensiones y les asigna un significado. A cada extensin se le asigna un programa dueo, haciendo que cuando
un usuario haga doble clic sobre el archivo, se abra el programa asociado a la extensin con el nombre de archivo como
parmetro (si haces doble clic en documento.doc se abre documento.doc en Word).
Estructuras de archivos
1. Sucesin no estructurada de bytes: el SO no sabe que contiene el archivo, ni le interesa; lo nico que ve son
bytes. Utilizado por UNIX y Windows. Ofrece mayor flexibilidad.
2. Sucesin de registros de longitud fija: cada registro tiene una estructura interna. La operacin de lectura devuelve
un registro y la operacin de escritura sobrescribe o anexa un registro.
3. rbol de registros: los registros pueden ser de diferente longitud. Cada registro posee un campo clave en una
posicin fija del registro. El rbol se ordena segn el campo clave con el objetivo de encontrar con rapidez una clave
en particular.
Tipos de archivos
1. Archivos normales: contienen informacin del usuario. Pueden ser de texto (ASCII) o binarios.
a. ASCII: consisten en lneas de texto. Pueden exhibirse e imprimirse tal cual, y pueden editarse con cualquier
editor de textos. Facilitan la conexin de la salida de un programa con la entrada de otro.
b. Binarios: poseen una estructura interna conocida por los programas que los usan. Solo pueden ser
visualizados por la aplicacin que los cre.
2. Directorios: archivos del sistema que sirven para mantener la estructura del sistema de archivos (contiene otros
archivos y directorios).
3. Archivos especiales de caracteres: tienen que ver con E/S y sirven para modelar dispositivos de E/S en serie
(flujos de caracteres, por ejemplo la impresora).
4. Archivos especiales de bloques: sirven para modelar discos (se leen y escriben bloques).
Mtodos de acceso
Acceso secuencial: el archivo se lee desde el principio hasta el final, no pudiendo realizar saltos o leerlos en otro
orden. El tiempo de acceso es lento (excepto si el archivo se encuentra en el principio). Usado en cintas magnticas.
Acceso aleatorio: los archivos pueden leerse en cualquier orden. Se puede acceder a ellos a travs de una clave
o ndice independientemente de su posicin, sin tener que pasar por los datos anteriores. Usado en discos.
1/9
UTN FRC
Atributos de un archivo
Atributo: informacin adicional de un archivo que agrega el SO, como la fecha y la hora de creacin, tamao, etc. Los
atributos varan segn el SO.
Directorios
Directorio: son archivos que contienen a otros archivos o directorios. Son carpetas.
Jerarqua de directorios
2/9
UTN FRC
Nombres de ruta
Ruta: son mecanismos para especificar nombres de archivos en un rbol de directorios.
Ruta absoluta: consiste en el camino que hay que seguir para llegar desde el directorio raz hasta el archivo.
Ruta relativa: consiste en el camino que hay que seguir desde el directorio de trabajo (directorio actual) hasta el
archivo.
3/9
UTN FRC
Implementacin de archivos
Asignacin continua: es el esquema de asignacin ms simple que consiste en almacenar cada archivo en una
serie contigua de bloques de disco. Usado en los CD y DVD.
Ventajas:
-
Fcil implementacin: para localizar los bloques de un archivo solo se necesitan dos nmeros, la direccin
del primer bloque y el nmero de bloques del archivo.
Buen desempeo en lectura: puede leerse todo el archivo del disco en una sola operacin. Slo necesita
un solo desplazamiento del brazo del disco (para el primer bloque).
Desventajas:
-
Fragmentacin del disco: cuando se elimina un archivo, sus bloques se liberan, dejando una serie de
bloques libres en el disco, resultado que el disco se componga de archivos y huecos.
Cuando se va a crear un archivo nuevo se hace necesario conocer su tamao final para recoger un hueco
del tamao correcto en el cual colocarlo. Este diseo es molesto para el usuario que no sabe cul va a ser
el tamao del archivo.
Asignacin por lista enlazada: consiste en mantener cada archivo como una lista enlazada de bloques de disco.
La primera palabra de cada bloque se usa como puntero al siguiente bloque, el resto del bloque es para datos.
Ventajas:
-
Pueden usarse todos los bloques del disco. No se pierde espacio por fragmentacin del disco.
Slo es necesario conocer la direccin del primer bloque.
Desventajas:
-
Acceso aleatorio lento. 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.
La cantidad de datos almacenados en un bloque no es potencia de 2 porque el puntero ocupo unos cuantos
bytes. Influye en la eficiencia de programas que leen y escriben en bloques de tamao de potencia de 2.
Asignacin por lista enlazada utilizando una tabla en la memoria: se eliminan las desventajas de la asignacin
por lista enlazada ya que se saca el apuntador de cada bloque de disco y se lo coloca en una tabla en la memoria
denominada tabla de asignacin de archivo (FAT, file allocation table).
Ventajas:
-
Desventajas:
Nodos-i: asocia 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. Dado el nodo-i, es posible hallar todos los bloques del archivo. Es
usado en Linux.
Ventaja:
-
4/9
UTN FRC
Desventaja:
-
Cada nodo-i tiene espacio para un nmero fijo de direccin de disco, haciendo que se llene cuando el archivo
crece. Para solucionar esto se reserva la ltima direccin de disco no para un bloque de datos, sino para
direccin de un bloque que contenga ms direcciones de bloques de disco. Para archivos ms grandes, una
de las direcciones en el nodo i es la direccin de un bloque en el disco llamado bloque simplemente
indirecto, el cual contiene direcciones en disco adicionales. Si con esto no es suficiente, otra direccin del
nodo i, el bloque doblemente indirecto contiene la direccin de un bloque que tiene una lista de bloques
simplemente indirectos, donde cada uno de estos apunta a unos centenares de bloques de datos. Si an
esto no basta, se puede utilizar un bloque triplemente indirecto.
Implementacin 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 hallar
los bloques de disco. Dependiendo del sistema, esta informacin puede ser la direccin de disco de todo el archivo (con
asignacin contigua), el nmero del primer bloque (ambos esquemas de lista enlazada) o el nmero del nodo-i. En todos los
casos, 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 archivos.
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 bloques de disco.
En los sistemas que usan Nodos-i, otra posibilidad es almacenar los atributos en los nodos-i, en lugar de en las entradas de
directorio (la entrada de directorio es ms corta: solo guarda nombre y nodo-i). Hasta ahora hemos supuesto que los archivos
tienen nombre cortos de longitud fija. Sin embargo, casi todos los SO 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. Una desventaja de este mtodo es que cuando se elimina un archivo queda en el directorio un
hueco de tamao variable (mismo caso de la asignacin continua), 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. Tiene la ventaja de que si se elimina una entrada siempre
cabr ah el siguiente archivo creado.
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 esa 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.
Directorios en CP/M: slo hay un directorio, lo nico que el sistema de archivos tiene que hacer para consultar un
nombre de archivo es buscarlo en el directorio. Una vez que encuentra la entrada, tambin tiene de inmediato los
nmeros de bloque en el disco, ya que estn almacenados ah mismo en la entrada, al igual que todos los atributos.
5/9
UTN FRC
Directorios en MS-DOS: los directorios tienen tamao variable, sus entradas son de 32 bytes de longitud fija y
contiene el nombre de archivo, los atributos y el nmero del primer bloque de disco, que se usa como ndice de una
tabla contenida en memoria (asignacin por lista enlazada con una tabla en memoria). Siguiendo la cadena, se
pueden encontrar todos los bloques.
Directorios en Windows 98: nombres de archivo ms largos y se introdujo FAT-32. Se adicionan cinco campos
nuevos donde estaban los 10 bytes desocupados. El campo NT sirve para asegurar la compatibilidad con Windows
NT. Los archivos posean dos nombres, uno largo para Windows NT y un nombre de 8 + 3 por compatibilidad. Se
puede acceder desde los dos nombres.
Directorios en UNIX: cada entrada de directorio contiene slo un nombre de archivo y su nmero de nodo-i. Toda
la informacin acerca del tipo, tamao, tiempos, propietario y bloques de disco est contenida en el nodo-i. Cuando
se abre un archivo, el sistema de archivos debe tomar el nombre que se le proporciona y localizar sus bloques de
disco. Lo primero que hace el sistema de archivos es localizar directorio raz. En UNIX su nodo-i est situado en un
lugar fijo del disco. La localizacin de un nodo-i una vez que se tiene su nmero es directa, ya que cada uno tiene
una posicin fija en el disco.
6/9
UTN FRC
Archivos compartidos
Un archivo compartido es aquel que aparece al mismo tiempo en diferentes directorios que pertenecen a usuarios distintos.
Si un archivo de un usuario A aparece en algn directorio de un usuario B, el archivo compartido se llama enlace (link). El
sistema de archivos deja de ser un rbol, es una grfica acclica dirigida.
Hay dos formas de enlazar archivos:
Enlace duro: los directorios que comparten un archivo, no poseen los bloques de disco, sino que apuntan al mismo
nodo-i que corresponde al archivo. Este es el esquema de UNIX.
Desventaja: si el propietario elimina el archivo y se limpia el nodo-i, algn directorio con un enlace a ese archivo,
apuntara a un nodo-i no vlido. Si el nodo-i se reasignara a otro archivo, el enlace apuntar a un archivo incorrecto.
Una solucin es eliminar el archivo original, pero mantener el nodo-i para el enlace, manteniendo la cuenta en 1.
Enlace simblico (accesos directos): el enlace se genera creando un archivo de tipo LINK en el directorio que
quiere crear el enlace. Este archivo slo contiene el nombre de ruta del archivo con el cual est enlazado, que es
utilizado para buscar el archivo original cuando se lo quiere leer.
Desventajas:
-
Cuando el dueo elimina el archivo original, este se destruye, quedando los archivos de enlace obsoletos,
ya que el sistema no lo va a poder localizar. Pasa algo similar cuando se mueve el archivo.
Necesitan un procesamiento adicional: leer la ruta, analizarla, seguirla, componente por componente hasta
llegar al nodo-i. Puede requerir muchos accesos a disco.
Se necesita un nodo-i adicional por cada enlace, y si el nombre de ruta es largo, se necesita otro bloque
adicional para almacenarla.
Ventaja: pueden servir para enlazar archivos por red, especificando la direccin de red de la mquina en la que est
el archivo.
Tamao de bloque
Una vez que se ha decidido almacenar archivos en bloques de tamao fijo, se debe decidir qu tamao deben tener los
bloques. Dada la forma como estn organizados los discos, el sector, la pista y el cilindro son candidatos para utilizarse
como unidad de asignacin. Tener una unidad de asignacin grande, como un cilindro, implica que cada archivo, incluso un
archivo de un byte, ocupar todo un cilindro, desperdiciando espacio. Por otro lado, el empleo de una unidad de asignacin
pequea implica que cada archivo consistir en muchos bloques. La lectura de cada bloque normalmente requiere una
bsqueda y un retardo rotacional, as que la lectura de un archivo que consta de muchos bloques pequeos ser lenta. El
tiempo en milisegundos requerido para leer un bloque de k bytes es la suma de los tiempos de bsqueda, retardo rotacional
y transferencia.
En resumen, un tamao de bloque grande tiene mejor tasa de transferencia pero desperdicia espacio; un tamao de bloque
pequeo aprovecha el espacio del almacenamiento, pero disminuye el desempeo.
Lista enlazada de bloques de disco: en la que cada bloque guarda tantos nmeros de bloques de disco como
quepan en l. Con bloques de 1 KB y nmeros de bloque de 32 bits, cada bloque de la lista libre contendr los
nmeros de 255 bloques libres (se necesita una ranura para el puntero al siguiente bloque).
7/9
UTN FRC
Slo es preciso mantener un bloque de punteros en la memoria principal. Cuando se crea un archivo tomas los
bloques que necesita del bloque de punteros. Cuando el bloque se agota, se lee del disco un nuevo bloque de
punteros. Cuando se borra un archivo, sus bloques se liberan y se aaden al bloque de punteros en memoria. Si
este bloque se llena, se escribe en el disco. Esto puede generar una cantidad innecesaria de operaciones de E/S
de disco (sobre todo los archivos temporales). Para evitar esto, se divide el bloque de punteros lleno.
Mapa de bits: un disco con n bloques requiere un mapa de bits con n bits. Los bloques libres se representan con
unos en el mapa y los bloques asignados con ceros (o viceversa).
El mapa de bits requiere menos espacio, ya que utiliza 1 bit por bloque y no 32 bits como la lista enlazada.
Slo si el disco est casi lleno el mtodo de la lista enlazada requerir menos bloques que el mapa de bits. Si hay suficiente
memoria principal para contener el mapa de bits, este mtodo es preferible. En cambio, si slo se puede dedicar un bloque
de memoria para seguir la pista a los bloques libres, y el disco est casi lleno, la lista enlazada puede ser mejor.
Descripcin
Reg.
Descripcin
Copia espejo
Informacin de seguridad
10
11
Extensiones
8/9
UTN FRC
Definicin de atributos
12
Directorio raz
13
14
Cargador de autoarranque
15
Registro 1: copia espejo por si uno de los primeros bloques se arruina alguna vez.
Registro 2: ac se asienta la informacin antes de realizar un cambio estructural, como agregar o eliminar un
directorio, en caso de que falle.
Registro 8: contiene una lista de bloques defectuosos para asegurarse de que nunca formen parte de un
archivo.
Registro 11: archivos diversos, como cuotas de disco, identificadores de objetos, ptos. de reanlisis, etc.
Cada registro de MFT consiste en un encabezado de registro seguido de una secuencia de pares (encabezado de atributo,
valor). El encabezado de registro contiene varios datos referidos al registro (nmero de validez, contador de referencias al
archivo, nmero real de bytes ocupados por el archivo, etc.). Despus del encabezado de registro viene el encabezado del
primer atributo seguido del valor del mismo, luego el encabezado del segundo seguido del valor del mismo, y as
sucesivamente. NTFS define 13 atributos que pueden estar en un registro MFT. Si un atributo es demasiado largo y no cabe
en el registro MFT, se lo coloca en otra parte del disco. A este tipo de atributo se le llama atributo no residente.
La informacin estndar contiene bits indicadores, marcas de hora, dueo del archivo, informacin de seguridad. El nombre
de archivo est en Unicode y es de longitud variable. El descriptor de seguridad es obsoleto. Esta informacin se coloca en
un archivo que es compartido por varios otros. La lista de atributos se usa en caso de que los atributos no entren en el
registro actual. El identificador de objeto da un nombre nico al archivo (para mantenimiento interno). El punto de reanlisis
sirve para montajes y enlaces simblicos. El nombre del volumen indica el nombre de este volumen. Informacin del volumen
indica la informacin de este volumen. La raz ndice se usa para directorios. La asignacin de ndice y el mapa de bits se
usan para directorios muy grandes. El flujo utilitario de registro se usa en el sistema de archivos cifrador ($LogFile).
Sin duda el atributo datos es el ms importante. Despus del encabezado viene una lista de direcciones de disco que indica
los bloques contenidos en el archivo, o en el caso de archivos, unos cuantos cientos de bytes. Para controlar los bloques de
disco, siempre que sea posible se asignan series de bloques consecutivos. Por ejemplo si el primer bloque lgico se coloca
en el bloque 20 del disco, el sistema tratara de colocar el segundo bloque lgico en el bloque 21 del disco, y as
sucesivamente.
Los bloques de un archivo se describen mediante una secuencia de registros, los cuales describen una serie de bloques
lgicamente contiguos. En un archivo sin huecos habr uno solo de estos registros. Cada registro se encabeza con el
desplazamiento del primer bloque dentro del archivo. Cada encabezado de registro va seguido de uno o ms pares (direccin
de disco, longitud). La direccin en disco es el desplazamiento del bloque de disco a partir del principio de su particin y la
longitud es el nmero de bloques que hay en la serie. Se pueden tener tantos pares como sea necesario.
En el caso de un archivo de n bloques, el nmero de series puede variar de 1 a n incluyendo a este ltimo. No existe un
lmite superior para el tamao de los archivos que pueden representase de esta manera. Si el archivo es demasiado grande
o est demasiado fragmentado y no cabe en un registro MFT, se usan dos o ms registros MFT. Si la cantidad de registros
MFT para un archivo es inmensamente grande de manera que todos sus ndices no caben en el registro base, la lista de
registros MFT de extensin se hace no residente (se almacena en disco y no en el registro). As podr crecer hasta el tamao
necesario.
9/9
UTN FRC
Estados
La principal responsabilidad del SO es controlar la ejecucin de los procesos, para lo cual hay que describir el
comportamiento que se querr que tengan los procesos.
Un proceso se crea como respuesta a una emisin de trabajo (nuevo trabajo por lotes).
Un proceso se crea cuando un nuevo usuario intenta conectarse (en entorno interactivo).
Un proceso se crea como parte de una aplicacin (por el SO).
Un proceso se crea tras la solicitud explcita de otro (por otro proceso, generacin de procesos. El proceso
generados se lo denomina proceso padre, y al generado proceso hijo).
En un trabajo por lotes se incluye la instruccin de detencin o se hace una llamada al SO.
En una aplicacin interactiva, es la accin del usuario la que indica cuando termina el proceso.
Un proceso puede ser eliminado por un proceso padre o cuando ste termine.
Tambin se puede terminar por una serie de fallos o errores.
1 / 16
UTN FRC
Ahora hay dos colas, una de Listos y una de Bloqueados. A medida que se admiten procesos en el sistema, se sitan en la
cola de Listos. Cuando llega la hora de que el SO escoja otro proceso para ejecutar, selecciona uno de la cola de Listos
(cola FIFO). Cuando se produce un suceso, todos los procesos de la cola Bloqueados que estn esperando a dicho suceso
se pasan a la cola de Listos. El SO debe recorrer toda la cola de Bloqueados, buscando aquellos procesos que esperan el
suceso, pudiendo haber cientos o incluso miles de procesos en dicha cola. Sera ms eficiente tener una cola para cada
suceso.
Si la expedicin de procesos est dictada por un esquema de prioridades, entonces es conveniente tener un cierto nmero
de colas de Listos, una para cada nivel de prioridad. El SO podr determinar fcilmente cul es el proceso de prioridad ms
alta que lleva ms tiempo esperando.
Transiciones
Procesos suspendidos
Hay una buena justificacin para agregar ms estados al modelo. Las actividades de E/S son mucho ms lentas que las de
clculo y, por lo tanto, el procesador en un sistema de monoprogramacin est la mayor parte del tiempo desocupado. 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. Incluso con multiprogramacin, el procesador podra estar desocupado la mayor parte del tiempo.
Una solucin es el intercambio, o sea, mover una parte del proceso o todo el proceso de la memoria principal al disco.
Cuando ninguno de los procesos en la memoria principal est en estado Listo, el SO pasa al disco uno de los procesos en
Bloqueado y lo lleva a una cola de Suspendidos. El SO trae entonces otro proceso de la cola de Suspendidos o acepta la
solicitud de creacin de un nuevo proceso. La ejecucin contina con el proceso recin llegado.
No obstante, el intercambio es una operacin de E/S, pero como la E/S con el disco es la E/S ms rpida de un sistema
(comparado con una impresora o una cinta) suele mejorar el rendimiento.
2 / 16
UTN FRC
Transiciones
Bloqueado Bloqueado y suspendido: si no hay procesos Listos, entonces al menos un proceso Bloqueado se
expulsa para dar cabida a otro proceso que no est Bloqueado.
Bloqueado y suspendido Listo y suspendido: se produce un suceso que estaba esperando en memoria
secundaria.
Listo y suspendido Listo: cuando no hay procesos Listos en memoria principal, el SO tendr que traer uno para
continuar la ejecucin.
Listo Listo y suspendido: puede ser necesario suspender un proceso Listo si sta es la nica forma de liberar
espacio en memoria principal. El SO puede suspender un proceso Listo de ms baja prioridad en lugar de uno
Bloqueado que sea de prioridad ms alta, si cree que el proceso Bloqueado pronto estar Listo.
Nuevo Listo y suspendido, Nuevo Listo: cuando se crea un nuevo proceso, se lo puede aadir a la cola de
Listos o a la de Listos y suspendidos. En el segundo caso puede deberse a poco espacio en memoria principal.
Bloqueado y suspendido Bloqueado: un proceso termina y se libera memoria; hay un proceso en Bloqueados
y suspendidos que tiene una prioridad mayor a la de cualquier proceso de Listos y suspendidos, as que el SO
supone que ocurrir el suceso que espera pronto.
Ejecucin Listo y suspendido: hay un proceso en Bloqueados y suspendidos de prioridad alta que se acaba
de desbloquear, para ello expulsa al proceso en ejecucin y lo suspende.
Varios Terminado: un proceso en cualquier estado puede pasar al estado Terminado.
Descripcin de procesos
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. Los SO organizan la informacin principalmente en cuatro categoras:
Tablas de memoria: se utiliza para seguir la pista de la memoria principal (real) y secundaria (virtual). Parte de la
memoria principal est reservada para uso del SO, el resto es para los procesos. Incluyen informacin como
asignacin de memoria principal y secundaria a los procesos, informacin de proteccin de regiones compartidas
(por los procesos) de memoria.
Tablas de E/S: utilizadas por los SO para administrar los dispositivos y canales de E/S, los cuales pueden estar
disponibles o asignados a un proceso en particular.
Tablas de archivos: ofrecen informacin sobre la existencia de los archivos, su posicin en la memoria secundaria,
su estado actual y otros atributos.
Tablas de procesos: sirve para administrar los procesos. Se genera un nmero para cada proceso, para poder
identificarlo. Estas tablas estn enlazadas o relacionadas, disponen de referencias cruzadas. La memoria, la E/S y
los archivos son administrados en nombre de los procesos, por lo que debe haber alguna referencia directa o
indirecta a estos recursos en las tablas de procesos.
UTN FRC
Control de procesos
Modos de ejecucin
La razn de usar dos modos, es porque es necesario proteger al SO y a las tablas importantes del mismo. Existe un bit en
la palabra del estado del programa (PSW) que indica al procesador el modo de ejecucin. Para cambiar el modo de ejecucin
se cambia el bit.
Gestin de procesos: creacin y terminacin, planificacin y expedicin de procesos, cambio de procesos, gestin
de BCP, sincronizacin de procesos, y soporte para la comunicacin entre ellos.
Gestin de memoria: asignacin de espacios de direcciones a los procesos, intercambio, gestin de pginas, etc.
Gestin de E/S: gestin de buffers, asignacin de canales de E/S y dispositivos a los procesos.
Funciones de soporte: tratamiento de interrupciones, contabilidad, supervisin.
Creacin de procesos
La creacin de un proceso incluye los siguientes pasos:
1. Asignar un nico identificador al nuevo proceso: se aade una nueva entrada a la tabla principal de procesos.
4 / 16
UTN FRC
2. Asignar espacio para el proceso: incluye todos los elementos de la imagen del proceso. Se debe asignar espacio
para el BCP.
3. Iniciar el BCP: la informacin del estado del procesador se inicia generalmente con todas las entradas en cero
excepto por el contador de programa y los punteros de pila del programa. La informacin de control del procesador
se inicia a partir de los valores estndares por omisin y los atributos que se han solicitado para el proceso.
4. Establecer los enlaces apropiados: por ejemplo, poner el nuevo proceso en la cola de Listos o Listos y
suspendidos.
5. Crear o ampliar otras estructuras de datos: por ejemplo, algn tipo de archivo de contabilidad para futuros
informes de rendimiento.
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: originada por un suceso externo e independiente del proceso en ejecucin. El control se transfiere a
un gestor de interrupciones quien se encarga del tipo de interrupcin ocurrida:
o Interrupcin de reloj: el SO determina si el proceso ha consumido el tiempo mximo permitido. Si esto pasa,
el proceso que se est ejecutando pasa a Listo y se debe expedir otro proceso.
o Interrupcin de E/S: el SO determina que accin de E/S se ha producido. Si es un suceso que muchos
procesos estaban esperando, se los pasa a Listo, luego el SO debe decidir si reanudar la ejecucin o
ejecutar uno de los procesos Listos de mayor prioridad.
o Fallo de memoria: referencias a memoria virtual de una palabra que no est en memoria principal. El proceso
que cometi el fallo pasa a estar Bloqueado hasta que se cargue el bloque en memoria, donde cambia a
Listo.
Cepo: condicin de error o excepcin generada dentro del proceso en ejecucin. Si es un error fatal, el proceso
pasa a Terminado. Si no es fatal, depende del error y del SO, puede intentar una recuperacin o informar al usuario.
Llamada al supervisor: el uso de una llamada al sistema hace que el proceso de usuario pase al estado Bloqueado
y el control pase al SO.
Procesos e hilos
Hilo: conjunto de instrucciones que pertenecen a un proceso. Es la unidad de procesamiento ms pequea que puede ser
planificada por un SO.
Proceso: conjunto de uno o ms hilos y los recursos del sistema asociados (memoria, datos, archivos abiertos y
dispositivos). Es un programa en ejecucin, una tarea, controlado y ejecutado por el procesador.
Elementos de un proceso
UTN FRC
Se tarda mucho menos tiempo en crear un nuevo hilo en un proceso existente que crear un nuevo proceso.
Se tarda mucho menos tiempo en terminar un hilo que un proceso.
Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso.
Aumenta la eficiencia de la comunicacin entre programas en ejecucin. Los hilos de un mismo proceso comparten
memoria y archivos, pueden comunicarse entre s sin invocar al ncleo.
Es ms eficiente relacionar un conjunto de hilos que un conjunto de procesos.
Ejemplo: servidor de archivos, se crea un nuevo hilo por cada solicitud.
tiles en monoprocesadores para simplificar programas que llevan a cabo diferentes funciones.
Estados de un hilo
Los principales estados de un hilo son: Ejecucin, Listo y Bloqueado. No hay estado de Suspensin ya que esos estados
pertenecen al concepto de procesos. Hay cuatro operaciones bsicas relacionadas con el cambio de estado de hilos.
Creacin: cuando se crea un nuevo proceso, se crea un hilo para ese proceso. Luego, un hilo de un proceso puede
crear otros hilos dentro del mismo proceso.
Bloqueo: un hilo espera por un suceso.
Desbloqueo: se produce el suceso por el que un hilo se bloque.
Terminacin: cuando un hilo finaliza, se liberan su contexto y sus pilas.
Implementacin de hilos
Hilos a nivel de usuario (ULT, User Level Thread): todo el trabajo de gestin de hilos lo realiza la aplicacin y el
ncleo no es consciente de la existencia de hilos. Es posible programar cualquier aplicacin como multihilo mediante
una biblioteca de hilos, la cual contiene el cdigo para: crear y destruir hilos, intercambiar mensajes y datos entre
hilos, planificar la ejecucin de hilos y salvar y restaurar el contexto de los hilos.
Todas las operaciones se llevan a cabo en el espacio de usuario y dentro de un mismo proceso.
6 / 16
UTN FRC
Ventajas:
-
El intercambio de hilos no necesita los privilegios del modo ncleo. Se evita la sobrecarga de dos cambios de
modo (de usuario a ncleo, y de ncleo a usuario).
Se puede realizar una planificacin especfica para una aplicacin si afectar a la planificacin del SO.
Se pueden ejecutar en cualquier SO.
Desventajas:
-
Cuando se ejecuta una llamada al SO, se bloquea el hilo en ejecucin y todos los hilos del proceso.
No aprovechan las ventajas de los multiprocesadores. El ncleo asigna un proceso a un solo procesador cada
vez, tenindose que ejecutar un hilo de cada proceso en cada instante.
Hilos a nivel de ncleo (KLT, Kernel Level Thread): todo el trabajo de gestin de hilos lo realiza el ncleo.
Ejemplos: Windows 2000, Linux y OS/2.
El ncleo realiza la planificacin en funcin de los hilos.
Ventajas:
-
El ncleo puede planificar simultneamente mltiples hilos del mismo proceso en mltiples procesadores.
Si se bloquea uno de los hilos de un proceso, el ncleo puede planificar otro hilo del mismo proceso.
Desventaja: el paso del control de un hilo a otro dentro del mismo proceso necesita un cambio de modo a modo de
ncleo.
Combinacin: este enfoque puede combinar las ventajas de ULT y KLT. Ejemplo: Solaris.
Arquitecturas SMP
Para la arquitectura de SMP hay cuatro categoras:
Flujo de instruccin simple/dato simple (SISD): un nico procesador ejecuta un nico flujo de instrucciones con
datos en una nica memoria.
Flujo de instruccin simple/datos mltiples (SIMD): una nica instruccin que se ejecute sobre un conjunto de
datos diferentes por medio de distintos procesadores.
Flujo de instrucciones mltiples/datos simples (MISD): se transmite una secuencia de datos a un conjunto de
procesadores, donde cada uno ejecuta una instruccin de la secuencia. No se ha implementado nunca.
7 / 16
UTN FRC
Microncleo
Microncleo: es un ncleo pequeo del SO que proporciona las bases para ampliaciones modulares.
SO monolticos: cualquier procedimiento poda llamar a cualquier otro. Esta falta de estructura se volva
insostenible cuando el SO alcanz proporciones considerables.
SO por capas: las funciones se organizaban jerrquicamente y slo se produce interaccin entre capas adyacentes.
El problema es que realizar grandes modificaciones en una capa puede tener numerosos efectos en el cdigo de
las capas adyacentes (por encima y por debajo).
Arquitectura microncleo
La filosofa en la que se basa el microncleo es que slo las funciones esenciales del ncleo del SO deben permanecer en
el ncleo. Las aplicaciones y los servicios menos esenciales se construyen sobre el microncleo y se ejecutan en modo
usuario. Muchos servicios que antes formaban parte del SO, ahora son subsistemas externos que interactan con el ncleo
y con otros subsistemas (controladores, gestores de memoria virtual, sistemas de archivos, sistemas de ventanas,
seguridad, etc.)
Los componentes externos al microncleo se implementan como procesos servidores; estos interactan uno con otro sobre
una base comn, a travs de mensajes distribuidos a travs del microncleo. Entonces, el microncleo funciona como
distribuidor de mensajes, validndolos, pasndolos entre componentes, y otorgando el acceso al hardware. Tambin acta
como protector de mensajes, evitando el intercambio de mensajes cuando no est permitido.
8 / 16
UTN FRC
Diseo de microncleo
Un microncleo de incluir aquellas funciones que dependen directamente del hardware y cuya funcionalidad es necesaria
para dar soporte a las aplicaciones y servidores que ejecutan en modo ncleo. Se engloban en tres categoras: gestin de
memoria a bajo nivel, comunicacin entre procesos, y gestin de interrupciones y E/S.
Hilos en Linux
Cuando dos procesos comparten la misma memoria virtual, operan como hilos dentro de un nico proceso, pero Linux no
diferencia entre hilo y proceso.
Dos procesos no pueden estar al mismo tiempo dentro de sus regiones crticas.
No pueden hacerse suposiciones sobre las velocidades ni el nmero de las CPUs.
Ningn proceso que se est ejecutando fuera de su regin crtica puede bloquear a otro proceso.
Ningn proceso deber tener que esperar de manera indefinida para entrar en su regin crtica.
Desactivacin 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 cierre (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 (mismo caso del spooler).
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 crtica 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 entrar.
Instruccin 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).
9 / 16
UTN FRC
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.
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. Este enfoque desperdicia CPU y puede tener efectos inesperados.
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.
Semforos: consiste en una variable entera para contar el nmero de llamadas wakeup. Son un tipo de variable a
la que se le aplican dos operaciones, down y up. La operacin down, 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 operaciones son atmicas, o sea que se garantiza que una vez iniciada una operacin de semforo, ningn
otro proceso podr tener acceso al semforo antes de que la operacin haya terminado o se haya bloqueado.
10 / 16
UTN FRC
Monitores: un monitor 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. Son una construccin del lenguaje
de programacin.
Transferencia de mensajes: este mtodo utiliza dos primitivas, send y receive, que son llamadas al sistema, no
construcciones del lenguaje. Especficamente, cada una se estructura:
o send(destino, mensaje): enva un mensaje a un destino dado.
o 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.
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 un 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. Cuando el emisor y
el receptor estn en la misma mquina, el desempeo es importante, en este caso la transferencia de mensajes
entre procesos es ms lenta que una operacin de semforo o entrar en un monitor.
En el problema del productor-consumidor se usan N mensajes (que seran N ranuras en el bfer de memoria
compartida). Lo primero que hace el consumidor es enviar N mensajes vacos al productor. Cada vez que ste tiene
que entregar un mensaje al consumidor, toma un mensaje vaco y devuelve uno lleno.
Si el productor trabaja ms rpido que el consumidor, todos los mensajes se llenarn y estarn esperando al
consumidor, el productor se bloquear, en espera de un mensaje vaco.
Si el consumidor es ms rpido, todos los mensajes estarn vacos en espera de que el productor los llene, el
consumidor se bloquear esperando un mensaje lleno.
11 / 16
UTN FRC
cuando se crea un proceso, pues hay que decidir si se ejecutara el proceso padre o el hijo.
cuando un proceso termina se deber escoger otro del conjunto de procesos Listos. Si no hay procesos Listos se
ejecuta un proceso inactivo del sistema.
cuando un proceso se bloquea por E/S, un semforo u otro motivo, el motivo del bloqueo puede afectar la decisin.
cuando se presenta una interrupcin de E/S, si vino de un dispositivo que termin su tarea, hay que elegir entre
ejecutar ese proceso o el que se estaba ejecutando cuando se recibi la interrupcin.
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.
Algoritmo no expropiativo: escoge el proceso que se ejecutar y luego simplemente le permite ejecutarse hasta
que se bloquee o hasta que ceda la CPU de forma voluntaria. Aunque ese proceso se ejecute durante hora, no se
lo suspender por la fuerza. No se toman decisiones de calendarizacin, luego de que la interrupcin sea tratada
siempre se reanuda el proceso que se estaba ejecutando antes.
Algoritmo expropiativo: escoge un proceso y le permite ejecutarse durante un tiempo establecido. Si al trmino
de este tiempo el proceso contina en ejecucin, se le suspende y el calendarizador escoge otro proceso para que
se ejecute (si hay disponible). Este tipo de calendarizacin requiere que haya una interrupcin de reloj al trmino
del intervalo de tiempo para que el calendarizador pueda recuperar el control de la CPU.
Por lotes: suelen ser aceptables los algoritmos no expropiativos, o los expropiativos con intervalos de tiempo largos
para cada proceso (no hay usuarios impacientes esperando que el sistema responda con rapidez). Este enfoque
reduce la conmutacin de procesos y, por lo tanto, mejora el desempeo.
Interactivo: la expropiacin es indispensable para evitar que un proceso acapare la CPU y niegue servicio a otros.
Tiempo real: a veces no es necesaria la expropiacin, porque los procesos saben que tal vez no se ejecuten durante
mucho tiempo y, por lo general, realizan su trabajo y se bloquean rpido. A diferencia de los sistemas interactivos,
ejecutan programas cuyo fin es apoyar a la aplicacin actual.
UTN FRC
Primero en llegar, primero en ser atendido (FCFS, First Come, First Served o FIFO): este algoritmo es el ms
sencillo de todos y es no expropiativo. 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. La desventaja es que puede hacer uso ineficiente de la CPU.
Trabajo ms corto primero (SJF, Simple Job First): es un 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, Short Remaining Time First): esta es una versin
expropiativa de la estrategia anterior. Siempre se escoge el proceso en base al tiempo que falta para que termine
de ejecutarse. 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.
Tambin necesita conocer con antelacin los tiempos de ejecucin.
Por turno circular (Round Robin): es uno de los mtodos ms antiguos, sencillos y equitativos muy utilizado. A
cada proceso se le asigna un intervalo de tiempo, llamado cuanto (quantum), durante el que se le permitir
ejecutarse. Si al termino del cuanto el proceso se sigue ejecutando, se le expropia la CPU asignndosela a otro
proceso. 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. Un aspecto importante es la
magnitud del cuanto: 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.
Por prioridades: a cada proceso se le asigna una prioridad, y el proceso listo
que tenga mayor prioridad es el que se ejecuta. Para evitar que los procesos
con prioridades altas se ejecuten de manera indefinida, el calendarizador
podra disminuir la prioridad del proceso que se est ejecutando. Otra
alternativa, es asignar a cada proceso un cuanto de tiempo mximo en el cual
pueda ejecutarse, y una vez cumplido el tiempo, se ejecutar el proceso con la siguiente prioridad ms alta. Las
prioridades pueden asignarse estticamente (por el usuario) o dinmicamente (por el SO). En muchos casos en
conveniente agrupar los procesos en clases de prioridad y utilizar calendarizacin por prioridades entre las clases,
pero Round Robin dentro de cada clase.
Colas mltiples: se establecen clases de prioridad. Los procesos de la clase ms alta se ejecutan durante un
cuanto. Los procesos de la siguiente clase ms alta se ejecutaban en dos cuantos. Los procesos de la siguiente
clase se ejecutaban durante cuatro cuantos, y as sucesivamente. Cada vez que un proceso se gastaba todos los
cuantos asignados, se le bajaba a la clase inmediata inferior.
Calendarizacin garantizada: consiste en hacer promesas reales en cuanto al desempeo y luego cumplirlas. Si
hay n usuarios, cada uno recibe 1/n de la capacidad de la CPU, lo mismo pasa con procesos en un sistema
13 / 16
UTN FRC
monousuario. 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 desde la 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. Un cociente de 0.5 significa que utiliz la mitad del tiempo prometido, y uno de
2.0 significa que utiliz el doble.
Planificacin de dos niveles: los esquemas analizados hasta ahora suponen que todos los procesos ejecutables
estn en la memoria principal. Si la memoria principal es insuficiente, ocurrir lo siguiente:
- Habr procesos ejecutables que se mantengan en disco.
- Habr importantes implicaciones para la planificacin, tales como las siguientes:
Traer un proceso del disco demanda mucho tiempo.
Es ms eficiente el intercambio de los procesos con un planificador de dos niveles.
El esquema operativo de un planificador de dos niveles es como sigue:
1. Se carga en la memoria principal cierto subconjunto de los procesos ejecutables.
2. El planificador se restringe a ellos durante cierto tiempo.
3. Peridicamente se llama a un planificador de nivel superior para efectuar las siguientes tareas:
- Eliminar de la memoria los procesos que hayan permanecido en ella el tiempo suficiente.
- Cargar a memoria los procesos que hayan estado en disco demasiado tiempo.
4. El planificador de nivel inferior se restringe de nuevo a los procesos ejecutables que se encuentren en la
memoria.
5. El planificador de nivel superior se encarga de desplazar los procesos de memoria a disco y viceversa.
Los criterios que podra utilizar el planificador de nivel superior para tomar sus decisiones son los que se indican a
continuacin:
-
Recursos
Recurso: es cualquier cosa que un solo proceso puede usar en un instante dado. Puede ser un dispositivo de hardware o
de informacin (registros de una base de datos por ejemplo).
Hay dos tipos de recursos:
Recurso expropiable: recurso que se le quita al proceso que lo tiene sin causar daos. Ejemplo: el uso de la
memoria.
Recurso no expropiable: recurso que no se lo puede quitar del proceso que lo tiene sin hacer que el cmputo falle.
Ejemplo: la grabacin de un CD. Generalmente, es donde intervienen los bloqueos irreversibles.
14 / 16
UTN FRC
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 circular 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.
Ignorar el problema: conocido como algoritmo del avestruz. Usado por UNIX y Windows.
Deteccin y recuperacin: se detectan los bloqueos irreversibles y se toman medidas para recuperarse.
Evitacin dinmica: tratan de evitarse asignando cuidadosamente los recursos.
Prevencin: se anula una de las cuatro condiciones necesarias para que haya un bloqueo irreversible.
Deteccin y recuperacin
Algoritmos de deteccin de bloqueos irreversibles:
Con un solo recurso de cada tipo: solo hay un recurso de cada tipo (una impresora, una grabadora, un disco,
etc.). Se construye un grafo de recursos, si contiene uno o ms ciclos, quiere decir que hay un bloque irreversible.
Con mltiples recursos de cada tipo: utiliza matrices y comparacin entre vectores para detectar bloqueos
irreversibles. A medida que algoritmo avanza, se van marcando los procesos para indicar que pueden terminar y,
por lo tanto, que no han cado en un bloqueo irreversible. Cuando el algoritmo finaliza, todos los procesos que no
estn marcados habrn cado en un bloqueo irreversible.
Tcnicas de recuperacin:
Recuperacin mediante expropiacin: arrebatarle de manera temporal un recurso a su actual poseedor y drselo
a otro proceso. Es difcil o imposible.
Recuperacin mediante reversin (Rollback): los procesos pasan por puntos de verificacin peridicamente. En
estos puntos, el estado de un proceso (la imagen de memoria y el estado de los recursos, es decir, si estn
asignados o no a dicho proceso) se graban en un archivo. Cuando se detecta un bloqueo irreversible, un proceso
que tiene un recurso solicitado se revierte hasta un momento anterior a la adquisicin del recurso, iniciando uno de
sus puntos de verificacin previos.
Recuperacin por eliminacin de procesos: es la forma ms burda, pero eficaz. Consiste en eliminar uno o ms
procesos. Se elimina un proceso del ciclo, y si esto no ayuda, se repite hasta romper el ciclo. Una alternativa, podra
eliminarse un proceso fuera del ciclo para liberar sus recursos. El proceso a eliminar se escoge con mucho cuidado
porque est reteniendo recursos que algn proceso del ciclo necesita.
Atacar la condicin de exclusin mutua: hacer que los recursos no sean exclusivos. Una opcin es hacer spooling
(como la impresora, donde el demonio de impresin es el nico proceso que puede acceder a la impresora y nunca
solicita otros recursos), pero no todos los dispositivos se pueden manejar con esta tcnica. Pero, da la idea de evitar
asignar recursos si no es necesario, y tratar de asegurarse que el nmero de procesos que van a solicitar un recurso
sea el mnimo posible.
15 / 16
UTN FRC
Atacar la condicin de retener y esperar: evitar que los procesos que tiene recursos esperen cuando traten de
adquirir ms recursos. Para ello, se exige que todos los procesos soliciten todos sus recursos antes de comenzar a
trabajar. Si todo est disponible, se le asignar los recursos que necesite hasta terminar. Si uno o ms recursos
estn ocupados, no se asignar ningn recurso y el proceso tendr que esperar. Ineficiente, porque muchos
procesos no saben cuntos recursos necesitarn, adems no se har uso ptimo de los recursos.
Atacar la condicin de no expropiacin: expropiarle un recurso a un proceso, muchas veces es muy poco
prometedor. Es difcil o imposible.
Atacar la condicin de espera circular: hay varias formas: una forma sera simplemente tener una regla de que
cualquier proceso tiene derecho tan slo a un recurso en todo momento. Si necesita un segundo recurso, tendr
que liberar el primero (es imposible para un proceso que copia un archivo grande de una cinta a una impresora). La
otra forma es con una numeracin global de todos los recursos. Los recursos pueden solicitar los recursos que
quieran pero siempre en orden numrico (no puede pedir el recurso 3, y luego el 1). La desventaja es que es casi
imposible encontrar un ordenamiento que satisfaga a todos.
Inanicin
Es un problema relacionado con los sistemas multitarea, donde a un proceso o un hilo de ejecucin se le deniega siempre
el acceso a un recurso compartido. Sin este recurso, la tarea a ejecutar no puede ser nunca finalizada.
La inanicin es una situacin similar al interbloqueo, pero las causas son diferentes. En el interbloqueo, dos procesos o dos
hilos de ejecucin llegan a un punto muerto cuando cada uno de ellos necesita un recurso que es ocupado por el otro. En
cambio, en este caso, uno o ms procesos estn esperando recursos ocupados por otros procesos que no se encuentran
necesariamente en ningn punto muerto.
La utilizacin de prioridades en muchos SO multitarea podra causar que procesos de alta prioridad estuvieran ejecutndose
siempre y no permitieran la ejecucin de procesos de baja prioridad, causando inanicin en estos.
16 / 16
UTN FRC
Estrategias de administracin
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. Se ejecuta un solo proceso a la vez.
Reubicacin y proteccin
La multiprogramacin introduce dos problemas: reubicacin y proteccin. Distintos trabajos se ejecutan en distintas
direcciones. Cuando se enlaza un programa, el enlazador necesita saber en qu direccin de memoria arrancar el
programa. Esto es el problema de la reubicacin.
Ejemplo (ver imagen): suponiendo que la primera instruccin llama a un procedimiento en la direccin absoluta 100, si se carga en la
particin 1, esa instruccin saltar a la direccin absoluta 100, que est dentro del SO. Lo que se necesita es una llamada a 100K + 100.
Una posible solucin es modificar la instruccin en el momento en que el programa se carga en la memoria. Si se carga en la
particin 1, se suman 100K a cada una de las direcciones, se carga en la particin 2, se suman 200K, y as sucesivamente.
La reubicacin sobre la carga no resuelve el problema de la proteccin. En los SO multiusuario es indeseable dejar que los
procesos lean y escriban en la memoria perteneciente a otros usuarios.
Una solucin a los dos problemas, consiste en equipar a la mquina con dos registros especiales de hardware, llamados
base y lmite. Cuando se calendariza un proceso, el registro base se carga con la direccin donde comienza su particin, y
el registro lmite se carga con la longitud de la particin. Cuando se genera una direccin de memoria, se suma
automticamente el registro base, y con el registro lmite se cuida de no acceder a memoria fuera de la particin actual.
1/7
UTN FRC
La desventaja es tener que hacer una suma y una comparacin cada vez que se referencia la memoria.
Administracin de memoria
A veces no hay espacio suficiente en memoria principal para contener todos los procesos activos, as que los procesos
excedentes se mantienen en disco y traerlos a la memoria en forma dinmica para que se ejecuten.
Pueden usarse dos enfoques para la administracin de memoria:
Intercambio (swapping): consiste en traer a la memoria un proceso entero, ejecutarlo durante un rato y volver a
guardarlo en el disco.
Memoria virtual: permite que los programas se ejecuten aunque slo una parte de ellos est en memoria.
Intercambio (swapping)
Particiones variables.
Administracin de memoria con mapa de bits.
Administracin de memoria con listas enlazadas.
Particiones variables
A diferencia de las particiones fijas, el nmero, ubicacin y tamao de las particiones varan en forma dinmica conforme
los procesos llegan y se van. Las particiones se adaptan al tamao de los procesos. Esto mejora el aprovechamiento de la
memoria pero complica la asignacin y liberacin, y su control.
Cuando el intercambio crea muchos huecos en memoria, es posible combinarlos en uno ms grande, a esto se lo denomina
compactacin de memoria. Lo malo es que requiere mucho CPU.
La asignacin de memoria a un proceso es sencilla cuando los procesos se crean con un tamao fijo. Si los procesos pueden
crecer se presentan problemas. Si hay un hueco adyacente al proceso, se le podr asignar y el proceso podr crecer all. Si
est adyacente a otro proceso, el proceso que crece tendr que pasarse a otro hueco de la memoria donde pueda crecer o
realizar un intercambio a disco de otros procesos para hacerle lugar en memoria.
Desventajas:
-
2/7
UTN FRC
Pueden usarse varios algoritmos para la asignacin de memoria, dando por hecho que el administrador sabe cuanta
memoria debe asignar:
Primer ajuste: 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 (excepto que sea exacto). Este algoritmo es rpido porque la bsqueda es lo ms corta posible.
Siguiente ajuste: funcionamiento similar al del primer ajuste, slo que el algoritmo recuerda en qu punto de la lista
se qued la ltima vez que encontr un hueco apropiado. La siguiente vez que tenga que buscar un hueco, inicia
desde ese punto y no desde el principio. Es ms lento que el del primer ajuste.
Mejor ajuste: se explora toda la lista y se escoge el hueco ms pequeo que alcance. Es ms lento que el del
primer ajuste porque recorre toda la lista y desperdicia ms memoria que el primer ajuste y el siguiente ajuste porque
satura la memoria de pequeos huecos que no sirven para nada.
Peor ajuste: asegura de escoger el hueco ms grande disponible, de modo que el hueco restante sea lo bastante
grande como para ser til. Las simulaciones demuestran que no es muy buena idea.
Ajuste rpido: 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 4 KB, el segundo un apuntador a una lista de huecos de 8 KB, etc. Los de 21KB se podran meter con
los de 20 KB o una lista con tamaos irregulares. 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 para los huecos,
enfocndose entonces en inspeccionar huecos y no procesos. La desventaja es que la asignacin es ms compleja y la
liberacin de memoria es ms lenta (quitar de la lista de procesos e insertar en la lista de huecos).
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. Mientras un programa espera que traiga del disco una parte de s
mismo, est esperando E/S y no puede ejecutarse, as que la CPU puede ejecutar otro proceso. Hay dos tcnicas:
Paginacin.
Segmentacin.
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 (es un intercambio), 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.
3/7
UTN FRC
Los siguientes 12 bits indican un desplazamiento u offset, por lo que si se tienen marcos de pgina de 4 KB, estos
12 bits se utilizan para direccionar los 4096 bytes de cada marco.
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 nmero de
marco de pgina es el resultado.
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. 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. La
desventaja es que requiere una o ms referencias a memoria.
Tablas de pginas multinivel: 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, las que no se necesitan no debern tenerse en ella.
Cuando se presenta una direccin virtual a la MMU, sta extrae un valor que usa como ndice para consultar la tabla de
pginas de primer nivel. La entrada a la que se llega al consultar la tabla de pginas de primer nivel, contiene la direccin
del nmero de marcos de pgina donde est almacenada una tabla de pginas de segundo nivel (dos niveles).
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:
UTN FRC
el acceso no viola los bits de proteccin, el nmero de marco de pgina se toma directo del TLB, sin recurrir a la tabla 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.
Algoritmo ptimo de reemplazo de pgina: 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 de reemplazo de pginas no usadas recientemente (NRU, Not Recently Used): se asocia a cada
pgina 2 bits de estado, el bit R se enciende cada vez que se hace referencia a la pgina (para leer o escribir). El
bit M se enciende cada vez que se escribe en la pgina (es decir se modifica). Cuando se presenta un fallo de
pgina, el SO examina todas las pginas y las divide en 4 categoras con base en los valores actuales de sus bits
R y M: 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.
Algoritmo de reemplazo de pginas de primero en entrar, primero en salir (FIFO): el SO mantiene una lista de
todas las pginas que estn actualmente en la memoria con la ms antigua al principio de la lista, y la ms nueva
la final. Al presentarse un fallo de pgina, se desaloja la pgina que esta al principio de la lista y la nueva se anexa
al final. La desventaja es que puede desalojar una pgina que se usa mucho; se soluciona con el siguiente.
Algoritmo de reemplazo de pginas de segunda oportunidad: es una modificacin del FIFO, se examina el bit
R de la pgina ms antigua. Si es 0, la pgina no se usa mucho, por lo tanto es reemplazada de inmediato. Si es 1,
se apaga, la pgina se coloca al final de la lista de pginas y su tiempo de carga se actualiza como si acabara de
llegar a la memoria. No es tan eficiente porque cambia constantemente las pginas de su lista.
Algoritmo de reemplazo de pginas 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
una posicin. Si R es 1, se cambia a 0 y la manecilla se adelanta a la siguiente pgina, repitiendo el proceso hasta
encontrar una pgina con R = 0. Es como el de segunda oportunidad pero diferente implementacin.
Algoritmo de reemplazo de pginas menos recientemente usada (LRU, Least Recently Used): cuando se
presenta un fallo de pgina, se desaloja la pgina que tiene ms tiempo sin usarse.
5/7
UTN FRC
La pregunta es qu pasa cuando un proceso se vuelve a traer de la memoria? El proceso causar fallos de pginas hasta
que se haya cargado su conjunto de trabajo. El problema es cuando se producen muchos fallos de pginas, ya que se hace
lenta la ejecucin y desperdicia tiempo de CPU.
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. O sea, que lleva el registro del conjunto de
trabajo de los procesos y garantiza su prepaginacin reduciendo los fallos de pgina.
Algoritmos locales: equivalen a asignar una fraccin fija de la memoria a cada proceso, entonces si el proceso
solicita una pgina nueva, deber ser reemplazada por una sus pginas en memoria.
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 del 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.
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 llenar 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
Si las pginas son muy chicas, implica que los programas van a necesitar muchas y, por lo tanto, una tabla de
pginas ms grande. Las transferencias entre la memoria y el disco suelen efectuarse en unidades de pginas, y
casi todo el tiempo que tardan se invierte en el movimiento del brazo y retardo rotacional, por lo que transferir
pginas pequeas requiere casi el mismo tiempo que transferir una grande.
Aspectos de implementacin
Cerradura de pginas en memoria: que no se eliminen de la memoria pginas que estn realizando operaciones
de E/S.
Almacenamiento de respaldo: se reserva un espacio en disco para el intercambio de pginas. Es el rea de
intercambio o Swap.
Demonios de paginacin: proceso que garantiza la existencia de suficientes marcos de pgina libres. Duerme, se
despierta, ejecuta un algoritmo de reemplazo de pginas y se duerme nuevamente. Detecta si la pgina se modific
y establece M=1.
Segmentacin
Consiste en proporcionar a la mquina varios espacios de direcciones independientes por completo, llamados segmentos.
Cada segmento consta de una sucesin lineal de direcciones, desde 0 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.
Ms fcil compartir y proteger la informacin (un segmento podra ser de slo ejecucin, prohibiendo la lectura y
escritura).
Separa los datos de los programas.
6/7
UTN FRC
7/7
UTN FRC
Clases de interrupciones
De programa: generadas por alguna condicin que se produce como resultado de la ejecucin de una instruccin
(divisin por cero, desbordamiento, etc.).
De reloj: generadas por un reloj interno del procesador.
De E/S: generadas por el controlador de E/S (para indicar que terminaron operaciones de E/S o errores).
Por fallo del hardware: generadas por fallos tales como un corte de energa o un error de paridad en memoria.
UTN FRC
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 procesa la interrupcin examinando el estado de la operacin de E/S o al
evento que caus la interrupcin.
8. Cuando se completa el tratamiento de la interrupcin, se recuperan 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 (se contina con el programa interrumpido).
Interrupciones mltiples
Hay dos enfoques para tratar las interrupciones mltiples:
Tratamiento secuencial: consiste en inhabilitar las interrupciones mientras se est procesando una. Una
interrupcin inhabilitada quiere decir que el procesador ignorar la seal de interrupcin, que quedar pendiente y
ser comprobada por el procesador despus de que ste habilite las interrupciones. La limitacin de este enfoque
es que no tiene en cuenta las prioridades relativas o necesidades crticas de tiempo.
Definicin de prioridades: consiste en definir prioridades para las interrupciones y permitir que una interrupcin de
una prioridad ms alta puede interrumpir a la rutina de tratamiento de una interrupcin de prioridad ms baja.
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 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. Cuando un programa es interrumpido y se transfiere el control a la rutina de tratamiento, una vez
que sta haya terminado, puede que no se devuelva el control inmediatamente al programa que estaba en ejecucin al
momento de la interrupcin, en cambio, el control puede transferirse a algn otro programa pendiente que tenga mayor
prioridad.
Dispositivos de Entrada/Salida
Tipos de dispositivos
Los dispositivos externos pueden clasificarse en tres categoras:
Dispositivos legibles por los humanos: apropiados para la comunicacin con el usuario. Por ejemplo se pueden
incluir los terminales de video, que constan de un teclado, pantalla, etc. Manejan flujos de caracteres.
Dispositivos legibles por la mquina: adecuados para comunicarse con equipos electrnicos, como discos,
unidades de cinta, entre otros. Manejan bloques de datos.
Dispositivos de comunicaciones: apropiados para comunicarse con dispositivos lejanos. Por ejemplo un modem.
Funcionamiento
1.
2.
3.
4.
5.
UTN FRC
E/S programada
Cuando el procesador est ejecutando un programa y encuentra una instruccin de E/S, ejecuta dicha instruccin, enviando
una orden al mdulo apropiado de E/S. El mdulo llevar a cabo la accin requerida y activar los bits apropiados del registro
de estado de E/S., pero no avisa al procesador, ni lo interrumpe. El procesador es el responsable de comprobar
peridicamente el estado del mdulo de E/S hasta saber que se complet la operacin.
El procesador es el responsable de extraer los datos de la memoria principal (en una salida) o almacenar los datos en la
misma (en una entrada).
El problema de sta tcnica es que el procesador tiene que esperar mucho tiempo a que el mdulo de E/S est listo. El
procesador, mientras espera, interroga repetidamente por el estado del mdulo de E/S, degradando el rendimiento del
sistema.
La velocidad de transferencia de E/S est limitada por la velocidad con la que el procesador puede dar servicio a un
dispositivo.
Deben ejecutarse una serie de instrucciones en cada transferencia de E/S.
El procesador contina entonces con otro trabajo. Habr delegado la operacin de E/S en el mdulo DMA. El mdulo DMA,
transfiere el bloque entero, una palabra por vez, directamente hacia o desde la memoria, sin pasar por el procesador. Cuando
se completa la transferencia, el mdulo DMA enva una seal de interrupcin al procesador. De esta manera, el procesador
se involucra slo al inicio y al final de la transferencia.
El mdulo DMA necesita tomar el control del bus para transferir los datos con la memoria, y puede ocurrir que el procesador
necesite el bus. En este caso el procesador tiene que esperar por el mdulo DMA (hace una pausa durante un ciclo del bus,
no es una interrupcin).
Es el mtodo utilizado actualmente.
3/8
UTN FRC
Independencia del dispositivo: manejo de comandos, operaciones que sean comunes para todos o algunos
dispositivos.
Manejo de errores: soluciones a nivel de hardware. Si se produce un error, no se avisa inmediatamente al usuario,
sino que se intenta realizar la operacin de nuevo, si despus de varios intentos el problema persiste, ah se informa
al usuario.
Asignacin de dispositivos:
o Dedicados: una vez asignado un dispositivo a un proceso, no se lo puede quitar (ejemplo: impresora).
o Compartidos: discos.
o Virtuales: transforma los dispositivos dedicados en compartidos (ejemplo: spooling de impresin).
Procesos de usuarios
Software independiente del dispositivo: software comn para todos los dispositivos (proteccin, compartir recursos, manejo de bloques libres,
nombres de los dispositivos, sincronizacin de los manejadores de dispositivos, asignacin y liberacin de dispositivos, informe de errores, etc.)
Manejador de dispositivo: cada manejador controla un tipo de dispositivo.
Manejador de interrupciones: controla las interrupciones de todos los dispositivos.
Hardware
4/8
UTN FRC
Planificacin de discos
Parmetros de rendimiento del disco
Tiempo de bsqueda: es el tiempo necesario para mover el brazo del disco (y la cabeza) hasta la pista solicitada. Esta cantidad
resulta difcil de concretar. El tiempo de bsqueda consta de dos componentes clave: el tiempo de arranque inicial, y el tiempo
que se tarda en recorrer las pistas. El tiempo de bsqueda medio es de 5 a 10 ms.
Retardo de giro: es el tiempo que tarda en llegar el sector hasta la cabeza del disco.
Tiempo de transferencia: es el tiempo que tarda en realizar la operacin de lectura o escritura. Depende del nmero de bytes
a transferir, el nmero de bytes por pista y la velocidad de rotacin en revoluciones por segundo.
5/8
UTN FRC
Aleatoria: se mantiene una cola con las solicitudes de E/S, y se eligen en forma aleatoria, obtenindose el peor
rendimiento posible.
Primero en entrar, primero en salir (FIFO): es la manera ms sencilla de planificacin, lo que significa que los
elementos se procesan de la cola en un orden secuencial. Esta estrategia tiene la ventaja de ser justa porque las
solicitudes son servidas en el orden en que llegaron. El brazo puede desplazarse significativamente.
Prioridad: 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. Permite que haga salir rpidamente trabajos cortos y pueda
proporcionar un buen tiempo de respuesta interactiva. Los trabajos mayores pueden tener que esperar
excesivamente. Poco favorable para sistemas de bases de datos.
ltimo en entrar, primero en salir (LIFO): 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 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 (SSTF, Shortest Service Time First): 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: 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. Luego, comienza a realizar el
rastreo en sentido opuesto., volviendo a recoger todas las solicitudes en orden. 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 (SCAN circular): igual al SCAN pero 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.
RAID
La industria ha acordado un esquema estndar para el diseo de base de datos sobre mltiples discos, llamado RAID
(Redundant Array of Independent Disks).
Caractersticas
1.
2.
3.
4.
5.
6.
Conjunto de varios discos fsicos que forman una nica unidad lgica.
Los datos se distribuyen entre los diferentes discos.
Redundancia utilizada para la recuperacin de datos en caso de fallos.
Se reemplaza un disco de gran capacidad por varios discos fsicos.
Mejor rendimiento debido al acceso simultaneo de datos ubicados en discos diferentes.
Existen siete niveles de RAID, de 0 a 6 (arquitecturas de diseo diferentes).
Niveles
RAID 0 (sin redundancia)
Este nivel no es un miembro verdadero de la familia RAID, porque no incluye redundancia para mejorar el
rendimiento.
En RAID 0, 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.
6/8
UTN FRC
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).
Es ideal para aplicaciones que requieren alto rendimiento para datos no crticos.
RAID 1 (mirroring)
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:
-
Una solicitud de lectura le puede servir cualquiera de los dos discos que contienen los datos
solicitados.
Una solicitud de escritura requiere la actualizacin de las bandas correspondientes a ambos discos,
pero esto se puede hacer en paralelo.
La recuperacin de fallos es sencilla. Cuando una unidad falla, los datos estn todava accesibles
desde 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 un entorno orientado a transacciones, se puede conseguir altas tasas de solicitudes de E/S si el grueso de las solicitudes
es de lectura. Es ideal para archivos del SO o archivos crticos.
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.
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.
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
7/8
UTN FRC
relativamente menos apropiados para aplicaciones que requieran altas tasas 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.
Implica una penalizacin en la escritura de E/S, ya que no solo hay que escribir los datos, sino tambin los bits de paridad
correspondientes. Posee cuello de botella en el disco de paridad. No se usa en la prctica.
Cach de disco
El trmino memoria cach se aplica normalmente a una memoria ms pequea y ms rpida que la memoria principal y que
se sita entre sta y el procesador.
El mismo concepto puede aplicarse a la memoria de disco. Concretamente, una cach de disco es una memoria intermedia
situada en la memoria principal para sectores de disco. La cach 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. Si est, la
solicitud toma los datos de la cach. Si no, se lee el sector solicitado en el disco y se coloca en la cach, quedando disponible
para futuras solicitudes.
Solicitud de E/S: la cach de disco debe entregarse al proceso que los solicit:
o Los bloques de datos se trasfieren desde la cach a la memoria asignada al proceso de usuario.
o Usando la capacidad de memoria compartida y pasando un puntero a la entrada apropiada de la cach del
disco
Estrategia de reemplazo: establece que bloque de la cach va a ser reemplazado.
o LRU (usado menos recientemente): bloque sin referencias durante la mayor cantidad de tiempo. Ms usado.
o LFU (usado menos frecuentemente): bloque con menor cantidad de referencias.
Poltica de escritura:
o Por demanda: los sectores se sustituyen slo cuando se necesita una entrada en la tabla.
o Planificada previamente: los sectores se sustituyen cada vez que se libera un conjunto de entradas.
8/8
UTN FRC
Unidad N6 Seguridad
Amenazas a la seguridad
La seguridad de computadoras y redes aborda los siguientes cuatro requisitos:
Secreto: exige que la informacin de un sistema sea accesible para lectura solamente por partes autorizadas.
Integridad: exige que los elementos de un sistema puedan ser modificados slo por partes autorizadas.
Disponibilidad: exige que los elementos de un sistema estn disponibles para las partes autorizadas.
Autenticidad: requiere que un sistema sea capaz de verificar la identidad del usuario.
Tipos de amenazas
Hardware:
o Amenaza a la disponibilidad: comprenden daos accidentales y deliberados a los equipos, as como el hurto.
Hacen falta medidas de seguridad fsicas y administrativas para hacer frente a estas amenazas.
Software:
o Amenaza a la disponibilidad: el software es alterado o daado para inutilizarlo. Se puede combatir con
copias de seguridad (backups).
o Amenaza al secreto: se realizan copias no autorizadas del software. Se combate con licencias, registros.
o Amenaza a la integridad/autenticidad: un programa sigue funcionando pero se comporta de forma diferente
a lo normal (virus, ataques). Se pueden usar antivirus.
Datos:
o Amenaza a la disponibilidad: destruccin de archivos (accidentalmente o mal intencionado).
o Amenaza al secreto: lectura no autorizada de bases de datos y archivos. Un anlisis de datos estadsticos
puede revelar datos ocultos.
o Amenaza a la integridad: modificacin de archivos existentes o invencin de nuevos.
Redes y lneas de comunicaciones:
o Amenazas pasivas: escuchas a escondidas o control de las transmisiones. El objetivo del agresor es obtener
la informacin que se est transmitiendo. Hay dos tipos de amenazas: la revelacin de contenido y el anlisis
de trfico. Las amenazas pasivas son muy difciles de detectar porque no alteran los datos. Se hacen frente
mediante la prevencin y no la deteccin.
o Amenazas activas: suponen alteraciones del flujo de datos o la creacin de un flujo falso. Se pueden dividir
en cuatro categoras:
Suplantacin: una entidad se hace pasar por otra. Un usuario se hace pasar por otro.
Repeticin: incluye la captura previa de un dato nico y la subsiguiente retransmisin para producir un efecto
no autorizado.
Modificacin de mensajes: significa que se modifica una porcin de un mensaje legtimo o que los mensajes
se retrasan o se desordenan para conseguir un efecto no autorizado.
Privacin de servicio: impide o inhibe el uso normal o la gestin de servicios de comunicaciones. Esta agresin
puede tener como objetivo suprimir mensajes a un destinatario en particular o interrumpir toda una red.
El objetivo frente a los ataques activos es detectarlos y recuperarse de cualquier interrupcin o retardo.
1/6
UTN FRC
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:
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 la memoria
principal.
Aislamiento total: el SO simplemente debe asegurar que cada segmento o pgina es accesible solo para el proceso
al que est asignada. Esto se lleva a cabo fcilmente exigiendo que no haya entradas duplicadas en las tablas de
pginas o segmentos.
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
Control de acceso 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.
Control de acceso descentralizado: el procedimiento usual de conexin lo lleva a cabo un servidor de destino.
2/6
UTN FRC
Una dimensin de la matriz consta de los sujetos identificados que pueden intentar acceder a los datos (usuarios o grupos
de usuarios). La otra dimensin enumera a los objetos a los que se puede acceder. Cada entrada de la matriz indica los
derechos de acceso de ese sujeto a ese objeto.
La matriz puede descomponerse en columnas para obtener listas de control de acceso. Para cada objeto, una lista de
control de acceso enumera los usuarios y sus derechos de accesos permitidos.
Con la descomposicin por filas se obtienen etiquetas de capacidad de acceso. sta 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.
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.
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 legtima entrada de usuario. Es un usuario externo.
Abusador: un usuario legtimo que accede a datos, programas o recursos a los que no est autorizado, o que est
autorizado pero hace un mal uso de sus privilegios. Es un usuario interno.
Usuario clandestino: un individuo que est a cargo del control de la supervisin del sistema y utiliza ese control
para evadir la auditora y el control de acceso o para suprimir la recopilacin de datos. Puede ser externo o interno.
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 a cada usuario autorizado. El archivo de
contraseas puede protegerse de dos maneras:
Cifrado unidireccional: 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.
Probar las contraseas por defecto del sistema. Muchos administradores no cambian estos valores.
Probar todas las contraseas cortas (de uno a tres caracteres).
Probar palabras del diccionario del sistema o de una lista de contraseas probables.
Reunir informacin sobre datos personales del usuario (nombre, nombre de familiares, aficiones, etc.).
Probar los nmeros de telfono de los usuarios, DNI, etc.
Intervenir la lnea entre un usuario remoto y el sistema anfitrin.
Si un intruso tiene que verificar sus conjeturas intentando conectarse, esto constituye un medio de ataque tedioso y fcil de
contrarrestar. Por ejemplo, el sistema puede rechazar simplemente cualquier conexin tras intentarse tres contraseas.
Proteccin de contraseas
Las contraseas son la primera lnea de defensa contra los intrusos. La contrasea sirve para autentificar el ID del individuo
que se conecta al sistema. A su vez, el ID introduce una seguridad en los siguientes sentidos:
3/6
UTN FRC
Formacin del usuario: difcil de lograr, sobre todo cuando hay un gran nmero de usuarios. Muchos usuarios
haran caso omiso de las instrucciones.
Contraseas generadas por computador: los usuarios no pueden ser capaces de recordarlas, y pueden caer en
la tentacin de escribirlas. Tienen escasa aceptacin por parte de los usuarios.
Inspeccin reactiva de contraseas: el sistema ejecuta peridicamente su propio averiguador de contraseas
para encontrar contraseas adivinables. El sistema cancela todas las contraseas que se adivinen y se lo notifica
al usuario. La desventaja es que consumen muchos recursos, y adems, cualquier contrasea existente ser
vulnerable hasta que el inspector reactivo de contraseas la encuentre.
Inspeccin proactiva de contraseas: es el enfoque ms prometedor. Al usuario se le permite elegir su propia
contrasea, pero al momento de la seleccin, el sistema comprueba si la contrasea es permisible, y, si no lo es, la
rechaza. Tiene que haber un equilibrio entre la aceptacin del usuario y la fortaleza. Ejemplo: todas las contraseas
deben tener un mnimo de 8 caracteres, tener una mayscula, dgitos numricos, smbolos, etc.
Deteccin de intrusos
La deteccin de intrusos es la segunda lnea de defensa. Se basa en el supuesto de que el comportamiento del intruso se
diferencia del comportamiento de un usuario legtimo en formas que pueden cuantificarse.
El comportamiento de un usuario se puede establecer observando su historial, y se pueden detectar desviaciones
significativas en su patrn.
Las tcnicas para la deteccin de intrusos son:
Deteccin de anomalas estadsticas: supone la recoleccin de datos del comportamiento de los usuarios
legtimos durante un perodo de tiempo. Despus se aplican pruebas estadsticas al comportamiento observado
para determinar, con un alto grado de confianza, si los comportamientos no son de usuarios legtimos.
Es eficaz contra atacantes exteriores. Pueden no ser capaces de hacer frente a usuarios legtimos que intenten
obtener acceso a recursos que requieren mayores privilegios.
Deteccin basada en reglas: supone el intento de definir un conjunto de reglas que pueden emplearse para decidir
si un comportamiento dado es el de un intruso.
Una herramienta fundamental para la deteccin de intrusos es un registro de auditora. Este, consiste en un registro de
actividades en curso por parte de los usuarios. Se utilizan dos planes:
Registros de auditora nativos: casi todos los SO multiusuario ya incorporan un software de contabilidad que rene
informacin sobre la actividad de los usuarios. No necesita ningn software adicional (lo trae el SO). Puede que no
contengan la informacin que se necesite o no se disponga de ella en una forma conveniente.
Registro de auditora especficos para la deteccin: registros de auditora que contiene slo aquella informacin
necesaria para el sistema de deteccin de intrusiones. Puede ser independiente del fabricante, pero tiene un coste
extra por tener dos paquetes de contabilidad ejecutando en una misma mquina.
4/6
UTN FRC
Uso de recursos: una lista de elementos cuantitativos en la que cada elemento dice la cantidad empleada de un
recurso.
Marca de tiempo: fecha y hora que indica cuando tuvo lugar la accin.
Software malicioso
Programas malignos
Pueden dividirse en dos categoras:
Necesitan un programa anfitrin: fragmentos de programa que no tienen existencia independiente de otro
programa.
Independientes: son programas que por s mismos pueden ser planificados y ejecutados por el SO.
Tambin se pueden distinguir las amenazas de software que se reproducen y las que no lo hacen.
Trampillas (puertas secretas): es un punto de entrada secreto a un programa que permite a alguien que la conoce
conseguir acceso sin pasar por procedimientos de seguridad. Estas, han sido utilizadas por programadores para
depurar y probar los programas, y se convierten en amenazas cuando se las utiliza para conseguir acceso no
autorizado. Son difciles de detectar para los SO. Las medidas de seguridad deben centrarse en el desarrollo de
programas y en actualizaciones de software.
Bomba lgica: es un cdigo incrustado en algn programa legtimo que explota cuando se cumplen ciertas
condiciones (presencia o ausencia de archivos, un da concreto de la semana, fecha, usuario en particular que
ejecute la aplicacin, etc.). Pueden borrar o modificar datos, hasta hacer que se detenga la mquina.
Caballos de Troya (troyanos): es un programa aparentemente til que contiene un cdigo oculto que, cuando se
invoca, lleva a cabo alguna funcin daina o no deseada. Se pueden usar para efectuar funciones indirectamente
que un usuario no autorizado no podra efectuar directamente, como cambiar los permisos de un archivo.
Virus: es un programa que puede infectar a otros programas, alterndolos, como incluir una copia del programa de
virus, que puede entonces seguir infectando a otros programas.
Gusanos: una vez activo un gusano, puede comportarse como un virus, un troyano o realizar cualquier accin
destructiva. Utilizan las conexiones de red para extenderse de un sistema a otro (correo electrnico, ejecucin
remota, conexin remota). Contiene las mismas fases que los virus.
Zombie: es un programa que secretamente toma posesin de otra computadora conectada a internet, y se usa para
lanzar ataques que hacen difcil de rastrear. Se utilizan en ataques de denegacin de servicio.
Fases de un virus
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 l en otros programas o en ciertas reas 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.
5/6
UTN FRC
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.
Tipos de virus
Virus de macros
Sacan provecho de caractersticas de Word y Excel llamadas Macro. Una macro consiste en un programa ejecutable
incrustado en un documento de procesador de texto u otro archivo, utilizado para automatizar tareas repetitivas y ahorrar
pulsaciones de teclas.
6/6
UTN FRC
Proceso cliente/servidor
El entorno cliente/servidor est poblado de clientes y servidores.
-
Clientes: son, en general, PC monousuario o puestos de trabajo que ofrecen una interfaz muy amigable para el
usuario final (poseen interfaz grfica, uso de ventanas y mouse).
Servidor: ofrece servicios que puede compartir con los clientes (servidores de archivos, servidores de bases de
datos, etc.).
Red: conjunto de elementos que permiten interconectar clientes y servidores. Ejemplos: LAN (Local Area Network),
WAN (Wide Area Network) e internet.
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 del 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.
El software de comunicaciones es el que permite interoperar a cliente y servidor (ejemplo, protocolo TCP/IP). En el mejor
de los casos, las funciones reales de la aplicacin pueden repartirse entre cliente y servidor de forma que se optimicen los
recursos de la red y de la plataforma.
En mayora de los sistemas cliente/servidor, se hace un gran hincapi en ofrecer una interfaz de usuario (GUI) que sea fcil
de utilizar y fcil de aprender, pero potente y flexible, en la parte del cliente.
1/6
UTN FRC
Procesamiento basado en una mquina central (host): no es realmente un proceso cliente/servidor. Se refiere
ms al entorno tradicional de grandes sistemas en el que todo o casi todo el tratamiento se realiza en una
computadora central (mainframes). La interfaz de usuario consiste a menudo en un terminal tonto.
Procesamiento basado en el servidor (cliente ligero): es el tipo ms bsico de configuracin cliente/servidor.
Consiste en que el cliente es responsable de ofrecer una interfaz de usuario grfica, mientras casi todo el tratamiento
se hace en el servidor.
Procesamiento basado en el cliente (cliente pesado): 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.
Procesamiento 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
pero, a largo plazo, puede ofrecer una mayor ganancia de productividad del usuario y una mayor eficiencia de la
red.
2/6
UTN FRC
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 cach ya no son vlidas.
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.
Middleware: conjunto de controladores, API y software adicional que mejoran la conectividad entre una aplicacin cliente y
un servidor, brindando acceso uniforme a los recursos del sistema a travs de todas las plataformas.
Ventajas:
-
Permite construir aplicaciones que utilicen el mismo mtodo para acceder a los datos, independientemente de su ubicacin.
Facilita la implementacin de la aplicacin en diferentes tipos de servidores y estaciones de trabajo.
Arquitectura middleware
La finalidad bsica del middleware es hacer que una aplicacin
o usuario acceda a una serie de servicios del servidor sin
preocuparse de las diferencias entre servidores.
Send: la utiliza el proceso que quiere enviar el mensaje. Sus parmetros son el identificador del proceso de destino
y el contenido del mensaje.
Receive: la utiliza el proceso receptor para anunciar su intencin de recibir el mensaje, designado un rea de
almacenamiento intermedio e informando al mdulo de paso de mensajes.
UTN FRC
Servicio fiable:
- Garantiza la entrega de los datos.
- Utiliza un protocolo de transporte fiable y llevara a cabo control de errores, acuse de recibo, retransmisin
y reordenacin de mensajes desordenados.
- No se informa si se entreg con xito (puede usar acuse de recibo solamente para saber si el mensaje se
ha entregado).
Servicio no fiable:
- Simplemente se enva el mensaje al destinatario por la red.
- Utiliza un protocolo de transporte no fiable.
- No se informa si se entreg con xito.
- Servicio muy simple y rpido (baja sobrecarga de procesamiento y de comunicaciones del servicio de paso
de mensajes).
- Si se requiere fiabilidad, la aplicacin debera garantizarla.
Bloqueante vs no bloqueante
-
El mecanismo de las llamas a procedimientos remotos puede considerarse como un 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
4/6
UTN FRC
e incorpora los parmetros. Enva el mensaje y queda esperando la respuesta. Cuando se recibe la respuesta, el
procedimiento de presentacin retorna al programa llamador, proporcionndole los valores devueltos.
Paso de parmetros
Por valor: los parmetros simplemente se copian en el mensaje y se envan al sistema remoto.
Por referencia: difcil de implementar. Hace falta un nico puntero para cada objeto.
Enlace cliente/servidor
El enlace especifica la forma en que se establecer la relacin entre un procedimiento remoto y el programa llamador. Un
enlace se forma cuando dos aplicaciones han establecido una conexin lgica y se encuentran preparadas para intercambiar
rdenes y datos.
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 mantener la
conexin consume recursos, con este enfoque se trata de aprovecharlos.
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.
Sincronismo vs asincronismo
Conceptos anlogos a los de mensajes bloqueantes y no bloqueantes.
RPC sncronas: el proceso llamante espera hasta que el proceso devuelva el valor.
RPC asncronas: no bloquean al llamante y permiten un mayor grado de paralelismo.
Agrupaciones (Clusters)
Cluster: es un grupo de computadoras interconectadas que trabajan juntas como un recurso de proceso unificado que
puede crear la ilusin de ser una nica mquina. Son una alternativa al SMP como mtodo de proporcionar alto rendimiento
y alta disponibilidad.
Nodo: forma de nombrar a cada computadora de un cluster.
Ventajas:
Escalabilidad total: es posible crear agrupaciones grandes que sobrepasen con creces las mquinas autnomas
ms grandes. Pueden tener docenas o cientos de mquinas multiprocesador.
Escalabilidad incremental: una agrupacin se configura de tal forma que es posible aadir sistemas nuevos a la
agrupacin en pequeos incrementos. Un cluster pequeo se puede expandir sin muchos problemas.
Alta disponibilidad: como cada uno de los nodos de la agrupacin es una computadora autnoma, 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.
Configuraciones de clusters
Clasificacin segn si comparten disco o no:
Sin disco compartido: los nodos se conectan mediante enlaces de alta velocidad (ejemplo: LAN). Si cada
computadora es multiprocesador se mejora el rendimiento y la disponibilidad.
Con disco compartido: existe un subsistema de disco compartido entre los nodos del cluster (tecnologa RAID).
5/6
UTN FRC
Mtodo de agrupacin
Descripcin
Ventajas
Limitaciones
Espera pasiva
Sencillo de implementar.
Secundaria activa
Costo reducido.
Incrementa la complejidad.
Servidores separados
Alta disponibilidad.
Incrementa la sobrecarga en el
servidor y el uso de la red
debido a las operaciones de
copia.
Servidores conectados a
discos
Reduce la sobrecarga en el
servidor y el uso de la red
debido a la eliminacin de las
operaciones de copia.
Servidores compartiendo
discos
Baja la sobrecarga en el
servidor y uso de la red.
Reduce el riesgo de cada por
fallo de disco.
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.
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 una agrupacin se
denomina resistencia a fallos (failover). 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 (failback).
Equilibrio de carga
Una agrupacin requiere una capacidad eficaz para balancear la carga entre los computadores disponibles. Cuando se
aade una nueva computadora a la agrupacin, la funcin de equilibrio de carga debera incluir automticamente esta
computadora en la planificacin de aplicaciones.
Proceso paralelo
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 distintas computadoras de la agrupacin.
Aplicaciones paralelas: el programador disea la aplicacin desde el principio para ejecutar en una agrupacin y
utiliza el paso de mensajes para mover datos entre los nodos.
Computacin paramtrica: 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/6