Tema 3: Coordinacin y Sincronizacin de Procesos - PowerPoint PPT Presentation

1 / 39
About This Presentation
Title:

Tema 3: Coordinacin y Sincronizacin de Procesos

Description:

Instrucciones Especiales de la M quina: Test&Set. 3.3. ... Dadas dos instrucciones I1 y I2 de dos procesos P1 y P2, podemos distinguir dos casos ... – PowerPoint PPT presentation

Number of Views:258
Avg rating:1.0/5.0
Slides: 40
Provided by: kenne78
Category:

less

Transcript and Presenter's Notes

Title: Tema 3: Coordinacin y Sincronizacin de Procesos


1
Tema 3 Coordinación y Sincronización de Procesos
  • 1. Introducción
  • 1.1. Principios de Concurrencia
  • 1.2. Problemas que introduce la Concurrencia
  • 1.3. Interacción entre Procesos
  • 2. El Problema de la Exclusión Mutua
  • 2.1. Presentación del Problema
  • 2.2. Requisitos para las Soluciones
  • 3. Soluciones Hardware
  • 3.1. Deshabilitación de Interrupciones
  • 3.2. Instrucciones Especiales de la Máquina
    TestSet
  • 3.3. Instrucciones Especiales de la Máquina Swap
  • 3.4. Propiedades de estas Soluciones
  • 4. Soluciones Software
  • 4.1. Algoritmo de Dekker
  • 4.2. Algoritmo de Peterson
  • 5. Mecanismos del Sistema Operativo y del
    Lenguaje
  • 6. Problemas Clásicos de Sincronización
  • 7. Interbloqueo e Inanición
  • 8. Modelos de Representación

2
1.1. Principios de Concurrencia
  • Conceptos fundamentales en SO modernos
    relacionados con gestión de procesos e hilos
  • Multiprogramación Varios procesos ejecutándose
    simultáneamente en un único procesador
  • No paralelismo real, sobrecarga en cambios de
    proceso
  • Eficiencia
  • Multiproceso Varios procesos en sistema
    multiprocesador
  • Procesamiento Distribuido Procesos que se
    ejecutan en sistemas de computadoras múltiples y
    remotas.
  • Definición de Concurrencia y de Procesos
    Concurrentes
  • Procesos concurrentes ? Aquellos que intercalan
    y/o superponen su ejecución
  • Gestión Concurrencia ? gestión de varios procesos
    o hilos

Tiempo
P1
P2
P3
a) Intercalación
P1
P2
P3
b) Intercalación y superposición
3
1.2. Problemas que introduce la Concurrencia
  • Multiprogramación, multiproceso y procesamiento
    distribuido presentan los mismos problemas
    independientemente del número de procesadores.
  • Problemas para compartir recursos globales no
    compartibles
  • Procedimiento echo ()
  • Entrada(x)
  • salx
  • Salida(sal)
  • End.
  • Problemas de sincronización en la coordinación de
    procesos
  • Proceso P1 Proceso P2
  • i1 i1
  • ..... ...
  • ix iy
  • Sincronización Sincronización
  • Resto Resto
  • Dificultad de asignar los recursos de forma
    óptima ? Uso ineficiente de los recursos.

Problemas? Solución?
4
1.3. Interacción entre Procesos
  • Ejecución concurrente procesos ? Interacción
  • Contención Procesos que compiten por el mismo
    recurso
  • Comunicación Procesos que necesitan comunicarse
    provocando el intercambio de información.
  • Interacción entre procesos
  • Se consideran las secuencias de instrucciones
    ejecutadas por cada proceso
  • Se ignora la velocidad del procesador y el tiempo
    de llegada de señales
  • Garantizar corrección de la ejecución de procesos
    concurrentes bajo cualquier secuencia de
    intercalado de instrucciones
  • Si cambia hardware o secuencia llegada señales ?
    distinto intercalado de instrucciones pero
    programa sigue siendo correcto.
  • Dadas dos instrucciones I1 y I2 de dos procesos
    P1 y P2, podemos distinguir dos casos
  • fin(I1) ? comienzo (I2) ? Ejecución Secuencial
  • comienzo (I2) lt fin (I1) ? Hay que garantizar que
    el resultado es cualquiera de las dos posibles
    secuencias obtenidas por la ejecución de una
    instrucción tras la otra

