so sincronizacion de procesos

Upload: alexzander-rivas-huerto

Post on 13-Oct-2015

20 views

Category:

Documents


0 download

TRANSCRIPT

  • SISTEMAS OPERATIVOS

    SINCRONIZACION DE PROCESOS

  • 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

  • Filsofos Comensales ( Dijkstra, 1965 ) Necesidad de asignar varios recursos entre varios procesos sin que haya bloqueos mutuos ni inanicin

    Primera Solucin Representar cada palillo con un semforo

    Un filsofo trata de tomar un palillo ejecutando una operacin espera con ese semforo, y suelta sus palillos ejecutando la operacin seal con los semforos apropiados. var palillo: array [0..4] of semforo;

    Inicialmente todos los elementos de palillo estn en 1

  • Filsofos Comensales ( Dijkstra, 1965 )Primera Solucin Garantiza que dos vecinos no estarn comiendo simultneamente

    Posibilidad de bloqueo mutuo

    Suponga que los cinco filsofos sienten hambre simultneamente y cada uno toma su palillo izquierdo

  • Filsofos Comensales ( Dijkstra, 1965 )Posibles soluciones al problema de bloqueosPermitir que como mximo filsofos se sienten a la mesa cuatro filsofos

    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.

  • Filsofos Comensales ( Dijkstra, 1965 )Cualquier solucin satisfactoria deber evitar la posibilidad que uno de los filsofos muera de hambre.

    Una solucin libre de bloqueos mutuos no elimina necesariamente la posibilidad de inanicin

    Solucin por monitoresDistinguir entre los tres estados en los que podra estar un filsofo Pensando, hambriento y comiendo

    Definir el estado del mismo filsofo

  • Lectores y Escritores ( Courtois et al., 1971)Existe un determinado objeto que se va a ser utilizado y compartido por una serie de procesos concurrentes.

  • Lectores y Escritores ( Courtois et al., 1971) Un objeto se va a compartir entre varios usuarios, algunos solo quieren leer el contenido ( lectores ), otros quieren actualizarlo (escritores)

    Restricciones 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

  • Lectores y Escritores ( Courtois et al., 1971)Primer Problema : No se debe tener a ningn lector en espera a menos que el escritor tenga el permiso del uso del objeto

    Segundo Problema : Si un escritor est esperando acceder al objeto, ningn otro lector puede comenzar a leer.

    Sol/ Definir prioridades a lectores y escritores

    Utilizado para probrar las primitivas de sincronizacin nuevas

  • Productor Consumidor ( Buffer limitado )Uno o ms procesos, que se denominan productores, generan cierto tipo de datos que son utilizados por otros procesos que se denominan consumidores

  • Productor Consumidor ( Buffer limitado )Mecanismo de Comunicacin Cuando se llene Productor bloqueado

    Cuando est vaco Consumidor bloqueado

    Buffer

    Solucin SemforosValor mximo Tamao del bufferValor mnimo Cero

  • Productor Consumidor ( Buffer limitado ) int N = 100; /*Nmero mximo en el buffer*/ int count = 0;/*Nmero de elementos en el buffer*/

    void productor( ){ if (buffer == lleno) then dormir(); else { aadir nuevo elemento a la lista; incrementar count; verificar estado consumidor;}}

  • Productor -- Consumidor ( Buffer limitado )void consumidor( ){ if (buffer == vaco) then dormir(); else { eliminar elemento de la lista; decrementar count; verificar estado productor;}}

  • Barbero DormilnLa peluquera tiene : Un barbero Una silla de barbero n sillas para los clientes

  • Barbero DormilnNo hay clientes presentes El barbero se sienta en la silla de barbero y se duerme

    Cuando llega un cliente, debe despertar al barbero

    Si llegan ms clientes mientras el barbero est atendiendo a un cliente, se sientan (si hay sillas vacas), o bien, salen de la peluquera (si todas las sillas est ocupadas)

    Problema : Programar al barbero y a los clientes sin caer en condiciones de competencia

  • Barbero Dormiln

    Semforowaitsignalmax_capacidadEl cliente espera hasta que haya sitio para entrar en la peluqueraEl cliente que sale avisa a un cliente que est esperando para entrarsillasEl cliente espera una silla vacaEl cliente que abandona la silla avisa a un cliente que espera sillasilla_barberoEl cliente espera hasta que la silla del barbero est vacaEl barbero avisa cuando su silla queda vacacliente_listoEl barbero espera hasta que el cliente est en la sillaEl cliente avisa al barbero que ya est en la silla

  • Barbero Dormiln

    SemforowaitsignalterminadoEl cliente espera a que el corte de cabello est completoEl barbero avisa cuando termina el corte de cabello a un clientedejar_silla_vEl barbero espera hasta que el cliente se levante de la sillaEl cliente avisa al barbero cuando se levanta de la silla

  • 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

  • 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.

  • Suponga que dos procesos quieren quemar un documento digitalizado en un CD.

    Proceso A solicita autorizacin para usar el escner y se le concede.Proceso B solicita primero el quemador de CD y tambin se le concede.

    Ahora A, pide el quemador de CD, pero se le niega porque B no lo ha liberadoB solicita el escner, pero sin liberar el quemador de CD.

    PROCESOS A Y B ESTN BLOQUEADOS

  • Solicitud UsoLlamadas al Sistema Liberacin

    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.

  • Exclusin Mutua Slo un proceso podr usar el recurso

    2. Retener y esperar Los procesos que tienen recursos previamente otorgados pueden solicitar otros recursos.No apropiacin Un recurso no puede ser arrebatado a otro proceso

  • 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

  • Grafos de Asignacin de RecursosNodos Procesos y RecursosArcos De un proceso a un recurso Solicitud De un recurso a un proceso Asignacin Ciclos Indica la existencia de un bloqueo

  • EjemploProcesos A, B, CRecursos R, S, T

    Asignaciones SolicitudesR asignado a AA solicita a SS asignado a BB solicita a TT asignado a C C solicita a R

    Pregunta. Est bloqueado este sistema y, en tal caso, cules son los procesos bloqueados?.

  • 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

  • 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. 3. Se aade el nodo activo al final de L y se verifica si el nodo aparece en L dos veces: Si aparece dos veces existe un ciclo y el algoritmo termina. 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.

  • Continuacin Algoritmo5. 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.

  • Ejemplo: Sistema con 7 (siete) procesos (A a G) y 6 (seis) recursos (R a W): La posesin de los recursos es la siguiente: El proceso A posee a R y desea a S. El proceso B no posee recurso alguno y desea a T. El proceso C no posee recurso alguno y desea a S. El proceso D posee a U y desea a S y a T. El proceso E posee a T y desea a V. El proceso F posee a W y desea a S. El proceso G posee a V y desea a U. Pregunta : Est bloqueado este sistema y, en tal caso, cules son los procesos bloqueados?.

  • Estrategias -- Apropiacin de Recursos Arrebatar de manera temporal un recurso a su actual poseedor y drselo a otro proceso.ManualmenteLa seleccin del proceso a suspender depende de qu procesos tienen recursos que pueden quitarse con facilidad

  • 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

  • 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.

  • 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.

  • 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

  • Espera circular Asignar prioridades a los recursos

    Ejemplo.ImpresoraEscnerGraficadorUnidad de cintaUnidad de CD

    Imposible llegar a un ordenamiento que satisfaga a todos

  • 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?

  • Obligar a cada proceso a definir el nmero mximo de recursos que podra necesitar

    Revisar dinmicamente el estado de asignacin de recursosNmero de recursos disponibles y asignadosDemandas mximas de los procesos

  • 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

  • Estructuras para implementar el algoritmon Nmero de procesos del Sistemam Nmero de recursos

    Disponible : Vector de longitud m Disponible( j ) = k; Mx: Matriz de n*m Demanda mxima de cada procesoMx[ i, j ] = kAsignacin : Matriz de n*m Nmero de recursos que se han asignado a cada proceso Asignacin [ i, j ] = k

  • Estructuras para implementar el algoritmoNecesidad: Matriz de n*m Recursos que todavia le faltan a cada procesoNecesidad[ i ,j ] = k

    Necesidad[ i, j ] = Mx[ i, j ] - Asignacin [ i, j ] = k

  • 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, ...,n2. Buscar un i tal quea. Fin[i] = false, y b. Necesidadi

  • 3. Trabajo = Trabajo + AsignaciniFin[i] = trueIr al paso 24. Si Fin[i] = true para todo i, el sistema est en un estado seguro

  • Algoritmo de Solicitud de RecursosSea Solicitudi el vector de solicitudes del proceso Pi. Si Solicitudi [ j ] = k, el proceso Pi quiere k recursos de Rj. Cuando Pi solicita recursos, se hace lo siguiente:1. Si Solicitudi
  • Algoritmo de Solicitud de Recursos2. Si Solicitudi
  • EjemploConsidere 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

    AsignacinMxDisponibleA B CA B CA B CP00 1 07 5 33 3 2P12 0 03 2 2P23 0 29 0 2P32 1 12 2 2P40 0 24 3 3

  • EjemploSuponga que, en el instante T0, se tom la siguiente instantnea del sistema:Necesidad = Mx - AsignacinEl sistema est en un estado seguro?

    Qu pasa si llega la siguiente solicitud. Solicitud1 = (1,0,2)

    Busque una secuencia de procesosque satisfaga los criterios de seguridad.

    NecesidadA B CP07 4 3P11 2 2P26 0 0P30 1 1P44 3 1

  • EjemploAplicar el algoritmo de solicitud de recursosAplicar 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)??

    AsignacinNecesidadDisponibleA B CA B CA B CP00 1 07 4 32 3 0P13 0 20 2 0P23 0 26 0 0P32 1 10 1 1P40 0 24 3 1

  • 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

    DesventajasRequiere un nmero fijo de recursos asignablesNo es posible contar que ser siempre constante el nmero de recursos

  • DesventajasRequiere una poblacin de usuarios constante Multiprogramacin

    El algoritmo necesita que los usuarios declaren por anticipado sus necesidades Asignacin de recursos dinmica