Sistemas Concurrentes: el problema de la seccin crtica - PowerPoint PPT Presentation

1 / 13
About This Presentation
Title:

Sistemas Concurrentes: el problema de la seccin crtica

Description:

N procesos intentan acceder a un recurso ... Nunca puede haber m s de un proceso en la secci n cr tica (exclusi n mutua) ... No pueden aparecer interbloqueos. ... – PowerPoint PPT presentation

Number of Views:110
Avg rating:3.0/5.0
Slides: 14
Provided by: josmi2
Category:

less

Transcript and Presenter's Notes

Title: Sistemas Concurrentes: el problema de la seccin crtica


1
Sistemas Concurrentesel problema de la sección
crítica
  • I.T. Informática de Sistemas

2
Bibliografía
  • Programación Concurrente
  • J. Palma, C. Garrido, F. Sánchez, A. Quesada,
    2003
  • Capítulo 3
  • Principles of Concurrent and Distributed
    Programming
  • M. Ben-Ari. Prentice Hall, 1990
  • Capítulo 3
  • Sistemas Operativos
  • A. Silberschatz, P. Galvin. Addison-Wesley, 1999
  • Capítulo 6

3
Modelo del sistema
  • N procesos intentan acceder a un recurso
    compartido en un bucle infinito
  • loop
  • Sección_No_Crítica
  • Pre_Protocolo
  • Sección_Crítica
  • Post_Protocolo
  • end loop
  • Nunca puede haber más de un proceso en la sección
    crítica (exclusión mutua)
  • Los pre y post protocolos serán algoritmos para
    garantizar que se cumple la exclusión mutua

4
Requisitos de la solución, según Ben-Ari
  • Siempre se debe cumplir la exclusión mutua.
  • Un proceso puede detenerse en su sección no
    crítica, sin que afecte a los demás procesos.
  • No pueden aparecer interbloqueos.
  • No puede haber inanición si un proceso declara
    entrar en s.c., terminará entrando.
  • Progreso si no hay contención si un solo proceso
    quiere entrar en s.c., debe poder entrar sin más.

5
Requisitos de la solución, según Peterson
  • Exclusión mutua
  • Progreso si ningún proceso está en sección
    crítica y hay procesos que desean entrar en su
    s.c., sólo estos últimos participarán en la
    decisión y ésta se tomará en un tiempo finito.
  • Espera limitada hay un límite para el número de
    veces que otros procesos pueden adelantarse a un
    proceso que quiere entrar en s.c.

6
Primer intento variable turno
turno integer range 1..2 1
  • loop
  • SNC1
  • loop
  • exit when turno1
  • end loop
  • SC1
  • turno2
  • end loop
  • loop
  • SNC2
  • loop
  • exit when turno2 end loop
  • SC2
  • turno1
  • end loop

7
Discusión del primer intento
  • Garantiza exclusión mutua?
  • Está libre de interbloqueo?
  • Está libre de inanición?
  • Garantiza el progreso si no hay contención?

8
Segundo intento avisadores
libre1,libre2 boolean true
  • loop
  • SNC1
  • loop
  • exit when libre2
  • end loop
  • libre1false
  • SC1
  • libre1true
  • end loop
  • loop
  • SNC2
  • loop
  • exit when libre1
  • end loop
  • libre2false
  • SC2
  • libre2true
  • end loop

9
Demostración de la exclusión mutua
  • libre1false ? at(c1) V at(d1) V at(e1)
  • libre2false ? at(c2) V at(d2) V at(e2)
  • (at(d1) ? at(d2))

10
Tercer intento
libre1,libre2 boolean true
  • loop
  • SNC1
  • libre1false
  • loop
  • exit when libre2
  • end loop
  • SC1
  • libre1true
  • end loop
  • loop
  • SNC2
  • libre2false
  • loop
  • exit when libre1
  • end loop
  • SC2
  • libre2true
  • end loop

11
Solución de Peterson
libre1,libre2 boolean true turno
integer range 1..2 1
  • loop
  • SNC1
  • libre1false
  • turno 2
  • loop
  • exit when libre2 or
  • turno1
  • end loop
  • SC1
  • libre1true
  • end loop
  • loop
  • SNC2
  • libre2false
  • turno 1
  • loop
  • exit when libre1 or
  • turno2
  • end loop
  • SC2
  • libre2true
  • end loop

12
Soluciones hardwareinstrucciones atómicas
  • Instrucciones atómicas test-and-set o SWAP.
  • Permiten evaluar y asignar un valor a una
    variable de forma atómica.
  • test-and-set(B) Pone B a true y devuelve el
    antiguo valor de B.
  • SWAP(A,B) Intercambia los valores de A y B.
  • Si disponemos de estas instrucciones, se
    simplifica muchísimo la solución a la sección
    crítica.

13
Soluciones con instrucciones atómicas
  • loop
  • SNC1
  • loop
  • exit when
  • Test_and_Set(llave)false
  • end loop
  • SC1
  • llavefalse
  • end loop

loop SNC1 llavetrue loop
Swap(cerradura,llave) exit when
llavefalse end loop SC1
cerradurafalse end loop
Ojo, no garantizan espera limitada
Write a Comment
User Comments (0)
About PowerShow.com