Anda di halaman 1dari 31

Sistemas Operativos 2

CONTENIDO Primera Parte Pag. Objetivo....3 Introduccin.4 Unidad 1 Introduccin a los sistemas operativos 1.1 Definicin, objetivos y funciones de un sistema operativo...6 1.2 Historia y evolucin de los sistemas operativos.....7 1.3 Subsistema de un sistema operativo9 1.4 Estructura de los sistemas operativos11 1.5 Anlisis de los sistemas operativos comerciales (Linux, Unix, Windows).12

Segunda parte Unidad 2 Administracin de procesos 2.1 Descripcin y control de procesos..15 2.2 Definicin de procesos..18 2.3 Estados de procesos.19 2.4 Control de procesos..21 2.5 Procesos e hilos....24 2.6 Concurrencia: exclusin mutua y sincronizacin..25 2.7 Principios generales de la concurrencia26 2.8 Exclusin mutua; solucin por hardware y software....26 2.9 Semforos...27 2.10 Monitores..28 2.11 Paso de mensajes...28 2.12 Concurrencia e interbloqueo (deadlock)..29 2.13 Principios del interbloqueo.29 2.14 Acciones a realizar ante un interbloqueo. Prevencin, deteccin, prediccin y evitar....29 Conclusin.31 Bibliografa.32

Sistemas Operativos 2

Objetivo El estudiante conocer la historia, funciones, caractersticas, clasificacin y estructura de un sistema operativo.

Sistemas Operativos 2

INTRODUCCIN La computadora es una mquina de aplicacin mltiple. No est diseada para hacer una cosa especfica, puede programarse para realizar varias tareas distintas. Un sistema operativo es un programa que acta como intermediario entre el usuario y el hardware de una computadora y su propsito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El objetivo principal de un sistema operativo es lograr que el sistema de computacin se use de manera cmoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente. Un Sistema Operativo, es en s mismo un programa de computadora. Sin embargo, es un programa muy especial, quiz el ms complejo e importante en una computadora. El Sistema Operativo despierta a la computadora y hace que reconozca a la CPU, la memoria, el teclado, el sistema de vdeo y las unidades de disco. Adems, proporciona la facilidad para que los usuarios se comuniquen con la computadora y sirve de plataforma a partir de la cual se corran programas de aplicacin.

Sistemas Operativos 2

Unidad 1

Sistemas Operativos 2

Unidad 1 Introduccin a los sistemas operativos 1.1 Definicin, objetivos y funciones de un sistema operativo.

Definicin: Un Sistema Operativo es el software bsico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario. Es un programa o conjunto de programas que en un sistema informtico gestiona los recursos de hardware y provee servicios a los programas de aplicacin, ejecutndose en modo privilegiado respecto de los restantes.

Objetivos: Es gestionar y administrar eficientemente los recursos hardware, permitiendo que se ejecuten concurrentemente varios programas, sin que haya conflictos en el acceso de cada uno de ellos a cada uno de los recursos que necesite y sin que ningn programa monopolice alguno de ellos.

Funciones: Soporte para la ejecucin de software de aplicacin Elemento de diagnstico de hardware Elemento de una red de computadoras Elemento que optimiza el aprovechamiento de los recursos lgicos y fsicos de un sistema de cmputo.

Sistemas Operativos 2

1.2 Historia y evolucin de los sistemas operativos. Los sistemas operativos proveen un conjunto de funciones necesarias y usadas por diversos programas de aplicaciones de una computadora, y los vnculos necesarios para controlar y sincronizar el hardware de la misma. En las primeras computadoras, que no tenan sistema operativo cada programa necesitaba la ms detallada especificacin del hardware para ejecutarse correctamente y desarrollar tareas estndares, y sus propios drivers para los dispositivos perifricos como impresoras y lectores de tarjetas perforadas. El incremento de la complejidad del hardware y los programas de aplicaciones eventualmente hicieron del sistema operativo una necesidad.

Los primeros sistemas operativos fueron desarrollados por cada usuario para adecuar el uso de su propia computadora central, y es en 1956 que la General Motors desarrolla lo que es hoy considerado el primer sistema, el GM-NAA I/O, para su IBM 704.

Evolucin Generacin Cero (dcada de 1940) Los primeros sistemas computacionales no posean sistemas operativos. Para los usuarios eran complejos por que trabajaban con lenguaje mquina. Todas las instrucciones eran codificadas manualmente.

Primera Generacin (dcada de 1950) Los sistemas operativos de los aos cincuenta fueron diseados para que sean ms giles. 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 tena control total de la mquina. Al terminar cada trabajo, el control era devuelto al sistema operativo, el cual limpiaba y lea e iniciaba el trabajo siguiente.

Sistemas Operativos 2

