Vous êtes sur la page 1sur 86

Especialidad: Informtica en Redes Sub.

rea: Sistemas Operativos

Historia de los Sistemas Operativos

1. Defina que es un sistema operativo. 2. Explique cul es la funcin de los sistemas operativos. 3. Realice un resumen de las diferentes generaciones. 4. Explique las diferentes funciones de los sistemas operativos. 5. Explique las diferentes caractersticas de los sistemas operativos. 6. Anote las diferentes modalidades de trabajo de los sistemas operativos. 7. Explique en qu consisten los sistemas operativos por lotes. 8. Cite las caractersticas de los sistemas de procesamiento por lotes. 9. Explique en que consisten los sistemas operativos de tiempo compartido. 10. Anote las caractersticas de los sistemas operativos de tiempo compartido. 11. Explique en que consisten los sistemas operativos de tiempo real. 12. Mencione las caractersticas de los sistemas operativos de tiempo real. 13. Explique en que consisten los sistemas operativos de red. 14. Explique en forma escrita en que consisten los sistemas operativos distribuidos. 15. Anote las caractersticas de los sistemas operativos distribuidos 16. Escriba tres servicios aadidos de los sistemas operativos distribuidos. 17. Explique en que consisten los sistemas operativos multiprocesadores. 18. Explique que es el multiprocesamiento simtrico. 19. Explique que es el multiprocesamiento asimtrico. 20. Explique que es el multiproceso en una computadora.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Qu es un sistema operativo?
Un sistema operativo es el programa que oculta la verdad del hardware al programador y presenta una vista simple y agradable de los archivos nominados que pueden leerse y escribirse. El sistema operativo resguarda al programador del hardware del disco y presenta una interfaz simple orientada al archivo, tambin disimula mucho del trabajo concerniente a interrupciones, relojes o cronmetros, manejo de memoria y otras caractersticas de bajo nivel. La funcin del sistema operativo es la de presentar al usuario con el equivalente de una mquina ampliada o mquina virtual que sea ms fcil de programar que el hardware implcito. Historia de los sistemas operativos Los Sistemas Operativos, al igual que el Hardware de los computadores, han sufrido una serie de cambios revolucionarios llamados generaciones. En el caso del Hardware, las generaciones han sido marcadas por grandes avances en los componentes utilizados, pasando de vlvulas ( primera generacin ) a transistores ( segunda generacin ), a circuitos integrados ( tercera generacin), a circuitos integrados de gran y muy gran escala (cuarta generacin). Cada generacin Sucesiva de hardware ha ido acompaada de reducciones substanciales en los costos, tamao, emisin de calor y consumo de energa, y por incrementos notables en velocidad y capacidad.

Generacion Cero (dcada de 1940) Los primeros sistemas computacionales no posean sistemas operativos. Los usuarios tenan completo acceso al lenguaje de la maquina. Todas las instrucciones eran codificadas a mano.

Primera Generacion (dcada de 1950) Los sistemas operativos de los aos cincuenta fueron diseados para hacer mas fluida la transicin entre trabajos. Antes de que los sistemas fueran diseados, se perda un tiempo considerable entre la terminacin de un trabajo y el inicio del siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes, donde los trabajos se reunan por grupos o lotes. Cuando el trabajo estaba en ejecucin, este tenia control total de la maquina. Al terminar cada trabajo, el control era devuelto al sistema operativo, el cual limpiaba y lea e iniciaba el trabajo siguiente.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Segunda Generacin (a mitad de la dcada de 1960) La caracterstica de los sistemas operativos fue el desarrollo de los sistemas compartidos con multiprogramacin, y los principios del multiprocesamiento. En los sistemas de multiprogramacin, varios programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se cambia rpidamente de un trabajo a otro. En los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de procesamiento de la maquina. La independencia de dispositivos aparece despus. Un usuario que desea escribir datos en una cinta en sistemas de la primera generacin tenia que hacer referencia especifica a una unidad de cinta particular. En la segunda generacin, el programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto nmero de pistas y cierta densidad. Se desarrollo sistemas compartidos, en la que los usuarios podan acoplarse directamente con el computador a travs de terminales. Surgieron sistemas de tiempo real, en que los computadores fueron utilizados en el control de procesos industriales. Los sistemas de tiempo real se caracterizan por proveer una respuesta inmediata. Tercera Generacion (mitad de dcada 1960 a mitad dcada de 1970) Se inicia en 1964, con la introduccin de la familia de computadores Sistema/360 de IBM. Los computadores de esta generacin fueron diseados como sistemas para usos generales . Casi siempre eran sistemas grandes, voluminosos, con el propsito de serlo todo para toda la gente. Eran sistemas de modos mltiples, algunos de ellos soportaban simultneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos, nunca antes se haba construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy por arriba del presupuesto y mucho despus de lo que el planificador marcaba como fecha de terminacin. Estos sistemas introdujeron mayor complejidad a los ambientes computacionales; una complejidad a la cual, en un principio, no estaban acostumbrados los usuarios. Cuarta Generacion (mitad de dcada de 1970 en adelante) Los sistemas de la cuarta generacin constituyen el estado actual de la tecnologa. Muchos diseadores y usuarios se sienten aun incmodos, despus de sus experiencias con los sistemas operativos de la tercera generacin.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Con la ampliacin del uso de redes de computadores y del procesamiento en lnea los usuarios obtienen acceso a computadores alejados geogrficamente a travs de varios tipos de terminales. Los sistemas de seguridad se ha incrementado mucho ahora que la informacin pasa a travs de varios tipos vulnerables de lneas de comunicacin. La clave de cifrado esta recibiendo mucha atencin; han sido necesario codificar los datos personales o de gran intimidad para que; aun si los datos son expuestos, no sean de utilidad a nadie mas que a los receptores adecuados. El porcentaje de la poblacin que tiene acceso a un computador en la dcada de los ochenta es mucho mayor que nunca y aumenta rpidamente. El concepto de maquinas virtuales es utilizado. El usuario ya no se encuentra interesado en los detalles fsicos de; sistema de computacin que esta siendo accedida. En su lugar, el usuario ve un panorama llamado maquina virtual creado por el sistema operativo. Los sistemas de bases de datos han adquirido gran importancia. Nuestro mundo es una sociedad orientada hacia la informacin, y el trabajo de las bases de datos es hacer que esta informacin sea conveniente accesible de una manera controlada para aquellos que tienen derechos de acceso.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Funciones y caractersticas de los sistemas operativos. Funciones de los sistemas operativos. 1.- Aceptar todos los trabajos y conservarlos hasta su finalizacin. 2.- Interpretacin de comandos: Interpreta los comandos que permiten al usuario comunicarse con el ordenador. 3.- Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse. 4.- Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnticas. 5.- Manejo de errores: Gestiona los errores de hardware y la prdida de datos. 6.- Secuencia de tareas: El sistema operativo debe administrar la manera en que se reparten los procesos. Definir el orden. (Quien va primero y quien despus). 7.- Proteccin: Evitar que las acciones de un usuario afecten el trabajo que esta realizando otro usuario. 8.- Multiacceso: Un usuario se puede conectar a otra mquina sin tener que estar cerca de ella. 9.- Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar determinados recursos. Caractersticas de los sistemas operativos. En general, se puede decir que un Sistema Operativo tiene las siguientes caractersticas: 1. Conveniencia. Un Sistema Operativo hace ms conveniente el uso de una computadora. 2. Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera ms eficiente posible. 3. Habilidad para evolucionar. Un Sistema Operativo deber construirse de manera que permita el desarrollo, prueba o introduccin efectiva de nuevas funciones del sistema sin interferir con el servicio. 4. Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos. 5. Relacionar dispositivos (gestionar a travs del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos perifricos, cuando el usuario as lo requiera. 6. Organizar datos para acceso rpido y seguro. 7. Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalacin y uso de las redes de computadoras. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

8. Procesamiento por bytes de flujo a travs del bus de datos. 9. Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fcil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.

Modalidades de trabajo de los sistemas operativos.


Sistemas operativos por lotes. La secuencia por lotes o procesamiento por lotes en microcomputadoras, es la ejecucin de una lista de comandos del sistema operativo uno tras otro sin intervencin del usuario. En los ordenadores ms grandes el proceso de recogida de programas y de conjuntos de datos de los usuarios, la ejecucin de uno o unos pocos cada vez y la entrega de los recursos a los usuarios. Procesamiento por lotes tambin puede referirse al proceso de almacenar transacciones durante un cierto lapso antes de su envo a un archivo maestro, por lo general una operacin separada que se efecta durante la noche. Los sistemas operativos por lotes (batch), en los que los programas eran tratados por grupos (lote) en ves de individualmente. La funcin de estos sistemas operativos consista en cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se realizaba el salto a una direccin de memoria desde donde reasuma el control del sistema operativo que cargaba el siguiente programa y lo ejecutaba. De esta manera el tiempo entre un trabajo y el otro disminua considerablemente. Algunas otras caractersticas con que cuentan los Sistemas Operativos por lotes son:

Requiere que el programa, datos y rdenes al sistema sean remitidos todos juntos en forma de lote. Permiten poca o ninguna interaccin usuario/programa en ejecucin. Mayor potencial de utilizacin de recursos que procesamiento serial simple en sistemas multiusuarios. No conveniente para desarrollo de programas por bajo tiempo de retorno y depuracin fuera de lnea. Conveniente para programas de largos tiempos de ejecucin (Ej., anlisis estadsticos, nminas de personal, etc.) Se encuentra en muchos computadores personales combinados con procesamiento serial. Planificacin del procesador sencilla, tpicamente procesados en orden de llegada. Planificacin de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios. No requieren gestin crtica de dispositivos en el tiempo. Suelen proporcionar gestin sencilla de manejo de archivos: se requiere poca proteccin y ningn control de concurrencia para el acceso.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Sistemas operativos de tiempo compartido. El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por ms de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es comn en la mayora de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras ms grandes y a organizaciones deservicios, mientras que la multitarea relacionada con las microcomputadoras implica la realizacin de mltiples tareas por un solo usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusin de que tiene el sistema dedicado para s mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administracin de memoria principal y secundaria. Caractersticas de los Sistemas Operativos de tiempo compartido:

Populares representantes de sistemas multiprogramados multiusuario, Ej.: sistemas de diseo asistido por computador, procesamiento de texto, etc. Dan la ilusin de que cada usuario tiene una mquina para s. La mayora utilizan algoritmo de reparto circular. Los programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye despus de concedido el servicio. Evitan monopolizacin del sistema asignando tiempos de procesador (time slot). Gestin de memoria: proporciona proteccin a programas residentes. Gestin de archivo: debe proporcionar proteccin y control de acceso debido a que pueden existir mltiples usuarios accesando un mismo archivo.

Sistemas operativos de tiempo real. Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, y una vez que han sido procesadas muestra el resultado. Este tipo tiene relacin con los sistemas operativos monousuarios, ya que existe un solo operador y no necesita compartir el procesador entre varias solicitudes. Su caracterstica principal es dar respuestas rpidas; por ejemplo en un caso de peligro se necesitaran respuestas inmediatas para evitar una catstrofe.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Los Sistemas Operativos de tiempo real, cuentan con las siguientes caractersticas:

Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayora externos al sistema computacional, en breve tiempo o dentro de ciertos plazos. Se utilizan en control industrial, conmutacin telefnica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc. Su objetivo es proporcionar rpidos tiempos de respuesta. Procesa rfagas de miles de interrupciones por segundo sin perder un solo suceso. Un proceso se activa tras ocurrencia de suceso, mediante interrupcin. Un proceso de mayor prioridad expropia recursos. Por tanto generalmente se utiliza planificacin expropiativa basada en prioridades. Gestin de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria. Poblacin de procesos esttica en gran medida. Poco movimiento de programas entre almacenamiento secundario y memoria. La gestin de archivos se orienta ms a velocidad de acceso que a utilizacin eficiente del recurso.

Sistemas operativos de red. La principal funcin de un sistema operativo de red es ofrecer un mecanismo para transferir archivos de una mquina a otra. En este entorno, cada instalacin mantiene su propio sistema de archivos local y si un usuario de la instalacin. A quiere acceder a un archivo en la instalacin B, hay que copiar explcitamente el archivo de una instalacin a otra. Internet proporciona un mecanismo para estas transferencias, a travs del programa protocolo de transferencias de archivos FTP (File Transfer Protocol). Suponga que un usuario quiere copiar un archivo A1, que reside en la instalacin B, a un archivo A2 en la instalacin local A. Primero, el usuario debe invocar el programa FTP, el cual solicita al usuario la informacin siguiente: a) El nombre de la instalacin a partir de la cual se efectuar la transferencia del archivo (es decir la instalacin B). b) La informacin de acceso, que verifica que el usuario tiene los privilegios de acceso apropiados en la instalacin B. Una vez efectuada esta comprobacin, el usuario puede copiar el archivo A1 de Ba A2 en A, ejecutando "get A1 to A2". En este esquema, la ubicacin del archivo no es transparente para el usuario; tiene que saber exactamente donde esta cada archivo. Adems los archivos no se comparten Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

realmente, porque un usuario solo puede copiar un archivo de una instalacin a otra. Por lo tanto pueden existir varias copias del mismo archivo, lo que representa un desperdicio de espacio. As mismo, si se modifican, estas copias no sern consistentes. Los Sistemas Operativos de red son aquellos sistemas que mantienen a dos o ms computadoras unidas a travs de algn medio de comunicacin (fsico o no),con el objetivo primordial de poder compartir los diferentes recursos y la informacin del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un procesado rMotorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red ms ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic. Sistemas operativos distribuidos. En un sistema operativo distribuido los usuarios pueden acceder a recursos remotos de la misma manera en que lo hacen para los recursos locales. La migracin de datos y procesos de una instalacin a otra queda bajo el control del sistema operativo distribuido. Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores est en un equipo o en diferentes, en este caso es transparente para el usuario. Existen dos esquemas bsicos de stos. Un sistema fuertemente acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema dbilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Caractersticas de los Sistemas Operativos distribuidos:

Coleccin de sistemas autnomos capaces de comunicacin y cooperacin mediante interconexiones hardware y software. Proporciona abstraccin de mquina virtual a los usuarios. Objetivo clave es la transparencia. Generalmente proporcionan medios para la comparticin global de recursos.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Servicios aadidos: denominacin global, sistemas de archivos distribuidos, facilidades para distribucin de clculos (a travs de comunicacin de procesos internodos, llamadas a procedimientos remotos, etc.). Sistemas operativos multiprocesadores. En los sistemas multiprocesador, los procesadores comparten la memoria y el reloj. Se incrementa la capacidad de procesamiento y la confiabilidad, son econmicos.

Multiprocesamiento simtrico: Cada procesador ejecuta una copia del sistema operativo. Multiprocesamiento asimtrico: Cada procesador tiene asignado una tarea especfica, existe un procesador master que asigna tareas a los procesadores esclavos.

Multiproceso: Las computadoras que tienen ms de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de las computadoras multiprocesadores. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instruccin, el otro procesador queda liberado para procesar otras instrucciones simultneamente. Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja. Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como Multiproceso asimtrico. Una CPU principal retiene el control global de la computadora, as como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la direccin ideal a seguir ya que la CPU principal poda convertirse en un cuello de botella. Multiproceso simtrico. En un sistema multiproceso simtrico, no existe una CPU controladora nica. La barrera a vencer al implementar el multiproceso simtrico es que los SO tienen que ser rediseados o diseados desde el principio para trabajar en un ambiente multiproceso. Las extensiones de UNIX, que soportan multiproceso asimtrico ya estn disponibles y las extensiones simtricas se estn haciendo disponibles. Windows NT de Microsoft soporta multiproceso simtrico.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

10

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Gua de trabajo No 2. 1. Anote las tres clasificaciones bsicas de los sistemas operativos. 2. Explique los dos tipos de requisitos que se deben tomar en cuenta para la contraccin de un sistema operativo. 3. Anote el nombre de los diferentes sistemas operativos segn su estructura. 4. Explique en forma escrita en que consiste la estructura monoltica. 5. Anote las caractersticas de la estructura monoltica. 6. Dibuje el esquema que representa la estructura monoltica. 7. Explique en forma escrita en que consiste la estructura jerrquica. 8. Dibuje los esquemas que representan la estructura jerrquica. 9. Explique en forma escrita en que consiste la maquina virtual. 10. Dibuje el esquema que representa la maquina virtual. 11. Explique en forma escrita en que consiste la estructura cliente-servidor (microkernel) 12. Anote la clasificacin de los sistemas operativos por servicios. 13. Explique en forma escrita en que consisten los sistemas monousuarios. 14. Explique en forma escrita en que consisten los sistemas multiusuarios. 15. Explique en forma escrita en que consisten los sistemas monotareas. 16. Explique en forma escrita en que consisten los sistemas multitareas. 17. Explique en forma escrita en que consisten los sistemas uniprocesos. 18. Explique en forma escrita en que consisten los sistemas multiprocesos. 19. Anote el nombre de los dos sistemas operativos clasificados por la forma de ofrecer sus servicios. 20. Explique en forma escrita los sistemas operativos de red. 21. Explique en forma escrita los sistemas operativos distribuidos. 22. Explique en que consisten las ventajas de los sistemas distribuidos sobre los sistemas centralizados. 23. Explique en que consisten las ventajas de los sistemas distribuidos sobre los sistemas aislados. 24. Explique las desventajas de los sistemas distribuidos. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

