Professional Documents
Culture Documents
OBJETIVO
y El objetivo de este capitulo es la adquisicin de
conocimientos relativos a los problemas asociados a la ejecucin concurrente de un conjunto de procesos, as como las soluciones clsicas a los problemas de sincronizacin y comunicacin entre procesos.
INTRODUCCIN
y Todas las computadoras modernas pueden hacer varias cosas al
mismo tiempo. Mientras ejecuta un programa de usuario, una computadora tambin puede estar leyendo de un disco y enviando texto a la pantalla o impresora.
actividades paralelas. Por ello, los diseadores de sistemas operativos han desarrollado a lo largo de los aos un modelo (procesos secuenciales) que facilita el manejo del paralelismo.
PROCESOS
y Un concepto clave en todos los sistemas operativos, es el proceso. Un proceso es bsicamente un programa en ejecucin. Cada proceso tiene asociado un espacio de direcciones, una lista de posiciones de memoria desde algn mnimo hasta algn mximo, que el proceso puede leer y escribir. y El espacio de direcciones contiene el programa ejecutable, los datos del programa, y su pila. y A cada proceso tambin se asocia un conjunto de registros, que incluyen el contador del programa, el apuntador de la pila y otros registros de hardware, as como toda la dems informacin necesaria para ejecutar el programa
PROCESOS
y Cuando un proceso se suspende temporalmente, debe
reiniciarse despus en el mismo estado exactamente en que estaba en el momento en que se le detuvo.
y Esto implica que toda la informacin acerca del
PROCESOS - Ejemplo
y Es posible que el proceso tenga varios archivos abiertos para lectura. Cada uno de estos archivos tiene asociado un apuntador que indica la posicin actual (es decir, el nmero del byte o registro que se leer a continuacin). y Cuando un proceso se suspende temporalmente, es necesario guardar todos estos apuntadores para que una funcion llamada read, pueda ubicarla despus de reiniciarse el proceso y lea los datos correctos. y En muchos S.O., toda la informacin acerca de cada proceso, aparte del contenido de su propio espacio de direcciones, se almacena en una tabla del sistema operativo llamada tabla de procesos, que es un arreglo de estructuras, una para cada proceso existente en ese momento.
direcciones, por lo regular llamado imagen de ncleo (recordando las memorias de ncleos magnticos que se usaban en el pasado), y su entrada en la tabla de procesos, que contiene sus registros, entre otras cosas.
y Las llamadas al sistema de administracin para
una terminal. El usuario acaba de teclear un comando solicitando la compilacin de un programa. El Shell debe crear ahora un proceso nuevo que ejecute el compilador. llamada al sistema para terminarse a s mismo.
y Cuando ese proceso haya terminado la compilacin, ejecutar una y Si un proceso puede crear uno o ms procesos distintos (denominados
procesos hijos) y stos a su vez pueden crear procesos hijos, pronto llegamos a la estructura de rbol de procesos.
tarea a menudo necesitan comunicarse entre s y sincronizar sus actividades. Esta comunicacin se llama comunicacin entre procesos.
PROCESOS Y MULTITAREA
y Una definicin tradicional de proceso es la de instancia de un
programa en ejecucin. La ejecucin de tal programa es indicada al S.O. mediante una accin u orden especializada. y El S.O. responde en ese punto creando un nuevo proceso. En general, esta actividad consiste en la creacin inicializacin de estructuras de datos en el S.O. para monitorizar y controlar el progreso de proceso en cuestin. Una vez creado, el proceso pasara a estar activo y competira por la utilizacin de recursos del sistema como el procesador y los dispositivos I/O. y Un proceso evoluciona cclicamente entre perodos de ejecucin activa y de espera por la terminacin de actividades de I/O, cuando un proceso queda inactivo por especificar una operacin de I/O y quedar a la espera de que sta se complete, el sistema operativo puede planificar la ejecucin de otro proceso.
PROCESOS Y MULTITAREA
y Desde este punto de vista, un proceso es una entidad
individualmente planificable, que puede ser asignada al procesador y ejecutada por ste, el sistema operativo controla, pues, dinmicamente la evolucin de los procesos registrando la informacin correspondiente a sus cambios cuando estos se produzcan. y Esta informacin es utilizada por el sistema operativo para sus labores de planificacin y gestin sobre el conjunto de procesos que en un determinado momento pueden coexistir en el sistema informtico.
PROCESOS Y MULTITAREA
y De esta forma adems de la plantilla esttica
constituida por el programa ejecutable en que se basa, un proceso posee ciertos atributos que ayudan al sistema operativo en su gestin.
y Los atributos de un proceso incluyen su estado actual,
El S.O. debe intercalar la ejecucin de procesos para optimizar la utilizacin del procesador ofreciendo a la vez un tiempo de respuesta razonable. El S.O. debe asignar los recursos del sistema a los procesos en conformidad con una poltica especfica que evite situaciones de interbloqueo. El S.O. podra tener que dar soporte a la comunicacin entre procesos y ofrecer mecanismos para su creacin.
2.
3.
ESTADOS DE PROCESOS
y En cualquier S.O., es bsico conocer el comportamiento que
exhibirn los distintos procesos y el conjunto de estados que pueden atravesar. y Aunque cada proceso es una entidad independiente, con su propio contador de programa y estado interno, los posibles estados bsicos para un proceso son:
Ejecutndose. Es el proceso que se encuentra en el momento procesndose dentro de la CPU es decir usando realmente la CPU en ese instante. y Listo. El proceso se encuentra listo para ser ejecutado. Como puede haber varios procesos listos, el mdulo denominado planificador es quien dictamina que proceso es el que entra a ejecutarse. y Bloqueado. Un proceso bloqueado est esperando a que ocurra un evento y no puede seguir ejecutando hasta que suceda el evento. Una situacin tpica de proceso bloqueado se produce cuando el proceso solicita una operacin de E/S. Hasta que no termina esta operacin, el proceso queda bloqueado.
y
momento dado un proceso puede estar ejecutndose en el procesador o no. y As pues, un proceso puede estar en uno de dos estados: Ejecucin o No ejecucin. entrada Terminar
no ejecucin
Ejecucin
algunos de los elementos importantes en el diseo del sistema operativo. Cada proceso debe representarse de forma que el sistema operativo tenga conocimiento de su estado actual y de su posicin en memoria.
y Aquellos procesos que no estn en estado de ejecucin
debern almacenarse en algn tipo de estructura de datos mientras esperan que el sistema operativo les otorgue el control sobre el procesador.
MODELO DE 3 ESTADOS
y El sistema operativo analiza dicha lista para lanzar la
ejecucin de los procesos a medida que disponga de los recursos necesarios. y Adems de esto, el sistema operativo tiene la facultad de poder suspender algn proceso, el objetivo de la suspensin estriba en dejar suficiente memoria a los procesos no suspendidos para que su conjunto residente tenga un tamao adecuado y de esta manera sea mucho ms eficiente. y De esta manera el diagrama bsico de estados de un proceso se extiende a tener ahora 5 posibles estados:
MODELO DE 3 ESTADOS
1 Ejecutndose 2 3 Bloqueado 4 Listo
1.2.3.4.-
Un proceso se bloquea para aceptar entradas El planificador escoge otro proceso El planificador escoge este proceso Hay entradas disponibles
MODELO DE 5 ESTADOS
Ejecucin Memoria Entra al sistema Nuevo Fin E/S Bloqueado
Fin E/S
Bloqueado y Suspendid o
Zona de Intercambi o
En este modelo un proceso puede encontrarse en cualquiera de los siguientes 5 estados siguientes:
y Estado Nuevo: esta estado correspondera a procesos que acaban de
ser definidos pero que aun no han sido admitidos por el sistema operativo como procesos ejecutables. y Para estos procesos se habran realizado ciertas tareas de gestin interna como la asignacin de un identificador y la creacin de algunas estructuras de control. y La principal motivacin para la existencia de este estado es la limitacin por parte del sistema operativo del nmero total de procesos activos por razones de rendimiento1 o por las restricciones impuestas por la capacidad de la memoria.
En este modelo un proceso puede encontrarse en cualquiera de los siguientes 5 estados siguientes:
y 2. Estado Listo o Preparado: En este estado se encontraran aquellos
procesos que dispongan de todos los recursos necesarios para comenzar o proseguir su ejecucin. Y se encuentran a la espera de que se les conceda el control del procesador. y 3. Estado de Ejecucin: En este estado se encuentra el proceso que tiene el control del procesador. Dado que se consideraran arquitecturas que disponen de un nico procesador, en un instante determinado slo un proceso puede encontrarse en este estado.
En este modelo un proceso puede encontrarse en cualquiera de los siguientes 5 estados siguientes:
y 4. Estado Bloqueado: En este estado se encuentran aquellos
procesos que carecen de algn recurso necesario para su ejecucin siendo este recurso distinto del procesador o bien se encuentran a la espera de que tenga lugar un determinado evento. y 5. Estado Terminado: A este estado pertenecen aquellos procesos excluidos por el sistema operativo del grupo de procesos ejecutables. Un proceso alcanza este estado cuando llega al punto normal de terminacin, cuando se abandona debido a un error irrecuperable o cuando un proceso con la debida autoridad hace que termine su ejecucin.
MODELO DE 5 ESTADOS
y En este punto, el proceso ya no es susceptible de ser elegido para ejecutarse. y Sin embargo, el sistema operativo conserva cierta informacin asociada con l para su posible utilizacin, bien por otras aplicaciones como programas de utilidad para el anlisis de la historia y rendimiento del proceso o bien por parte del sistema operativo con fines estadsticos. y Una vez extrada esta informacin, el sistema operativo ya no necesita mantener ms datos relativos al proceso y stos se borran del sistema. En la siguiente figura se muestra claramente el diagrama de transiciones entre estados.
el sistema operativo selecciona un nuevo proceso para ejecutar en funcin de su poltica de planificacin. y Transicin Ejecucin-Preparado: La razn ms comn para esta transicin es que el proceso que est en ejecucin ha alcanzado el tiempo mximo permitido de ejecucin ininterrumpida. Hay otras causas alternativas que no estn implementadas en todos los sistemas operativos como la expropiacin de un proceso en favor de otro ms prioritario.
Otra situacin, muy extraordinaria, que origina esta transicin es que un proceso ceda voluntariamente el control del procesador.
y Transicin Ejecucin-Bloqueo: Un proceso realiza
esta transicin cuando queda a la espera por la concesin de un determinado recurso o por la ocurrencia de un determinado suceso. y Transicin Bloqueado-Preparado: Tiene lugar si a un proceso bloqueado se le concede el recurso solicitado u ocurre el suceso por el que estaba esperando.
Otra situacin, muy extraordinaria, que origina esta transicin es que un proceso ceda voluntariamente el control del procesador.
y Transicin Preparado-Terminado: Puede ocurrir si, por ejemplo, un proceso padre decide en un momento determinado finalizar la ejecucin de sus procesos hijos. Si alguno de dichos procesos se encontraba en estado preparado realizar esta transicin. Otra razn puede ser debida a un requisito de memoria que es denegado. y Transicin Bloqueado-Terminado: Un proceso hijo puede realizar esta transicin por la misma razn que la anterior. Otra causa puede ser que el proceso supere el tiempo mximo de espera por un recurso y el sistema operativo decida entonces terminarlo (es la razn ms habitual).
los procesos entre procesos de usuario y procesos de sistema. y Un proceso de usuario es aquel creado por el sistema operativo como respuesta a una de ejecucin del usuario o de una aplicacin que ejecuta a instancias de ste. y Un proceso de sistema es un proceso que forma parte del propio sistema operativo y que desempea alguna de sus labores caractersticas, como por ejemplo, la eleccin del siguiente proceso a ejecutar o bien la prestacin de un servicio determinado como el acceso a un recurso de I/O del sistema. y Cualquiera que sea la naturaleza de los procesos, stos pueden mantener fundamentalmente dos tipos de relaciones: Competicin y/o Colaboracin.
seales de sincronizacin necesarios para estructurar su progreso colectivo. y Tanto la competicin como la colaboracin de procesos requieren una protegida asignacin y proteccin de los recursos en trminos de aislamiento de los diferentes espacios de direcciones. y La cooperacin depende de la existencia de mecanismos para la utilizacin controlada de los datos compartidos y el intercambio de seales de sincronizacin.
y Los procesos cooperativos comparten tpicamente algunos recursos y atributos adems de interactuar unos con otros. Por esta razn, con frecuencia se agrupan en lo que se denomina una familia de procesos. y Aunque dentro de una familia son posibles relaciones complejas entre sus procesos miembros, la relacin ms comnmente soportada por los sistemas operativos es la relacin padre-hijo. y Esta relacin se establece cuando el Sistema Operativo crea un nuevo proceso a instancias de otro ya existente. Los procesos hijos heredan generalmente los atributos de sus procesos padres en el momento de su creacin y tambin pueden compartir recursos con sus procesos hermanos.
lo ms ptima y equilibrada posible de los recursos que administra. y De esta forma se obtendra un alto rendimiento del sistema informtico gobernado. y El Sistema Operativo es el responsable de la gestin de los recursos de la mquina y mediante su administracin tiene el control sobre las funciones bsicas de la misma.
Por ejemplo
y Al conectarse a Internet y entrar en un chat, el computador permite, a travs del programa de chat, el intercambio de mensajes con un conjunto de personas que a su vez estn utilizando ese mismo programa en otros computadores en otros lugares. y Pero adems de utilizar el programa de chat, no se debe olvidar que se est utilizando igualmente la pantalla para visualizar los mensajes, el teclado para introducir su texto, y posiblemente el ratn para seleccionar iconos o ventanas en la pantalla. y Otro ejemplo de utilizacin del computador es cuando un usuario abre un fichero de texto y comienza a escribir una carta.
ejemplo
y El computador facilita el trabajo de escritura y almacenamiento de este documento que puede incluir elementos especiales tales como imgenes, diferentes tipos de letras, grficas con datos, etc. y Para realizar esta tarea tambin se utiliza la pantalla para visualizar los datos, el teclado para introducir texto, y el ratn para realizar tareas de seleccin y manipulacin de texto. y Si este documento creado de forma electrnica se necesita en papel, el computador permite enviarlo a una impresora que se encarga de plasmar en papel lo que hasta el momento se haba mostrado en pantalla.
ejemplo
y Tanto la utilizacin de un programa de chat como la redaccin e impresin de una carta son tareas que han sido previamente introducidas o programadas en el computador y por tanto puede ejecutarlas cuando el usuario as lo requiera. y Pero los computadores Poseen una propiedad que los hace realmente potentes: se pueden programar con tareas nuevas. y Es decir, si un computador no dispone del programa necesario para realizar una tarea, y sta es programable, existen lenguajes de programacin tales como Java que permiten escribir estos programas e instalarlos.
ejemplo
y A partir de ese momento, el computador podr ejecutar el programa escrito tantas veces como el usuario desee. y Pero estos lenguajes de programacin, a pesar de que sirven para conseguir que el computador realice una tarea concreta, no son los que el computador entiende directamente. y Antes de instalar un programa es preciso traducirlo al lenguaje bsico que se maneja internamente a este proceso de traduccin se le denomina compilacin. (Preparar un programa en el lenguaje mquina a partir de otro programa de computador escrito en otro lenguaje). y Una vez que el programa ha sido traducido o compilado, el computador ya puede ejecutarlo.
no es ms que la ejecucin de un conjunto de instrucciones que llevan a cabo una determinada tarea, mientras que para el sistema operativo es una entidad que atraviesa dinmicamente un conjunto de estados y que solicita los recursos del sistema que le son necesarios. y De esta forma, el acceso a tales recursos debe ser planificado de forma que se consiga un rendimiento en la utilizacin de los mismos lo ms ptimo posible.
ejecucin y, de una forma un poco ms precisa, como la unidad de procesamiento gestionada por el sistema operativo. y El sistema operativo mantiene por cada proceso una serie de estructuras de informacin que permiten identificar las caractersticas de ste, as como los recursos que tiene asignados. y Desde el punto de vista del procesador ste ejecutar una secuencia de instrucciones dictadas por los valores cambiantes del registro PC (Program Counter).
requiere un conjunto propio y peculiar de instrucciones o seales de control para su funcionamiento. El sistema operativo, ayudado por los manejadores o drivers de dispositivo tiene en cuenta estos detalles de forma que el programador pueda pensar en forma de lecturas y escrituras simples desde o hacia el dispositivo. y Acceso controlado a los archivos: El sistema operativo se ocupa del formato de los archivos y del medio de almacenamiento. En el caso de sistemas de varios usuarios trabajando smultneamente, es el sistema operativo el que brinda los mecanismos para controlar que el acceso a los archivos se lleve a cabo de una forma correcta.
estadsticas de utilizacin de los diversos recursos y supervisar parmetros de rendimiento tales como el tiempo de respuesta.
sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentre en primer plano (por ejemplo, cuando esta aplicacin est esperando informacin del usuario), y siempre que esta aplicacin lo permita.
como OS/2 por ejemplo cada tarea recibe la atencin del microprocesador durante una fraccin de segundo.
para la proteccin de memoria con el fin de evitar que los procesos corrompan el espacio de direcciones y el comportamiento de otros procesos residentes en memoria, un sistema multitarea, sin embargo, no tiene necesariamente que soportar formas elaboradas de gestin de memoria y archivos. y En este sentido multitarea es sencillamente sinnimo de concurrencia, el trmino multiprogramacin designa a un sistema operativo que adems de soportar multitarea Proporciona formas sofisticadas de proteccin de memoria y fuerza el control de la concurrencia cuando los procesos acceden a dispositivos E/S y a archivos compartidos, en general la multiprogramacin implica multitarea pero no viceversa.
del nivel de conocimiento que cada proceso tiene de la existencia de los dems
1.
2.
3.
Un proceso no tiene en absoluto conocimiento de la existencia de los dems. Se trata de procesos independientes que no estn preparados para trabajar conjuntamente y mantienen entre s una relacin exclusivamente de competencia Que los procesos tengan un conocimiento indirecto de los otros procesos. Esta situacin tiene lugar cuando los procesos no tienen un conocimiento explcito entre ellos, pero comparten el acceso a algunos dispositivos o zonas de memoria del sistema. Tiene lugar cuando los procesos tienen conocimiento directo unos de otros por haber sido diseados para trabajar conjuntamente alguna actividad. Esta situacin muestra una relacin claramente de cooperacin. objetos comunes.
durante la cual el procesador est ocupado, es decir, la fraccin de tiempo durante la cual el procesador se encuentra activo ejecutando algn proceso, bien de usuario, bien del propio sistema operativo y Con esta interpretacin, la utilizacin del procesador puede ser medida con relativa facilidad, por ejemplo mediante un proceso nulo especial que se ejecute cuando ningn otro proceso pueda hacerlo.
en modo usuario y, por tanto, excluir el tiempo empleado para el sistema operativo.
procesador ocupado tanto tiempo como sea posible. De esta forma, se conseguira que los factores de utilizacin de los restantes componentes tambin sean elevados obtenindose con ello buenas medidas de rendimiento.
TIPOS DE PLANIFICADORES
y En un sistema operativo complejo pueden coexistir tres
tipos de planificadores: A corto, a medio y a largo plazo. y PLANIFICADOR A LARGO PLAZO (PLP) y Su misin consiste en controlar la admisin de procesos nuevos al sistema. Cuando est presente este tipo de planificador, su objetivo principal es proporcionar una mezcla equilibrada de trabajos. El PLP decide cuando se da entrada al sistema a un nuevo proceso para que ste sea ejecutado.
TIPOS DE PLANIFICADORES
PLANIFICADOR A LARGO PLAZO (PLP)
y Este proceso puede proceder de la respuesta al envo de un trabajo por lotes o bien a la orden de ejecucin realizada por el usuario. En cierto modo, el PLP acta como una vlvula de admisin de primer nivel para mantener la utilizacin de recursos al nivel deseado. y Es importante conseguir una administracin equilibrada para saber cmo conjugar procesos interactivos que tienen retardos especiales con procesos por lotes que son una simple de cola de clculo. y Por ejemplo, cuando la utilizacin del microprocesador puede admitir ms trabajos, el planificador puede dar entrada al sistema a nuevos procesos y aumentar con ello la probabilidad de asignacin de alguno de estos procesos al procesador.
TIPOS DE PLANIFICADORES
PLANIFICADOR A LARGO PLAZO (PLP)
y Por el contrario, cuando el tiempo para la utilizacin del
procesador resulte alto y as se refleje en el deterioro en el tiempo de espera, el PLP puede optar por reducir la frecuencia de admisin de procesos a situacin de preparado. El PLP es invocado generalmente cada vez que un trabajo completado abandona el sistema. y La frecuencia de llamada al PLP es, por tanto, dependiente del sistema y de la carga de trabajo pero generalmente es mucho ms baja que para los otros dos tipos de planificadores. y Como resultado de esta no demasiada frecuente ejecucin, el PLP puede incorporar algoritmos relativamente complejos y computacionalmente intensivos para admitir trabajos al sistema. y En trminos del diagrama de transicin de estados de procesos, el PLP quedara a cargo de las transiciones del estado nuevo al estado preparado o listo.
TIPOS DE PLANIFICADORES
y PLANIFICADOR A CORTO PLAZO (PCP) y Este planificador decide que procesos toman el control de la CPU. El PCP asigna el procesador entre el conjunto de procesos preparados residentes en memoria. Su principal objetivo es maximizar el rendimiento del sistema de acuerdo a con el conjunto de criterios elegidos. y Al estar a cargo de la transicin de estado preparado a ejecucin, el PCP debera ser invocado cuando se realice una operacin de conmutacin de procesos para seleccionar el siguiente proceso a ejecutar. y En la prctica el PCP es llamado cada vez que un suceso interno o externo hace que se modifique alguna de las condiciones que definen el estado actual del sistema.
TIPOS DE PLANIFICADORES
PLANIFICADOR A CORTO PLAZO (PCP)
y Algunos de los sucesos que provocan una replanificacin en 1. 2. 3. 4. 5.
virtud de su capacidad de modificar el estado del sistema son: Tics de reloj, es decir, interrupciones basadas en el tiempo. Interrupciones y terminaciones de operaciones de E/S. Llamadas de operacin al sistema operativo frente a llamadas de consulta. Envo y recepcin de seales. Activacin de programas interactivos. En general, cada vez que ocurre uno de estos sucesos, el sistema operativo llama al PCP para determinar si debera planificarse otro proceso para su ejecucin.
TIPOS DE PLANIFICADORES
y PLANIFICADOR A MEDIO PLAZO (PMP) y El PMP tiene por misin traer procesos suspendidos a
la memoria principal. Este planificador controla la transicin de procesos en situacin de suspendidos a situacin de preparados. y El PMP permanecera inactivo mientras se mantenga la condicin que dio lugar a la suspensin del proceso, sin embargo, una vez desaparecida dicha condicin el PMP intenta asignar al proceso la cantidad de memoria principal que requiera y volver a dejarlo en situacin de preparado.
TIPOS DE PLANIFICADORES
PLANIFICADOR A MEDIO PLAZO (PMP)
y Para funcionar adecuadamente, el PMP debe disponer
de informacin respecto a las necesidades de memoria de los procesos suspendidos, lo cual no es complicado de llevar a la prctica ya que el tamao real del proceso puede ser calculado en el momento de suspenderlo almacenndose en el BCP. y Este planificador sera invocado cuando quede espacio libre en memoria por la terminacin de un proceso o cuando el suministro de procesos preparados quede por debajo de un lmite especificado.