5
1.3. Interacción entre Procesos
  • Procesos independientes ? Competencia de procesos
  • Proceso independiente ? No afecta ni es afectado
    por la ejecución de otros procesos en el sistema
  • Conflicto ? compiten por el uso de los recursos.
  • Acceso Exclusivo a Recursos no Compartibles
  • Varios procesos usan recurso no compartible ?
    sólo uno accede al recurso en un momento
    determinado
  • Sistema Operativo
  • Asigna recursos garantizando su uso exclusivo
  • Ofrece mecanismos para que los procesos puedan
    expresar la forma de acceso a los recursos
  • Bloqueo de procesos. Ejemplo
  • Espera indefinida. Ejemplo
  • Procesos que cooperan
  • Procesos que cooperan ? Comparten datos con otros
    y, por tanto, su ejecución afecta o puede ser
    afectada por la ejecución de los otros.
  • No son independientes sino que se conocen en
    cierta medida.
  • Cooperan compartiendo recursos (memoria global,
    )
  • Comunicación más directa ? primitiva de paso de
    mensajes
  • Se requieren mecanismos que permitan a los
    procesos comunicarse y sincronizarse.

6
1.3. Interacción entre Procesos
  • Cooperación de Procesos por Compartición de
    Recursos
  • Procesos no tienen un conocimiento explícito de
    los otros
  • Cooperan gracias al acceso a datos compartidos
  • Son conscientes de que los otros pueden acceder a
    los mismos datos
  • Cooperación
  • Hay que asegurar la gestión correcta de los datos
    compartidos
  • Sistema Operativo debe proporcionar mecanismos de
    control que ayuden a garantizar la integridad de
    tales datos
  • Ejemplo
  • Datos a y b que deben cumplir a b
  • P1 P2
  • a a 1 b b 2
  • b b 1 a a 2
  • Acceso exclusivo al recurso compartido, para
    garantizar coherencia e integridad de datos,
    Bloqueo de procesos y Espera Indefinida
  • Cooperación de Procesos por Comunicación
  • Procesos participan en una labor común para todos
    los procesos.
  • Comunicación es una forma de coordinar o
    sincronizar las distintas actividades

Supóngase ahora la secuencia de ejecución
siguiente i11, i21, i12, i22
7
2. El Problema de la Exclusión Mutua
  • 2.1. Presentación del Problema
  • P1, P1, ...Pn que ejecutan el siguiente código
    sobre R1, ...Rm
  • Código inicial Pi
  • Repeat
  • Sección crítica de Pi para usar Rj
  • Código que no es sección crítica
  • ...
  • Sección crítica de Pi para usar Rk
  • Código que no es sección crítica
  • Forever
  • Procesos ejecutan Sección Crítica
  • Código de acceso a recursos compartidos no
    compartibles
  • Hay que garantizar que cuando P está en su
    sección crítica usando el recurso R, ningún Q
    puede estar ejecutando sus secciones críticas
    para el recurso R
  • Ejecución de las secciones críticas de los
    procesos es mutuamente exclusiva en el tiempo
  • Ejemplo R1 y R2 y P1, P2 y P3 con el
    siguiente comportamiento

8
2.1. Presentación del Problema de la Exclusión
Mutua
  • Problema Sección Crítica ? Encontrar un protocolo
    que permita la cooperación de los procesos.
  • Protocolo
  • Sección de entrada
  • Proceso pide permiso para entrar en la sección
    crítica
  • Lo consigue ? ejecuta las instrucciones de la
    sección crítica
  • Cualquier otro proceso debe esperar
  • Sección de salida
  • El proceso abandona la sección crítica
    permitiendo a otro entrar.
  • Estructura típica de un proceso
  • Código inicial
  • repeat
  • Sección de Entrada
  • Sección crítica
  • Sección de Salida
  • Resto del código que no es sección crítica
  • forever