11

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

25. Explique en forma escrita que son las llamadas al sistema. 26. Explique en forma escrita las dos categoras en que se clasifican las llamadas al sis 27. Explique en forma escrita que es el interprete de comandos o Shell. 28. Explique que es un sistema monoltico y cul es la estructura bsica que este sugiere. 29. Explique que es un sistema en estratos y explique cul es la estructura bsica que este sugiere.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

12

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

2. TIPOS DE SISTEMAS OPERATIVOS En esta seccin se describirn las caractersticas que clasifican a los sistemas operativos, bsicamente se cubrirn tres clasificaciones: sistemas operativos por su estructura (visin interna), sistemas operativos por los servicios que ofrecen y, finalmente, sistemas operativos por la forma en que ofrecen sus servicios (visin externa).

2.1 Sistemas Operativos por su Estructura Segn [Alcal92], se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los cuales son: Requisitos de usuario: Sistema fcil de usar y de aprender, seguro, rpido y adecuado al uso al que se le quiere destinar. Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operacin, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad. A continuacin se describen las distintas estructuras que presentan los actuales sistemas operativos para satisfacer las necesidades que de ellos se quieren obtener.

2.1.1 Estructura monoltica. Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra (Ver Fig. 2). Las caractersticas fundamentales de este tipo de estructura son: Construccin del programa final a base de mdulos compilados separadamente que se unen a travs del ligador. Mdulo a Mdulo b Mdulo c Mdulo d Mdulo e Mdulo f Buena definicin de parmetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento. Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc.

Figura 2. Estructura Monoltica Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

13

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Generalmente estn hechos a medida, por lo que son eficientes y rpidos en su ejecucin y gestin, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones.

2.1.2 Estructura jerrquica. A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, del sistema operativo, donde una parte del sistema contena subpartes y esto organizado en forma de niveles. Se dividi el sistema operativo en pequeas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interfase con el resto de elementos. Se constituy una estructura jerrquica o de niveles en los sistemas operativos, el primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utiliz con fines didcticos (Ver Fig. 3). Se puede pensar tambin en estos sistemas como si fueran `multicapa'. Multics y Unix caen en esa categora. [Feld93].

Capa 5 Usuario Capa 4 Archivos Capa 3 Entrada/Salida Capa 2 Comunicaciones Capa 1 Memoria Capa 0 Gestin CPU Capa 1 Hardware Figura 2. Sistema Jerrquico THE

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

14

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

En la estructura anterior se basan prcticamente la mayora de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concntricos o "rings" (Ver Fig. 4).

En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas ms internas del sistema operativo o ncleo del sistema estarn ms protegidas de accesos indeseados desde las capas ms externas. Las capas ms internas sern, por tanto, ms privilegiadas que las externas.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

15

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

2.1.3 Mquina Virtual. Se trata de un tipo de sistemas operativos que presentan una interfase a cada proceso, mostrando una mquina que parece idntica a la mquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramacin y la mquina extendida. El objetivo de los sistemas operativos de mquina virtual es el de integrar distintos sistemas operativos dando la sensacin de ser varias mquinas diferentes. El ncleo de estos sistemas operativos se denomina monitor virtual y tiene como misin llevar a cabo la multiprogramacin, presentando a los niveles superiores tantas mquinas virtuales como se soliciten. Estas mquinas virtuales no son mquinas extendidas, sino una rplica de la mquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que ser el que ofrezca la mquina extendida al usuario (Ver Fig. 5). 2.1.4 Cliente-servidor ( Microkernel) El tipo ms reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayora de las computadoras, ya sean grandes o pequeas. Este sistema sirve para toda clase de aplicaciones por tanto, es de propsito general y cumple con las mismas actividades que los sistemas operativos convencionales. El ncleo tiene como misin establecer la comunicacin entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicacin normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operacin de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro." [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el ncleo provee solamente funciones muy bsicas de memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayora que el usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y proteccin que, a su vez, sern filtrados por el ncleo que controla el hardware. Actualmente se est trabajando en una versin de UNIX que contempla en su diseo este paradigma. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo 16

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

2.2 Sistemas Operativos por Servicios Esta clasificacin es la ms comnmente usada y conocida desde el punto de vista del usuario final. Esta clasificacin se comprende fcilmente con el cuadro sinptico que a continuacin se muestra en la Fig. 6.

2.2.1 Monousuarios Los sistemas operativos monousuarios son aqullos que soportan a un usuario a la vez, sin importar el nmero de procesadores que tenga la computadora o el nmero de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales tpicamente se han clasificado en este rengln.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

17

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

2.2.2 Multiusuarios Los sistemas operativos multiusuarios son capaces de dar servicio a ms de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el nmero de procesadores en la mquina ni el nmero de procesos que cada usuario puede ejecutar simultneamente. 2.2.3 Monotareas Los sistemas monotarea son aquellos que slo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. 2.2.4 Multitareas Un sistema operativo multitarea es aqul que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el cdigo fuente de un programa durante su depuracin mientras compila otro programa, a la vez que est recibiendo correo electrnico en un proceso en background. Es comn encontrar en ellos interfaces grficas orientadas al uso de mens y el ratn, lo cual permite un rpido intercambio entre las tareas para el usuario, mejorando su productividad. 2.2.5 Uniproceso Un sistema operativo uniproceso es aqul que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese ms de uno le sera intil. El ejemplo ms tpico de este tipo de sistemas es el DOS y MacOS. 2.2.6 Multiproceso Un sistema operativo multiproceso se refiere al nmero de procesadores del sistema, que es ms de uno y ste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simtrica o asimtricamente. Cuando se trabaja de manera asimtrica, el sistema operativo selecciona a uno de los procesadores el cual jugar el papel de procesador maestro y servir como pivote para distribuir la carga a los dems procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simtrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualesquira de los procesadores disponibles, teniendo, tericamente, una mejor distribucin y equilibrio en la carga de trabajo bajo este esquema. Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual puede consistir de un rea de memoria, un conjunto de registros con valores especficos, Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

18

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

la pila y otros valores de contexto. Un aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para correr en sistemas monoproceso que no toman ninguna ventaja a menos que el sistema operativo o el compilador detecte secciones de cdigo paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. Por otro lado, el programador puede modificar sus algoritmos y aprovechar por s mismo esta facilidad, pero esta ltima opcin las ms de las veces es costosa en horas hombre y muy tediosa, obligando al programador a ocupar tanto o ms tiempo a la paralelizacin que a elaborar el algoritmo inicial. 2.3. Sistemas Operativos por la Forma de Ofrecer sus Servicios Esta clasificacin tambin se refiere a una visin externa, que en este caso se refiere a la del usuario, el cmo accesa los servicios. Bajo esta clasificacin se pueden detectar dos tipos principales: sistemas operativos de red y sistemas operativos distribudos. 2.3.1 Sistemas Operativos de Red Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisin con el objeto de intercambiar informacin, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un cinjunto de comandos o llamadas al sistema para ejecutar estas operaciones, adems de la ubicacin de los recursos que desee accesar. Por ejemplo, si un usuario en la computadora hidalgo necesita el archivo matriz.pas que se localiza en el directorio /software/codigo en la computadora morelos bajo el sistema operativo UNIX, dicho usuario podra copiarlo a travs de la red con los comandos siguientes: hidalgo% hidalgo% rcp morelos:/software/codigo/matriz.pas . hidalgo% En este caso, el comando rcp que significa "remote copy" trae el archivo indicado de la computadora morelos y lo coloca en el directorio donde se ejecut el mencionado comando. Lo importante es hacer ver que el usuario puede accesar y compartir muchos recursos. 2.3.2 Sistemas Operativos Distribudos Los sistemas operativos distribudos abarcan los servicios de los de red, logrando integrar recursos ( impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso ) en una sola mquina virtual que el usuario accesa en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicacin de los recursos, sino que los conoce por nombre y simplementa los usa como si todos ellos fuesen locales a su lugar de trabajo habitual. Todo lo anterior es el marco terico de lo que se deseara tener como sistema operativo distribudo, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribur los procesos en las varias unidades de Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

19

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribudos y consolidar la proteccin y seguridad entre los diferentes componentes del sistema y los usuarios. [Tan92]. Los avances tecnolgicos en las redes de rea local y la creacin de microprocesadores de 32 y 64 bits lograron que computadoras mas o menos baratas tuvieran el suficiente poder en forma autnoma para desafiar en cierto grado a los mainframes, y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo la oportunidad de partir procesos muy pesados en clculo en unidades ms pequeas y distribuirlas en los varios microprocesadores para luego reunir los sub-resultados, creando as una mquina virtual en la red que exceda en poder a un mainframe. El sistema integrador de los microprocesadores que hacer ver a las varias memorias, procesadores, y todos los dems recursos como una sola entidad en forma transparente se le llama sistema operativo distribudo. Las razones para crear o adoptar sistemas distribudos se dan por dos razones principales: por necesidad ( debido a que los problemas a resolver son inherentemente distribudos ) o porque se desea tener ms confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por ejemplo, el control de los cajeros automticos en diferentes estados de la repblica. Ah no es posible ni eficiente mantener un control centralizado, es ms, no existe capacidad de cmputo y de entrada/salida para dar servicio a los millones de operaciones por minuto. En el segundo caso, supngase que se tienen en una gran empresa varios grupos de trabajo, cada uno necesita almacenar grandes cantidades de informacin en disco duro con una alta confiabilidad y disponibilidad. La solucin puede ser que para cada grupo de trabajo se asigne una particin de disco duro en servidores diferentes, de manera que si uno de los servidores falla, no se deje dar el servicio a todos, sino slo a unos cuantos y, ms an, se podra tener un sistema con discos en espejo ( mirror ) a travs de la red,de manera que si un servidor se cae, el servidor en espejo contina trabajando y el usuario ni cuenta se da de estas fallas, es decir, obtiene acceso a recursos en forma transparente. 2.3.2.1 Ventajas de los Sistemas Distribudos En general, los sistemas distribudos (no solamente los sistemas operativos) exhiben algunas ventajas sobre los sistemas centralizados que se describen enseguida.

Economa: El cociente precio/desempeo de la suma del poder de los procesadores separados contra el poder de uno solo centralizado es mejor cuando estn distribudos. Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior. Confiabilidad: Si una sola mquina falla, el sistema total sigue funcionando. Crecimiento: El poder total del sistema puede irse incrementando al aadir pequeos sistemas, lo cual es mucho ms difcil en un sistema centralizado y caro. Distribucin: Algunas aplicaciones requieren de por s una distribucin fsica.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

20

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Por otro lado, los sistemas distribudos tambin exhiben algunas ventajas sobre sistemas aislados. Estas ventajas son:

Compartir datos: Un sistema distribudo permite compartir datos ms fcilmente que los sistemas aislados, que tendrian que duplicarlos en cada nodo para lograrlo. Compartir dispositivos: Un sistema distribudo permite accesar dispositivos desde cualquier nodo en forma transparente, lo cual es imposible con los sistemas aislados. El sistema distribudo logra un efecto sinergtico. Comunicaciones: La comunicacin persona a persona es factible en los sistemas distribudos, en los sistemas aislados no. _ Flexibilidad: La distribucin de las cargas de trabajo es factible en el sistema distribudos, se puede incrementar el poder de cmputo.

2.3.2.2 Desventajas de los Sistemas Distribudos As como los sistemas distribudos exhiben grandes ventajas, tambin se pueden identificar algunas desventajas, algunas de ellas tan serias que han frenado la produccin comercial de sistemas operativos en la actualidad. El problema ms importante en la creacin de sistemas distribudos es el software: los problemas de comparticin de datos y recursos es tan complejo que los mecanismos de solucin generan mucha sobrecarga al sistema hacindolo ineficiente. El checar, por ejemplo, quines tienen acceso a algunos recursos y quines no, el aplicar los mecanismos de proteccin y registro de permisos consume demasiados recursos. En general, las soluciones presentes para estos problemas estn an en paales. Otros problemas de los sistemas operativos distribudos surgen debido a la concurrencia y al paralelismo. Tradicionalmente las aplicaiones son creadas para computadoras que ejecutan secuencialmente, de manera que el identificar secciones de cdigo `paralelizable' es un trabajo ardo, pero necesario para dividir un proceso grande en sub-procesos y enviarlos a diferentes unidades de procesamiento para lograr la distribucin. Con la concurrencia se deben implantar mecanismos para evitar las condiciones de competencia, las postergaciones indefinidas, el ocupar un recurso y estar esperando otro, las condiciones de espera circulares y , finalmente, los "abrazos mortales" (deadlocks). Estos problemas de por s se presentan en los sistemas operativos multiusuarios o multitareas, y su tratamiento en los sistemas distribudos es an ms complejo, y por lo tanto, necesitar de algoritmos ms complejos con la inherente sobrecarga esperada. Por otro lado, en el tema de sistemas distribudos existen varios conceptos importantes referentes al hadware que no se ven en este trabajo: multicomputadoras, multiprocesadores, sistemas acoplados dbil y fuertemente, etc. En [Tan92] pginas 366 376 puede encontrarse material relacionado a estos conceptos.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

21

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Conceptos de los Sistemas Operativos Llamadas al Sistema: La interfaz entre el sistema operativo y los programas del usuario se define por medio del conjunto de "instrucciones extendidas" que el sistema operativo proporciona. Estas instrucciones extendidas se conocen como llamadas al sistema. Las llamadas al sistema varan de un sistema operativo a otro (aunque los conceptos fundamentales tienden a ser anlogos). Las llamadas al sistema se clasifican normalmente en dos categoras generales: aquellas que se relacionan con procesos y la que lo hacen con el sistema de archivo.

Por Procesos: Un proceso es bsicamente un programa en ejecucin. Consta del programa ejecutable y la pila o stack del programa, su contador de programa, apuntador de pila y otros registros, as como la otra informacin que se necesita para ejecutar el programa. En si el proceso en el concepto de los sistemas operativos es como el sistema de tiempo compartido. Esto es, que en forma peridica, el sistema operativo decide suspender la ejecucin de un proceso y dar inicio a la ejecucin de otro, por ejemplo, porque el primero haya tomado ya ms de su parte del tiempo de la CPU, en terrenos del segundo. Cuando un proceso se suspende temporalmente, debe reiniciarse despus exactamente en el mismo estado en que se encontraba cuando se detuvo. Esto significa que toda la informacin relativa al proceso debe guardarse en forma explcita en algn lugar durante la suspensin. En muchos sistemas operativos, toda la informacin referente a cada proceso, diferente del contenido de su espacio de direcciones, se almacena en una tabla de sistema operativo llamada tabla de procesos, la cual es un arreglo (lista enlazada) de estructuras, una para cada proceso en existencia. Por lo tanto, un proceso (suspendido) consta de su espacio de direcciones, generalmente denominado imagen del ncleo (en honor de las memorias de imagen de ncleo magntico que se utilizaron en tiempos antiguos) y su registro de la tabla de procesos, que contiene sus registros entre otras cosas.

Por Sistema de Archivo: Una funcin importante del S.O. consiste en ocultar las peculiaridades de los discos y otros dispositivos de E/S y presentar al programador un modelo abstracto, limpio y agradable de archivos independientes del dispositivo. Las llamadas al sistema se necesitan con claridad para crear archivos, eliminarlos, leerlos y escribirlos. Antes de que se pueda leer un archivo, ste debe abrirse y despus de que se haya ledo debe cerrarse, de modo que las llamadas se dan para hacer estas cosas. Antes de que un archivo pueda leerse o escribirse, ste debe abrirse, en cuyo instante se verifican los permisos. Si se permite el acceso, el sistema produce un entero pequeo Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

22

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

llamado descriptor del archivo para utilizarse en operaciones subsiguientes. Si se prohibe el acceso, se produce un cdigo de error. Shell (intrprete de comandos): El sistema operativo es el cdigo que realiza las llamadas al sistema. Los editores, compiladores, ensambladores, enlazadores e intrpretes de comandos definitivamente no son parte del sistema operativo, aunque son importantes y tiles. El Shell es el intrprete de comandos, a pesar de no ser parte del sistema operativo, hace un uso intenso de muchas caractersticas del sistema operativo y por tanto sirve como un buen ejemplo de la forma en que se pueden utilizar las llamadas al sistema. Tambin es la interfaz primaria entre un usuario situado frente a su terminal y el sistema operativo. Cuando algn usuario entra al sistema, un "shell" se inicia. El shell tiene la terminal como entrada y como salida estndar. Este da inicio al teclear solicitud de entrada, carcter como un signo de pesos, el cual indica al usuario que el shell est esperando un comando. En MS-DOS normalmente aparece la letra de la unidad, seguida por dos puntos (:), el nombre del directorio en que se encuentra y por ltimo el signo de "mayor que" (>). Esto es: C:\> Estructura de un Sistema Operativo Internamente los sistemas operativos estructuralmente de se clasifican segn como se hayan organizado intrnamente en su diseo, por esto la clasificacin ms comn de los S.O. son:

