La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Daniel Morillo Jorge Boscán Gregory Carrasco

Presentaciones similares


Presentación del tema: "Daniel Morillo Jorge Boscán Gregory Carrasco"— Transcripción de la presentación:

1 Daniel Morillo Jorge Boscán Gregory Carrasco
Semáforos Daniel Morillo Jorge Boscán Gregory Carrasco

2 Semáforos Conceptos Un semáforo es una estructura diseñada para sincronizar dos o más threads o procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos. Un semáforo nos sirve para poder permitir o restringir a los procesos o hilos el acceso a algún recurso compartido. Los semáforos son una solución, de tipo soporte al sistema operativo para garantizar la exclusión mutua.

3 Operaciones Básicas Inicializador •Los semáforos pueden ser de 2 tipos: Binarios o Generales (Contadores). •La operación de inicializador definirá si el semáforo será binario o no, es decir, si se inicializa con 1, el semáforo será binario ya que solo podrá manejar un recurso compartido, en caso de tener “N” recursos compartidos se inicializara con “N”. •Si tenemos “N” procesos inicializamos un semáforo para que solo “N” procesos acceda a un recurso compartido.

4 Operaciones Básicas Wait, Down o Espera Signal, Up o Señal
Up (semaforo){ if hay_proceso_bloqueado despertar_el_proceso(); else semáforo = semáforo + 1; } Down (semaforo){ if (semaforo > 0) semaforo=semaforo -1; else bloquear_el_proceso(); }

5 Semáforos Problemas Que Pueden Surgir Con Mala Sincronizacion:
DeadLock: Dos o mas procesos estan esperando por una condicion que solo puede ser causada por una hebra que tambien esta esperando. Starvation o Espera Indefinida: Un proceso en la lista de espera de un semaforo de la cual estan entrando y saliendo continuamente hebras y listas de espera de semaforo.

6 Semáforos Ejemplos Cena de los Filósofos Deadlock
Los Filosofos Piensan Los Filosofos Comen Toman 2 tenedores Los Filosofos Duermen Variables: Status [1..N] - P (pensando), H (hambriento) C(comiendo) Semaforos: Exc_Mut -- Para Proteger a Status Sem[1..N] -- Control De Filosofos Deadlock

7 Semáforos Ejemplos Cena de los Filósofos Turnos Cíclicos

8 Semáforos Ejemplos Cena de los Filósofos Varios Turnos

9 Filósofos Comensales:
Filosofos(Integer i){ Pensar(); Tomar_Tenedores(i); Comer(); Deja_Tenedores(i); Dormir(); } Dejar_Tenedores(Integer i){ Down(Exc_Mut); Status[i]=‘P’; test(Der(i)); test(Izq(i)); Up(Exc_Mut); Tomar_Tenedores(Integer i){ Status[i]=‘H’; Test=‘H’; Down(Sema[i]); Test(Integer i){ If(status[izq[i]]<>’C’ and status[Der(i)]<>’C’ and Status[i]==‘H’){ Status[i]=‘C’; Up(Sem[i]);

10 Productor y Consumidor
Program Productor_y_consumidor; var critica,vacios,llenos:Semaforo; Procedure Productor; begin while ejecucion do obtener_dato; P(Vacios); P(Critica); Introducir_dato_buffer; V(Critica); V(Llenos); end end; Procedure Consumidor; begin while ejecucion do P(Llenos); P(Critica); Tomar_dato_buffer; V(Critica); V(Vacios); Utilizar_Dato end end;

11 Productor y Consumidor
BEGIN (*principal*) IniciaSemaforo (critica, 1); IniciaSemaforo (vacios, n); IniciaSemaforo (llenos, 0); COBEGIN Productor; Consumidor; COEND; END. (*PRODUCTOR_Y_CONSUMIDOR*)

12 Barbero Dormilón procedure cliente; begin P(critica);
Program Barbero_Dormilon; var barbero,cliente,critica:semaforo Esperando:Integer Ejecucion:Boolean; Procedure Barbero; begin while ejecucion do P(clientes); P(critica); Esperando=Esperando-1; V(Barberos); V(critica); Cortar_el_pelo; end end; procedure cliente; begin P(critica); If esperando<Cantidad_Sillas; then begin Esperando:=Esperando+1; V(clientes); V(critica); P(barbero); Obtener_corte_de_pelo; end else V(critica); end;

13 Barbero Dormilón BEGIN (*principal*) IniciaSemaforo (clientes,0); IniciaSemaforo (barbero,0); IniciaSemaforo (critica,1); COBEGIN Barbero; Clientes; COEND END.

14 Problema Cenicienta y el Príncipe se quieren divorciar. Para dividir sus propiedades, han acordado el siguiente algoritmo. Cada mañana uno de ellos debe enviar una carta al abogado del otro para solicitar un elemento de su propiedad. Puesto que una carta tarda un día en ser entregada, han acordado que si ambos descubren que han solicitado el mismo artículo el mismo día, al día siguiente enviarán una carta para cancelar la solicitud. Entre sus propiedades están su perro Woofer, su perrera, su canario Piolín y la jaula del canario. Los animales aman sus casas, por lo cual han acordado invalidar cualquier división de la propiedad que separe a un animal de su casa, por lo que la división deberá volver a iniciarse desde cero. Tanto Cenicienta como el príncipe desean de forma desesperada a Woofer. Ambos se van de vacaciones (separados) y cada uno de ellos programa una computadora personal para manejar la negociación. Al regresar de sus vacaciones, las computadoras continúan negociando. ¿Por qué? ¿Es posible el bloqueo? ¿Es posible la inanición? Explique.

15 Solución Tanto Cenicienta como el Príncipe se pueden asociar con dos procesos de igual prioridad que hacen petición de un conjunto de recursos (objetos de exclusión mutua) que representan el perro, la perrera, el pájaro y su jaula. Las peticiones que se efectúan por carta, son totalmente sincronías, por lo cual no hay forma de determinar la prioridad de la petición según el orden de llegada. Como ambos procesos piden primero al perro (desean de forma desesperada a Woofer) Al efectuar ambos la petición del perro como primera petición, dicha solicitud será cancelada al día siguiente como se acordó en un principio. En caso de que se asigne el perro a cualquiera de los dos entes (procesos), existe la posibilidad de que el otro proceso se adjudique la casa del mismo. Esta transacción se anulara también, y se comenzara desde cero puesto que se acordó que no será valida ninguna partición donde algún animal quede sin su casa. Al reiniciarse el algoritmo, si no se usa un elemento aleatorio, existe el riesgo de interbloqueo, y por ende de inanición. Una posible solución es que las peticiones no sean síncronas, o que exista un manejo de las prioridades de los procesos por parte del abogado (Sistema Operativo) para la asignación de los recursos.

16 ¡GRACIAS POR SU ATENCIÓN!


Descargar ppt "Daniel Morillo Jorge Boscán Gregory Carrasco"

Presentaciones similares


Anuncios Google