9
  • 2.2. Requisitos para las Soluciones
  • Exclusión Mutua De los procesos con SC para
    acceder a un recurso, sólo uno gana el permiso
    para entrar en ella en un instante dado
  • Progreso Procesos que no están en su SC ni
    tienen interés en entrar, no pueden evitar que
    otros procesos que sí quieren entrar lo hagan.
  • Espera limitada Cuando un proceso quiere entrar
    en su SC, es necesario asegurar que lo haga en un
    tiempo finito.
  • No se puede suponer nada de la velocidad relativa
    de los procesos excepto que es no nula
  • 2.3. Problemas Derivados de la Exclusión Mutua
  • Interbloqueo
  • Inanición

10
3. Soluciones Hardware
  • Ayuda hardware facilita solución del problema y
    es eficiente
  • 3.1. Deshabilitación de interrupciones
  • Máquina monoprocesador ? Intercalación de
    instrucciones
  • Proceso continua ejecución hasta que termine o le
    interrumpan
  • Garantizar exclusión mutua ? impedir interrupción
    proceso
  • Protocolo
  • Repeat
  • Inhabilitar interrupciones
  • Sección crítica
  • Habilitar interrupciones
  • Resto
  • Forever
  • Exclusión Mutua Garantizada
  • Rendimiento
  • Inadecuada para arquitecturas multiprocesador

11
3.2. Instrucciones especiales de la máquina test
and set
  • Hardware garantiza accesos exclusivo a una
    posición de memoria
  • Solución a la exclusión mutua ? desarrollo de
    instrucciones máquina que realicen varias
    acciones atómicamente.
  • Implementación
  • TestandSet (var origenboolean)boolean
  • begin
  • Test_and_setorigen
  • origen true
  • end.
  • Esta instrucción se ejecuta atómicamente
  • Protocolo
  • Se define una variable booleana lock a false.
  • Repeat
  • while (TestandSet(lock))do nada
  • Sección crítica
  • lockfalse

12
3.3. Instrucciones especiales de la máquina swap
  • También se ejecuta atómicamente.
  • Implementación
  • Swap(var a, b boolean)
  • var tempboolean
  • Begin
  • tempa
  • ab
  • btemp
  • End.
  • Protocolo para solucionar la exclusión mutua
  • Variable global lock false variable privada
    key
  • Repeat
  • keytrue
  • repeat Swap(lock, key) until keyfalse
  • Sección crítica
  • lock false

13
  • 3.4. Propiedades de las soluciones con
    instrucciones máquina
  • Son soluciones aplicables a cualquier número de
    procesos en sistemas con memoria compartida,
    tanto en mono como en multiprocesadores
  • Simple y fácil de verificar
  • Puede usarse para disponer de varias secciones
    críticas ya que cada sección crítica puede
    definirse con su propia variable.
  • Se produce espera activa
  • Puede producirse inanición. Cuando un proceso
    abandona su sección crítica y es necesario elegir
    al siguiente, la selección es arbitraria.

14
4. Soluciones Software
  • Se basan en exclusión mutua por hardware en el
    acceso a memoria
  • 4.1. Algoritmo de Dekker
  • Primer Intento
  • P0 y P1 comparten variable global turno con valor
    inicial 0
  • P0 P1
  • .... .....
  • while turno ? 0 do nada while turno ? 1 do
    nada
  • sección crítica sección crítica
  • turno 1 turno 0
  • resto código resto código
  • Garantiza la exclusión mutua
  • No satisface la condición de progreso
  • Segundo Intento
  • Variable global compartida señal array0..1 of
    boolean / falso /
  • P0 P1

Qué ocurre si intercambiamos el orden de poner a
cierto la señal y el bucle while?
15
  • Tercer Intento.
  • Variable global señal array0..1 of boolean
    / valor inicial falso /
  • P0 P1
  • .... ....
  • señal0cierto señal1cierto
  • while señal1 do begin while señal0 do begin
  • señal0falso señal1falso
  • espera(tiempo) espera(tiempo)
  • señal0cierto señal1cierto
  • end end
  • sección crítica sección crítica
  • señal0 falso señal1 falso
  • resto resto
  • Se garantiza la exclusión mutua
  • Hay alguna condición que no se cumple
  • Algoritmo de Dekker