Sistemas monolticos: En estos sistemas operativos se escriben como un conjunto de procedimientos, cada uno de los cuales puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea esta tcnica, cada procedimiento del sistema tiene una interfaz bien definida en trminos de parmetros y resultados, y cada una tiene la libertad de llamar a cualquiera otra, si la ltima ofrece algn clculo til que la primera necesite. Para construir el programa objeto real del sistema operativo cuando se usa este mtodo, se compilan todos los procedimientos individuales a archivos que contienen los procedimientos y despus se combinan todos en un solo archivo objeto con el enlazador. En trminos de ocultamiento de informacin, esencialmente no existe ninguno; todo procedimiento es visible para todos (al contrario de una estructura que contiene mdulos o paquetes, en los cuales mucha informacin es local a un mdulo y slo pueden llamar puntos de registro designados oficialmente del exterior del mdulo)

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

23

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Esta organizacin sugiere una estructura bsica del sistema operativo: 1.- Un programa central que invoque el procedimiento de servicio solicitado (Shell o Kernel) 2.- Un conjunto de procedimientos de servicios que realice las llamadas al sistema. 3.- Un conjunto de procedimientos de uso general que ayude a los procedimientos de servicio

Sistemas en estratos: Estos sistemas operativos se organizan como una jerarqua de estratos, cada uno construido arriba del que est debajo de l. El primer sistema construido en esta forma fuel el sistema THE que se fabric en Technische Hogeschool Eindhoven de Holanda por E. W Dijkstra (1968) y sus alumnos. El sistema THE era un sistema de lote para una computadora alemana, la Electrolgica X8, que tena 32K de palabras de 27 bits ( los bits eran costosos en aquellos das) El sistema tena 6 estratos, estos se muestran en la siguiente tabla: 5 4 3 2 1 0 Operador de THE Programas del usuario Administracin de Entrada/Salida Comunicacin entre el operador y el proceso Administracin de la memoria y el tambor magntico Distribucin del procesador y multiprogramacin

El estrato 0 trabajaba con la distribucin del procesador, cambiando entre procesos cuando ocurran interrupciones o los relojes expiraban. Sobre el estrato 0, el sistema constaba de procesos secuenciales, cada uno de los cuales poda programarse sin tener que preocuparse por el hecho de que mltiples procesos estuvieran corriendo en un solo procesador. En otras palabras, el estarto 0 ofreca la multiprogramacin bsica de la CPU. El estrato 1 realizaba el manejo de memoria. Este distribua espacio para procesos contenidos en la memoria central y en un tambor de 512K palabras que se usaba para contener partes de procesos (pginas) para las cuales no haba espacio en la memoria central. Sobre el estrato 1, los procesos no tena que preocuparse de si estaban en la memoria o en el tambor; el software del estrato 1 se haca cargo de asegurar que las pginas se trajeran a la memoria siempre que se necesitaran. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo 24

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

El estrato 2 manejaba la comunicacin entre cada proceso y la consola de operador. El estrato 3 se haca cargo de manejar los dispositivos de E/S y de separar la informacin en flujo que entraba y sal de ellos. Sobre el estrato 3 cada proceso poda trabajar con dispositivos de E/S abstractos con propiedades agradables, en vez de dispositivos reales con muchas peculiaridades El estrato 4 era donde se encontraban los programas de los usuarios. No tenan que preocuparse por el manejo de los procesos, memoria, consola o E/S. El proceso operador del sistema se localizaba en el estrato 5.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

25

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Gestin de memoria 12Cul es la funcin principal de la gestin de memoria? Anote el nombre de dos necesidades conflictivas relacionadas con la coexistencia de mltiples espacios de direcciones 3- Cul es la funcin del gestor de memoria? 4- Anote 3 criterios de medida utilizados en los distintos esquemas de gestin de memoria. 5- Explique que es la memoria desaprovechada. 6- Cuales factores o razones provocan el desaprovechamiento de la memoria. 7- Que es la fragmentacin de tablas. 8- Que es la complejidad temporal y la complejidad espacial. 9- Explique en que consiste el recargo por acceso a memoria 10- Cuales caractersticas debe tener un gestor de memoria ideal.

Asignacin de memoria particin esttica 123456Que es la participacin esttica Que aspectos son considerados para el mtodo de particin esttica. Que es el grado de multiprogramacin Explique en que consiste el principio de operacin del mtodo de particin esttica. Que son las TDP Explique los dos mtodos utilizados para la asignacin de memoria a los procesos con participacin esttica. 7- Determine dos caractersticas de los dos mtodos de asignacin. 8- Anote las dos fuentes principales de donde provienen las peticiones para la asignacin de particiones. 9- Escriba tres situaciones que provoquen que el gestor de memoria no cumpla con las peticiones de asignacin de memoria. 10- Explique posibles soluciones para c/u de las situaciones anteriores. 11- Explique en que consiste el swapping. 12- En donde se emplea el swapping. 13- Cuales son las principales responsabilidades del intercambiador. 14- Que es el trasiego. 15- Cuales aspectos inciden en la eleccin del proceso a incorporar a memoria. 16- Cual es la imagen del proceso. 17- Cuales son las dos opciones bsicas en cuanto a la ubicacin de un archivo de intercambio. 18- Explique en que consiste el mtodo de intercambio global del sistema. 19- Explique en que consiste el mtodo de intercambio dedicado por cada proceso intercambiable que haya en el sistema. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

26

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

20- Anote las ventajas del mtodo de intercambio dedicado por cada proceso intercambiable que haya en el sistema sobre el mtodo de intercambio global del sistema. 21- Anote las desventajas del mtodo de intercambio dedicado por cada proceso intercambiable que haya en el sistema. 22- Qu es la reubicabilidad en la asignacin de memoria de particin esttica. 23- Qu son las dimensiones fsicas y virtuales. 24- Explique los dos tipos de reubicacin existentes en la asignacin de memoria de particin esttica. 25- Explique las diferentes tcnicas bsicas de comparticin de memoria en sistemas con particiones fijas.

Asignacin de memoria particin dinmica 1- En que consiste la asignacin de memoria con particiones dinmicas. 2- Explique en que consiste el principio de operacin de la asignacin de memoria con particiones dinmicas. 3- Cuales son los algoritmos ms habituales para la seleccin de un rea libre de memoria en la creacin de una particin. 4- Explique los tres algoritmos anteriores. 5- Explique que es fragmentacin 6- Determine que es la fragmentacin interna y que es la fragmentacin externa. 7- Explique en que consiste la compactacin de memoria. 8- Explique en que se diferencia la proteccin utilizada por la particin dinmica a la establecida por la particin esttica.

Asignacin de memoria particionada relocalizable. (Segmentacin)

1- En que consiste la asignacin de memoria con particiones relocalizables (segmentacin) 2- Explique el principio de operacin de la segmentacin. 3- Anote las dos referencias a memoria fsica necesarias para la traduccin de direcciones virtuales. 4- Anote la clasificacin de las referencias a memoria. 5- Explique la diferencia de la proteccin utilizada en la asignacin de memoria con el mtodo de segmentacin con respecto a los mtodos de proteccin utilizados por los mtodos de asignacin de memoria anteriores. 6- Explique los objetivos que se logran alcanzar con la segmentacin. 7- Anote las ventajas de la segmentacin. 8- Escriba las desventajas de la segmentacin. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

27

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Memoria Virtual 1- Qu es la memoria virtual. 2- Anote dos aspectos necesarios para la implementacin de un sistema de memoria virtual. 3- Explique la funcin del campo adicional que se agrega a las tablas de pginas. 4- Explique el esquema que se presenta. 5- Explique los dos mtodos existentes para cargar un programa a memoria.

Paginacin 1234Defina el concepto de fragmentacin y su consecuencia. Defina una posible solucin a la fragmentacin externa. Qu es la paginacin. Explique los siguientes conceptos: Direcciones virtuales, pginas, marcos para pginas o frames. 5- Anote la relacin existente entre las pginas y los frames. 6- Explique en que consisten las tablas de pgina. 7- Cual es la finalidad de la tabla de pgina. 8- Anote dos aspectos fundamentales a considerar en las tablas de pgina. 9- Escriba las diferentes caractersticas de la paginacin. 10- Anote las diferentes ventajas de la paginacin. 11- Escriba las diferentes desventajas de la paginacin. Algoritmos de reemplazo de pgina 123456789Explique la razn por la cul son utilizados los algoritmos de reemplazo de pginas. Explique en que consiste el reemplazo de pginas ptimo. Explique en que consiste el algoritmos de reemplazo FIFO Explique en que consiste el algoritmo de reemplazo de pginas de la segunda oportunidad. Explique en que consiste el algoritmo de reemplazo de pginas del reloj. Explique en que consiste el algoritmo de reemplazo de pginas la de menor uso reciente Anote las ventajas del algoritmo LRU sobre los anteriores. Anote las desventajas del algoritmo LRU sobre los anteriores. Explique las dos posibles implementaciones utilizadas por el LRU para determinar el orden de los marcos definidos por el tiempo de menor uso.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

28

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

GESTIN DE MEMORIA: ASIGNACIN CONTIGUA


La gestin de memoria se ocupa principalmente de la asignacin de memoria fsica de capacidad finita a los procesos que la solicitan. Ningn proceso puede ser activado antes de que le sea asignada una cierta cantidad de memoria. La coexistencia de mltiples espacios de direcciones pertenecientes a procesos residentes en memoria principal introduce la necesidad de satisfacer dos necesidades conflictivas: la separacin de los espacios de direcciones y la comparticin de memoria. El gestor de memoria debe forzar el aislamiento de los espacios de direcciones distintos para evitar que un proceso activo acceda errnea o maliciosamente, y destruya potencialmente los contenidos de los espacios de direcciones de otros procesos. Un gestor de memoria en un entorno de multiprogramacin debera soportar simultneamente la proteccin de memoria, aislando espacios de direcciones disjuntos, y la comparticin de memoria, para permitir que procesos cooperativos accedan a reas comunes de memoria. Con independencia del tipo de particin de memoria utilizado, la eficacia potencial de un gestor de memoria es mayor en sistemas en donde los programas son reubicables, de modo que pueden ser cargados en cualquier rea de memoria que est disponible en un momento dado. Con objeto de proporcionar una base comn para comparaciones analizaremos cada esquema informalmente con respecto a los siguientes criterios de medida: Memoria desaprovechada. Complejidad temporal. Recargo por acceso a memoria.

La memoria desaprovechada se considera como la fraccin de memoria fsica no utilizada que un determinado esquema de gestin de memoria es incapaz de asignar cuando procesa una secuencia de peticiones de memoria. Por memoria no utilizada entendemos la memoria no asignada al sistema o a objetos de usuario. La memoria puede ser desaprovechada por fragmentacin interna, por fragmentacin externa y por contener estructuras de datos necesarias para la operacin del gestor de memoria. El espacio ocupado por las tablas de correspondencia de direcciones para gestin de memoria se denomina a veces fragmentacin de tablas.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

29

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

La complejidad temporal se refiere a la complejidad computacional de asignar y desasignar memoria, peticin a peticin, que caracteriza a un algoritmo particular de gestin de memoria. La complejidad espacial para almacenamiento de datos est incluida en la medida de la memoria desaprovechada. El recargo por acceso a memoria se refiere al tiempo consumido por las operaciones adicionales efectuadas por un determinado esquema de gestin de memoria al acceder a memoria. Generalmente se expresa en relacin con el tiempo de acceso a memoria cuando la gestin de memoria est desactivada. Un gestor de memoria ideal debera por tanto minimizar la memoria desaprovechada, tener una complejidad temporal mnima y presentar un recargo por acceso a memoria mnimo, adems de proporcionar una buena proteccin y una comparticin flexible.

ASIGNACIN DE MEMORIA PARTICIONADA ESTTICA La particin esttica implica generalmente que la divisin de memoria se efecta en algn momento antes de ejecutar los programas de usuario y que la particin permanece fija desde entonces. El nmero y los tamaos de las particiones individuales se determinan generalmente durante el proceso de generacin del sistema, tomando en consideracin la capacidad de la memoria fsica disponible, el grado deseado de multiprogramacin y los tamaos tpicos de los procesos ms frecuentemente ejecutados en una instalacin dada. Estas estadsticas pueden obtenerse durante la operacin efectiva del sistema. Los tamaos de las particiones individuales se eligen generalmente para que se acomoden a las necesidades de los procesos ms frecuentemente ejecutados. Como, en principio, en cada particin dada y en cada momento slo puede ejecutarse un proceso, el nmero de particiones distintas representa un lmite superior al nmero de procesos activos en el sistema. A este valor se le suele denominar grado de multiprogramacin. Dado el impacto de la particin de la memoria sobre el rendimiento general, algunos sistemas permiten la redefinicin manual (por operador) de los tamaos de las particiones sin necesidad de tener que generar el sistema entero de nuevo.

Principios de operacin El sistema operativo debe asignar primero una regin de memoria suficientemente grande para que contenga la imagen del proceso. El sistema operativo lee entonces la imagen del programa desde disco y la carga en el espacio reservado. Despus de quedar residente en memoria, el proceso recin cargado efecta una transicin al estado preparado y por tanto resulta elegible para ejecucin. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

30

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Una vez definidas las particiones, un sistema operativo necesita llevar la cuenta de sus estados, libre o en uso, para propsitos de asignacin. El estado y los atributos de la particin actual suelen estar recogidos en una estructura de datos llamada tabla de descripcin de particiones (TDP). Cada particin est descrita por su direccin inicial (base), su tamao y su estado. Cuando se utilizan particiones estticas en el curso de la operacin del sistema slo puede variar el campo estado de cada entrada, dependiendo de si la particin correspondiente est asignada o no en cada momento. Los restantes campos son estticos y contienen los valores establecidos en el momento de definicin de las particiones Cuando un proceso no residente va a ser creado o activado, el sistema operativo intenta asignarle una particin libre de tamao suficiente, si existe, consultando las entradas de la TDP. Si la bsqueda tiene xito, se marca con ASIGNADA el campo de estado de la entrada seleccionada, y se carga la imagen del proceso en la particin correspondiente. Puesto que el formato supuesto de la TDP no proporciona indicacin de qu proceso est ocupando una particin dada, la identidad de la particin asignada puede quedar registrada en el bloque de control del proceso. Cuando el proceso termina o necesita ser retirado de memoria, se puede utilizar esa informacin para localizar la particin correspondiente y actualizar su estado a LIBRE. Para implementar estas ideas bsicas, deben elaborarse y resolverse dos facetas adicionales importantes. La primera es la estrategia de asignacin de particin, es decir, cmo seleccionar una particin especfica para un proceso dado. El segundo problema aparece cuando no hay ninguna particin adecuada disponible para asignacin. Suponiendo que hay algunas particiones libres, la asignacin de una de ellas al proceso solicitante puede realizarse de varias maneras, de las cuales el primer ajuste y el mejor ajuste son probablemente las ms habituales. El mtodo del primer ajuste consiste bsicamente en asignar la primera particin libre suficientemente grande para acomodar el proceso que est siendo creado. Naturalmente, el tamao del proceso debe ser conocido por el SO. El mtodo del mejor ajuste, por otro lado, requiere que el SO asigne la particin libre ms pequea que satisfaga las necesidades del proceso bajo consideracin. La eleccin entre estos dos mtodos supone un compromiso entre la velocidad de ejecucin y la utilizacin de memoria. En particular, ambos algoritmos tienen que buscar en la tabla de descripcin de particiones para identificar una particin libre del tamao adecuada. Sin embargo, mientras el primer ajuste termina en cuanto encuentra la primera de tales particiones, el mejor ajuste debe procesar todas las entradas de la TDP para identificar la que se ajuste ms exactamente. Como resultado, la implementacin del primer ajuste tiende a ejecutarse ms rpido. Haciendo su trabajo ms exhaustivo, el mejor ajuste puede lograr una utilizacin ms alta de la memoria creando el hueco ms pequeo posible resultante de la diferencia de tamao entre el proceso y la particin (mayor) que le es asignada.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

31

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

En general, las peticiones para asignar particiones pueden provenir de una de dos fuentes principalmente: 1) las creaciones de nuevos procesos o 2)las reactivaciones de procesos retirados de memoria. El gestor de memoria intenta satisfacer estas solicitudes consultando el fondo de particiones libres. Sin embargo, ciertas situaciones pueden impedir que lo logre. Algunas de las ms habituales se listan y discuten a continuacin.

1. Ninguna participacin es suficientemente grande para acomodar el nuevo proceso. 2. Todas las particiones estn asignadas. 3. Algunas particiones estn libres, pero ninguna de ellas es lo suficientemente grande para acomodar el proceso.