Al inicio de los 50's esto haba mejorado un poco con la introduccin de tarjetas perforadas (las cuales servan para introducir los programas de lenguajes de mquina). Se crearon mquinas suficientemente confiables las cuales se instalaban en lugares especialmente acondicionados, aunque slo las grandes universidades y las grandes corporaciones o bien las oficinas del gobierno se podan dar el lujo de tenerlas.

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 mquina. La independencia de dispositivos aparece despus. Un usuario que desea escribir datos en una cinta en sistemas de la primera generacin tena que hacer referencia especfica 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 desarroll 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 Generacin (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.

Sistemas Operativos 2

Cuarta Generacin (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. Los sistemas de seguridad se han mejorado mucho ahora que la informacin pasa a travs de varios tipos vulnerables de lneas de comunicacin. La clave de cifrado est recibiendo mucha atencin; han sido necesarios codificar los datos personales o de gran intimidad para que; aun si los datos son expuestos, no sean de utilidad a nadie ms que a los receptores adecuados. 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. Los sistemas operativos conocidos en la poca actual son los considerados sistemas de cuarta generacin. Con la ampliacin del uso de redes de computadoras y del procesamiento en lnea es posible obtener acceso a computadoras alejadas geogrficamente a travs de varios tipos de terminales. Con estos sistemas operativos aparece el concepto de mquinas virtuales, en el cual el usuario no se involucra con el hardware de la computadora con la que se quiere conectar y en su lugar el usuario observa una interfaz grfica creada por el sistema operativo.

1.3 Subsistema de un sistema operativo. Son los componentes de software que integran a los sistemas operativos, estos son: Administrador de procesos Administrador de memoria Administrador de dispositivos de E/S. Administrador de informacin o de archivos

Administrador De Procesos Estas operaciones las realiza el despachador que sincroniza y administra los procesos concurrentes con base a un conjunto de instrucciones, por ejemplo, el Algoritmo de Decker.

Sistemas Operativos 2

Dentro del administrador de procesos tenemos diferentes polticas:


Elegir cual proceso entra primero en base a estructuras de datos bsicas: colas, pilas. Cul es el proceso ms rpido, con base a pronsticos de tiempos estimados. Todo se realiza en base a algoritmos que permiten administrar cual entra primero; por ejemplo el algoritmo: RR, Round Robin, cola circular, Optimizar el tiempo de ejecucin. Optimizar el uso de la memoria, controlar el uso de los dispositivos de E/S para interactuar con el CPU. Permite controlar las diferentes rutinas. (Sealizacin e Interrupciones).

Administrador De Memoria Conjunto de algoritmos para controlar el uso de la memoria (asignacin, desasignacin o liberacin) y optimizar el uso de la memoria (memoria virtual).

Administrador De Dispositivos De E/S Est en funcin de almacenamientos temporales e intermedios (buffers, spoolers) , median entre cada operacin de entrada y salida, tiene espacios auxiliares con respecto a las tareas en funcin de las salidas se aceptan o se terminan procesos determinados, tienen programas de transmisin y necesitan de recursos como los canales, los espacios de almacenamiento temporales ya descritos, controla los manejadores de dispositivos (drivers) y los propios dispositivos: teclado, mouse, impresoras, discos, etc.

Administrador De Informacin Sistemas Manejadores de Archivos (FILE SYSTEMS) y Sistemas Manejadores de Bases de Datos (SMBD). Los cuales dan ventajas como la seguridad, la integridad, la confiabilidad, etc.

Sistemas Operativos 2

10

1.4 Estructura de los sistemas operativos Estructura modular. Tambin llamados sistemas monolticos. Este tipo de organizacin es con mucho la ms comn; bien podra recibir el subttulo de "el gran embrollo". La estructura consiste en que no existe estructura alguna. El sistema operativo se escribe como una coleccin de procedimientos, cada uno de los cuales puede llamar a los dems cada vez que as lo requiera. Cuando se usa esta tcnica, cada procedimiento del sistema tiene una interfaz bien definida en trminos de parmetros y resultados y cada uno de ellos es libre de llamar a cualquier otro, si este ltimo proporciona cierto clculo til para el primero. Sin embargo incluso en este tipo de sistemas es posible tener al menos algo de estructura. Los servicios (llamadas al sistema) que proporciona el sistema operativo se solicitan colocando los parmetros en lugares bien definidos, como en los registros o en la pila, para despus ejecutar una instruccin especial de trampa de nombre "llamada al ncleo" o "llamada al supervisor".

Estructura por microkernel. Las funciones centrales de un SO son controladas por el ncleo (kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte ms importante del DOS es un programa con el nombre "COMMAND.COM" Este programa tiene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el cdigo mquina de bajo nivel para manejar la administracin de hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el intrprete de comandos. Las funciones de bajo nivel del SO y las funciones de interpretacin de comandos estn separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando cargas Microsoft Windows, el cual toma

Sistemas Operativos 2

11

el lugar del shell, reemplazando la interfaz de lnea de comandos con una interfaz grfica del usuario. Existen muchos "shells" diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versin 5.0 incluy un Shell llamado DOS SHELL.

Estructura por anillos concntricos (capas). El sistema por "capas" consiste en organizar el sistema operativo como una jerarqua de capas, cada una construida sobre la inmediata inferior. El primer sistema construido de esta manera fue el sistema THE (Technische Hogeschool Eindhoven), desarrollado en Holanda por E. W. Dijkstra (1968) y sus estudiantes. Estructura cliente servidor Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el cdigo a capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un ncleo mnimo. El punto de vista usual es el de implantar la mayora de las funciones del sistema operativo en los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo, un proceso del usuario (denominado proceso cliente) enva la solicitud a un proceso servidor, que realiza entonces el trabajo y regresa la respuesta. En este modelo, que se muestra en la figura 4, lo nico que hace el ncleo es controlar la comunicacin entre los clientes y los servidores. Al separar el sistema operativo en partes, cada una de ellas controla una faceta del sistema, como el servicio a archivos, servicios a procesos, servicio a terminales o servicio a la memoria, cada parte es pequea y controlable.

1.5 Anlisis de los sistemas operativos comerciales (Linux, Unix, Windows) Caractersticas de Linux Es de distribucin libre Corren en la mayoria del hadware con requerimientos minimos Existen varaias empresas "FOROS SDE DISTRIBUCION" ( DEVIAN, SUSE, MNDRAKE, RED HAT, UBUNTU) Trabajan en forma libre y proporcionan al ususario el codigo para sus modificacin No existen virus

Sistemas Operativos 2

12

WINDOWS Trabaja con licencia Solo lo distribuye Microsoft Trabaja con plataformas de 32,64 bits Se puede infectar de virus Trabaja aspectos como multitarea, multiproceso, multiprogramacin. Existe versiones de NOS, Y SO NOS: Windows NT, SERVER SO: Windows 98, XP, VISTA, ME, SEVEN. Tiene el respaldo de CIA.

UNIX Unix (registrado oficialmente como UNIX) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT&T. Es un sistema operativo multiusuario, con capacidad de simular multiprocesamiento y procesamiento no interactivo. Est escrito en un lenguaje de alto nivel: C. Dispone de un lenguaje de control programable llamado SHELL. Ofrece facilidades para la creacin de programas y sistemas y el ambiente adecuado para las tareas de diseos de software. Emplea manejo dinmico de memoria por intercambio o paginacin. Tiene capacidad de interconexin de procesos. Permite comunicacin entre procesos.

Sistemas Operativos 2

13

Unidad 2

Sistemas Operativos 2

14

Unidad 2 Administracin de procesos 2.1 Descripcin y control de procesos

Estructuras de control del sistema operativo Si el sistema operativo va a administrar los procesos y los recursos, entonces tiene que disponer de informacin sobre el estado actual de cada proceso y de cada recurso. El S.O. construye y mantiene tablas de informacin sobre cada entidad que est administrando. Hay cuatro tipos de tablas diferentes mantenidas por el sistema operativo: de memoria, de E/S, de archivos y de procesos. Las tablas de memoria deben incluir la siguiente informacin: La asignacin de memoria principal a los procesos La asignacin de memoria secundaria a los procesos Atributos de proteccin de segmentos de memoria, tales como qu procesos pueden acceder a ciertas regiones compartidas de memoria Cualquier informacin necesaria para gestionar la memoria virtual Las tablas de E/S son utilizadas por el sistema operativo para administrar los dispositivos y canales de E/S del sistema informtico. Las tablas de archivos ofrecen informacin sobre la existencia de los archivos, su posicin en la memoria secundaria, su estado actual y otros atributos. Gran parte de esta informacin (o toda) puede ser mantenida y utilizada por un sistema de gestin de archivos, en cuyo caso el sistema operativo tendr poco o ningn conocimiento de los archivos. Finalmente, el sistema operativo debe mantener tablas de procesos para administrarlos.

Sistemas Operativos 2

15

Todas estas tablas deben estar enlazadas o disponer de referencias cruzadas de alguna manera. La memoria, E/S y los archivos son administrados en nombre de los procesos, por lo que debe haber alguna referencia directa o indirecta a estos recursos en las tablas de procesos.

Estructuras de control de procesos Los elementos tpicos de una imagen de proceso son: Espacio de direcciones privadas del usuario: incluye los datos del usuario (la parte modificable del espacio de usuario que puede guardar datos del programa, una zona para una pila del usuario y programas que pueden modificarse) y el programa del usuario (programa a ejecutar). Pila del sistema: cada proceso tiene una o ms pilas LIFO asociadas a l. Una pila se utiliza para almacenar los parmetros y las direcciones de retorno. Bloque de control del proceso: informacin necesaria para que el sistema operativo controle al proceso. Espacio de direcciones compartidas con otros procesos Para que el sistema operativo pueda administrar el proceso, al menos una pequea parte de su imagen, que contiene la informacin a usar por el sistema operativo, debe mantenerse en memoria principal. Para ejecutar el proceso, la imagen completa debe cargarse en la memoria principal. Por tanto, el sistema operativo necesita conocer la ubicacin de cada proceso en el disco y tambin la ubicacin de los procesos que estn en memoria principal. Hay una tabla principal de procesos con una entrada para cada proceso. Cada entrada contiene, al menos, un puntero a la imagen de un proceso. Si la imagen del proceso contiene varios bloques, entonces esta informacin estar guardada directamente en la tabla principal o con referencias cruzadas a entradas de las tablas de memoria. Bloque de Control del Proceso En un sistema de multiprogramacin sofisticado, se requiere una gran cantidad de informacin de cada proceso para su administracin. Como ya se dijo, puede considerarse que esta informacin reside en un bloque de control del proceso (PCB), que ser de utilidad para poder conmutar la CPU entre los distintos programas en ejecucin. Los PCB son ledos y/o modificados por casi todos los mdulos de

Sistemas Operativos 2

16

un S.O., incluyendo aquellos que tienen que ver con la planificacin, asignacin de recursos, tratamiento de interrupciones y anlisis y supervisin del rendimiento. Puede decirse que el conjunto de los PCB definen el estado del sistema operativo. Una serie de rutinas del S.O. intentarn acceder a la informacin de los PCB. La dificultad no est en el acceso, sino en la proteccin; existen dos problemas: Un error en una sola rutina, como la de tratamiento de interrupciones, puede daar los PCB, lo que destruira la capacidad del sistema para administrar los procesos afectados. Un cambio de diseo en la estructura o en la semntica del PCB podra afectar a varios mdulos del S.O. Estos problemas planteados se pueden abordar exigiendo a todas las rutinas del S.O. que pasen a travs de una rutina de manejo, cuya nica tarea sera la de proteger los PCB y que se constituira en el nico rbitro para leer y escribir en estos bloques.

La informacin del bloque de control del proceso puede agruparse en tres categoras generales: Identificacin del proceso: incluye el identificador de este proceso, el identificador del proceso que lo cre (proceso padre) y el identificador del usuario. A cada proceso se le asigna un identificador nico, que puede ser tan simple como un ndice en la tabla principal del proceso. Si no hay identificadores numricos, entonces debe existir una correspondencia que permita al S.O. ubicar las tablas apropiadas a partir del identificador del proceso. Informacin del estado del procesador: est formada por los registros del procesador, que son los Registros visibles al usuario (a los que puede hacerse referencia mediante el lenguaje de mquina), los Registros de Control y de Estado (IP EFLAGS Identificadores de habilitacin/inhabilitacin) y los Punteros de Pila (las pilas almacenan los parmetros y las direcciones de retorno de los procedimientos y de las llamadas al sistema; el puntero de pila apunta siempre a la cima de la pila). Por supuesto, mientras un proceso est ejecutndose, la informacin est en los registros. Cuando se interrumpe el proceso, toda la informacin de los registros debe salvarse de forma que pueda restaurarse cuando el proceso reanude su ejecucin. Informacin de control del proceso: es la informacin necesaria para que el S.O. controle y coordine los diferentes procesos activos. Incluye:

Sistemas Operativos 2

17

Informacin de Planificacin y Control: estado del proceso, prioridad, informacin de planificacin e identidad del suceso que el proceso est esperando antes de poder reanudarse Estructuracin de Datos: un proceso puede estar enlazada con otros procesos en una cola, anillos u otra estructura. El PCB puede contener punteros a otros procesos para dar soporte a estas estructuras. Comunicacin entre procesos: indicadores, seales y mensajes asociados con la comunicacin entre dos procesos independientes. Privilegios de los procesos Gestin de Memoria Propiedades y utilizacin de los recursos

2.2 Definicin de procesos Todos los sistemas operativos de multiprogramacin estn construidos en torno al concepto de proceso. Por lo tanto, los requisitos principales que deben satisfacer un S.O. estn expresados haciendo referencia a procesos: Debe intercalar la ejecucin de un conjunto de procesos para maximizar la utilizacin del procesador ofreciendo a la vez un tiempo de respuesta razonable. Debe asignar los recursos a los procesos en conformidad con una poltica especfica. Podra tener que dar soporte a la comunicacin entre procesos y la creacin de procesos por parte del usuario El procesador ejecutar instrucciones de entre un repertorio en una secuencia dictada por los valores cambiantes del IP. A lo largo del tiempo, este contador puede apuntar a cdigos de programas diferentes que son parte de diferentes aplicaciones. Desde el punto de vista de un programa individual, su ejecucin involucra una secuencia de instrucciones del programa. La ejecucin de un programa individual se conoce como proceso o tarea. El comportamiento de un proceso individual puede caracterizarse por la traza, que es un listado de la secuencia de instrucciones que se ejecutan

Sistemas Operativos 2

18

para dicho proceso. El comportamiento del procesador puede caracterizarse mostrando la forma en que se intercalan las trazas de varios procesos. Todo sistema operativo permite a un proceso continuar su ejecucin slo por un cantidad mxima determinada de ciclos, despus de los cuales es interrumpido (time-out); esto impide que un solo proceso monopolice el tiempo del procesador.

2.3 Estados de procesos

Ejecucin: si suponemos un computador con un nico procesador, entonces slo podr haber un proceso en este estado. Listo: proceso que 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. 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 del grupo de procesos ejecutables, porque se detuvo o porque fue abandonado por alguna razn.

Si un nuevo usuario intenta conectarse a un sistema de tiempo compartido o si un nuevo trabajo por lotes es remitido para su ejecucin. El sistema operativo puede definir un nuevo proceso en dos pasos. Primero, el Sistema operativo lleva a cabo algunas tareas necesarias de gestin interna Se le asocia un identificador al proceso y se construyen y asignan algunas tablas necesarias para gestionar el proceso. En este punto, el proceso estar en el estado Nuevo. Esto significa que se han llevado a cabo las acciones necesarias para crear el proceso pero no se ha comprometido an a su ejecucin. Asimismo, un proceso sale de un sistema en dos pasos. Primero, el proceso termina cuando llega al punto normal de terminacin, cuando se abandona debido a un error irrecuperable o cuando otro proceso con la debida autoridad hace que el proceso abandone. La terminacin pasa el proceso al estado Terminado. En este punto, el proceso ya no se elige ms para la ejecucin. Sin embargo, las tablas y otra informacin asociada con el trabajo

Sistemas Operativos 2

19

son conservadas temporalmente. Esto le da tiempo a otros programas auxiliares o de soporte para extraer la informacin necesaria. Cola de Listos y Bloqueados A medida que se admiten procesos en el sistema, se sitan en la cola de Listo. Cuando llega el momento de que el S.O. escoja otro proceso para ejecutar, se selecciona uno de la cola de Listos. En ausencia de un esquema de prioridades, sta puede ser una simple cola FIFO. Cuando un proceso que est ejecutndose es apartado de la ejecucin, se lo da por terminado o se lo pone en la cola de Listos o Bloqueados, dependiendo de las circunstancias. Por ltimo, cuando se produce un suceso, todos los procesos de la cola de Bloqueados que estn esperando a dicho suceso se pasan a la cola de Listos. Esta ltima medida significa que, cuando se produce un suceso, el sistema operativo debe recorrer toda la cola de Bloqueados, buscando aquellos que esperaban al suceso. En un Sistema operativo grande, puede haber demasiada cantidad de procesos en dichas cola y, por lo tanto, sera ms eficiente tener una varias colas de Bloqueados, una por cada suceso. Procesos suspendidos Consideremos un sistema que no utiliza memoria virtual. Cada proceso que va a ejecutarse debe ser cargado por completo en la memoria principal. La memoria contiene varios procesos y el procesador puede dedicarse a otro proceso cuando uno est esperando. Pero si el procesador es tan rpido en comparacin con E/S, todos los procesos de memoria estarn esperando este recurso. As pues, incluso con multiprogramacin, el procesador podra estar desocupado la mayor parte del tiempo. Una solucin es el intercambio, que significa mover una parte o todo el proceso de la memoria principal a disco. Cuando ninguno de los procesos en memoria est en estado Listo, el sistema operativo expulsa a disco a uno de los procesos que est Bloqueado y lo pasa a una cola de Suspendidos. Al realizar la transferencia del proceso a disco, entonces el espacio que se libera de la memoria principal puede ser utilizado para traer otro proceso. En este modelo vemos que se ha agregado un estado Suspendido. Hemos visto dos conceptos independientes: si un proceso est esperando un suceso (bloqueado o no) y si un proceso ha sido expulsado de la memoria principal (suspendido o no). Para realizar las combinaciones de estos conceptos, hacen falta los cuatro estados siguientes: Listo: el proceso est en memoria principal y lista para la ejecucin. Bloqueado: el proceso est en memoria principal esperando un suceso.

Sistemas Operativos 2

20

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

2.4 Control de procesos Creacin de procesos El procedimiento del sistema operativo para la creacin de un nuevo proceso incluye los pasos siguientes: Asignar un nico identificador al nuevo proceso. En ese momento se aade una nueva entrada a la tabla principal de procesos, que contiene una entrada por proceso. Asignar espacio para el proceso. Esto incluye todos los elementos de la imagen del proceso. Debe inicializarse el PCB. La parte de informacin del estado del procesador normalmente se inicializa con la mayor parte de las entradas a cero, excepto para el IP (que se prepara con el punto de entrada del programa) y los punteros a las pilas del sistema (que establecen los lmites de la pila del proceso). La parte de informacin de control del procesador se inicializa a partir de los valores estndares por omisin y los atributos que se han solicitado para el proceso. La prioridad puede asignarse por omisin al valor ms bajo, a menos que se haya hecho una solicitud explcita de un valor mayor. Se deben establecer los enlaces apropiados Puede haber otras estructuras de datos que crear o ampliar. Cambio de proceso A primera vista, la funcin de cambio de proceso parece sencilla. En cierto momento, un proceso que est ejecutndose se interrumpe, el sistema operativo pone a otro proceso en el estado de Ejecucin y pasa el control a dicho proceso. Sin embargo, surgen algunas cuestiones. Una de esas cuestiones es cundo cambiar de proceso. Existen tres mecanismos para realizar un cambio de proceso: Interrupcin: originada por algn suceso externo e independiente del proceso que est ejecutndose. El control se transfiere primero a un gestor de interrupciones, quien lleva a cabo algunas tareas bsicas y

Sistemas Operativos 2

21

luego se salta a una rutina del sistema operativo que se ocupa del tipo de interrupcin que se produjo. Interrupcin de reloj: el S.O. determina si el proceso que est ejecutndose ha estado ejecutndose durante un mximo de tiempo permitido. Si esto ocurre, el proceso pasa al estado Listo y se debe expedir otro proceso. Interrupcin de E/S: cuando el S.O. reconoce que se produjo una accin de E/S, y la accin constituye un suceso que estn esperando uno o ms procesos, entonces el S.O. traslada todos los procesos bloqueados al estado Listo y decide si reanuda la ejecucin del proceso que est actualmente en estado de Ejecucin o se expulsa a dicho proceso en favor de un proceso Listo de mayor prioridad. Fallo de memoria: cuando el procesador encuentra una referencia a una direccin de memoria virtual de una palabra que no est en memoria principal, el S.O. debe traer a dicha memoria el bloque que contiene la referencia. Despus de hacer la solicitud de E/S para traer el bloque de memoria, el S.O. puede llevar a cabo un cambio de contexto para reanudar la ejecucin de otro proceso; el proceso que cometi el fallo de memoria se pasa a estado Bloqueado. Despus de que el bloque en cuestin se carga en memoria, dicho proceso se pone en estado Listo. Cepo: tiene que ver con una condicin de error o de excepcin generada dentro del proceso que est ejecutndose, como un intento ilegal de acceso a un archivo. El sistema operativo determina si el error ocurrido es fatal. Si lo es, el proceso que estaba ejecutndose pasa al estado de Terminado y se produce un cambio de proceso. Si no es fatal, se puede intentar algn procedimiento de recuperacin o, simplemente, notificarlo al usuario. Se puede hacer un cambio de proceso o, simplemente, reanudar el mismo proceso que se estaba ejecutando. Llamada del supervisor: se producen desde el programa que estaba ejecutndose. Por ejemplo, se est ejecutando un proceso de usuario y se llega a una instruccin que solicita una operacin de E/S, tal como abrir un archivo. Esta llamada provoca la transferencia a una rutina que forma parte del cdigo del sistema operativo. Por lo general, el uso de una llamada al sistema hace que el proceso de usuario pase al estado Bloqueado.

Cambio de contexto Durante un ciclo de instruccin, el procesador comprueba si se ha producido alguna interrupcin. Si no hay interrupcin pendiente, contina con el ciclo de lectura de la instruccin siguiente del programa en curso del proceso actual.

Sistemas Operativos 2

22

Si hay alguna interrupcin pendiente, el procesador salva el contexto del programa que est ejecutndose y asigna al IP el valor de la direccin de comienzo de un programa de tratamiento de la interrupcin. Cambio de estado de los procesos Est claro que el cambio de contexto es un concepto distinto del cambio de proceso. En los cambios de estado del proceso, por ejemplo, si el proceso que estaba ejecutndose pasa a otro estado (Listo, Bloqueado, etc) los pasos que se llevan a cabo son: Salvar el contexto del procesador Actualizar el PCB que estaba en estado de Ejecucin. Esto implica cambiar el estado del proceso a alguno de los otros estados. Mover el PCB a la cola apropiada (Listos, Bloqueados, etc.) Seleccionar otro proceso para ejecucin. Actualizar el PCB del proceso seleccionado. Esto incluye cambiar el estado del proceso a Ejecucin. Actualizar las estructuras de datos de gestin de memoria. Restaurar el contexto del proceso a aqul que exista en el momento en el que el proceso seleccionado dej por ltima vez el estado de Ejecucin. Ejecucin del sistema operativo El S.O. es un conjunto de programas y es ejecutado por el procesador, entonces es el sistema operativo un proceso?. Existen tres enfoques referidos a la ejecucin de los S.O. Ncleo fuera de todo proceso Un enfoque bastante tradicional y habitual en muchos de los sistemas operativos ms antiguos es ejecutar el ncleo del sistema operativo fuera de cualquier proceso. Cuando el proceso en ejecucin es interrumpido o hace una llamada de supervisor, se salva el contexto del procesador para este proceso y se pasa el control al ncleo. El S.O. tiene su propia regin de memoria y su propia pila del sistema para controlar las llamadas y retornos de procedimientos. El S.O. puede llevar a cabo cualquier funcin deseada y luego restaurar el contexto del proceso interrumpido para reanudarlo. El punto clave es que se considera que el concepto de proceso se aplica slo a los programas de usuario. El cdigo del S.O. se ejecuta como una entidad separada que opera en modo privilegiado.

Ejecucin dentro de los procesos de usuario Ejecuta casi todo el software del sistema operativo en el contexto de un proceso de usuario. El enfoque es que el S.O. es principalmente una coleccin de rutinas que el usuario llama para llevar a cabo varias funciones

Sistemas Operativos 2

23

y que son ejecutadas dentro del entorno del proceso de usuario. Una pila del ncleo separada se utiliza para gestionar las llamadas y los retornos mientras que el proceso est en el modo del ncleo. El cdigo y los datos del sistema operativo estn en el espacio de direcciones compartidas y son compartidos por todos los procesos de usuario. Cuando se produce una interrupcin, un cepo o una llamada del supervisor, el procesador se pone en modo del ncleo y el control pasa al S.O. Con tal fin, se salva el contexto del procesador y tiene lugar un cambio de contexto hacia una rutina del S.O. Sin embargo, la ejecucin contina dentro del proceso de usuario en curso.

2.5 Procesos e hilos Unidad de propiedad de los recursos: a cada proceso se le asigna un espacio de direcciones virtuales para albergar a la imagen del proceso y, de cuando en cuando, al proceso se le puede asignar memoria virtual y otros recursos, tales como canales de E/S, dispositivos de E/S y archivos. Unidad de expedicin: un proceso es un camino de ejecucin (traza) a travs de uno o ms programas. Esta ejecucin puede ser intercalada con la de otros procesos. De este modo, un proceso tiene un estado (Ejecucin, Listo, etc.) y una prioridad de expedicin. La unidad planificada y expedida por el S.O. es el proceso. En la mayora de los sistemas operativos, estas dos caractersticas son, de hecho, la esencia de un proceso. Para distinguir estas dos caractersticas, la unidad de expedicin es llamada thread y la unidad de propiedad de los recursos, task. Un thread (tambin llamado hilo, hebra o proceso liviano) es, bsicamente, la unidad de utilizacin de la CPU. Multi-threading Algunos sistemas operativos soportan mltiples hilos en la ejecucin dentro de un proceso simple. Esto es conocido como multi-threading. Los procesos continan teniendo un PCB y una cantidad de memoria para el usuario, pero cada hilo que pertenece a dicho proceso tiene un bloque de control de hilos, una pila de usuario y una pila de kernel propias. Implementacin de los hilos

Sistemas Operativos 2

24

Existen dos caractersticas generales en la implementacin de los hilos: Hilos de nivel usuario: en este nivel todo el trabajo de los hilos es realizado por la aplicacin y el kernel no se percata de la existencia de dichos hilos. Una aplicacin (que puede ser programada para ser multithread usando bibliotecas de hilos) comienza con un hilo simple. La aplicacin y su hilo son localizados en un proceso simple administrado por el kernel. La generacin de nuevos hilos es realizada invocando al utilitario que se encuentra en la biblioteca de hilos. Hilos de nivel kernel: tiene la desventaja de que el cambio de hilos requiere siempre la intervencin del kernel. No hay un cdigo de administracin de hilos en el rea de la aplicacin, sino simplemente una interface de una aplicacin programada (API) para el kernel. El kernel mantiene la informacin del contexto del proceso entero y de cada uno de los procesos hilos que se encuentran dentro del mismo. La ventaja que presenta es que si uno de estos procesos hilos se encuentra en estado bloqueado, el kernel puede ejecutar otro proceso hilo del mismo padre.

2.6 Concurrencia: exclusin mutua y sincronizacin La intercalacin y la superposicin pueden contemplarse como ejemplos de procesamiento concurrente en un sistema monoprocesador, los problemas son Entronizacin de la velocidad de ejecucin de los procesos que no pueden predecirse y depende de las actividades de otros procesos Exclusin Mutua Se puede utilizar el paso de mensajes para cumplir con la exclusin mutua. Esta tcnica dice que si hay ms de un proceso ejecutando la accin receive concurrentemente, entonces: Si hay un mensaje, se entrega slo a uno de los procesos y los otros se bloquean. Si el buzn est vaco, todos los procesos se bloquean. Cuando haya un mensaje disponible, slo se activa y toma el mensaje uno de los procesos bloqueados. Una vez que un proceso ha conseguido el mensaje, ejecuta su seccin crtica y, despus, devuelve el mensaje al buzn. De este modo, el mensaje funciona como un testigo (token) que se pasa de un proceso a otro.

Sistemas Operativos 2

25

Sincronizacin La comunicacin de un mensaje entre 2 procesos implica cierto nivel de sincronizacin entre ambos. El receptor no puede recibir un mensaje hasta que sea enviado por otro proceso. Adems hace falta especificar que le sucede a un proceso despus de ejecutar una primitiva SEND o RECEIVE.

2.7 Principios generales de la concurrencia Es aparente que las nociones de procesos y recursos estn estrechamente vinculadas. Un proceso es una tarea, identificada como una secuencia de instrucciones ejecutndose, o una coleccin de instrucciones formando un programa. Un recurso, por otra parte, es un trmino incluido en el sistema operativo, como tambin impresoras, discos, cintas de discos, procesos y repartos de la capacidad de memoria. Sin embargo, los recursos no son tratados en forma igualitaria por el S.O. y dependiendo de su cinta, tratar los procesos en forma diferente. Los recursos no expropiables (No Preemption) son usados por los procesos que requieren una utilizacin de recursos ininterrumpidos. Los recursos expropiables (Preemption) requieren un control del S.O. para cambiar correctamente la utilizacin de los recursos.

2.8 Exclusin mutua; solucin por hardware y software. EXCLUSIN MUTUA: SOLUCIONES POR SOFTWARE Pueden implementarse soluciones de software para los procesos concurrentes que se ejecuten en mquinas monoprocesador o multiprocesador con memoria principal compartida. ALGORITMO DE DEKKER La solucin se desarrolla por etapas. Este mtodo ilustra la mayora de los errores habituales que se producen en la construccin de programas concurrentes. ALGORITMO DE PETERSON El algoritmo de Deker resuelve el problema de la exclusin mutua pero mediante un programa complejo, difcil de seguir y cuya correccin es difcil de demostrar. Peterson ha desarrollado una solucin simple y elegante. Como antes, la variable global seal indica la posicin de cada proceso con respecto a la exclusin mutua y la variable global turno resuelve los conflictos de simultaneidad.

Sistemas Operativos 2

26

EXCLUSIN MUTUA: SOLUCIONES POR HARDWARE INHABILITACIN DE INTERRUPCIONES En una mquina monoprocesador, la ejecucin de procesos concurrentes no puede superponerse; los procesos solo pueden intercalarse. Es ms, un proceso continuar ejecutndose hasta que solicite un servicio el sistema operativo o hasta que sea interrumpido. Por lo tanto, para garantizar la exclusin mutua, es suficiente con impedir que un proceso sea interrumpido. Esta capacidad puede ofrecerse en forma de primitivas definidas por el ncleo del sistema para habilitar o inhabilitar las interrupciones.

2.9 Semforos SEMFOROS Para solucionar problemas de procesos concurrentes, se dise un S.O. como un conjunto de procesos secuenciales, eficiente y fiable para dar soporte a la cooperacin. Los procesos de usuario podran utilizar estos mecanismos si el procesador y el S.O. los hacan disponible. El principio fundamental es el siguiente, 20+ procesos pueden cooperar por medio de simples seales, de manera que se pueda obligar a un proceso a detener en una posicin determinada hasta que reciba una seal especfica. Para la sealizacin se usan variables especiales llamadas semforos "S", los procesos ejecutan las primitivas wait(s) si la seal an no se transmiti, el proceso se suspende hasta que tiene lugar la transmisin. A los semforos se los contemplan como variables que tienen un N entero sobre el que se definen las siguientes operaciones: Un semforo puede iniciarse con un valor negativo la operacin wait disminuye el valor del semforo. Si el valor no es positivo el proceso que ejecuta wait se bloquea. Las operaciones signal incrementa el N del semforo. Si el valor es positivo se desbloquea el proceso bloqueado por una operacin wait.

Sistemas Operativos 2

27

2.10 Monitores MONITORES Los monitores son estructuras de un lenguaje de programacin que ofrecen una funcionalidad equivalente a las de los semforos pero son ms fciles de controlar. El concepto de monitor fue definido por primera vez en [HOAR 74] . La estructura de monitor se ha implementado en varios lenguajes de programacin como: Pascal concurrente, Modulo-2, Java, etc.

2.11 Paso de mensajes. Cuando los procesos interactan unos con otros, se deben satisfacer dos requisitos bsicos: la sincronizacin y la comunicacin. Un mtodo posible para ofrecer ambas funciones es el paso de mensajes. Su funcionalidad real se ofrece, normalmente, por medio de las primitivas send (destino, mensaje) y receive (origen, mensaje). Un proceso enva informacin en forma de un mensaje a otro proceso designado como destino. Un proceso recibe informacin ejecutando la primitiva receive, que indica el proceso emisor (origen) y el mensaje.

Formato de mensajes Depende de los objetivos del servicio de mensajera y de si el servicio ejecuta en un ordenador independiente o en un sistema distribuido. Para algunos S.O., los diseadores han elegido mensajes cortos y de tamao fijo para minimizar el procesamiento y el coste de almacenamiento. Si se va a pasar una gran cantidad de datos, los mismos pueden ponerse en un archivo y el mensaje simplemente har referencia a este archivo. Una solucin ms flexible es permitir mensajes de longitud variable con un formato que incluya los campos: origen, destino, longitud del mensaje, informacin de control, tipo de mensaje y contenido del mensaje.

Sistemas Operativos 2

28

2.12 Concurrencia e interbloqueo (deadlock). Deadlock: Simple y Avanzado Hay un fallo de codificacin donde un pedazo de cdigo intenta obtener un spinlock dos veces: l esperar siempre, esperando a que el bloqueo sea liberado (spinlocks, rwlocks y semforos no son recursivos en Linux). Esto es trivial de diagnosticar: no es un tipo de problema de estar-cinco-nochesdespierto-hablando-con-los-suaves-conejitos-del-cdigo. Los mejores bloqueos estn encapsulados; nunca estarn expuestos en las cabeceras, y nunca se mantendrn a travs de llamadas a funciones no triviales fuera del mismo archivo. Puedes leer a travs de este cdigo y ver que nunca har deadlock, porque nunca intenta tener otro bloqueo mientras tiene el uso. La gente usando tu cdigo no necesita saber nunca que ests usando un bloqueo.

2.13 Principios del interbloqueo. El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestin concurrente de procesos, no existe una solucin eficiente para el caso general. Un ejemplo clsico de nter bloqueo es el nter bloque de trfico. La Figura siguiente la cual muestra una situacin en la que cuatro coches llegan aproximadamente en el mismo instante a un cruce de cuatro caminos. Los cuatro cuadrantes de la interseccin son los recursos compartidos sobre los que se demanda control; si los cuatro coches desean atravesar el cruce, las necesidades de recursos son las siguientes. El coche que va hacia el norte necesita los cuadrantes 1 y 2 El coche que va hacia el oeste necesita los cuadrantes 2 y 3 El coche que va hacia el sur necesita los cuadrantes 3 y 4 2.14 Acciones a realizar ante un interbloqueo. Prevencin, deteccin, prediccin y evitar. PREVENCIN DEL INTERBLOQUEO La estrategia bsica de la prevencin del interbloqueo consiste, a grandes rasgos, en disear su sistema de manera que est excluida, a priori, la posibilidad de interbloqueo. Los mtodos para prevenir el interbloqueo son de dos tipos:

Sistemas Operativos 2

29

Los mtodos indirectos que consisten en impedir la aparicin de alguna de las tres condiciones necesarias para que se d el interbloqueo. Los mtodos directos que consisten en evitar la aparicin del crculo vicioso de espera.

PREDICCIN DEL INTERBLOQUEO Una forma de resolver el problema del interbloqueo, que se diferencia sutilmente de la prevencin, es la prediccin del interbloqueo. En la prevencin de interbloqueo, se obligaba a las solicitudes de recursos a impedir que sucediera, por lo menos, alguna de las cuatro condiciones de interbloqueo. Esto se hace indirectamente, impidiendo la aparicin de una de las tres condiciones necesarias (exclusin mutua, retencin y espera, no apropiacin) o directamente, impidiendo la aparicin de un crculo vicioso de espera. Se llega as a un uso ineficiente de los recursos y una ejecucin ineficiente de los procesos.

DETECCIN DEL INTERBLOQUEO Las estrategias de prevencin de interbloqueo son muy conservadoras; resuelven el problema limitando el acceso a recursos e imponiendo restricciones sobre los procesos. En cambio, las estrategias de deteccin de interbloqueo, no limitan el acceso a recursos ni restringen las acciones del proceso. Con la deteccin del interbloqueo, se concedern los recursos que los procesos necesiten siempre que sea posible. Peridicamente, el S. O. ejecuta un algoritmo que permite detectar la condicin de crculo vicioso de espera.

Sistemas Operativos 2

30

Conclusin Luego de haber investigado y analizado se puede ver que se han desarrollado varios tipos de sistemas operativos con diferentes interfaces y categoras. Pero hemos podido observar que todos los sistemas operativos han sufrido cambios por parte de los programadores, y siguen evolucionando. El dilogo entre el usuario y la mquina suele realizarse a travs de una interfaz de lnea de comandos o de una interfaz grfica de usuario. Los sistemas operativos empleados normalmente son UNIX, Macintosh OS, MSDOS, OS/2, Windows 95 y Windows NT. El UNIX y sus clones permiten mltiples tareas y mltiples usuarios. Otros SO multiusuario y multitarea son OS/2, desarrollado inicialmente por Microsoft e IBM, Windows NT y Win95 desarrollados por Microsoft. El SO multitarea de Apple se denomina Macintosh OS. El MS-DOS es un SO popular entre los usuarios de PCs pero solo permite un usuario y una tarea.

Llegado a este punto, hemos aprendido como el sistema operativo se encuentra estructurado en una primera etapa, el desarrollo de procesos y la comprensin de los hilos de ejecucin a travs de los cuales, el sistema delega funciones y opera en forma multifuncional.

Tambin estudiamos la forma en la que el sistema gestiona las interrupciones, este se encarga de controlar los accesos al procesador, verificar el estatus de un proceso y determinar se ejecucin de acuerdo al nivel de importancia, cabe destacar que no todas las interrupciones son controladas por el SO, ya que existen interrupciones enmascaradas y que son exclusivas del hardware de nuestro ordenador.

Sistemas Operativos 2

31

Bibliografa Definicin de sistema operativo - Qu es, Significado y Concepto http://definicion.de/sistema-operativo/#ixzz2RNyehAhq http://www.masadelante.com/faqs/sistema-operativo Cfr., entre otros: Tanenbaum, A. (1992) Modern Operating Systems, Englewood Cliffs: Prentice-Hall; Haldar, S. y Aravind, A. A. (2010) Operating Systems, Pearson Education India, pp. 12 y ss.; Turner, R. W. (1986) Operating Systems: design and implementation, MacMillan. A Brief History of Linux Rand Corporation publication by Robert Patrick Timeline of Computer History: 1956: Software. Computer History Museum. Consultado el 25-05-2008. http://diegocoyago.galeon.com/ http://sistemasoperativo252m.blogspot.mx/2011/01/13-subsistemas-desistema-operativo.html

Anda mungkin juga menyukai