16
  • Algoritmo de Peterson
  • Variables compartidas señal array0..1 of
    boolean / falso / y turno0..1 su valor
    inicial no tiene relevancia
  • P0 P1
  • .... ....
  • señal0cierto señal1cierto
  • turno 1 turno 0
  • while (señal1 while (señal0
  • y turno 1) do nada y turno 0) do nada
  • sección crítica sección crítica
  • señal0falso señal1falso
  • resto código resto código
  • Garantiza la exclusión mutua.
  • Satisface también el requerimiento de progreso y
    de espera limitada
  • Problema soluciones software
  • Difíciles de generalizar para cualquier número de
    procesos o para problemas muy complejos.

17
  • Algoritmo de la Panadería
  • Atención en tiendas Cliente coge nº, dependiente
    atiende primero al que tenga un número más bajo.
  • Problema Garantizar que dos clientes no reciben
    el mismo nº
  • Empate ? Atender 1º al proceso con menor
    identificador.
  • Implementación
  • elección vector de n posiciones booleanas /
    falso /
  • número vector de n posiciones enteras / ceros
    /
  • Estructura de cada proceso, Procesoi
  • repeat
  • eleccióni? verdadero
  • númeroi? max(número0?,..., númeron-1?) 1
  • / max(a0, a1, ..., an-1) es un número k tal
    que k ? ai para i 0, 1, ..., n-1 /
  • eleccióni? falso
  • for j0 to n-1 do
  • begin
  • while elecciónj? do nada
  • while (númeroj? ? 0) y
  • (númeroj?, j) lt (númeroi?, i) do
    nada

Garantiza la exclusión mutua?
18
5. Mecanismos del Sistema Operativo y del Lenguaje
  • 5.1. Construcciones para indicar la concurrencia
  • Expresar la concurrencia dentro del lenguaje de
    programación
  • División ejecución secuencial en varias
    secuencias paralelas
  • Fusión varias secuencias paralelas en una
    secuencia secuencial
  • parbegin/parend o cobegin/coend para expresar el
    comienzo y fin de un conjunto de enunciados que
    deben ejecutarse paralelamente
  • parbegin
  • enunciado1
  • enunciado2
  • .......
  • enunciadox
  • parend
  • Ejemplo x (-b (b?2 - 4?a?c) ?5)/(2?a)
  • Procesador Secuencial Procesador Paralelo
  • 1 b?2 1 parbegin
  • 2 4?a temp1 -b
  • 3 4?a?c temp2 b ? 2
  • 4 b?2-4?a?c temp3 4 ? a

19
5.2. Semáforos
  • 5.2.1 Definición
  • Cooperación de procesos mediante intercambio de
    señales
  • Proceso debe detenerse en una posición
    determinada hasta que reciba una señal
    específica.
  • Para señalizar se usan variables especiales
    llamadas semáforos
  • Semáforo Variable entera accesible sólo por
    operaciones de inicialización y operaciones
    atómicas wait y signal o P y V.
  • Definición de P(S) y V(S)
  • P decrementa valor S si pasa a ser negativo,
    bloquea proceso
  • V libera el semáforo incrementando valor S. Si el
    valor no es positivo, se desbloquea un proceso
    bloqueado por una operación P.
  • Semáforos binarios y de cuenta
  • Semáforo Binario 0?(valor semáforo) ? 1
  • Semáforo de Cuenta puede tomar valores enteros
    positivos
  • 5.2.2 Implementación
  • Spinlock
  • P(S) while Slt0 do nada V(S) S S1
  • S S-1
  • Requiere Operaciones de Modificación semáforo
    atómicamente
  • Operación test y modificación también
    atómicamente
  • Espera Activa ? Baja Eficiencia

20
5.2. Semáforos
  • 5.2.2. Implementación Sin Espera Activa
  • Definición de semáforo utilizando colas de
    procesos (de sus PCB)
  • Cambio de estado de los procesos
  • Type semaphore record
  • Value integer
  • L List of process
  • End
  • P(S) V(S)
  • S.valueS.value-1 S.valueS.value1
  • if S.value lt 0 if S.value lt 0
  • then begin then begin
  • process ? S.L process ? S.L.
  • Block(process) Wakeup(Process)
  • end end
  • Lista procesos espera ? Lista enlazada de los PCB
    de los procesos
  • La lista puede utilizar cualquier estrategia de
    cola (fifo, etc.).