Si el proceso a crear es demasiado grande para que encaje en algunas de las particiones del sistema, el sistema operativo no puede hacer mucho ms que informar del problema generando un mensaje de error. Esta situacin es bsicamente un error de configuracin que puede ser remediado redefiniendo las particiones adecuadamente. Otra opcin es reducir los requisitos de memoria de un programa decodificndolo y posiblemente utilizando algn tipo de divisin en capas recubribles (overlays). El caso en donde todas las particiones estn asignadas puede ser manejado posponiendo la carga del nuevo proceso hasta que pueda asignrsele una particin adecuada. Una alternativa es obligar a que un proceso residente en memoria deje vacante una particin suficientemente grande. Desalojar para liberar el espacio necesario incurre en el gasto adicional de tener que seleccionar una vctima adecuada y retirarla a disco. Esta tcnica, llamada intercambio (swapping) se discute en la prxima seccin. Tanto la solucin de posponer como la de intercambiar son tambin aplicables a la gestin del tercer caso, en donde hay disponibles particiones libres pero no adecuadas. Si se elige la opcin de posponer, la utilizacin de memoria puede mantenerse elevada si el sistema operativo contina asignando particiones libres a otros procesos en espera con necesidades ms pequeas de memoria. Sin embargo, al hacerlo as se puede violar el orden de activacin de los procesos seleccionado por el algoritmo de planificacin y afectar, por ello, al rendimiento del sistema. En sistemas con particin esttica de memoria, el nmero de particiones establece efectivamente un lmite superior al nmero de procesos residentes en memoria y, por tanto, al grado de multiprogramacin. Dentro de los confines de este lmite, la utilizacin del procesador puede mejorar incrementando la proporcin de procesos preparados con respecto a los procesos residentes. Esto puede lograrse retirando de memoria procesos Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

32

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

suspendidos cuando haya disponibles otros preparados para cargarlos en las particiones correspondientes. Un proceso retirado se guarda generalmente en memoria secundaria hasta que le puedan ser asignados todos los recursos necesarios para su ejecucin, excepto la memoria y el procesador.

Intercambio (swapping)concepto y responsabilidades A la retirada de memoria de los procesos expropiados o suspendidos y a su posterior incorporacin a la memoria se le denomina intercambio (swapping). El intercambio ha sido tradicionalmente utilizado para implementar multiprogramacin en sistemas con capacidad restringida de memoria o con poco soporte hardware para gestin de memoria. Como hemos indicado, el intercambio puede ser til tambin para mejorar la utilizacin del procesador en entornos de memoria particionada al aumentar la proporcin de procesos preparados con respecto a los procesos residentes. El intercambio se emplea generalmente en sistemas de gestin de memoria con asignacin contigua, tales como memoria particionada fija o dinmica y segmentacin.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

33

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Cuando el planificador decide admitir un nuevo proceso para el cual no se puede hallar una particin libre adecuada, puede invocar al intercambiador para que vace tal particin. El intercambiador es un proceso del sistema operativo cuyas principales responsabilidades incluyen: Seleccionar procesos para retirarlos de memoria. Seleccionar procesos para incorporarlos a memoria. Gestionar y asignar el espacio de intercambio. El intercambiador selecciona generalmente una vctima entre los procesos suspendidos que ocupan particiones suficientemente grandes para satisfacer las necesidades de losprocesos entrantes. Entre los procesos seleccionados, los candidatos ms probables para intercambio son los de menor prioridad, y los que esperan a sucesos lentos y por tanto tienen una probabilidad mayor de permanecer suspendidos durante un tiempo comparativamente largo. Otra consideracin importante es el tiempo ya consumido en memoria por la vctima potencial y si han sido ejecutados mientras estaban en memoria. En caso contrario, hay peligro de trasiego (thrashing) provocado por la retirada repetida de procesos de memoria casi inmediatamente despus de ser cargados en la memoria. La eleccin del proceso a incorporar se basa generalmente en la cantidad de tiempo pasado en memoria secundaria (su edad), su prioridad y la satisfaccin del requisito de tiempo mnimo de residencia en disco, impuesto para controlar el trasiego. Un proceso est tpicamente preparado para ejecucin y es remitido al sistema operativo en forma de archivo que contiene un programa en forma ejecutable junto con los datos asociados. Este archivo tambin puede contener atributos de proceso, tales como prioridad y necesidades de memoria. A un archivo de este tipo se le suele denominar imagen de proceso. Como un proceso modifica generalmente su pila y los datos cuando se ejecuta, un proceso parcialmente ejecutado tiene generalmente una imagen en tiempo de ejecucin diferente a la imagen esttica de proceso inicial archivada en disco. Por tanto, el estado dinmico en tiempo de ejecucin de un proceso retirado de memoria debe quedar registrado para su adecuada reanudacin posterior. En general, la parte modificable del estado de un proceso consta del contenido de sus posiciones de datos y pila, adems de los registros del procesador. El cdigo tambin est sujeto a modificaciones en tiempo de ejecucin en sistemas que permitan auto modificaciones del cdigo. Por tanto, durante la operacin de retirada de memoria hay que copiar en disco el contenido de una parte considerable del espacio de direcciones completo de un proceso vctima. Puesto que la imagen esttica de proceso es utilizada para la activacin inicial, la imagen en tiempo de ejecucin (modificada) no debera reescribir la imagen esttica de proceso en el disco. En consecuencia, hay que disponer de un archivo de intercambio separado para almacenar la imagen dinmica de un proceso retirado.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

34

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Existen dos opciones bsicas en cuanto a la ubicacin de un archivo de intercambio: Archivo de intercambio global del sistema. Archivos de intercambio dedicados, uno por cada proceso. En cualquier caso, el espacio de intercambio para cada proceso intercambiable es generalmente reservado y asignado estticamente, en tiempo de creacin del proceso, para evitar el recargo de esta operacin potencialmente larga en tiempo de intercambio. Con el mtodo de archivo de intercambio global del sistema, se crea un nico archivo grande, generalmente en el curso de la inicializacin del sistema, para manejar las necesidades de intercambio de todos los procesos. El archivo de intercambio suele estar colocado en un dispositivo rpido de almacenamiento secundario para reducir la latencia del intercambio. La direccin generalmente esttica y el tamao de tal archivo de intercambio pueden resultar beneficiosos para el direccionamiento directo de las reas de intercambio en el disco evitando as las complejidades y el recargo en tiempo de ejecucin de acceder al disco utilizando la estructura general de archivos. Un importante compromiso en la implementacin de un archivo de intercambio global del sistema es la eleccin de su tamao. El incentivo principal para mantener pequeo el archivo de intercambio es que el espacio en un disco rpido tiene generalmente una alta demanda por parte de los programas del sistema y otros programas de ejecucin frecuente o crticos en el tiempo. Obviamente, si el archivo de intercambio es pequeo queda ms espacio principal para otros usos. Por otro lado, el tamao del archivo de intercambio afecta al nmero de procesos activos en el sistema, ya que un nuevo proceso (intercambiable) slo puede ser activado cuando se le puede reservar suficiente espacio de intercambio. La incapacidad de reservar espacio de intercambio en tiempo de creacin de procesos puede conducir a costosos errores en tiempo de ejecucin y a la detencin del sistema por incapacidad de intercambiar un proceso designado. Una alternativa es tener un archivo de intercambio dedicado por cada proceso intercambiable que haya en el sistema. Estos archivos de intercambio pueden ser creados dinmicamente en el momento de la creacin del proceso o estticamente en tiempo de preparacin del programa. En cualquier caso, las ventajas del mantenimiento de archivos de intercambio separados incluyen la eliminacin del problema de dimensionamiento del archivo de intercambio del sistema y el de los errores de desbordamiento de archivo en tiempo de ejecucin, y la no imposicin de restriciones sobre el nmero de procesos activos. Las desventajas incluyen el empleo de ms espacio de disco para intercambios, accesos ms lentos y direccionamiento ms complicado de los archivos de intercambio dispersos por la memoria secundaria.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

35

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Reubicacin concepto El trmino reubicabilidad de programa se refiere a la capacidad de cargar y ejecutar un programa determinado en una posicin arbitraria de memoria, en contraposicin a un conjunto fijo de posiciones especificadas en el momento de la traduccin del programa. Como durante las diferentes ejecuciones de un mismo programa reubicable se le pueden asignar diferentes direcciones de carga, con frecuencia se distingue entre las direcciones virtuales (percibidas por el programador) y las direcciones fsicas en donde el programa y sus datos se almacenan en memoria durante una ejecucin determinada. Ms especficamente, las direcciones virtuales son identificadores utilizados para referenciar informacin dentro del espacio de direcciones de un programa, mientras que las direcciones fsicas designan las posiciones reales en memoria fsica donde la informacin es almacenada en tiempo de ejecucin. Dependiendo de cundo y cmo tenga lugar la traduccin del espacio de direcciones virtuales al espacio de direcciones fsicas en un esquema de reubicacin determinado, hay dos tipos bsicos de reubicacin: Reubicacin esttica. Reubicacin dinmica. 1. Reubicacin esttica La reubicacin esttica implica generalmente que la reubicacin es realizada antes o durante la carga del programa en memoria, por el enlazador de reubicacin o por un cargador de reubicacin, respectivamente. Las constantes, las direcciones de puertos fsicos de E/S y los desplazamientos relativos al contador de programa son ejemplos de valores que no dependen de la posicin y no necesitan ser ajustados durante la reubicacin. Otras formas de direcciones de operandos pueden depender de la posicin en memoria de un programa, en cuyo caso deben ser ajustadas adecuadamente cuando el programa est siendo cargado o es trasladado a un rea diferente de memoria. 2. Reubicacin dinmica La reubicacin dinmica implica que la correspondencia entre el espacio de direcciones virtuales y el espacio fsico de direcciones se efecta en tiempo de ejecucin, usualmente con asistencia hardware. Las imgenes de procesos en sistemas con reubicacin dinmica son compiladas tambin suponiendo que la posicin inicial va a ser la direccin virtual 0, y son cargadas en memoria sin ningn ajuste de reubicacin. Cuando el proceso en cuestin est siendo ejecutado, todas sus referencias a memoria son reubicadas durante la ejecucin de la instruccin antes de acceder realmente a la memoria fsica. Este proceso se suele implementar por medio de registros base especializados. Tras la asignacin de una particin adecuada y la carga de una imagen de proceso en memoria, el sistema operativo prepara un registro base con la direccin de carga fsica inicial. Este Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

36

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

valor se obtiene normalmente de una entrada relevante en la tabla de descripcin de particiones. Cada referencia a memoria generada por el proceso en ejecucin se traduce a la direccin fsica correspondiente mediante la suma del contenido del registro base. La reubicacin es realizada por el hardware y es invisible a los programadores. En efecto, todas las direcciones en la imagen del proceso estn preparadas confiando en que el direccionamiento base implcito completar el proceso de reubicacin en tiempo de ejecucin. Este mtodo establece una clara distincin entre el espacio de direcciones virtuales y el espacio de direcciones fsicas. Un modo sencillo de conceptualizar esta distincin es advirtiendo que las direcciones generadas por el procesador anteriores a la reubicacin son direcciones virtuales, mientras que las direcciones fsicas son producidas por el hardware de traduccin y utilizadas para referenciar memoria. Esta clara separacin hace posible disear unidades de gestin de memoria opcionales aparte en sistemas microprocesadores y colocarlas entre el chip procesador y la circuitera de decodificacin de direcciones (fsicas) cuando se deseen formas avanzadas de gestin de memoria. La reubicacin dinmica hace posible trasladar un proceso parcialmente ejecutado desde un rea de memoria a otra sin afectar a su capacidad de acceder a instrucciones y datos correctamente en el nuevo espacio. Esta caracterstica es muy til para soportar intercambio sin asociacin de procesos a particiones, y para particiones dinmicas. En particular, la imagen en tiempo de ejecucin del proceso retirado de memoria puede ser posteriormente cargada y ejecutada en una nueva particin colocando simplemente la nueva direccin inicial en el registro base.

Comparticin Hay tres tcnicas bsicas de comparticin en sistemas con particin fija de me moria: Confiar los objetos compartidos al sistema operativo. Mantener mltiples copias de los objetos compartidos, una por cada particin participante. Utilizar particiones de memoria compartidas (comunes). Probablemente el modo ms fcil de implementar la comparticin sin compro meter significativamente a la proteccin es confiar los objetos compartidos al sis tema. Si el sistema operativo controla el acceso a los recursos compartidos, y se utiliza el mecanismo protegido de invocacin de los servicios del SO, pueden no ser necesarias provisiones adicionales para soportar la comparticin. Desgraciada mente. este sencillo mecanismo no es deseable por varias razones. En primer lu gar. el sistema operativo crece hasta el punto de incluir muchos servicios normalmente proporcionados por programas de sistema o programas de aplicacin. Todo este cdigo adicional incluido dentro del SO obtiene generalmente el mismo nivel de Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

37

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

privilegio que el normalmente fiable ncleo, afectando as a la integridad y fiabilidad general del sistema. El cdigo resultante, grande y monoltico, tambin puede ser ms difcil de desarrollar. verificar v mantener. Adems, este mtodo sufre de la incapacidad de incorporar nuevos objetos dinmicamente en los sistemas operativos ya que slo permite la inclusin de nuevos objetos durante la generacin del sistema. Un mtodo sencillo pero de elevado coste es mantener una copia fsica separada del objeto compartido residiendo en los espacios de direcciones privados de todos los procesos que la utilizan. En efecto. un solo objeto lgico se representa por medio de sus mltiples proyecciones: una por cada espacio de direcciones de proceso participante. Puesto que no hay un objeto original comnmente accesible. cada proceso se ejecuta utilizando la proyeccin local del objeto compartido. En consecuencia, las actualizaciones se efectan solamente sobre las copias del objeto compartido. Para que todas las copias permanezcan consistentes, las actualizaciones efectuadas sobre cualquiera de ellas deben ser propagadas a todas las copias restantes. El sistema operativo es el encargado de efectuar generalmente esta tarea copiando los datos compartidos desde el espacio de direcciones del proceso en ejecucin a todas las particiones participantes cada vez que se efecta una conmutacin de proceso. El intercambio, cuando est soportado, introduce una complejidad adicional al existir potencialmente uno o ms espacios de direcciones participantes ausentes de la memoria principal. La comparticin de cdigo por mantenimiento de mltiples copias fsicas del objeto compartido no tiene mucho sentido a la vista del hecho de que no cabe esperar ahorro de memoria. Otro mtodo sencillo tradicional de compartiein es colocar los datos en una particin comn dedicada. Sin embargo, cualquier intento por parte de un proceso participante de acceder a memoria fuera de su propia particin se considera generalmente una violacin de la proteccin. En sistemas con claves de proteccin, este obstculo puede ser evitado modificando en cada conmutacin de proceso las claves de todos los bloques compartidos con el fin de concederle derechos de acceso al proceso actualmente en ejecucin. Tener que llevar la cuenta de qu bloques estn siendo compartidos y por quin, adems de la necesidad potencialmente frecuente de modificar las claves, ocasiona un notable recargo en el SO necesario para soportar esta forma de comparticin.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

38

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

ASIGNACIN DE MEMORIA PARTICIONADA DINMICA


Comenzando con el estado inicial del sistema, las particiones pueden ser creadas dinmicamente para que se acomoden a las necesidades de cada proceso solicitante. Cuando un proceso termine o sea retirado de memoria. el gestor de memoria puede devolver el espacio vacante al fondo de reas de memoria libres a partir del cual se efectan las asignaciones de particiones. En principio, ni el tamao ni el nmero de particiones de memoria dinmicamente asignadas necesitan estar limitadas en tiempo de generacin del sistema ni en ningn otro momento. En la prctica, el gestor de memoria puede continuar creando y asignando particiones a procesos solicitantes hasta que agote toda la memoria fsica o alcance el mximo grado de multiprogramacin permitido.

Principios de operacin IDENTIFIQUE Cuando se le pide que cargue una imagen de proceso, el mdulo de gestin de memoria del sistema operativo intenta crear una particin adecuada que asignar al proceso en cuestin. El primer paso de esta actividad es localizar un rea libre contigua de memoria, si existe, que sea igual o mayor que el tamao del proceso declarado en la imagen remitida. Si encuentra un rea libre adecuada, el sistema operativo fabrica una particin a partir de ella para conseguir un ajuste exacto a las necesidades del proceso. El trozo restante de memoria libre, si queda, es devuelto al fondo de memoria libre para ser usado posteriormente por el mdulo de asignacin. La particin se crea introduciendo su base, tamao y estado (ASIGNADA) en la tabla de descripcin de particiones del sistema o en su equivalente. Normalmente se anota en el bloque de control del proceso una copia de esta informacin o un cierto enlace con ella. Cuando un proceso residente termina o es retirado de memoria, el sistema operativo termina la particin asociada. Esto consiste bsicamente en devolver el espacio de la particin (definido en la TDP) al fondo de memoria libre e invalidar la entrada correspondiente en la TDP. El sistema operativo necesita obviamente llevar la cuenta de las particiones y de la memoria libre. Una vez creada, una particin est definida por su direccin base y su tamao. Estos atributos permanecen esencialmente inalterados en tanto exista la particin asociada.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

39

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Los algoritmos ms habituales para seleccin de un rea libre de memoria en la creacin de una particin (Paso 1) son: Primer ajuste y su variante, siguiente ajuste. Mejor ajuste. Peor ajuste.

