Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Filsofos Comensales ( Dijkstra, 1965 ) Cinco filsofos pasan la vida pensando y comiendo Cuando un filsofo piensa, no interacta con sus colegas Cuando tiene hambre, toma los dos palillos al mismo tiempo y come sin soltarlos Cuando termina de comer, coloca los dos palillos sobre la mesa y comienza a pensar
Slo permitir que un filsofo tome sus palillos si ambos estn disponibles ( dentro de la seccin crtica )
Solucin asimtrica Un filsofo impar toma primero su palillo izquierdo y luego el derecho, mientras que un filsofo par toma primero su palillo derecho y luego el izquierdo.
Lector
Lector
Escritor
Lector
Escritor
Recurso Existe un determinado objeto que se va a ser utilizado y compartido por una serie de procesos concurrentes.
Slo se permite que un escritor tenga acceso al objeto al mismo tiempo. Mientras el escritor est accediendo al objeto, ningn otro proceso lector ni escritor podr acceder a l.
Se permite que mltiples lectores tengan acceso al objeto, ya que ellos nunca van a modificar el contenido del mismo
Proceso Productor
Proceso Consumidor
Flujo de datos Mecanismo de Comunicacin Uno o ms procesos, que se denominan productores, generan cierto tipo de datos que son utilizados por otros procesos que se denominan consumidores
Buffer
Solucin Semforos Valor mximo Tamao del buffer Valor mnimo Cero
int count = 0;
void productor( ){
void consumidor( ){
if (buffer == vaco) then dormir(); else {
sillas
silla_barbero
El cliente espera hasta que El barbero avisa cuando la silla del barbero est su silla queda vaca vaca El barbero espera hasta que el cliente est en la silla El cliente avisa al barbero que ya est en la silla
cliente_listo
wait
El cliente espera a que el corte de cabello est completo
signal
El barbero avisa cuando termina el corte de cabello a un cliente
dejar_silla_v El barbero espera hasta que El cliente avisa al barbero el cliente se levante de la cuando se levanta de la silla silla
BLOQUEOS MUTUOS
Entorno multiprogramacin Varios procesos pueden competir por un nmero finito de recursos Proceso solicita un recurso No est disponible Espera Puede que no cambie de estado Los recursos solicitados estn en manos de otros procesos que tambin estn en espera Interbloqueo Problema similar Inanicin, aplazamiento indefinido o bloqueo indefinido
BLOQUEOS MUTUOS
Modelado del Sistema Un sistema se componen de un conjunto finito de recursos (unidades de cinta, impresoras, CPU, etc..) Procesos compiten por los recursos Si el sistema tiene por dos CPU, se dice que tiene dos ejemplares
Todos los S.O deben otorgar a un proceso (en forma temporal) acceso exclusivo a ciertos recursos.
BLOQUEOS MUTUOS
Secuencia de uso de recursos Solicitud Uso Liberacin
Llamadas al Sistema
El recurso no est disponible cuando se solicita El proceso solicitante debe esperar En algunos S.O el proceso se bloquea automticamente y despierta cuando dicho recurso est disponible La solicitud falla y el proceso debe esperar para pedir el recurso.
BLOQUEOS MUTUOS
Condiciones para el bloqueo mutuo 1. Exclusin Mutua Slo un proceso podr usar el recurso 2. Retener y esperar Los procesos que tienen recursos previamente otorgados pueden solicitar otros recursos. 3. No apropiacin Un recurso no puede ser arrebatado a otro proceso
BLOQUEOS MUTUOS
Condiciones para el bloqueo mutuo 4. Espera circular Debe existir un conjunto {P0,P1..,Pn} de procesos en espera tal que P0 est esperando un recurso que fu adquirido por P1, P1 est esperando un recurso que fu adquirido por P2,.., Pn-1 est esperando un proceso que fu adquirido por Pn y Pn est esperando un recurso que fu adquirido por P0
BLOQUEOS MUTUOS
Modelacin de Bloqueos Grafos de Asignacin de Recursos
Nodos Procesos y Recursos Arcos De un proceso a un recurso Solicitud De un recurso a un proceso Asignacin Ciclos Indica la existencia de un bloqueo
BLOQUEOS MUTUOS
Modelacin de Bloqueos Ejemplo
Procesos A, B, C
Asignaciones R asignado a A S asignado a B T asignado a C
Recursos R, S, T
Solicitudes A solicita a S B solicita a T C solicita a R
Pregunta. Est bloqueado este sistema y, en tal caso, cules son los procesos bloqueados?.
BLOQUEOS MUTUOS
Estrategias para enfrentar los Bloqueos Ignorar todo el problema : Quiz si nos olvidamos de l, l se olvidar de nosotros Algoritmo del Avestruz Detectar y recuperarse del bloqueo : Dejar que se presenten bloqueos mutuos, detectarlos y tomar medidas Prevenir el bloqueo : Anular una de las cuatro condiciones necesarias para que haya un bloqueo mutuo Evitar el bloqueo : Asignacin cuidadosa de recursos
BLOQUEOS MUTUOS
Algoritmo para detectar un Bloqueo Algoritmo aplicable a cada nodo N de la grfica: 1. Se considera a N como nodo inicial.
2. Se inicializan:
La estructura de datos Lcomo una lista vaca. Todos los arcos como no marcados.
4. Desde el nodo dado se verifica si existen arcos que salgan de dicho nodo y no estn marcados:
En caso afirmativo se va al paso 5. En caso negativo se va al paso 6.
BLOQUEOS MUTUOS
Algoritmo para detectar un Bloqueo Continuacin Algoritmo 5. Se elige al azar un arco de salida no marcado y se le marca: Luego se sigue este arco hasta el nuevo nodo activo y se regresa al paso 3. 6. Se ha llegado a un punto donde no se puede continuar: Se regresa al nodo anterior, es decir al que estaba activo antes del actual. Se seala de nuevo como nodo activo.
Se va al paso 3.
Si este nodo era el nodo inicial, la grfica no contiene ciclos y el algoritmo termina.
BLOQUEOS MUTUOS
Algoritmo para detectar un Bloqueo Ejemplo: Sistema con 7 (siete) procesos (A a G) y 6 (seis) recursos (R a W):
BLOQUEOS MUTUOS
Cmo recuperarse de un Bloqueo Estrategias -- Apropiacin de Recursos
BLOQUEOS MUTUOS
Cmo recuperarse de un Bloqueo Estrategias Eliminacin de recursos
Escoger como vctima un proceso que no se encuentre en el ciclo, a fin de liberar recursos.
Eliminar sucesivamente los procesos bloqueados Liberar todos los procesos y recursos
BLOQUEOS MUTUOS
Prevenir el Bloqueo Disear un sistema donde quede excluida la posibilidad de bloqueo Anular una de las cuatro condiciones necesarias para que haya un bloqueo mutuo Exclusin Mutua Jams asignar un recurso en forma exclusiva a un solo proceso. Inconveniente El S.O debe soportar la exclusin mutua. Ejemplo: Escribir en un archivo.
BLOQUEOS MUTUOS
Prevenir el Bloqueo Retener y esperar Hacer que los procesos soliciten todos sus recursos antes de comenzar a ejecutarse Inconveniente Muchos procesos no saben, antes de iniciar se ejecucin, cuntos recursos van a necesitar. No har uso ptimo de los recursos S/ Exigir a un proceso que solicita un recurso que primero libere en forma temporal todos los que tiene.
BLOQUEOS MUTUOS
Prevenir el Bloqueo No apropiacin Si a un proceso se le niega el uso de un recurso liberar todos los recursos
Espera circular Todo proceso tiene derecho a utilizar un recurso en todo momento. Si necesita un segundo recurso, deber liberar el primero
BLOQUEOS MUTUOS
Prevenir el Bloqueo Espera circular Asignar prioridades a los recursos Ejemplo. 1. Impresora 2. Escner 3. Graficador 4. Unidad de cinta 5. Unidad de CD Imposible llegar a un ordenamiento que satisfaga a todos
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Bloqueo Mutuo Cuando un proceso pide recursos, en algn momento pedir mas. El sistema debe tener la capacidad de distinguir si se puede otorgar sin peligro un recurso o no, y solo efecttuar la asignacin si no hay peligro. Hay algn algoritmo que siempre pueda evitar los bloqueos mutuos tomando la decisin correcta todo el tiempo?
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Obligar a cada proceso a definir el nmero mximo de recursos que podra necesitar Revisar dinmicamente el estado de asignacin de recursos Nmero de recursos disponibles y asignados Demandas mximas de los procesos
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Estados Seguros e inseguros El sistema puede asignar recursos a cada proceso Secuencia segura Bloqueo mutuo Estado inseguro Algoritmo del Banquero Dijkstra
Cuando un proceso nuevo entra en el sistema, debe declarar el nmero mximo de recursos que podra necesitar
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Estructuras para implementar el algoritmo n Nmero de procesos del Sistema m Nmero de recursos Disponible : Vector de longitud m Disponible( j ) = k; Mx: Matriz de n*m Demanda mxima de cada proceso Mx[ i, j ] = k Asignacin : Matriz de n*m Nmero de recursos que se han asignado a cada proceso Asignacin [ i, j ] = k
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Estructuras para implementar el algoritmo
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Algoritmo de Seguridad Un sistema est en estado seguro??? 1. Sean Trabajo y Fin vectores con longitud m y n. Asignar los valores iniciales Trabajo = Disponible y Fin[i]=false para i = 1, 2, ...,n 2. Buscar un i tal que a. Fin[i] = false, y b. Necesidadi <= Trabajo Si no existe tal i, continuar con el paso 4
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos 3. Trabajo = Trabajo + Asignacini Fin[i] = true Ir al paso 2
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Algoritmo de Solicitud de Recursos
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Algoritmo de Solicitud de Recursos
3. Hacer que el sistema simule haber asignado al proceso Pi los recursos que solicit modificando el estado como sigue:
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Ejemplo Considere un sistema con cinco procesos, P0 a P4 y tres tipos de recursos A, B y C. El tipo de recursos de A tiene 10 ejemplares, B tiene 5 ejemplares y C tiene 7 ejemplares
Asignacin ABC P0 0 1 0 Mx ABC 7 5 3 Disponible ABC 3 3 2
P1
P2 P3 P4
2 0 0
3 0 2 2 1 1 0 0 2
3 2 2
9 0 2 2 2 2 4 3 3
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Ejemplo
El sistema est en un estado seguro? Qu pasa si llega la siguiente solicitud. Solicitud1 = (1,0,2) Busque una secuencia de procesos que satisfaga los criterios de seguridad.
P1
P2 P3
1 2 2
6 0 0 0 1 1
P4
4 3 1
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Ejemplo Aplicar el algoritmo de solicitud de recursos
Asignacin Necesidad ABC P0 P1 P2 P3 0 1 0 3 0 2 3 0 2 2 1 1 ABC 7 4 3 0 2 0 6 0 0 0 1 1 Disponible ABC 2 3 0
P4
0 0 2
4 3 1
Aplicar el algoritmo de seguridad Qu sucede si llega una solicitud de P4 con (3,3,0)?? Qu sucede si llega una solicitud de P2 con (0,2,0)??
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Ventajas del Algorimo del Banquero Ofrece una forma de asignar recursos Permite la ejecucin de tareas que tendran que esperar en una situacin de prevencin del bloqueo mutuo Desventajas Requiere un nmero fijo de recursos asignables
BLOQUEOS MUTUOS
Tcnicas para Evitar Bloqueos Desventajas
El algoritmo necesita que los usuarios declaren por anticipado sus necesidades Asignacin de recursos dinmica