21
5.2. Semáforos
  • 5.2.3. Uso
  • Solución al problema de la sección crítica de
    n-procesos.
  • Procesos comparten un semáforo llamado mutex con
    valor inicial 1
  • Proceso
  • Repeat
  • Wait(mutex)
  • Sección crítica
  • Signal(mutex)
  • Resto
  • Until false
  • Solucionar varios problemas de sincronización.
  • P1 y P2 con sentencias S1 y S2 ? Ejecución S2
    sólo después de S1
  • Procesos comparten semáforo sinc con valor
    inicial 0
  • P1 P2
  • S1 P(Sinc)
  • V(sinc) S2

22
5.3. Monitores
  • 5.3.1. Definición
  • Construcciones sincronización alto nivel ?
    datosoperaciones definidas por el
    programador
  • Acceso a Datos ? Operaciones
  • 1 proceso activo en el monitor
  • Type nombre-monitor monitor
  • Declaración de variables
  • Procedure entry P1(...)
  • Begin ... end
  • ...
  • Procedure entry Pn(...)
  • Begin ... end
  • Begin
  • Código inicialización
  • End.
  • 5.3.2. Variables de condición
  • Condición c Operaciones wait( c)
  • o signal(c )

23
5.3. Monitores
  • 5.3.3 Monitores tipo Mesa/Hoare
  • Proceso Q espera en condición x, P ejecuta
    x.signal ? Q se reanuda
  • P y Q ejecutándose en el monitor ? P o Q se
    suspende
  • 5.3.4. Implementación de los monitores usando
    semáforos
  • Para cada monitor, se usa un semáforo mutex con
    valor inicial 1
  • Antes de entrar al monitor ? proceso ejecuta
    wait(mutex)
  • Después de salir ? signal(mutex)
  • Semáforo next, valor inicial 0
  • procesos que hacen signal pueden suspenderse a sí
    mismos
  • Variable next-count indica nº procesos parados en
    next.
  • Procedimiento F wait(mutex)
  • ...
  • cuerpo de F
  • ...
  • if next-countgt0 then signal(next)
  • else signal(mutex)
  • 5.3.5. Implementación de condiciones usando
    semáforos

24
  • 5.4. Regiones críticas
  • Construcciones de sincronización de alto nivel
    que solucionan algunos problemas planteados por
    uso incorrecto de semáforos
  • Requieren variable v tipo T compartida entre
    todos los procesos
  • Var v shared T
  • B expresión booleana que gestiona el acceso a la
    región crítica
  • Acceso a v sólo dentro de la sentencia region de
    la forma region v when B do S
  • Modo de funcionamiento
  • Mientras se ejecuta S, ningún otro proceso puede
    acceder a v
  • Evaluación de B cuando proceso intenta entrar en
    región crítica
  • Si es cierta, se ejecuta S
  • Si no, proceso libera exclusión mutua y espera B
    cierta y ningún otro proceso esté en la región
    asociada a v
  • Ejemplo
  • 5.5. Paso de mensaje
  • Procesos que cooperan ? necesitan intercambiar
    información
  • Paso de mensajes También puede servir para
    sincronizar procesos.
  • Mecanismo apto para mono, multiprocesador y
    sistemas distribuidos
  • Primitivas
  • Send(destino, mensaje)

25
6. Problemas Clásicos de Sincronización
  • 6.1. El problema de los Lectores / Escritores
  • Procesos lectores leen buffer ? permitido acceso
    simultáneo al buffer
  • Procesos escritores escriben ? necesario
    exclusión con lectores y con otros escritores
  • Solución
  • Semáforo mutex (1) exclusión mutua actualizando
    lect
  • Semáforo escr (1) exclusión mutua para
    escritores y 1er. o último lector que entra o
    sale de sección crítica, para evitar que,
    mientras se esté leyendo, entre un proceso
    escritor.
  • Variable lect nº de procesos leyendo en el
    buffer
  • Proceso lector Proceso escritor
  • P(mutex) P(escr)
  • lectlect1 ...
  • if lect1 then P(escr) Escribir
  • V(mutex) ...
  • Leer V(escr)
  • P(mutex)
  • lectlect-1
  • if lect 0 then V(escr)
  • V(mutex)