El ajuste es una modificacin del primer ajuste en donde el puntero a la lista de memoria libre se guarda despus de una asignacin y se utiliza para comenzar a partir de l la bsqueda de la asignacin siguiente. En efecto, la siguiente bsqueda contina en donde qued la ltima, en vez de comenzar siempre desde el principio de la lista de memoria libre, como es el caso con el primer ajuste. La idea es reducir la bsqueda evitando examinar los bloques ms pequeos que. a la larga, tienden a acumularse al comienzo de la lista de memoria libre como resultado de las asignaciones previas. En general, no se ha demostrado que el siguiente ajuste sea una estrategia superior a la del primer ajuste en cuanto a reducir la cantidad de memoria desaprovechada. El primer ajuste es generalmente ms rpido debido a que termina tan pronto como encuentra un bloque libre lo suficientemente grande para alojar una nueva particin. El mejor ajuste, por otro lado, recorre la lista de memoria libre entera para hallar el bloque libre ms pequeo suficientemente grande para contener la particin que est siendo creada. En principio, el primer ajuste es ms rpido. pero no minimiza la memoria desaprovechada para una asignacin determinada. El mejor ajuste es ms lento, y tiende a producir bloques de restos libres pequeos que pueden resultar demasiado pequeos para asignaciones posteriores. Sin embargo, cuando se procesan una serie de peticiones comenzando con una memoria inicialmente libre, ninguno de los dos algoritmos ha demostrado ser superior al otro en cuanto a la memoria desaprovechada. El peor ajuste est en las antpodas del mejor ajuste, ya que asigna el bloque libre ms grande. siempre que el tamao del bloque exceda al tamao de la particin solicitada. La idea del peor ajuste es reducir la tasa de produccin de restos pequeos. que son bastante habituales cuando se utiliza el mejor ajuste para asig nacin de memoria.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

40

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Compactacin CUANDO SE DA A QUE SE REFIERE La integracin de reas libres adyacentes cuando se devuelven bloques libres es un mtodo normalmente utilizado para reducir la fragmentacin consecuentemente la cantidad de memoria desaprovechada. La razn principal de la fragmentacin es que, debido a los diferentes tiempos de vida de los objetos residentes, el orden de las devoluciones de reas libres es diferente generalmente del orden de las asignaciones. Si la memoria resulta seriamente fragmentada, la nica salida posible es reu bicar algunas o todas las particiones en un extremo de la memoria v as combinar los huecos para formar una nica rea libre grande. Como los procesos afectados deben ser suspendidos y copiados realmente de un rea de la memoria a otra, es importante decidir cundo y cmo debe realizarse este proceso, al que se conoce como compactacin de memoria. La compactacin de memoria puede realizarse siempre que sea posible o slo cuando sea necesaria. Algunos sistemas compactan la memoria cada vez que un proceso saliente crea un rea libre, recolectando as la mayora de la memoria libre en una nica rea grande. Una alternativa es compactar nicamente en caso de imposibilidad de asignar una particin adecuada, supuesto que el tamao combi nado de las reas libres supera a las necesidades de la peticin en cuestin. En caso contrario la memoria libre no puede satisfacer la peticin pendiente de ningn modo, y la compactacin por s misma puede no merecer la pena.

Proteccin concepto
La proteccin y comparticin en sistemas con particin dinmica de memoria no se diferencian significativamente de sus contrapartidas en entornos de particin es ttica. ya que ambos se apoyan en un soporte hardware virtualmente idntico. Una diferencia es que la particin dinmica permite que particiones adyacentes en me moria fsica puedan solaparse. Consiguientemente, una sola copia fsica de un ob jeto compartido puede ser accesible desde dos espacios de direcciones distintas. Aunque quizs conceptualmente atractiva, esta forma de comparticin es bastante restrictiva en la prctica.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

41

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Fragmentacin concepto tipos La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de gestin de memoria que se vieron en los mtodos anteriores. Tanto el primer ajuste, como el mejor y el peor producen fragmentacin externa. La fragmentacin es generada cuando durante el reemplazo de procesos quedan huecos entre dos o ms procesos de manera no contigua y cada hueco no es capaz de soportar ningn proceso de la lista de espera. La fragmentacin puede ser: Fragmentacin Externa: existe el espacio total de memoria para satisfacer un requerimiento, pero no es contigua. Fragmentacin Interna: la memoria asignada puede ser ligeramente mayor que la requerida; esta referencia es interna a la particin, pero no se utiliza. La fragmentacin externa se puede reducir mediante la compactacin para colocar toda la memoria libre en un solo gran bloque, pero esta solo es posible si la relocalizacin es dinmica y se hace en tiempo de ejecucin.

ASIGNACIN DE MEMORIA PARTICIONADA RELOCALIZABLE (SEGMENTACIN)

La extensin de la fragmentacin externa y su impacto negativo en cuanto a me moria desaprovechada debera reducirse en sistemas donde el tamao medio de una peticin de asignacin sea ms pequeo. Puesto que no hay mucho que el sistema operativo pueda hacer para reducir el tamao medio de los procesos, un modo de reducir el tamao medio de una peticin de memoria es dividir el espacio de direcciones de un solo proceso en bloques que puedan ser colocados en reas no contiguas de memoria. Esto puede lograrse con un esquema de gestin de memoria llamado segmentacin. La segmentacin va bastante ms all de la simple ruptura y espacio de direcciones en varas entidades lgicas (segmentos) ya que tambin proporciona reubicacin dinmica y formas sofisticadas de proteccin y comparticin. Los segmentos se forman en tiempo de traduccin del programa mediante la agrupacin de elementos relacionados lgicamente. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

42

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Principios de operacin concepto y principios de operacion


Para fines de reubicacin, cada segmento se compila para que comience en su propia direccin virtual 0. Un elemento individual dentro de un segmento es identificable entonces por su desplazamiento relativo al comienzo del segmento en el que est incluido. Por tanto, las direcciones en los sistemas segmentados tienen dos componentes: El nombre (nmero) del segmento. El desplazamiento dentro del segmento. Para simplificar el procesamiento, los nombres de los segmentos se traducen generalmente por nmeros de segmento (virtuales). Esta correspondencia es esttica, y puede ser efectuada por programas del sistema durante la preparacin de las imgenes de los procesos. noTraduccin de direcciones

Puesto que la memoria fsica en sistemas segmentados retiene generalmente su organizacin como array lineal, es necesario un cierto mecanismo de traduccin de direcciones para convertir una direccin de segmento virtual bidimensional en su equivalente fsico unidimensional. En sistemas segmentados, los elementos pertenecientes a un solo segmento residen en un rea contigua de la memoria fsica. Puesto que cada segmento se compila como si comenzara a partir de la direccin virtual 0, los segmentos son generalmente reubicables individualmente. Como resultado, no es necesario que los diferentes segmentos de un mismo proceso ocupen reas contiguas de memoria fsica. El precio pagado por la segmentacin del espacio de direcciones de un proceso es el recargo por almacenar y acceder a las tablas de descriptores de segmentos. La traduccin de cada direccin virtual requiere dos referencias a memoria fsica por cada referencia virtual (de programa): Una referencia a memoria para acceder al descriptor de segmento en la TDS. Una referencia a memoria para acceder al dato final en memoria fsica.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

43

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

No Registros descriptores de segmento

Al ser el rendimiento de los sistemas segmentados tan crticamente dependiente de la duracin del proceso de traduccin de direcciones, los diseadores de sistemas
informticos suelen proporcionar algunos aceleradores hardware para hacer ms rpida la traduccin. Las referencias a memoria ocasionadas por la traduccin pueden evitarse manteniendo los descriptores de segmento en registros. Las referencias a memoria pueden ser clasificadas funcionalmente como accesos a: 1. Instrucciones. 2. Datos. 3. Pila.

Proteccin
La forma base-lmite de la proteccin es obviamente la eleccin ms natural en sistemas segmentados. La separacin de espacios de direcciones distintos est forzada por la colocacin de segmentos diferentes en reas disjuntas de memoria. As, la mayor parte de la discusin sobre proteccin en sistemas con asignacin dinmica de memoria es aplicable tambin a los entornos segmentados. Una posibilidad interesante en los sistemas segmentados es proporcionar proteccin dentro del espacio de direcciones de un nico proceso, adems de la proteccin ms usual entre procesos diferentes. Dado que el tipo de cada segmento se define de acuerdo con la naturaleza de la informacin almacenada en sus elementos constituyentes, los derechos de acceso a cada segmento pueden definirse co rrespondientemente. Los segmentos de datos pueden ser de slo lectura, de slo escritura o de lectura escritura. As, los sistemas segmentados pueden ser capaces de prohibir algunas operaciones sin significado tales como la ejecucin de datos o las modificaciones del cdigo. Una observacin importante es que los derechos de acceso a diferentes partes de un nico espacio de direcciones pueden variar de acuerdo con el tipo de informacin almacenada en ellas.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

44

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Debido a la agrupacin de los elementos lgicamente relacionados, la segmentacin es uno de los raros esquemas de gestin de memoria que permite una delineacin de los derechos de acceso finamente granulada. El mecanismo que asegura el cumplimiento de los derechos de acceso declarados en sistemas segmentados va generalmente asociado con el hardware de traduccin de direcciones. Tpicamente, los bits que indican derechos de acceso estn incluidos en los descriptores de segmento. Durante la traduccin de una direccin, el tipo de referencia solici tado se contrasta con los derechos de acceso para el segmento en cuestin. Cualquier disparidad da lugar al aborto de la referencia a memoria en progreso y a la llamada al sistema operativo.

Segmentacin
Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su divisin lgica; llevndose a cabo una agrupacin lgica de la informacin en bloques de tamao variable denominados segmentos. Cada uno de ellos tienen informacin lgica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una coleccin de segmentos, que generalmente reflejan la divisin lgica del programa. La segmentacin permite alcanzar los siguientes objetivos: Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa. Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio tamao y este puede variar. Proteccin: se puede proteger los mdulos del segmento contra accesos no autorizados. Comparicin: dos o ms procesos pueden ser un mismo segmento, bajo reglas de proteccin; aunque no sean propietarios de los mismos. Enlace dinmico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecern solo cuando sea necesario.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

45

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Ventajas de la segmentacin
El esquema de segmentacin ofrece las siguientes ventajas: El programador puede conocer las unidades lgicas de su programa, dndoles un tratamiento particular. Es posible compilar mdulos separados como segmentos el enlace entre los segmentos puede suponer hasta tanto se haga una referencia entre segmentos. Debido a que es posible separar los mdulos se hace ms fcil la modificacin de los mismos. Cambios dentro de un modulo no afecta al resto de los mdulos. Es fcil el compartir segmentos. Es posible que los segmentos crezcan dinmicamente segn las necesidades del programa en ejecucin. Existe la posibilidad de definir segmentos que aun no existan. As, no se asignara memoria, sino a partir del momento que sea necesario hacer usos del segmento. Un ejemplo de esto, serian los arreglos cuya dimensin no se conoce hasta tanto no se comienza a ejecutar el programa. En algunos casos, incluso podra retardar la asignacin de memoria hasta el momento en el cual se referencia el arreglo u otra estructura de dato por primera vez.

Desventajas de la segmentacin
Hay un incremento en los costos de hardware y de software para llevar a cabo la implantacin, as como un mayor consumo de recursos: memoria, tiempo de CPU, etc. Debido a que los segmentos tienen un tamao variable se pueden presentar problemas de fragmentacin externas, lo que puede ameritar un plan de reubicacin de segmentos en memoria principal. Se complica el manejo de memoria virtual, ya que los discos almacenan la informacin en bloques de tamaos fijos, mientras los segmentos son de tamao variable. Esto hace necesaria la existencia de mecanismos ms costosos que los existentes para paginacin. Al permitir que los segmentos varen de tamao, puede ser necesarios planes de reubicacin a nivel de los discos, si los segmentos son devueltos a dicho dispositivo; lo que conlleva a nuevos costos. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

46

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

No se puede garantizar, que al salir un segmento de la memoria, este pueda ser trado fcilmente de nuevo, ya que ser necesario encontrar nuevamente un rea de memoria libre ajustada a su tamao. La comparticion de segmentos permite ahorrar memoria, pero requiere de mecanismos adicionales da hardware y software. Estas desventajas tratan de ser minimizadas, bajo la tcnica conocida como Segmentacin paginada.

MEMORIA VIRTUAL.
Es un mtodo mediante el cual, un sistema operativo simula tener ms memoria principal que la que existe fsicamente. Para implementar la memoria virtual se utiliza un medio de almacenamiento secundario de alta velocidad de acceso, generalmente en disco duro de la maquina. Un sistema de memoria virtual se implementa utilizando paginacin como mtodo de administracin de memoria bsica y algn mecanismo de intercambio (para descargar pginas de la memoria principal hacia el disco duro y para cargar esas pginas de nuevo a la memoria). En las tablas de pginas se agrega un campo mas a cada entrada: El bit valido/invalido (p), que indica si la pagina a la que se est haciendo referencia en un momento dado se encuentra en la memoria principal (valido) o en el disco duro (invalido). Cuando el sistema operativo haga referencia a una pagina invalida, debe r ir al disco duro y cargarla a memoria principal para continuar el procesamiento. Este proceso se muestra en la siguiente figura:

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

47

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Existen 2 mtodos para cargar programas en memoria: Demanda de pgina. Consiste en iniciar la ejecucin de los procesos sin pginas cargadas, estas se irn cargando conforme el proceso las demande. Repaginacin. Consiste en que el sistema operativo predice cuales paginas se ocuparan durante la ejecucin de un proceso.

Paginacin
Hasta ahora, los mtodos que hemos visto de la administracin de la memoria principal, nos han dejado con un problema: fragmentacin, (huecos en la memoria que no pueden usarse debido a lo pequeo de su espacio) lo que nos provoca un desperdicio de memoria principal. Una posible solucin para la fragmentacin externa es permitir que espacios de direcciones lgicas lleve a cabo un proceso en direcciones no contiguas, as permitiendo al proceso ubicarse en cualquier espacio de memoria fsica que est disponible, aunque est dividida. Una forma de implementar esta solucin es a travs del uso de un esquema de paginacin. La paginacin evita el considerable problema de ajustar los pedazos de memoria de tamaos variables que han sufrido los esquemas de manejo de memoria anteriores. Dado a sus ventajas sobre los mtodos Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

48

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

previos, la paginacin, en sus diversas formas, es usada en muchos sistemas operativos. Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de memoria, sino que van a una unidad administradora de la memoria (MMU Memory Management Unit). Estas direcciones generadas por los programas se llaman direcciones virtuales y conforman el hueco de direcciones virtuales. Este hueco se divide en unidades llamadas pginas. Las unidades correspondientes en la memoria fsica se llaman marcos para pgina o frames. Las pginas y los frames tienen siempre el mismo tamao.

Tablas de pginas
Cada pgina tiene un nmero que se utiliza como ndice en la tabla de pginas, lo que da por resultado el nmero del marco correspondiente a esa pgina virtual. Si el bit presente / ausente es 0, se provoca un sealamiento (trap) hacia el sistema operativo. Si el bit es 1, el nmero de marco que aparece en la tabla de pginas se copia en los bits de mayor orden del registro de salida, junto con el ajuste (offset) de 12 bits, el cual se copia sin modificaciones de la direccin virtual de entrada. Juntos forman una direccin fsica de 15 bits. El registro de salida se coloca entonces en el bus de la memoria como la direccin en la memoria fsica. El nmero de pgina virtual se divide en un nmero de pgina virtual (los bits superiores)y un ajuste (los bits inferiores). El nmero de pgina virtual se utiliza como un ndice en la tabla de pginas para encontrar la entrada de esa pgina virtual. El nmero de marco (si existe) se determina a partir de la tabla de pginas. El nmero de marco se asocia al extremo superior del ajuste y reemplaza al nmero de pgina virtual para formar una direccin fsica que se puede enviar a la memoria. La finalidad de la tabla de pginas es asociar las pginas virtuales con los marcos. En trminos matemticos, la tabla de pginas es una funcin, cuyo argumento es el nmero de pgina virtual y como resultado el nmero del marco fsico. Mediante el resultado de esta funcin, se puede reemplazar el campo de la pgina virtual de una direccin virtual por un campo de marco, lo que produce una direccin en la memoria fsica. Sin embargo hay que enfrentar dos aspectos fundamentales: La tabla de pginas puede ser demasiado grande. La asociacin debe ser rpida.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

49

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Caractersticas de la paginacin: El espacio de direcciones lgico de un proceso puede ser no contiguo. Se divide la memoria fsica en bloques de tamao fijo llamados marcos (frames). Se divide la memoria en bloques de tamao llamados paginas. Se mantiene informacin en los marcos libres. Para correr un programa de n paginas de tamao, se necesitan encontrara n marcos y cargar el programa. Se establece una tabla de paginas para trasladar las direcciones lgicas a fsicas. Se produce fragmentacin interna.

Ventajas de la paginacin Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud. No es necesario que las paginas estn contiguas en memoria, por lo que no se necesitan procesos de compactacin cuando existen marcos de paginas libres dispersos en la memoria. Es fcil controlar todas las pginas, ya que tienen el mismo tamao. El mecanismo de traduccin de direcciones (DAT) permite separar los conceptos de espacio de direcciones y espacios de memoria. Todo el mecan diismo es transparente al usuario. Se libera al programador de la restriccin de programar para un tamao fsico de memoria, con lo que s e aumenta su productividad. Se puede programar en funcin de una memoria mucho ms grande a la existente. Al no necesitarse cargar un programa completo en memoria para su ejecucin, se puede aumentar el numero de programas multiprogramndose. Se elimina el problema de fragmentacin externa.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

