Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. TEMA 7. GESTIÓN DE PROCESOS 1. E L BLOQUE DE CONTROL DE PROCESOS ......................................................................................... 1 1.1.- CAMBIO DE CONTEXTO............................................................................................................... 2 2. ESTADO DE LOS PROCESOS............................................................................................................ 2 2.2.- TRANSICIONES DE ESTADO.......................................................................................................... 3 2.3.- OPERACIONES SOBRE PROCESOS.................................................................................................. 4 2.4.- P RIORIDADES. ............................................................................................................................ 4 2.5.- TIPOS DE PROCESOS.................................................................................................................... 4 a). Según uso y forma de código. ........................................................................................................ 4 b). Según capacidad de acceso al microprocesador y recursos............................................................... 4 c). Según la forma de ejecución........................................................................................................... 5 3. PLANIFICACIÓN DEL PROCESADOR................................................................................................ 5 3.1.- OBJETIVOS................................................................................................................................. 5 3.2.- CRITERIOS. ................................................................................................................................ 5 3.3.- MEDIDA..................................................................................................................................... 6 3.4.- ALGORITMOS............................................................................................................................. 6 a). FCFS............................................................................................................................................ 7 b). Round-Robin (RR)........................................................................................................................ 8 c). El siguiente proceso, el mas corto (Shortest Job Next, SJN). ............................................................ 9 d). Próximo proceso, el de tiempo restante más corto (Shortest Remaining Time SRT)........................... 9 e). Prioridades...................................................................................................................................10 f). Próximo el de mas alto índice de respuesta (HRN. High Response Next)..........................................10 g). Colas Múltiples............................................................................................................................11 3.5.- P ROCESO EN PARALELO E INTERBLOQUEO ...................................................................................11 a). Conceptos....................................................................................................................................11 b). Exclusión mutua. .........................................................................................................................11 c). Sincronización. ............................................................................................................................12 3.6.- INTERBLOQUEO .........................................................................................................................13 1. El bloque de control de procesos. Un proceso se representa desde el punto de vista del sistema operativo por un conjunto de datos donde se incluye el estado en cada momento recursos utilizados, registros, etc. Esto se denomina el bloque de control de proceso, que persigue dos objetivos: 1. Localizar información útil para el sistema operativo. 2. Mantener registrado los datos en caso de tener que suspender temporalmente un proceso. La información contenida en el PCB es la siguiente: (Program Control Black) • Estado del proceso: información del contenido del contador del proceso, el estado del procesador, modo de ejecución y al estado de los registros internos del microprocesador • Estadísticas de tiempo y ocupación de recursos para la gestión de la planificación del procesador. • Ocupación de memoria interna y externa para el intercambio o swapping. • Recursos en uso, normalmente unidades de E/S. • Archivos en uso. Prof.: Justo Sáez Arenas 1 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. • Privilegios. Los datos relativos al estado del proceso se encuentran en memoria principal. 1.1.- Cambio de contexto. Cuando un proceso pasa de un estado de ejecución a otro de espera hay que guardar toda su información actualizada con la finalidad de que cuando se reanude su ejecución lo haga en las condiciones en las que se suspendió. 2. Estado de los procesos. Un proceso se puede encontrar activo o inactivo. Estados activos. Son aquellos procesos que compiten o están en condiciones de hacerlo por la atención del microprocesador: Ø Procesos en ejecución. Aquellos que se encuentran ejecutándose por el procesador. En un sistema monoprocesador solo puede haber un proceso en ejecución en un instante concreto. En un sistema con “n” procesadores puede haber “n” procesos en ejecución. Ø Procesos preparados. Son aquellos que están dispuestos para ser ejecutados, están en la cola de espera. Ø Procesos bloqueados. Son aquellos que no pueden ejecutarse porque necesitan algún recurso que no está disponible, normalmente dispositivos de e/s. Estados Inactivos. Son procesos que no han terminado su trabajo pero pueden volver a competir por el procesador. Su PGB se encuentra aparcado hasta que pueda volver a ser activado. Encontramos: Ø Procesos suspendidos bloqueados: La causa que produjo la inactividad no ha desaparecido. Ø Procesos suspendidos preparados: Se encuentran suspendidos pero no hay causa para su bloqueo. Dependiendo de su estado, los procesos estarán en algunas de las colas, las cuales son gestionadas por el gestor de trabajos o el gestor de procesos siguiendo algún algoritmo. Prof.: Justo Sáez Arenas 2 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. 2.2.- Transiciones de estado. Fig.: 1. Estados de un proceso y sus transiciones. 1. Comienzo de la ejecución: Todo proceso comienza al ser dada la orden de ejecución y se inserta en la cola de preparados. 2. Paso a estado de ejecución: Cuando el procesador se encuentra inactivo y existe algún proceso preparado. 3. Paso a bloqueado: Cuando un proceso en ejecución espera con un dispositivo de E/S u otra causa. Su PCB se colocará en la cola de trabajos bloqueados 4. Paso a preparado: 4 causas: - Cuando hay una orden de ejecución de un programa. - Si un proceso está bloqueado y la situación que lo motiva desaparece. - Si un proceso está en ejecución y aparece una interrupción que fuerza al S.O a ejecutar otro proceso, el 1º pasa a preparado y su PCB a la cola del preparado. - Activación: un proceso suspendido sin estar bloqueado pasa al estado de preparado cuando se activa nuevamente. 5. Paso a suspendido bloqueado: Cuando el S.O recibe la orden de suspender un proceso bloqueado. 6. Paso a suspendido preparado: 3 causas: - Suspensión de un proceso preparado pasando desde la cola del proceso preparado a la de suspendido preparado. - Suspensión de un proceso en ejecución. - Cuando se desbloquea un proceso que estaba suspendido por bloqueo. Prof.: Justo Sáez Arenas 3 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. 2.3.- Operaciones sobre procesos • • • • • • • Crear el proceso. Un proceso se crea cuando se da la orden de ejecución y suele necesitar varios argumentos como por ejemplo su nombre y la prioridad, en este momento se crea su PCB. La creación de un proceso suele ser de dos tipos: o Jerárquica: donde cada proceso que se crea es hijo de otro proceso y hereda su entorno de ejecución. o No jerárquica: Cada proceso es independiente y tiene su propio entorno de ejecución. Destruir un proceso. Se trata de la eliminación de un proceso y de su PCB. Suspender un proceso. Es una operación de alta prioridad que paraliza un proceso que posteriormente puede ser reanudado. Reanudar un proceso. Activar un proceso que ha sido previamente suspendido Cambiar la prioridad de un proceso. Temporizar la ejecución de un proceso. Hace que un determinado proceso se ejecute cada cierto tiempo Despertar un proceso. Desbloquear un proceso bloqueado 2.4.- Prioridades. En general todo proceso lleva aparejadas necesidades de ejecución en cuanto a su urgencia y asignación de recursos mediante unas prioridades que el sistema operativo le otorga o el propio propietario del proceso. Puede haber prioridades estáticas no pueden ser modificadas durante la ejecución del proceso o dinámicas que si pueden ser variadas. Estas prioridades van servir para que el proceso pueda tener preferencias sobre otros. 2.5.- Tipos de procesos. a). Según uso y forma de código. • • Reutilizables: Aquellos que pueden cambiar los datos que utilizan, pero si vuelven a utilizar los datos necesitan comenzar en su estado inicial y procesar nuevos datos. Reentrantes: no tener asociados datos. b). Según capacidad de acceso al microprocesador y recursos. • • Apropiativos: son aquellos que al tener asignado un recurso no permiten que otro proceso pueda acceder a él hasta que hayan terminado. No apropiativos: permiten a otros procesos que puedan acceder a un recurso que el utiliza. Prof.: Justo Sáez Arenas 4 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. c). Según la forma de ejecución. • • Residentes: permanecen en memoria todo el tiempo que dure su ejecución Intercambiables: pueden ser sacados de memoria cuando se encuentren bloqueados u otro estado. 3. Planificación del procesador. Son los mecanismos que utilizan los sistemas operativos para gestionar la utilización del microprocesador, se conoce como Scheduller o planificador. Básicamente se distinguen tres niveles de planificación: a) Planificación a largo plazo o planificador de trabajos: decide cual será el próximo trabajo que se va a ejecutar. En los sistemas de tiempo compartido se encarga de crear los procesos y cargarles en memoria. b) Planificador a medio precio o de swapping: decide si un proceso que esta en ejecución, en estado bloqueado o suspendido debe ser sacado de memoria temporalmente. c) Planificador a corto plazo o planificador del procesador: decide como y cuando tendrá acceso al procesador que esta preparado para ser utilizado. 3.1.- Objetivos. • • • • • • Se intentara no favorecer o perjudicar a unos procesos frente a otros. Máxima capacidad de ejecución, se logra disminuyendo el numero de cambios de contexto. Predicibilidad, en todo momento se podrá saber como se está ejecutando la planificación. Minimizar la sobrecarga, también está estrechamente relacionado con la cantidad de cambios de contexto. Equilibrio en el uso de recursos, intentar que los recursos estén ocupados equitativamente el mayor tiempo posible. Seguridad de las prioridades, si un proceso tiene mayor prioridad que otro este debe ejecutarse más rápidamente. 3.2.- Criterios. A la hora de diseñar un algoritmo de planificación se deben tener en cuenta los siguientes criterios: • Tiempo de respuesta: Velocidad con la que el ordenador da respuesta a una petición, depende mucho de los dispositivos de entrada - salida. • Tiempo de servicio: Tiempo que tarda en ejecutarse un proceso incluyendo su carga en memoria, el tiempo de espera en la cola de preparados, el tiempo de ejecución en el procesador y el tiempo consumido en las operaciones de E/S. • Tiempo de ejecución: igual al tiempo de servicio menos el tiempo de espera en preparados. Seria el tiempo que dedicaría el procesador a un proceso si este fuese el único en el sistema. • Tiempo de procesador: tiempo que un proceso utiliza el procesador sin contar el tiempo que se encuentra bloqueado. Prof.: Justo Sáez Arenas 5 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. • Tiempo de espera: es el tiempo en que los procesos están activos pero sin ser ejecutados es decir, los tiempos de espera en las distintas colas. • Eficiencia: es el rendimiento del procesador. • Rendimiento: es el numero de trabajos o procesos realizados en la unidad de tiempo. 3.3.- Medida. Para estudiar el comportamiento de los diferentes algoritmos de planificación definimos dos medidas relacionadas entre si que nos indica como estamos tratando un proceso, estas son: el tiempo de servicio(T) y el tiempo de espera (E). T(tiempo servicio)=tf-ti E=T-t Donde: t = tiempo de ejecución. ti = instante en que el usuario da la orden de ejecución. Tf =Instante en que el proceso termina. A partir de los valores anteriores podemos establecer una relación denominada índice de servicio. Que es I = t/T. Representa el tanto por uno de tiempo que el proceso esta en ejecución respecto al tiempo de vida del mismo en el sistema. En el caso de multiprogramación hablaremos de tiempos medios de servicio, tiempos medios de espera y eficiencia. Así mismo tendremos en cuenta: Tiempo del núcleo (Tiempo que consume el núcleo del sistema operativo para tomar todas las decisiones del sistema de planificación) Tiempo de inactividad o Idle: Tiempo de inactividad: tiempo consumido cuando la cola de preparados está vacía. 3.4.- Algoritmos. Como ya hemos visto el planificador a corto plazo, asigna tiempo de ejecución a los procesos que están en la cola de preparados, la cual se alimenta de dos formas: i) Cada vez que el usuario inicia una aplicación, el planificador a largo plazo crea el proceso y lo pasa al planificador a corto plazo colocándose en la cola de preparados. ii) Cuando un proceso deja de estar en estado de ejecución o deja de estar bloqueado pasa a la cola de preparados. (Recordar el esquema de los estados de un proceso y sus transiciones). Por otro lado cuando un proceso termina su ejecución deja de existir para el planificador. Los algoritmos de planificación se agrupan en: a) Apropiativos: el proceso que está haciendo uso del procesador puede ser temporalmente suspendido y permitir que otro se apropie del uso del procesador. b) No apropiativos: el proceso no abandona nunca el procesador hasta que no finaliza. Para el estudio de los diferentes algoritmos utilizaremos tablas donde tendremos listados los procesos y sus datos, tales como, instante de llegada, tiempo de ejecución, prioridad, etc. Así mismo utilizaremos gráficas donde representar en el tiempo los procesos (Diagrama de Gantt). (Por otro lado supondremos que no es siempre así en la realidad que los procesos no realizan Prof.: Justo Sáez Arenas 6 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. operaciones de entrada y salida. La unidad de tiempo que utilizaremos es una medida abstracta, y el indice medio de servicio o eficiencia se suele expresar en porcentaje). a). FCFS. El procesador irá ejecutando cada proceso por orden de llegada hasta que lo • • • • finaliza. Sencillo y simple pero de poco rendimiento. Se caracteriza por: No es apropiativo. Los procesos largos hacen esperar a los cortos. Es predecible, es decir, podemos saber a priori como se llevará a cabo la planificación. Tiempo medio de servicio es muy variable y depende del numero de procesos y su duración. Ejemplo: Se pide calcular los datos restantes y las media de T, E, I. Y el diagrama de Gantt correspondiente aplicando algoritmos de FCFS: Tenemos la siguiente tabla de procesos: T(tiempo servicio)= Final – Llegada. E(tiempo espera)= T – T. ejecución. I(índice de servicio) = T. Ejecución / T. Proceso A B C D E Llegada 0 1 4 5 8 E T. Ejecución 3 5 2 6 4 Finaliza 3 8 10 16 20 T(servicio) 3 7 6 11 12 7.8 8 D 11 4 B 6 1 A0 0 I(iservicio) 1.00 0.71 0.33 0.55 0.33 0.58 12 5 C E(espera) 0 2 4 5 8 3.8 7 3 2 4 Prof.: Justo Sáez Arenas 6 8 10 12 14 16 18 20 7 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. b). Round-Robin (RR). También se denomina asignación cíclica o planificación en rueda. Intenta ser más justo que el FCFS a la respuesta tanto de procesos cortos como largos. Consiste en conceder a cada proceso un periodo de tiempo q (quantum) transcurrido el cual si el proceso no ha terminado vuelve a la cola de preparados y entrando a ejecución el siguiente proceso. Este proceso se realiza repetidamente hasta que se terminen los procesos. A la hora de gestionar la cola de preparados podemos aplicar una política FIFO o una de prioridades. Variando el quantum se obtienen diferentes comportamientos; a mayor q más tiempo necesita el proceso más largo, si q es muy pequeño podemos sobrecargar el sistema al incrementar mucho el numero de cambios de contexto. Las características de este algoritmo son: • Baja sobrecarga, si el cambio de contexto es eficiente y los procesos siempre están en memoria principal. • El tamaño optimo del quantum depende de: S El tipo de sistema. S Cargas que vaya a soportar el sistema. S Número de procesos que tenemos y su tipo. S Es la política que más se utiliza para sistemas de tiempo compartido. S Se obtiene un índice de servicio uniforme para todos los procesos. S Es una política apropiativa. Ejemplo: Se pide calcular los datos restantes y las media de T, E, I. Y el diagrama de Gantt correspondiente aplicando algoritmos de FCFS: Tenemos la siguiente tabla de procesos: T(tiempo servicio)= Final – Llegada. E(tiempo espera)= T – T. ejecución. I(índice de servicio) = T. Ejecución / T. ♠ Teniendo un quantum de 1. q = 1 ♠ Si un proceso finaliza sin haber agotado su quantum entrara inmediatamente el siguiente proceso con su respectivo quantum. ♠ Los procesos que van saliendo se colocan al final. ♠ Si un proceso comienza en el mismo momento que acaba un quantum se considera que ha llegado a la cola antes de que finalice ese quantum. Proceso A B C D E Llegada 0 1 4 5 8 Prof.: Justo Sáez Arenas T. Ejecución 3 5 2 6 4 Finaliza 5 13 9 20 18 medias T(servicio) 5 12 5 15 10 9.4 E(espera) 2 7 3 9 6 5.4 I(iservicio) 0.60 0.42 0.40 0.40 0.40 0.44 8 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. 0 1 2 20 A B A A 3 4 B A A B 5 C 6 7 B D 8 C 9 10 11 12 13 B E D B 14 E D 15 16 17 18 19 E D E D D A B B B C B C D D D E E D E E q=3 A A A B B B B C B C D D D D E E D D E E c). El siguiente proceso, el mas corto (Shortest Job Next, SJN). Es una política de planificación no apropiativa que trata de cubrir los mismos objetivos que Round Robin. Consiste en tomar de la cola de preparados aquel proceso que necesite menos tiempo de ejecución, para ello se debe conocer el tiempo que necesita cada proceso lo cual no es fácil pero se pueden conseguir unas aproximaciones a través de diversos métodos que el sistema operativo utiliza para estimar el tiempo de ejecución. SJN es bueno para los procesos cortos y salen perjudicados los largos. Sus características principales son : • No es apropiativo. • El tiempo de espera aumenta de acuerdo con la longitud de los procesos, pero el tiempo medio de espera con respecto a otros algoritmos es optimo. • Es poco predecible. • Perjudica los procesos largos. • Se obtiene un buen tiempo de servicio. • Resulta difícil de poner en práctica por los datos que necesita para realizarse la aplicación. (Mirar ejercicio en hoja) d). Próximo proceso, el de tiempo restante más corto (Shortest Remaining Time SRT). Es una mezcla de los RR y SJN, para ello cambia el proceso que esta en ejecución por otro que exige menos tiempo de ejecución mediante apropiación de procesador. El tiempo de respuesta medio de los procesos largos es mejor que en SJN, presenta un excelente índice de servicios (I) y el tiempo de espera (E) es bastante corto para la mayoría de Prof.: Justo Sáez Arenas 9 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. los procesos. Consigue una buena eficiencia ya que logra que la lista de preparados sea lo más corta posible. Sus principales características son : • Es una variante de SJN para hacerlo apropiativo. • Puede ser injusto ya que un proceso corto puede echar a uno largo que esté haciendo uso del procesador y que además esté terminando. • Presenta una mayor sobrecarga. • Excelente tiempo medio de servicio. • Es muy eficiente. e). Prioridades. En este algoritmo se asocia a cada proceso una prioridad de forma que se ejecutarán antes los procesos de mayor prioridad. Las prioridades se pueden asignar interna o externamente, en el primer caso el sistema operativo realiza unos cálculos y asigna prioridades en base a criterios como tiempos de ejecución, necesidad de memoria, etc.; las prioridades externas las asigna el usuario u otro programa. El principal problema que puede surgir es el bloqueo o postergación indefinida, ya que un proceso de baja prioridad puede estar esperando su turno indefinidamente, una forma de evitar esta postergación es lo que se denomina envejecimiento de prioridades y consiste en aumentar gradualmente las prioridades de los procesos que están en espera. Este algoritmo puede estar basado tanto en políticas apropiativas como no apropiativas, en el caso de utilizar un criterio apropiativo, un proceso puede ser retirado si aparece otro de mayor prioridad. f). Próximo el de mas alto índice de respuesta (HRN. High Response Next). Este algoritmo intenta corregir las injusticias de SJN con los procesos largos o del FCFS con los procesos cortos. Se basa en hacer variables la prioridad de los procesos recalculandola constantemente desacuerdo a la expresión. P = (W + t) / t P es prioridad del proceso. W es tiempo que lleva esperando el proceso en cola preparados. T es tiempo de ejecución. De esta expresión se deduce que la prioridad varia en relación de “W” y “t”, de forma que al principio “P” tiene un valor de 1 que irá creciendo paulatinamente según permanezca en la cola de preparados y va decreciendo cuanto más tiempo esté en ejecución. Las características de este algoritmo son: • No es apropiativo. • Bastante justo con procesos cortos y largos. • Es costoso de poner en práctica. • Produce una sobrecarga en el sistema, debido al tiempo que se necesita para hacer los cálculos y los cambios de contexto. (mirar ejemplos) Prof.: Justo Sáez Arenas 10 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. g). Colas Múltiples. Los procesos que van a ser ejecutados se agrupan y se asignan a diferentes colas cada una puede tener su propia planificación. Para decidir que cola tomar normalmente se utiliza un algoritmo apropiativo de prioridad fija. Un método que se utiliza son las colas múltiples con realimentación o Feedback Multiple Queues (FB). Cuando el proceso que hace uso del procesador finaliza su quantum se selecciona un nuevo proceso del principio de la cola. Cuando un proceso consume sus quantum en una cola pasa a la siguiente. Características: • Es apropiativo. • Soporta bien la sobrecarga del sistema. • Es muy adaptable a las necesidades del sistema, ya que cada cola puede ser gestionada de forma diferente. 3.5.- Proceso en paralelo e interbloqueo. a). Conceptos. Paralelismo: es la ejecución de diversas actividades simultáneamente en varios procesadores, si sólo existe un procesador en multiprogramación hablamos de pseudoparalelismo. Concurrencia: varias actividades ejecutándose simultáneamente, necesitarán sincronizarse para actuar de forma conjunta, por ejemplo, si dos actividades necesitan escribir un mismo fichero será necesario establecer un orden e indicar cual de ellas ha escrito. A continuación vemos una serie de problemas que pueden surgir debido a la concurrencia de actividades b). Exclusión mutua. Supuesto. Tenemos un archivo formado por registros de cinco campos. DNI Nombre Ap1 Ap2 Domicilio Para que un registro sea valido debe estar actualizado en todo momento, así si modificamos el campo DNI los demás campos deben ser coherentes Si en el momento que un proceso escribe o modifica un registro existe otro proceso que quiere leer el registro puede que se obtengan datos erróneos. Para evitar esta situación debemos sincronizar las actividades de forma que cuando una esta escribiendo no permitimos que otro lea. En el momento en que cambiamos de un proceso o actividad a otra se pueden producir las siguientes actividades: • Sin sincronización entre procesos. Si no sincronizamos corre el riesgo de leer datos inconsistentes. • Con sincronización entre procesos. Prof.: Justo Sáez Arenas 11 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. Utilizamos algún mecanismo que prohibe la lectura a cualquier proceso mientras se está escribiendo. Esta sincronización es lo que conocemos como exclusión mutua. La zona de código de un proceso que no puede ser interrumpida por otro se conoce como sección crítica. c). Sincronización. Si una actividad desea impedir que otra acceda a ciertos datos compartidos, mientras no se cumpla una determinada condición, debemos sincronizar las actividades con dicha condición. Se diseñan algoritmos para realizar esta operación y podemos clasificarles en tres grupos: • Espera Activa: se establece la espera de entrada a la sección crítica mediante un bucle que se romperá cuando se cumpla una determinada condición. Se denomina activa porque ele proceso no queda bloqueado durante su ejecución sino que estará compitiendo por el uso del procesador. Estos algoritmos sobrecargan el sistema innecesariamente. Tenemos tres tipos: ² Espera con Mutex: se utiliza un switches o mutex a través del cual se produce la sincronización. ² Algoritmos de alternancia: mejores que el anterior aunque también utilizan una variable turno. ² Algoritmo Dekker: resuelve el problema mediante la solución propuesta por Dekker que basa su funcionamiento en una tabla de switches. • Espera No activa: son algoritmos que establecen la espera para entrar en la sección crítica bloqueando el proceso hasta que se cumpla una condición de desbloqueo. Entre ellos tenemos a los siguientes: ² Semáforos: diseñados por Dijkstra se basan en un mecanismo que utiliza una variable entera como contador de peticiones de entrada a una sección crítica. ² Regiones críticas: sólo permiten que los datos compartidos puedan ser accedidos desde determinadas regiones del código. No permiten que varias actividades puedan leer simultáneamente. ² Monitores: en los mecanismos anteriores el programador debía proporcionar la forma de sincronización. Para ellos se diseña el monitor que permite compartir datos entre varias actividades sin necesidad que el programador indique como. Se basa en dos premisas: una consiste en separar las operaciones a ejecutar sobre los datos, de los detalles de diseño propios de los mismos, otra es realizar la exclusión mutua tal cual. Básicamente consiste en reunir todas las funciones que operan sobre un conjunto de datos compartidos en un solo modulo de forma que todos los acceso a esos datos estarán forzados a utilizar dichas funciones. ² Mensajes: se basa en permitir a los procesos comunicarse entre sí mediante mensajes que utilizan una zona de memoria compartida oculta y gestionada por el sistema operativo, de esta forma un proceso que quiere enviar un mensaje a otro lo deja en la zona compartida donde lo leerá el otro. ² Llamadas remotas: cuando un proceso se ejecuta se crea una copia del mismo que se sigue ejecutando de forma concurrente y hasta que no termina un proceso no comienza otro. Se utiliza en programas que necesitan iniciarse tantas veces como usuarios lo solicitan. Prof.: Justo Sáez Arenas 12 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. Rendez-vous: es una modificación del de llamada remotas pero solo se crea una copia de un grupo de sentencias. Mecanismos Hardware: son mecanismos que aseguran la exclusión mutua mediante soluciones del propio hardware. Las más utilizadas son las siguientes: - Deshabilitar interrupciones: consiste en la posibilidad hardware de no atender las interrupciones que no nos interesen porque violen la exclusión mutua. Esta atención a las interrupciones puede ser habilitada o deshabilitada según nos interese. - Instrucción Test-And-Set: es una instrucción del microprocesador que fuerza la exclusión mutua. Por sí sola no asegura la exclusión pero basándonos en ella construimos los denominados locks. - Lock: se basa en la instrucción anterior y su cometido es permitir el acceso a la sección crítica a un proceso en caso de no existir otra actividad dentro de su sección crítica, no permitiéndolo en caso contrario. ² • 3.6.- Interbloqueo. Es la situación a la que se llega cuando un conjunto de procesos en estado de espera puede continuar su ejecución (por ejemplo, cuando un puente de vía estrecha quieren entrar varios coches a la vez). El interbloqueo interfieren cuestiones como: Ø Recursos: elementos que un programa o proceso puede utilizar en el ordenador ya sean dispositivos hardware como software. El problema consiste en aquellos recursos que solo pueden ser utilizados por un proceso en un momento dado, en este caso se siguen la secuencia: solicitar el recurso, optimizarlo y liberarlo. Ø Bloqueo o abrazo mortal (deadlock): se produce cuando a todos los procesos en espera ninguno de ellos puede producir un suceso que solucione la situación. Ø Postergación indefinida: se produce cuando un proceso queda en espera indefinida por algún recurso mientras los otros procesos son atendidos por el sistema. Esto se suele producir en sistemas gestionados por prioridades (como vimos, se solucionaba mediante el envejecimiento de prioridades). Ø Condiciones del interbloqueo: un conjunto de procesos llega al interbloqueo si se producen las siguientes condiciones: -. Exclusión mutua: existe al menos un recurso compartido al que solo puede acceder un proceso. -. Posesión y espera: un proceso tiene asignado un recurso pero no continua porque espera otro recurso. -. No apropiación: los recursos no pueden ser liberados por el sistema u otros procesos, solamente por el proceso que los utiliza, lo que puede producir interbloqueos, esto se solucionaría si el sistema u otros procesos pudiesen apropiarse de otros recursos. -. Espera circular: un proceso espera un recurso que utiliza otro proceso y este a su vez espera un recurso que utiliza el primero. Ø Tratamiento de interbloqueo: existen cuatro estrategias para tratar el interbloqueo: Prof.: Justo Sáez Arenas 13 Sistemas Informáticos Multiusuario y en Red T-7.- Gestión de procesos. Ignorar: no hacer caso al interbloqueo y el sistema sigue bloqueado, solución reiniciar el sistema Prevenir: evitar alguna de las cuatro condiciones anteriores que producen el interbloqueo. Evitar: podemos evitar los interbloqueos haciendo un estudio previo de los recursos que necesitara cada proceso y de esta forma aplicar un algoritmo (ej. El del banquero, para planificar la utilización de los recursos). Detectar y recuperar: consiste en abortar un proceso cuando existen indicios de que está produciendo un interbloqueo. El sistema operativo puede abortar el proceso en base a: 1. Prioridades: se elimina el de más baja prioridad. 2. Tiempo de procesador usado, eliminar el que más tiempo lleve ejecutándose. 3. Tipo de recursos utilizados: eliminamos los procesos que utilizan recursos críticos. 4. Necesidades de recursos: eliminamos los procesos que necesitan muchos recursos. 5. Facilidad de suspensión/reanudación: eliminamos aquellos procesos cuyo trabajo perdido sea fácil de recuperar posteriormente. Prof.: Justo Sáez Arenas 14