26
6.2. Problema General de varios Lectores /
Escritores
  • Semáforos de cuenta R y W con valores iniciales 0
    y N
  • Protocolo acceso a buffer compartido
  • Lectores Escritores
  • P(R) P(W)
  • Coger una entrada Coger una entrada
  • leer de la entrada Escribir en la entrada
  • soltar la entrada Soltar la entrada
  • V(W) V(R)
  • Coger y Soltar entrada buffer ? array de
    semáforos binarios que permite acceso exclusivo a
    una entrada buffer con valor inicial 1
  • Variables compartidas i 0 a N-1, mutex1, n0,
    n10 ne0
  • Lectores Escritores
  • P(R) P(W)
  • P(mutex) P(mutex)

27
  • Solución con semáforos de cuenta
  • n inicializado a 0 y s inicializado a 1
  • Productor Consumidor
  • repeat repeat
  • producir x wait(n)
  • wait(s) wait(s)
  • bufferentx ybuffersal
  • signal(s) signal(s)
  • signal(n) consumir y
  • forever forever

28
6.3. Problema de los Filósofos Comilones
  • Filósofo come si tiene ambos palillos
  • Palillos ? Array de semáforos binarios valor
    inicial 1
  • filósofoi
  • repeat P(palilloi?) P(palillo(i1) mod 5?)
  • comer
  • V(palilloi?) V(palillo(i1) mod 5?)
  • pensar
  • until falso
  • Inanición
  • 6.4. Problema de los Filósofos comilones con
    Monitores
  • var estadoarray0..4 of (pensando, hambriento,
    comiendo) ? filósofoi pone estadoi comiendo
    si estadoi4mod5?comiendo y estadoi1mod5?comi
    endo
  • Var self array0..4 of condition ? filósofoi
    puede retrasarse cuando está hambriento pero no
    puede conseguir ambos palillos.
  • Monitor fc controla la distribución de los
    palillos
  • Filósofo, antes de empezar a comer, invoca coger
    que puede resultar la suspensión del proceso
    filósofo y después de comer invoca soltar

29
6.3. Problema de los Filósofos Comilones con
Monitores
  • Type filósofos-comilones monitor
  • var
  • estadoarray0..4 of (pensando, comiendo,
    hambriento)
  • self array0..4 of condition
  • Procedure entry coger(i0..4)
  • begin
  • estadoihambriento
  • test(i)
  • if estadoi ? comiendo then selfi.wait
  • end
  • Procedure entry soltar(i0..4)
  • begin
  • estadoipensando
  • Test(i4 mod 5)
  • Test(i1 mod 5)
  • end
  • Procedure test(k0..4)

30
7. Interbloqueo e Inanición
  • 7.1. Principios de interbloqueo.
  • Sistema multiprogramado ? varios procesos
    compiten por uso de varios recursos
  • Cada recurso puede consistir en varias unidades
    idénticas.
  • Proceso pide recurso? Vale cualquier ejemplar
    disponible
  • Protocolo uso recurso
  • Solicitud Recurso solicitado no puede concederse
    inmediatamente ? proceso espera
  • Uso Proceso utiliza el recurso
  • Liberación.
  • Procesos P1, P2, y dos recursos R1, R2 P1 pide
    (R1) pide(R2)
  • P2 pide(R2) pide(R1)
  • Interbloqueo Situación en que varios procesos se
    quedan bloqueados y no terminan su ejecución
  • Inanición Proceso espera indefinidamente
    concesión de recurso que siempre se concede a
    otro que también lo está esperando ? Depende de
    la gestión que se haga de los recursos cuando se
    liberan
  • 7.2. Condiciones de deadlock
  • Condiciones sine qua non (simultáneas)
  • Exclusión mutua Solo un proceso en cada momento
    puede usar el recurso. Otro proceso lo quiere ?
    espera a que lo liberen
  • Mantener y espera Debe ? proceso que mantenga un
    recurso y que espere recursos adicionales
    mantenidos por otros procesos.
  • No requisamiento los recursos no pueden ser
    requisados
  • Espera circular debe ? procesos esperando de
    forma circular.