50

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Desventajas de la paginacin El costo de hardware y software se incrementa, por la nueva informacin que debe manejarse y el mecanismo de traduccin de direcciones necesario. Se consume mucho mas recursos de memoria, tiempo en el CPU para su implantacin. Se deben reservar reas de memoria para las PMT de los procesos. Al no ser fija el tamao de estas, se crea un problema semejante al de los programas (como asignar un tamao ptimo sin desperdicio de memoria, u ovearhead del procesador). Aparece el problema de fragmentacin interna. As, si se requieren 5K para un programa, pero las paginas son de 4K, debern asignrseles 2 paginas (8k), con lo que quedan 3K sin utilizar. La suma de los espacios libres dejados de esta forma puede ser mayor que el de varias paginas, pero no podr ser utilizados. Debe asignarse un tamao promedio a las pginas, evitando que si son muy pequeas, se necesiten TABLAS BMT y PMT muy grandes, y si son muy grandes, se incremente el grado de fragmentacin interna.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

51

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

No Algoritmos de reemplazo de pginas


Con el uso del mtodo de paginacin se puede llegar a saturar la memoria si se incrementa demasiado el nivel de multiprogramacin. Esto provoca sobre-asignacin y mientras un proceso de usuario se est ejecutando, ocurre un fallo de pgina. El hardware se bloquea con el sistema operativo, el cual checa en sus tablas internas y se da cuenta que es un fallo de pgina y no un acceso ilegal de memoria. El sistema operativo determina si la pgina est residiendo en disco, pero tambin determina que no hay marcos de memoria disponibles en la lista de marcos libres. Al ocurrir el fallo de pgina, el sistema operativo debe elegir una pgina para retirarla de la memoria y usar el espacio para la pgina que se necesita para desbloquear el sistema y que el hardware pueda seguir trabajando. Si la pgina por eliminar de la memoria fue modificada, se debe volver a escribir al disco para mantener la informacin actualizada; de lo contrario, si la pgina no fue modificada no es necesario rescribir la informacin a disco y la pgina que se carga simplemente se escribe sobre la pgina a borrar en memoria. La figura 1 muestra grficamente un intercambio de pginas entre la memoria principal y el disco (memoria secundaria).

Pgina a eliminar Marco elegido para intercambio de pgina Pgina a cargar

Memoria Principal

Fig. 1. Se elimina de la memoria principal una pgina que no est en uso y se reemplaza por una pgina de la cual el sistema operativo tiene necesidad de uso. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

52

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Reemplazo de pginas ptimo enteder todos los dibujos


Este algoritmo debe de tener el menor ndice de fallos de pgina de todos los algoritmos. En teora, este algoritmo debe de reemplazar la pgina que no va a ser usada por el periodo ms largo de tiempo. Desafortunadamente, el algoritmo de reemplazo ptimo es fcil en teora, pero prcticamente imposible de implementar, dado que requiere conocer a futuro las necesidades del sistema. Tal algoritmo existe y ha sido llamado OPT o MIN, pero se usa nicamente para estudios de comparaciones.

Algoritmo de reemplazo Primero en entrar, primero en salir (FIFO)


El algoritmo ms sencillo para reemplazo de pginas es el FIFO (First In First Out). Este algoritmo asocia a cada pgina el momento en que sta fue trada a memoria. Cuando una pgina debe ser reemplazada se selecciona a la ms antigua. No es estrictamente necesario registrar el momento de entrada de la pgina a memoria, sino que se puede crear una cola en la que se van agregando las pginas conforme van llegando a la memoria. Cuando se debe eliminar una pgina, se selecciona la que est al frente de la lista (o sea, la ms antigua de la lista). Cuando llega una pgina nueva, se inserta en la parte trasera de la cola. En la figura 2 se representa el funcionamiento de ste algoritmo.

Pgina ms reciente

Pgina ms antigua

Fig. 2. Reemplazo de pginas mediante el algoritmo FIFO. Este algoritmo es fcil de comprender y de programar. Sin embargo, su desempeo no siempre es del todo bueno. La pgina reemplazada puede ser un mdulo de inicializacin que fue usado hace mucho tiempo y ya no se tiene necesidad de l. Por otro lado, puede contener una variable de uso muy frecuente que fue inicializada de manera temprana y est en uso constante.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

53

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Algoritmo de reemplazo de pginas de la segunda oportunidad


Este algoritmo es una modificacin del FIFO. El algoritmo hace uso del bit de referencia de la pgina. Cuando una pgina ha sido seleccionada para reemplazo, se revisa el bit de referencia. Si tiene valor de 0, se procede a reemplazar la pgina. Si por el contrario, el bit de referencia es 1 se le da a la pgina una segunda oportunidad.

Pgina ms reciente

El bit se cambia a 0 y se actualiza el tiempo de llegada de la pgina A F E D C

Pgina ms reciente

Pgina ms antigua Pgina seleccionada para reemplazo con bit 1 Pgina B ms antigua A

Fig. 3. Algoritmo de la segunda oportunidad. Cuando esto sucede, se le cambia el bit de referencia a 0 y se actualiza su tiempo de llegada al tiempo actual para que la pgina se colocada al final de la cola. De esta manera, la pgina espera todo un ciclo completo de pginas para ser entonces reemplazada. Si la pgina tiene un uso muy frecuente, el bit de referencia se mantendra constantemente en 1 y la pgina no sera reemplazada. En la figura 3 se puede apreciar el funcionamiento del algoritmo.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

54

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Algoritmo de reemplazo de pginas del reloj


Este algoritmo organiza las pginas en una lista circular como se muestra en la figura 4 y se usa un apuntador (o manecilla) que seala a la pgina ms antigua. K J I H G F E D C L A B

Fig. 4. Algoritmo de reloj. Cuando se presenta un fallo de pgina, el algoritmo revisa la pgina a la que est apuntando la manecilla. Si el bit de referencia es 0, la pgina es reemplazada con la nueva y la manecilla avanza una posicin. Si el bit es 1, entonces se limpia (cambia a 0) y la manecilla avanza a la siguiente pgina y as sucesivamente hasta encontrar una con bit 0. Algoritmo de reemplazo de pginas la de menor uso reciente (LRU - Least Recent Use)

Este algoritmo es una buena aproximacin al ptimo y se basa en la observacin de que las pginas de uso frecuente en las ltimas instrucciones se utilizan con cierta probabilidad en las siguientes. De la misma manera, es probable que las pginas que no hayan sido utilizadas durante mucho tiempo permanezcan sin uso por bastante tiempo. Implementando el algoritmo con esta base, al ocurrir un fallo de pgina, se elimina la pgina que no haya sido utilizada durante el tiempo ms grande. A diferencia de los algoritmos anteriores, el LRU tiene un mejor rendimiento en cuanto al tiempo de aprovechamiento del CPU y del uso de la memoria. Sin embargo, el problema con este algoritmo es que su implementacin es muy cara, ya que requiere de una asistencia considerable de hardware. Otro problema es el de determinar un orden para los marcos definido por el tiempo de menor uso. Para ste ltimo hay dos posibles implementaciones: Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

55

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Contadores: En el caso ms sencillo, se asocia cada entrada tabla-pgina un campo de tiempo-de-uso y se le agrega al CPU un reloj lgico o contador. Este reloj es incrementado en cada referencia de memoria. Siempre que se hace referencia a una pgina, el contenido del registro del reloj es copiado al campo de tiempo-de-uso en la tabla de pginas para esa pgina. De esta forma, siempre se dispone del tiempo de la ltima referencia a cada pgina. La pgina que se reemplaza es la del menor valor de tiempo. Este esquema requiere de una bsqueda en toda la tabla de pginas para encontrar la pgina LRU, y una escritura en memoria al campo de tiempo-de-uso en la tabla de pginas por cada acceso a memoria. Los tiempos tambin se deben de mantener cuando las tablas de pginas son alteradas (debido a organizacin del CPU). Se debe considerar la posibilidad de sobrecarga en el reloj. Pilas: Otra aproximacin para implementar el reemplazo LRU es la de tener una pila con los nmeros de pginas. Siempre que se hace referencia a una pgina, se quita de la pila y se pone en la parte superior. De esta manera, la parte superior de la pila es la pgina de uso ms reciente y la de abajo es la LRU, tal como se muestra en la figura 5.

A E D C B A E D C B

Fig. 5. Uso de pilas en el algoritmo LRU

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

56

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Administracin del procesador


1. Qu es la planificacin del procesador. 2. Explique en que consisten los tres niveles de planificacin. 3. Explique los distintos objetivos de la planificacin 4. Qu es la planificacin de procesos. 5. Qu es la expulsin. 6. Qu es la planificacin apropiativa. 7. Qu es la planificacin no apropiativa. 8. Explique en que consiste el modelo de procesos con dos estados y dibuje su esquema. 9. Explique en que consiste el modelo de procesos con tres estados y dibuje su esquema. 10. Explique en que consiste el modelo de procesos con cinco estados y dibuje su esquema. 11. Explique las diferentes transiciones de estados. 12. Cul es la funcin del programa distribuidor. 13. Explique en que consiste el comportamiento del programa distribuidor. 14. Mediante tres razones distintas explique la importancia de los procesos suspendidos. 15. Explique en que consisten los estados: listo suspendido, bloqueado suspendido. 16. Explique las diferentes transiciones de estados que surgen a raz de los procesos suspendidos. 17. Qu son los algoritmos de planificacin 18. Explique cada uno de los algoritmos de planificacin.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

57

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Administracin del procesador Planificacin del procesador


La planificacin del procesador se refiere a la manera o tcnicas que se usan para decidir cunto tiempo de ejecucin y cuando se le asignan a cada proceso del sistema. Obviamente, si el sistema es monousuario y monotarea no hay mucho que decidir, pero en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema.

Niveles de planificacin
En los sistemas de planificacin generalmente se identifican tres niveles: el alto, el medio y el bajo. El nivel alto decide que trabajos (conjunto de procesos) son candidatos a convertirse en procesos compitiendo por los recursos del sistema. El nivel intermedio decide que procesos se suspenden o reanudan para lograr ciertas metas de rendimiento. El planificador de bajo nivel es el que decide que proceso, de los que ya estn listos (y que en algn momento paso por los otros dos planificadores) es al que le toca ahora estar ejecutndose en la unidad central de procesamiento. Objetivos de la planificacin. Una estrategia de planificacin debe buscar que los procesos obtengan sus turnos de ejecucin apropiadamente, conjuntamente con un buen rendimiento y minimizacin de la sobrecarga del planificador mismo. En general, se buscan cinco objetivos principales: Justicia o Imparcialidad: Todos los procesos son tratados de la misma forma, y en algn momento obtienen su turno de ejecucin o intervalos de tiempo de ejecucin hasta su terminacin exitosa. Maximizar la Produccin: El sistema debe de finalizar el mayor numero de procesos en por unidad de tiempo. Maximizar el Tiempo de Respuesta: Cada usuario o proceso debe observar que el sistema les responde consistentemente a sus requerimientos. Evitar el aplazamiento indefinido: Los procesos deben terminar en un plazo finito de tiempo. El sistema debe ser predecible: Ante cargas de trabajo ligeras el sistema debe responder rpido y con cargas pesadas debe ir degradndose paulatinamente. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

58

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Planificacin de procesos
La planificacin es el proceso por el cual el sistema operativo selecciona que proceso ejecutar. La seleccin del proceso se basa en alguno de los algoritmos de planificacin que se describen ms abajo.

No Expulsin
Es la caracterstica por el cual el sistema operativo puede o no expulsar del estado de ejecucin a un proceso dado. En este sentido entonces tenemos la planificacin apropiativa en la cual el sistema operativo puede cortar en cualquier momento la ejecucin de un proceso y la planificacin no apropiativa en la cual una vez que el proceso esta en ejecucin el sistema operativo no puede sacarlo de ese estado.

Estados de los procesos


Modelos de Procesos con Dos Estados: Es el modelo ms sencillo que puede construirse, este modelo tiene en cuenta que, en un momento dado un proceso puede estar ejecutndose en el procesador o no. As pues, un proceso puede estar en uno de dos estados: Ejecucin o No Ejecucin

Fig1. Diagrama de Dos Estados Cuando el SO crea un nuevo proceso, ste entra en el sistema en un estado de No Ejecucin. De este modo el proceso existe, es conocido por el sistema operativo y est esperando la oportunidad de ejecutarse. El proceso anterior pasa del estado de No Ejecucin y uno de los dems procesos pasar al estado de Ejecucin.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

59

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Modelo de Procesos de Tres Estados


Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecucin y Bloqueado.

Ejecucin.- Si tiene asignada la CPU, es decir, que el proceso est actualmente en ejecucin. Listo.- Si pudiera utilizar la CPU, es decir, que el proceso est preparado para ejecutar, en cuanto se le d la oportunidad. Bloqueados.- Proceso que no puede ejecutar hasta que se produzca cierto suceso, como la terminacin de una operacin de E/S.

Fig2. Diagrama de Tres Estados

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

60

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Modelo de Procesos de Cinco Estados: Para la gestin de procesos es til la construccin de dos estados ms: Nuevo y Terminado. Nuevo.- Proceso que se acaba de crear, pero que an no ha sido admitido por el sistema operativo en el grupo de procesos ejecutables. Terminado.- Un proceso que ha sido excluido por el sistema operativo del grupo de procesos ejecutables, bien porque se detuvo o porque fue abandonado por alguna razn.

El siguiente esquema nos mostrar los cinco estados.

Fig3. Diagrama de Cinco Estados

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

61

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Transicin de Estados: Es el paso de un estado a otro y se explica a continuacin:


Nulo a Nuevo: Se crea un nuevo proceso para ejecutar un programa. Nuevo a Listo: El sistema operativo pasar un proceso del estado Nuevo al estado Listo cuando est preparado para aceptar un proceso ms. Listo a Ejecucin: Cuando es hora de seleccionar un nuevo proceso para ejecutar. El sistema operativo elige uno de los procesos del estado Listo. Ejecucin a Terminado: El proceso que se est ejecutando es finalizado por el sistema operativo si indica que termin o si se abandona Ejecucin a Listo: Un proceso pasa de ejecucin a listo, cuando se le acaba el tiempo asignado por el planificador de procesos del sistema, en este momento el sistema debe asignar el proceso a otro proceso. Ejecucin a Bloqueado: Un proceso pasa de ejecucin a bloqueado cuando ejecuta una instruccin que implica la espera de un evento, por ejemplo debe esperar que ocurra efectivamente la E/S, espera por la activacin de un semforo, etc. Bloqueado a Listo: Un proceso pasa de bloqueado a listo cuando el evento externo que espera sucede. Listo a Terminado: En algunos sistemas, un padre puede terminar con un proceso hijo en cualquier momento. Adems, si el padre termina, todos los procesos hijos asociados con l pueden ser finalizados. Bloqueado a Terminado: Equivalente al anterior.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

62

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

No PROGRAMA DISTRIBUIDOR
El programa distribuidor asigna el procesador de un proceso a otro el proceso del distribuidor se puede describir en trminos de un diagrama de colas. Cuando un proceso se interrumpe, se le pasa a la cola de procesos de espera. Por otra parte, si un proceso termina o se abandona, se le descarta del sistema (sale del sistema). En cualquier caso, el distribuidor selecciona entonces un proceso de la cola para ejecutarlo. Comportamiento del programa distribuidor. De cuando en cuando, el proceso que est ejecutando ser interrumpido y el programa Distribuidor del sistema operativo seleccionar un nuevo proceso para que se ejecute. Aquellos procesos que no estn ejecutndose tienen que guardarse en algn tipo de cola, para que esperen su turno de ejecucin en el siguiente diagrama mostraremos una estructura.

Fig4.Diagrama de colas

Una forma en lo que se podra implementar esta disciplina de cola seria de dos formas. Una cola de Listo y una cola de bloqueados. A medida que se admiten procesos en el sistema se sitan en la cola de listos, llegada la hora el SO escoge otro proceso para ser ejecutado y la selecciona de la cola de listos, sta puede ser una simple cola FIFO.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

63

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Cuando un proceso que est ejecutndose es apartado de la ejecucin, o bien se le finaliza o bien se le pone en la cola de listos o de bloqueados.

Fig5. Una sola cola de Bloqueados

PROCESOS SUSPENDIDOS
Las nociones de procesos suspendidos son importantes por varias razones:

Si un sistema est funcionando deficientemente y puede fallar, entonces los procesos que estn en ejecucin debern ser suspendidos para reanudarlos una vez que el problema ha sido corregido. Un usuario que sospeche que algo no anda bien, partiendo de los resultados parciales obtenidos procesos, puede suspenderlo (en lugar de abortarlo) hasta que el usuario est seguro de s el proceso funciona correctamente o no. Como respuesta a las fluctuaciones a corto plazo en la carga del sistema, algunos procesos pueden ser suspendidos y reanudados ms tarde, cuando la carga vuelva a sus niveles normales.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

64

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

El grfico siguiente nos muestra el diagrama de transicin del estado de proceso modificado para incluir suspensin y reanudacin. Se han aadido dos estados ms: El suspendido listo y el suspendido bloqueado.

Listo suspendido: El proceso est en memoria secundaria pero est disponible para su ejecucin tan pronto como se cargue en memoria principal. Bloqueado Suspendido: El proceso est en memoria secundaria esperando un suceso.

