Subido por Mariano Giménez

T7-Gestion de Procesos

Anuncio
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
Descargar