31
8. Modelos de Representación
  • Modelo Estructura de datos que representa lo
    relevante del sistema en relación con los
    Interbloqueos Procesos, Tipos de Recursos y
    Unidades, Recursos retenidos y Peticiones
    pendientes, etc.
  • 8.1. El Modelo Gráfico.
  • Grafos de Asignación de Recursos, grafos
    dirigidos no simples
  • G(V,A,f), donde Vp1,...,pn r1,...,rm,
    Aristas
  • f A?P?R?R?P
  • f(a)(pi,rj) ? petición pi está a la espera de
    una unidad de rj.
  • Si f(a)(rj,pi) ? asignación pi tiene retenida
    una unidad de rj.
  • Grafo con ciclos ? puede haber interbloqueo
  • 1 unidad de cada recurso ? ciclo ? interbloqueo.
    En cualquier caso procesos bloqueados forman
    parte de algún ciclo
  • Ejemplo anterior añadimos arco (p3,r2)

32
8.2. Modelo Matricial
  • Consiste en representar el estado del sistema a
    través de una serie de matrices, por ejemplo las
    siguientes
  • Pp1,...,pn. Procesos que hay en el sistema.
  • Rr1,...,rm. Tipos de recursos.
  • M. Utilización o Necesidades máximas de recursos.
    Mij es el número máximo de unidades de rj que
    puede necesitar simultáneamente pi.
  • C. Recursos retenidos. Cij es el número de
    unidades de rj que tiene retenidas en un instante
    pi.
  • N. Necesidades Futuras máximas. NM-C.
  • T. Cantidad de recursos totales. Tjunidades del
    recurso rj.
  • A. Cantidad de recursos disponibles. AjTj-SiCij.
  • Q. Peticiones pendientes. Qij es el número de
    unidades de rj por las que espera pi.

33
9. Mecanismos de Gestión del Interbloqueo
  • Estrategias básicas para tratar el problema.
  • Detectarlo y hacer una recuperación del sistema.
  • Protocolo acceso a recursos Prevenir y Evitar
  • 9.1. Prevenir Interbloqueos
  • Restringe la forma de solicitar los recursos
  • Evitar una de las 4 condiciones necesarias para
    interbloqueo
  • Exclusión mutua Recursos intrínsecamente no
    compartibles
  • Holdwait ? P pide recurso ? no puede tener otro
    recurso Protocolos
  • P pide y se le asignan todos los recursos que
    necesite antes de comenzar su ejecución
  • P solo puede pedir recursos sólo cuando no tiene
    ninguno
  • Baja reutilización de recursos y posibilidad de
    starvation
  • No requisamiento Protocolos
  • P tiene recurso y pide otro no asignable
    inmediatamente ? Requisar los recursos
    actualmente asignados
  • Mirar disponibilidad recuros solicitados
  • No ? asignados a algún proceso que espere por
    otros?
  • Si ? requisar recursos solicitados y asignarlos a
    P
  • Recursos no disponibles ni cogidos por proceso en
    espera ? P debe esperar y le pueden requisar
    recursos
  • Espera circular Ordenar tipos de recursos y
    obligar solicitud en orden ascendente
  • P solicita rj ? no puede retener

34
9.2. Evitar Interbloqueos
  • Mantener el sistema en estado seguro
  • Requiere información adicional de cómo se
    solicitan recursos
  • Petición ? sistema examina recursos disponibles,
    asignados y peticiones y liberaciones futuras de
    cada proceso y decide si la petición actual puede
    ser satisfecha sin riesgo
  • Algoritmos difieren en cantidad y tipo
    información solicitada
  • 9.2.1 Estado estable o seguro
  • Sistema en estado seguro ? sistema puede asignar
    recursos a cada proceso en algún orden y sigue
    libre de deadlock
  • Secuencia ltPk1,...,Pkpgt, Pki?P, ki?kj si i ? j,
    es estable o segura
  • Nk1Mk1-Ck1?A y
  • NkjMkj-Ckj ? A?(kk1,kj-1)Ck, (j2,...,p)
  • Necesidades futuras de P pueden atenderse con
    recursos disponibles recursos retenidos por
    procesos anteriores en la secuencia
  • 9.2.2 El algoritmo de Habermann o del banquero
  • Mantener continuamente al sistema en estado
    estable
  • Petición recursos se atiende solo si estado
    resultante es estable
  • P entra al sistema ? declarar nº máximo de
    instancias de cada recurso que puede necesitar
    (n) y n?total recursos en sistema
  • P requiere recursos ? sistema determina si
    asignar recursos deja al sistema en estado
    estable(se asignan) o no (no).
  • Usa representación matricial del sistema P, R,
    M, N, C, A y T.