Fig 6. Diagrama de transicin con estados de suspensin Las nuevas e importantes transiciones son las siguientes:

Bloqueado a Bloqueado 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 suspendido a Listo suspendido: Un proceso realiza esta transicin cuando ocurre el suceso que estaba esperando Listo suspendido a Listo: Cuando no hay proceso en la memoria principal, el sistema operativo tendr que traer uno para continuar la ejecucin. Listo a Listo suspendido: A veces es necesario suspender un proceso listo si es la nica salida de liberar un enorme bloque de memoria principal.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

65

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Otras Transiciones son tambin consideras:

Nuevo a Listo suspendido y Nuevo a Listo: Cuando se crea un proceso se le puede aadir a alguna de las colas (listo o listo suspendido) en ambos casos el sistema operativo necesita construir una tablas para administra el proceso y asignar un espacio de direcciones. Bloqueado suspendido a Bloqueado: La razn fundamental para traer este proceso es que tiene una prioridad mayor que la de cualquier proceso de la cola de Listos suspendidos. Ejecucin a Listo suspendido: Existe un proceso de prioridad mayor en la lista de Bloqueados y suspendidos que se acaba de desbloquear esto lo hace con el motivo de liberar espacio en la memoria. Varios a Terminado: Un proceso puede ser finalizado por el proceso que lo cre o bien finalizar cuando termina el proceso padre.

Algoritmos de planificacin
Los algoritmos de planificacin son los que definen que poltica se va a seguir para que un proceso pase al estado de ejecucin. Planificacin Round-Robin (Algoritmo no apropiativo) El algoritmo de planificacin round-robin fue especialmente diseado para sistemas en tiempo compartido. Se define una pequea unidad de tiempo comn llamada quantum de tiempo o time slice, que generalmente tiene un valor entre 10 y 100 milisegundos. La cola de listos se trata como una cola circular. El planificador de CPU recorre la cola asignando el procesador a cada proceso durante un intervalo de tiempo de hasta un quantum. Para implementar la planificacin RR, la cola se mantiene como una cola de procesos FIFO. El planificador de la CPU selecciona el primer proceso de la cola, y nicamente puede salir del estado de ejecucin por tres motivos: que termine su ejecucin, se proceda al llamada a una E/S y el proceso se quede bloqueado o que se genere una interrupcin por haber superado un quantum de ejecucin del proceso.

Primero el trabajo ms corto Este tipo de algoritmo de planificacin se usa para trabajos en batch o de procesamiento por lotes en los cuales se puede saber cual es el tiempo de duracin de la ejecucin de cada proceso y entonces se puede seleccionar primero el trabajo ms corto. El problema que se presenta con ste algoritmo es que los grandes procesos podran sufrir de inanicin dado que cualquier proceso pequeo se "cuela" sobre uno de mayor tamao y como resultado final se podra dar el caso que el proceso grande nunca obtenga procesamiento. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

66

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Planificacin con colas de mltiples niveles y realimentacin

En el caso en que no se pueda determinar el tiempo de ejecucin, puede utilizarse este algoritmo. La planificacin es de tipo no apropiativo por quantum de tiempo y un mecanismo de prioridades dinmico. Cuando llega un proceso nuevo, este es colocado en la cola de mayor prioridad, luego de su primera ejecucin ste es colocado en la cola de prioridad siguiente menor y as sucesivamente hasta que llega hasta la ltima cola en donde se la vuelve a colocar en la misma nuevamente. Dentro de cada cola se utiliza el algoritmo de planificacin FCFS, en el caso de la ltima se utiliza el algoritmo round robin. En este algoritmo puede llegar a ocurrir starvation en el caso de que entren frecuentemente procesos nuevos, debido a que al tener mayor prioridad, no llega a ejecutarse los procesos de las ltimas colas. Para evitar esto, se utiliza un mecanismo de variacin del quantum de tiempo de ejecucin de los procesos de acuerdo a la cola en la que se encuentra. En el caso de que ocurra starvation, en un proceso que se queda sin ejecucin en la ltima cola, se lo puede enviar nuevamente hasta la cola de mayor prioridad para que contine su ejecucin. La idea de este algoritmo es separar los procesos con diferentes caractersticas en cuanto a sus rfagas de CPU. Si un proceso gasta demasiado tiempo en CPU, se le pasar a una cola con menor prioridad. Este esquema deja a los procesos limitados por E/S y los procesos interactivos en las colas de ms alta prioridad. En general, un planificador de colas multinivel con realimentacin est definido por los siguientes parmetros: El nmero de colas. El algoritmo de planificacin para cada cola El mtodo empleado para determinar cundo se debe promover un proceso a una cola de mayor prioridad. El mtodo empleado para determinar cundo se debe promover un proceso a una cola de menor prioridad. El mtodo empleado para determinar en cul cola ingresar un proceso cuando necesite servicio. La definicin de un planificador de colas multinivel con realimentacin lo convierte en el algoritmo de planificacin de la CPU ms general, ya que se puede configurar para adaptarlo a cualquier sistema especfico que se este diseando. Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

67

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Primero en llegar, primero en ser servido (FCFS First come first served) (Algoritmo apropiativo) Con mucha diferencia, es el algoritmo de planificacin ms sencillo. Esto es, el primer proceso en solicitar la CPU es el primero en recibir la asignacin de la misma. La implementacin del FCFS se realiza fcilmente mediante una cola FIFO. Cuando un proceso entra en la cola de preparados o listos para la ejecucin (ready queue), su PCB se enlaza al final de la cola. Cuando la CPU queda libre, sta se le asigna al proceso situado al principio de la cola. Entonces el proceso en ejecucin se elimina de la cola. El cdigo para la planificacin FCFS es sencillo de escribir y de comprender. FCFS rinde mucho mejor con procesos largos que con procesos cortos. Los problemas que presenta son: 1. El tiempo medio de espera suele ser elevado. 2. Bajo nivel de utilizacin de la CPU. 3. Pobre tiempo de respuesta en procesos cortos en esquemas con mucha carga. 4. Tiende a favorecer a los procesos con carga de CPU frente a los que tienen carga de E/S. 5. Uso ineficiente de los dispositivos de E/S.

Planificacidor prioridades La idea fundamental es directa: cada proceso tiene asociada una prioridad y el proceso ejecutable con mayor prioridad es el que tiene el permiso de ejecucin. Para evitar que los procesos de alta prioridad se ejecuten en forma indefinida, el planificador puede disminuir la prioridad del proceso en ejecucin Las prioridades se pueden asignar en forma esttica o dinmica.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

68

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Tiempo restante ms breve Es una disciplina en la que la siguiente entidad de planificacin, trabajo o proceso, se selecciona en la que la siguiente entidad de planificacin, trabajo o proceso, se selecciona sobre la base del menor tiempo de ejecucin restante. En cualquier caso, cada vez que se invoca al planificador, ste busca en la correspondiente cola el trabajo o proceso con el menor tiempo de ejecucin restante. Este mtodo tiende a aumentar los tiempos de espera de los trabajos largos en comparacin con la planificacin FCFS, pero esto suele ser aceptable. La dependencia sobre el conocimiento futuro tiende a limitar en la prctica la efectividad de esta implementacin ya que en general el comportamiento futuro del proceso es desconocido y difcil de estimar fiablemente, excepto para algunos casos deterministas muy especializados.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

69

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Bloques Mutuos
1. Explique en que consiste el bloqueo mutuo. 2. Explique los cuatro condiciones que deben existir para que se genere un bloqueo mutuo. 3. Cmo se previenen los bloqueos mutuos. 4. Anote los tres mtodos principales utilizados para enfrentar los bloques mutuos. 5. Explique los diferentes mtodos para resolver interbloqueos. 6. Anote las tres estrategias que sugiere Havender para negar varias de las condiciones necesarias para los bloqueos mutuos segn el mtodo de prevencin. 7. Cul de las condiciones necesarias para el bloqueo mutuo es negada por la propuesta de Havender. 8. Explique en que consiste la estrategia denominada Negacin de la condicin de espera. 9. Explique en que consiste la estrategia denominada Negacin de la condicin de no apropiacin. 10. Explique los tres pasos que deben llevarse a cabo para hacer una buena expropiacin de recursos. 11. Explique en que consiste la estrategia denominada Negacin de la condicin de espera circular. 12. Explique en que consiste el algoritmo del banquero utilizado para resolver interbloqueos segn el mtodo de evitacin de interbloqueos. 13. Anote los diferentes defectos que presenta el algoritmo del banquero. 14. Qu es la deteccin del bloqueo mutuo. 15. En que consiste la tcnica para detectar bloqueos denominada Reduccin de la grfica de asignacin de recursos 16. Anote las diferentes razones por las que se complica la recuperacin despus de un bloqueo mutuo. 17. Como se realiza la recuperacin de un interbloqueo en los Sistemas Operativos actuales. 18. Anote las dificultades que pueden presentarse para eliminar un proceso.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

70

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

MEMORIA CACHE
Objetivos Mantener el tiempo de acceso promedio a la memoria pequeo. Reducir el ancho de banda entre memoria principal y procesador

Operacin del cache La direccin generada por el procesador es comparada con los datos que estn almacenados en la cache, si el dato est presente, el procesador lo lee desde la cache, si el dato no est presente, se transfiere desde la memoria principal a la cache.

Terminologa Bloque: unidad mnima de almacenamiento en cache Acierto: palabra buscada pertenece a bloque presente en cache Desacierto: palabra buscada pertenece a bloque ausente de cache Razn de acierto: fraccin de referencias a memoria que producen aciertos Razn de desacierto: 1 - (razn de acierto) Tiempo de acierto: tiempo en leer un dato del cache Penalidad de desacierto: (tiempo en reemplazar bloque) + (tiempo de lectura de dato al procesador)

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

71

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Cache de proyeccin directa


Cada bloque de datos en memoria puede ubicarse en un y slo un bloque del cache.

Ventajas y desventajas Econmico, acceso rpido (utilizado en caches internas). Mayor razn de desaciertos por competencia por bloque especfico.

Cache completamente asociativo


Cualquier bloque de memoria puede ubicarse en cualquier bloque del cache.

Ventajas y desventajas Ms caro (muchos comparadores). Acceso ms lento, dato no disponible hasta saber si acceso fue acierto o desacierto (etapa de comparacin y multiplexin). Menor tasa de desaciertos por competencia por bloque

Cache asociativo por conjuntos


Es un esquema intermedio. Cada bloque memoria puede ser ubicado en uno de N bloques del cache .

Ventajas y desventajas Ms econmico que cache completamente asociativo, pero ms caro que cache directo Dato disponible despus de etapa de comparacin y multiplexin

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

72

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

BLOQUEOS MUTUOS
En los sistemas de multiprogramacin, compartir recursos es uno de los principales objetivos del sistema operativo. Cuando se comparten recursos entre una poblacin de usuarios o procesos, cada uno de los cuales mantiene un control exclusivo sobre ciertos recursos asignados a l, es posible que se produzcan bloqueos mutuos que impedirn la terminacin de algunos de los procesos del sistema. En un entorno de multiprogramacin, varios procesos podran competir por un nmero finitos de recursos. Un proceso solicita recursos; si estos no estn disponibles, el proceso pasa a un estado de espera. Puede suceder que los procesos en espera nunca vuelvan a cambiar de estado, porque los recursos que solicitaron estn en manos de otros procesos que tambin estn esperando. Esta situacin se llama bloque mutuo.

Caracterizacin de bloqueos mutuos


Los bloqueos mutuos son indeseables pero pasan, estos procesos nunca terminan su ejecucin y los recursos del sistema quedan acaparados, lo que impide que otros trabajos puedan comenzar. Cuatro condiciones necesarias para bloqueos mutuos: Condicin de exclusin mutua: los procesos exigen un control exclusivo de los recursos que necesitan. Condicin de espera: los procesos mantienen la posesin de los recursos ya asignados a ellos mientras esperan recursos adicionales. Condicin de no apropiacin: los recursos no pueden arrebatarse a los procesos a los cuales estn asignados hasta que termine su utilizacin. Condicin de espera circular: existe una cadena circular de procesos en la que cada proceso tiene uno o ms recursos que son requeridos por el siguiente proceso en la cadena.

Debemos recordar que se deben cumplir las cuatro condiciones para que ocurra bloqueo mutuos, pero como se previenen estos bloqueos, Si aseguramos que al menos una de estas condiciones no pueda cumplirse.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

73

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Mtodos para manejar bloqueos mutuos.


Hay tres mtodos principales para enfrentarlos. Podemos usar un protocolo que asegure que el sistema nunca llegara a un estado de bloqueo mutuo. Podemos permitir que el sistema entre en el bloque mutuo y luego se recupere. Podemos desentendernos del problema y hacer como si nunca ocurrieran bloqueos mutuos.

Estrategias para Resolver Interbloqueos


En la prevencin del interbloqueo interesa ajustar el sistema para eliminar toda posibilidad de que ocurra un bloqueo mutuo. La prevencin suele funcionar pero sus mtodos ocasionan, en general, un aprovechamiento pobre de los recursos. No obstante, estos mtodos se utilizan con frecuencia. Las tcnicas que tienen como objetivo evitar el interbloqueo imponen condiciones menos atractivas que en la prevencin, para tratar de obtener un aprovechamiento de los recursos. No elimina como las tcnicas de prevencin todas las posibilidades de que se produzca un bloqueo mutuo, pero se esquiva cuanto est a punto de suceder Los mtodos de deteccin del interbloqueo es utilizan en sistemas que permiten la ocurrencia de los mismos, ya sea de manera voluntaria o involuntaria. Su objetivo es determinar si ha ocurrido un bloqueo mutuo y saber exactamente cules son los procesos y recursos implicados en l. Los mtodos de recuperacin estn ntimamente ligados a los de deteccin. Sirven para eliminar los interbloqueos detectados en un sistema para poder seguir trabajando y para que los procesos implicados puedan terminar su ejecucin y liberen sus recursos. La recuperacin es un problema complejo, en el mejor de los casos, los sistemas se recuperan de un bloqueo mutuo eliminando completamente uno o varios de los procesos implicados. Despus, se inician de nuevo los procesos eliminados, perdindose la mayor parte o todo el trabajo previo realizado por el proceso.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

74

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

1. Prevencin de Interbloqueos
La estrategia empleada con ms frecuencia por los diseadores para tratar el bloqueo mutuo es la prevencin. Havender (68) lleg a la conclusin de que si falta alguna de las cuatro condiciones necesarias no puede haber un interbloqueo. Este autor sugiere las siguientes estrategias para negar varias de esas condiciones: Cada proceso deber pedir todos sus recursos al mismo tiempo y no podr seguir la ejecucin hasta haberlos recibido todos. Si a un proceso que tiene recursos se le niegan los dems, ese proceso deber liberar sus recursos y, en caso necesario, pedirlos de nuevo junto con los recursos adicionales. Se impondr un ordenamiento lineal de los tipos de recursos en todos los procesos; es decir, si a un proceso le han sido asignados recursos de un tipo especfico, en lo sucesivo slo podr pedir aquellos recursos que siguen en el ordenamiento.

Como vemos Havender presenta tres estrategias y no cuatro. Cada una de ellas, est diseada para negar una de las condiciones necesarias. La primera de estas condiciones, esto es, que los procesos exijan el uso exclusivo de los recursos que requieren, es una condicin que no es deseable impedir, porque especficamente queremos permitir la existencia de recursos no compartibles o dedicados.

Negacin de la condicin de espera


La primera de las estrategias requiere que los recursos que necesita un proceso sean pedidos de una sola vez. El sistema debe proporcionarlos segn el principio de todo o nada. Si est disponible el conjunto de los recursos que necesita un proceso, entonces el sistema puede asignarle todos los recursos y ste seguir su ejecucin. Si no est disponible alguno de ellos, el proceso debe esperar. Mientras espera no puede tener ningn recurso. Con esto se elimina la condicin de espera y no puede ocurrir un interbloqueo.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

75

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Todo esto suena bien, pero puede llevar a un grave desperdicio de recursos. Supongamos que un proceso necesita diez unidades de un determinado recurso para su ejecucin. Como debe solicitarlas todas antes de comenzar, los mantendr en su poder durante toda su ejecucin. Pudiera suceder, que el programa nicamente utilice estos recursos al principio de su ejecucin, por tanto, los recursos estn ociosos el resto del tiempo. Dividir el programa en varios pasos que se ejecuten de manera relativamente independiente es una tcnica empleada con frecuencia para conseguir una mejor utilizacin de los recursos en estas circunstancias. La asignacin de recursos se controla por etapas. Esta solucin reduce el desperdicio pero implica mucho trabajo extra tanto en el diseo de las aplicaciones como en al ejecucin. Por otro lado, esta estrategia puede provocar un aplazamiento indefinido, pues los recursos requeridos pueden no estar disponibles todos al tiempo. El sistema podra, entonces, permitir que se fueran acumulando recursos hasta conseguir todos los que necesita un proceso. Pero mientras se acumulan no se pueden asignar a otros procesos y volvemos a infrautilizarlos.

Negacin de la condicin de no apropiacin


La segunda estrategia de Havender consiste en liberar los recursos que un proceso tiene asignados cuando se le niegan peticiones de recursos adicionales. De esta forma, se anula la condicin de no apropiacin. Los recursos se pueden quitar al proceso que los tiene antes de que termine su ejecucin. En este caso tambin existe un costo excesivo. Cuando un proceso libera recursos puede perder todo el trabajo realizado hasta ese momento. El costo puede parecer muy alto, pero la pregunta es: con qu frecuencia ha de pagarse ese precio ? Si ocurre de tarde en tarde, entonces ste parece ser un buen mtodo para prevenir el interbloqueo. Si, por el contrario, es muy frecuente, entonces el costo es sustancial y sus efectos demasiado perjudiciales (por ejemplo, para procesos de alta prioridad o plazo fijo). Esta estrategia tambin adolece de aplazamiento indefinido. Un proceso puede aplazarse continuamente mientras pide y libera muchas veces los mismos recursos. Si esto ocurre, el sistema puede verse obligado a eliminar el proceso para que otros puedan ejecutarse.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

76

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Expropiacin de recursos
Tres pasos para hacer una buena expropiacin de recursos: Seleccin de la victima: Cuales recursos de cuales procesos se deben expropiar?, debemos determinar el orden de expropiacin para determinar costos, los factores de costo podran incluir parmetros tales como el numero de recursos de un proceso bloqueado tiene asignados y el tiempo que un proceso bloqueado ha consumido durante su ejecucin.. Retroceso: Si expropiamos un recurso de un proceso, qu debe hacerse con ese proceso? Es evidente que no podr continuar con su ejecucin normal. Dado que en general, es difcil determinar que estado es seguro, la solucin mas sencilla es un retroceso total: se aborta el proceso y luego se inicia. Inanicin: Como podemos garantizar que no siempre se expropiaran los recursos del mismo proceso. Podra suceder que siempre se escoja el mismo proceso como victima. En consecuencia dicho proceso nunca terminara su tarea designada. Queda claro que debemos asegurar que un proceso dado solo ser escogido como victima un numero finito de veces. Esto con el fin de evitar que siempre este proceso sea la victima.

Negacin de la condicin de espera circular


La tercera estrategia de Havender anula la posibilidad de un espera circular. Como todos los recursos tienen una numeracin nica y como los procesos deben pedir los recursos en un orden lineal ascendente, es imposible que se presente una espera circular (figura 5.4). Esta estrategia presenta las siguientes dificultades: Los recursos deben pedirse en un orden ascendente por nmero de recursos. El nmero de recurso es asignado por la instalacin y debe tener un tiempo de vida largo (meses o aos). Si se agregan nuevos tipos de recursos, puede ser necesario rescribir los programas y los sistemas. Lgicamente, cuando se asignan los nmeros de recursos, stos deben reflejar el orden normal en que los usan la mayora de las tareas. Pero los procesos que necesiten los recursos en un orden diferente que el previsto por el sistema, los debern adquirir y conservar, quiz durante tiempo antes de utilizarlos realmente, lo que significa un desperdicio considerable.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

77

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Una de las metas ms importantes de los sistemas operativos actuales es crear ambientes amables con el usuario. Los usuarios deben ser capaces de desarrollar sus aplicaciones sin tener en cuenta molestas restricciones de hardware y software. El ordenamiento lineal impide al usuario escribir sus cdigos libremente.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

78

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

2. Evitacin de Interbloqueos [TANE93]


An presentndose las condiciones para un interbloqueo, todava es posible evitarlo mediante una asignacin cuidadosa de los recursos. Tal vez el algoritmo ms famoso para evitar el interbloqueo sea el algoritmo del banquero de Dijkstra (73), cuyo interesante nombre se debe a que atae a un banquero que otorga prstamos y recibe pagos a partir de una determinada fuente de capital.

Algoritmo del Banquero


En principio, estudiaremos este algoritmo suponiendo que todos los recursos del mismo tipo. Considrese la asignacin de una cantidad t, de unidades de cintas idnticas. Un sistema operativo comparte un nmero fijo, t, de unidades de cinta entre un nmero fijo de, p, de procesos. Cada proceso especifica por adelantado el nmero mximo de unidades de cinta que necesitar durante su ejecucin. El sistema operativo aceptar la peticin de un usuario si la necesidad mxima de ese proceso no es mayor que t. Un proceso puede obtener o liberar unidades de cinta una a una. Algunas veces un usuario puede verse obligado a esperar para obtener una unidad adicional, pero el sistema operativo garantiza una espera finita. El nmero real de unidades asignadas a un proceso nunca ser superior a la necesidad mxima declarada por ese usuario. Si el sistema operativo es capaz de satisfacer la necesidad mxima del proceso, entonces ste debe garantizar al sistema operativo que las unidades de cinta sern utilizadas y liberadas en un tiempo finito. Se dice que el estado del sistema es seguro si el sistema operativo puede garantizar que todos los procesos terminan en un tiempo finito. En otro caso, el sistema est en un estado inseguro. Sea prstamo (i) la representacin del prstamo actual de unidades de cinta para el proceso i. Sea mx(i) la necesidad mxima de cintas de un proceso y, por ltimo, sea peticin (i) la peticin actual del usuario, que es igual a su necesidad mxima menos el prstamo actual. Por ejemplo, el proceso 7 tiene una necesidad mxima de 6 unidades y un prstamo actual de 5, entonces tiene peticin(7) = mx(7) - prstamo(7) = 6 - 5 = 2 El sistema operativo controla t unidades de cinta. Sea a el nmero de unidades de cinta todava disponibles para asignar. Entonces a es igual a t menos la suma de los prstamos de los usuarios. El algoritmo del banquero permite la asignacin de unidades de cinta a los usuarios solamente cuando la asignacin conduzca a estados seguros, y no a estados inseguros. Un estado seguro es una situacin tal en la que todos los procesos son capaces de terminar en algn momento. Un estado inseguro es aquel en el cual puede presentarse un bloqueo mutuo.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

79

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Defectos del algoritmo del banquero


El algoritmo del banquero es interesante porque ofrece una forma de asignar los recursos que evita el interbloqueo. Permite ejecutar procesos que tendran que esperar seguramente con alguna de las estrategias de prevencin. Sin embargo, tiene varios defectos importantes: El algoritmo requiere un nmero fijo de recursos asignables. Como los recursos a menudo requieren servicio, ya sea por algn fallo o por mantenimiento preventivo, no se puede contar con que ser siempre constante. El algoritmo requiere una poblacin de usuarios constantes. En los sistemas multiprogramables y ms en los de tiempo compartido, la poblacin de usuarios cambia constantemente, incluso en cuestin de segundos. El algoritmo requiere que el banquero satisfaga todas las peticiones en un tiempo finito. Es evidente que en los sistemas reales esto no es una garanta suficiente. De manera similar, el algoritmo requiere que los procesos salden sus prstamos (es decir, devuelvan sus recursos) en un tiempo finito. Una vez ms, esto es insuficiente para un sistema de tiempo real. El algoritmo requiere que los usuarios declaren por anticipado sus necesidades mximas. A medida que la asignacin de recursos se hace ms dinmica, conocer las necesidades mximas de un usuario presenta mayor dificultad. De hecho, ahora que los sistemas ofrecen interfaces grficas, cada vez es ms comn que los usuarios no tengan la menor idea de los recursos que necesitan. En resumen, los mtodos descritos anteriormente en el apartado de prevencin son demasiado restrictivos, mientras que los de evitacin que acabas de estudiar requieren informacin de la que, generalmente, no se dispone.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

80

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

3. Deteccin y Recuperacin de Interbloqueos La deteccin del bloqueo mutuo es el proceso de determinar si realmente existe un interbloqueo e identificar los procesos y recursos implicados en l. Los algoritmos de deteccin determinan por lo general si existe una espera circular. El empleo de algoritmos de deteccin del interbloqueo implica cierto gasto extra durante la ejecucin. As pues, se presenta de nuevo la cuestin de costeabilidad, tan habitual en los sistemas operativos, el gasto extra debido a los algoritmos de deteccin del bloqueo mutuo se justifica con los ahorros potenciales debidos a la localizacin y solucin de los interbloqueos? Para facilitar la deteccin de interbloqueos, se utilizar una notacin en la que un grafo dirigido indica las asignaciones y peticiones de recursos. Los cuadrados representan procesos; los crculos grandes, clases de dispositivos idnticos; los crculos pequeos de color rojo en el interior de los grandes indican el nmero de dispositivos de cada clase. Por ejemplo, si un crculo grande etiquetado como R1 contiene tres crculos pequeos, significa que ya tres recursos del tipo R1 disponibles para asignacin en este sistema.

Figura 3.1 Grfica de Asignacin y Peticin de recursos.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

81

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

La figura 3.1 muestra las relaciones que pueden indicarse en una grfica de asignacin y peticin de recursos. Por ejemplo, en (a) el proceso P1 est pidiendo un recurso del tipo R1. La flecha que parte de P1 toca solamente el extremo del crculo grande, lo cual implica que se est estudiando la peticin. En (b), el proceso P2 tiene asignado un recurso del tipo R2 (del cual existen dos unidades). La flecha va del crculo pequeo que se encuentra dentro del crculo grande R2 al cuadrado P2. En (c), el recurso R3 ha sido solicitado por el proceso P3, pero ya se ha asignado al proceso P4. Por ltimo, en (d), se representa un interbloqueo. El proceso P5 tiene el recurso R5 que est siendo solicitado por el proceso P6, que tiene el recurso R4 que est siendo solicitado por el proceso P5 (una espera circular).

Reduccin de las grficas de asignacin de recursos


Una tcnica til para detectar los interbloqueos consiste en ir reduciendo una grfica determinando los procesos que pueden completar su ejecucin. Si pueden atenderse las peticiones de recursos de un proceso, se dice que la grfica puede ser reducida por ese proceso. Esta reduccin es equivalente a mostrar la grfica como si el proceso hubiese acabado y hubiera devuelto los recursos al sistema. Si una grfica puede ser reducida por todos sus procesos, entonces no hay interbloqueo. Si una grfica no puede ser reducida por todos sus procesos, los procesos irreductibles constituyen el conjunto de procesos en bloqueo mutuo de la grfica (figura 5.7). Cuando se ha bloqueado un sistema, el interbloqueo debe romperse mediante la eliminacin de una o ms de las condiciones necesarias. Por lo general, varios procesos perdern una parte o la totalidad del trabajo efectuado, pero el precio pagado puede ser pequeo, en comparacin con las consecuencias de permitir que el sistema siga bloqueado. La recuperacin despus de un bloqueo mutuo se complica por varias razones: Puede no estar claro que el sistema se haya bloqueado. La mayor parte de los sistemas tienen medios muy deficientes para suspender indefinidamente un proceso, eliminarlo del sistema y reanudarlo ms tarde. De hecho, algunos procesos como los de tiempo real, que deben funcionar continuamente, sencillamente no se pueden suspender y reanudar. An cuando existieran medios efectivos de suspensin/reanudacin, con toda seguridad implicaran un gasto extra considerable. La recuperacin despus de un bloqueo mutuo de dimensiones modestas puede significar una cantidad razonable de trabajo, un interbloqueo a gran escala puede requerir una cantidad enorme de trabajo.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

82

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

En los sistemas actuales la recuperacin se suele realizar eliminado un proceso y arrebatndole sus recursos. Por lo general, el proceso eliminado se pierde pero ahora es posible concluir los procesos restantes. Algunas veces es necesario eliminar varios procesos hasta que se hayan liberado los recursos suficientes para que terminen los procesos restantes. Los procesos pueden eliminarse de acuerdo con algn orden de prioridad. Tambin existen dificultades para ello: Es posible que no existan prioridades entre los procesos bloqueados, de modo que se tiene que adoptar una decisin arbitraria. Las prioridades pueden ser incorrectas o un poco confusas debido a consideraciones especiales, como la planificacin a plazo fijo, en la cual un proceso de prioridad relativamente baja tiene una prioridad temporal alta a causa de un fin de plazo inminente. La determinacin de una decisin ptima sobre los procesos que se deben eliminar puede requerir un esfuerzo considerable. Parece ser que el enfoque ms deseable para la recuperacin despus de un bloqueo mutuo sera un mecanismo efectivo de suspensin/reanudacin. Ello implicara suspender temporalmente los procesos y reanudarlos despus sin prdida de trabajo productivo. Para ello sera deseable la posibilidad de Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo 83

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

especificar puntos de verificacin/reinicio. De este modo, se facilita la suspensin/reanudacin, que se har desde el ltimo punto de verificacin (es decir, la ltima grabacin del estado del sistema). Pero muchos sistemas de aplicacin se disean sin aprovechar las ventajas de las funciones de punto de verificacin/reinicio. Por lo general, se requiere un esfuerzo consciente por parte de los diseadores para incorporar la verificacin/reinicio, y a menos que las tareas requieran muchas horas de ejecucin, su uso es poco comn.

Configuraciones Tpicas de Multiprocesamiento. 1. Configuracin Maestro-Esclavo


En el mtodo maestro/esclavo, un procesador se dedica a ejecutar el Sistema Operativo. Los restantes procesadores son generalmente idnticos y forman un depsito de procesadores computacionales. El procesador maestro planifica el trabajo y controla la actividad de los esclavos. La mayora de las estructuras de datos del sistema operativo estn controladas por el procesador maestro y suelen estar almacenadas en su memoria privada. Los procesadores esclavos pueden ser capaces de procesar directamente algunas consultas locales simples, pero la mayora de los servicios del sistema operativo son proporcionados por el maestro. Esta disposicin permite paralelismo dentro de una aplicacin mediante la asignacin a ella de mltiples esclavos. Sin embargo, poco o ningn paralelismo es posible para el sistema operativo, ya que su ejecucin est limitada aun solo procesador. Los sistemas maestro-esclavos son relativamente sencillos de desarrollar. Aadindole la planificacin de esclavos, un sistema operativo monoprocesador serie puede ser adaptado con bastante facilidad para operacin multiprocesador maestro-esclavo. El sistema resultante tiene una escalabilidad limitada, ya que la existencia de un nico nodo maestro suele convertirse en un cuello de botella.

Configuracin Simtrica.

En una organizacin simtrica, todos los procesadores son funcionalmente idnticos. Por lo que concierne a la asignacin, representan un depsito de recursos annimos. Otros recursos hardware, tales como la memoria y los dispositivos de E/S, pueden tambin formar depsitos que estn disponibles a todos los procesadores. En caso contrario, si slo uno o unos pocos procesadores tienen acceso a los dispositivos de E/S, el sistema es asimtrico. El sistema operativo tambin es simtrico en el sentido de que cualquier procesador puede ejecutarlo. En principio, la organizacin simtrica permite la ejecucin paralela del sistema operativo en varios Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

84

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

procesadores. A este extremo, el sistema operativo necesita ser codificado en forma de una serie de tareas autnomas, y tienen que existir los adecuados intercierres para acceder a estructuras de datos compartidos. En la forma ms sencilla de organizacin simtrica, la conocida como maestro flotante, el sistema operativo es ms o menos una nica seccin crtica de grandes dimensiones. En respuesta a los requisitos de la carga de trabajo y la disponibilidad de procesadores, el Sistema Operativo se ejecuta en diferentes procesadores en instantes diferente. Temporalmente, el procesador que ejecuta el sistema operativo juega un papel especial y acta como maestro en el sentido de que planifica el trabajo de los dems. El sistema operativo no est ligado a ningn procesador especfico; flota de un procesador a otro. Puesto que el propio sistema operativo es en gran medida monoltico, muy poco de su cdigo, si alguno, se ejecuta en paralelo. En la configuracin simtrica se ejecuta el sistema operativo o una gran parte de l, en cualquiera de los procesadores disponibles y todos ellos tienen acceso a los recursos a menos que cada recurso sea asignado a un procesador especfico. Aunque es mas difcil de implementar tiene muchas ventajas. Primero, este tipo de sistemas tienden a ser ms eficientes porque las tareas tanto del sistema operativo como de los usuarios pueden ser distribuidas en forma balanceada a todos los procesadores. Debido a que las demandas del sistema operativo pueden ser repartidas a todos los procesadores, el tiempo de inactividad de un procesador mientras otro est sobre trabajando es mnimo. Segunda, si un procesador falla, es posible que sus tareas sean repartidas entre los dems y no es necesario que todo el sistema sea parado o que falle el sistema. Y finalmente, la portabilidad del sistema es mayor debido a que no sigue la arquitectura de master/slave. NT implementa este modelo de multiproceso. Configuracin dbilmente acopla En sistemas con supervisores separados, cada nodo contiene un sistema operativo aparte que gestiona el procesador local, la memoria y los recursos de E/S. En su forma rudimentaria este mtodo gestiona efectivamente cada procesador como un sistema independiente. Solo hay que aadir unos pocos servicios y estructuras de datos adicionales para soportar los aspectos multiprocesadores del hardware. Tales implementaciones de supervisores separados ofrecen poca capacidad de equilibrio de cargas y raramente soportan el paralelismo dentro de las aplicaciones.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

85

Especialidad: Informtica en Redes Sub. rea: Sistemas Operativos

Semforos Definicin de semforos Tipos de Semforos Operaciones que se pueden realizar. Disciplinas en el manejo de las colas de procesos bloqueados.

Unidad: Introduccin a los Sistemas Operativos Prof. Eric Ortiz Bravo

86

Vous aimerez peut-être aussi