35
9.2.2. El algoritmo de Habermann o del Banquero
  • Algoritmo estado-estable es
  • WApara i de 1 a n hacer
  • Fifalso
  • finparamientras ?i/Fifalso y Ni?W hacer
  • Ficierto Se elige Pi para ser el sgte. en
    la secuencia WWCi Se acumulan sus
    recursos en W
  • finmientrassi Ficierto ?i?hay secuencia
    estable con todos los P
  • estado-estable(no ?i/Fifalso)
  • fin.
  • Algoritmo de solicitud de recursos
  • Algoritmo de Habermann es
  • El estado es estable y hay una petición ?Cj
  • si ?CjgtNj ó ?CjgtA
  • entonces
  • petición no atendida
  • En el primer caso es un ERROR
  • En el segundo, es necesario ESPERAR
  • sino CjCj ?Cj

36
9.2.2. El algoritmo de Habermann o del Banquero
  • Ejemplo Pp1,,p5, Rr1,r2,r3, T(10 5 7)
  • Sistema en estado estable?
  • ?C2(1 0 2) puede ser atendida?
  • En el estado resultante de b)
  • atendemos ?C5(3 3 0) y ?C1(0 2 0)?

37
9.3. Detectar Interbloqueos
  • Examinar estado sistema para determinar si hubo
    deadlock
  • Proporcionar algoritmo para recuperarse del
    mismo.
  • Algoritmo de Shoshani y Coffman
  • Estrategia matricial (A,C,Q,P,R) que considera
    peticiones pendientes
  • Secuencia de todos los Procesos ltPk1,...,Pkngt,
    Pki?P, ki?kj si i?j, que cumpla Qk1?A y Qkj ?
    A?(kk1,kj-1)Ck, (j2,...,n).
  • Atender peticiones pendientes de P con recursos
    disponibles los retenidos por procesos
    anteriores
  • Algoritmo de Shoshani-Coffman es
  • WA
  • para i de 1 a n hacer
  • Fi(Ci0)
  • P que no retienen recursos se ponen los últimos,
    así
  • tendrán disponibles todos los recursos
  • finpara
  • mientras ?i/Fifalso y Qi?W hacer
  • Ficierto Elegir Pi para sgte. en la
    secuencia
  • WWCi Se acumulan sus recursos en W
  • finmientras
  • si Ficierto ?i?hay secuencia con todos los P

38
9.3. Detectar Interbloqueos
  • Ejemplo Sean Pp1,p2,p3,p4,p5, Rr1,r2,r3,
    T(7 2 6),
  • Interbloqueo?
  • Atender ?C3(0 0 1) ?
  • Bloqueo de todos menos p1?

Con qué frecuencia debemos detectar
interbloqueos?
39
9.4. Recuperar
  • Detección interbloqueo, Qué hacer?
  • Informar al operador y dejar que este lo
    gestione.
  • Recuperar sistema automáticamente
  • Terminar procesos
  • Requisar recursos
  • 9.4.1. Terminación de procesos
  • Abortar todos los procesos en deadlock
  • Se rompe el ciclo de deadlock
  • Coste muy alto porque se pierde toda la
    computación que los procesos hubiesen hecho hasta
    ese momento.
  • Abortar procesos en deadlock uno a uno hasta que
    desaparezca
  • Sobrecarga considerable
  • 9.4.2. Requisamiento de recursos
  • Se requisan de forma sucesiva recursos de
    procesos y dándoselos a otros hasta romper ciclo
    de interbloqueo.
  • Seleccionar una víctima Qué recursos y qué
    procesos se requisan?
  • Rollback si se le quita un recurso a un proceso,
    qué se hace con ese proceso?
  • Starvation Cómo se asegura que no se producirá
    starvation?.
Write a Comment
User Comments (0)
About PowerShow.com