Está en la página 1de 52

COORDINACIN Y SINCRONIZACIN

Ing. Daro Dueas

PROCESOS CONCURRENTES
71 CONCURRENCIA: Capacidad del sistema operativo de realizar actividades simultneas 71 PROCESOS CONCURRENTES: Si dos o ms procesos pueden ser ejecutados por el computador en paralelo, diremos que dichos procesos son concurrentes.

Ing. Daro Dueas

TIPOS DE PROCESOS
INDEPENDIENTES COOPERATIVOS:

Ing. Daro Dueas

Sincronizacin

ESTRUCTURA DE CONTROL PARA INDICAR CONCURRENCIA

COBEGIN
accin i; accin 2; Conjunto de instrucciones que se ejecutarn en paralelo. accin n COEND

Ing. Daro Dueas

ESTRUCTURA DE CONTROL PARA INDICAR CONCURRENCIA

71 Ejemplo i:Determinar el valor mximo entre A,B,C,D suponiendo que el computador tiene disponible la funcin MAX (Xi,X2)

COBEGIN
Mi:=MAX(A,B); M2:=MAX(C,D);

M:=MAX(Mi,M2);

COEND
Ing. Daro Dueas

ESTRUCTURA DE CONTROL PARA INDICAR CONCURRENCIA

71 Ejemplo 2: Evaluar la siguiente expresin numrica R:=(A+B)*(C+D)-(E-F) COBEGIN Ri:=A+B; R2:=C+D; R3:=E-F; COEND R4:=Ri*R2; R5:=R4-R3; Ing. Daro Dueas

ESTRUCTURA DE CONTROL PARA INDICAR PARALELISMO


71 Ejemplo 3: A:=5; COBEGIN WRITE (A); A:=o; COEND

Ing. Daro Dueas

CONDICIN DE CARRERA 71 Cuando se maneja sincronizacin estndar y se observan actualizaciones al mismo tiempo, en la cual una se va a hacer primero que la otra, se denomina Condicin de Carrera .

Ing. Daro Dueas

PffiMITI VTUFfXebStN-MUTUA

71 Se implementan a travs de dos instrucciones:

ENTRAR_EXCLUSION_MUTUA SALIR_EXCLUSION_MUTUA

Ing. Daro Dueas

program Exclusin Mutua;

^^^^^^^^^B

_^-~""

^^^^^^^^

Ejecucion:boolean; begin while Ejecucin do begin


ObservarE vento; ENTRAREXCLUSIONMUTUA; Frecuencia:=Frecuencia+l; write(Frecuencia); Procedure Observador; Procedure Reportero; 1 begm

while Ejecucin do begin


ENTRAR EXCLUSIN MUTUA;

Frecuencia :=0;
SALIR EXCLUSIN MUTUA;

SALIREXCLUSIONMUTUA

end
end; end;

end

Ing. Daro Dueas

PRIMITIVAS DE EXCLUSIN MUTUA BEGIN Frecuencia:=o; COBEGIN Observador; Reportero; COEND END.

Ing. Daro Dueas

SECCIN CRTICA
La exclusin mutua permite el manejo adecuado de los procesos concurrentes asincronos. Cuando un proceso obtiene acceso a datos y recursos compartidos, se dice que el conjunto de instrucciones que los manipulan conforman una SECCIN CRTICA

Ing. Daro Dueas

Tsrros QU EIFDEBENTIVI
SECCIONES CRTICAS

DEBEN MANEJO DE

RAE L
71 Excl usi n Mut ua:
Si un proces o se est ejecut ando

en su seccin crtica, entonces ningn otro proceso se puede estar ejecutando en su seccin critica en ese mismo tiempo.

Ing. Daro Dueas

REQUISIXQS-QUESR^EB^ CUMPLIRJAKA ET^^EJO DE SECCIONES CRITICAS

7iProgreso: Si ningn proceso se est ejecutando en su seccin crtica y existen procesos que desean entrar a sus secciones crticas, entonces slo aquellos procesos que no se encuentran ejecutando otras actividades, pueden participar en la decisin de cul ser el siguiente en entrar en la seccin crtica y esta seleccin no puede postergarse indefinidamente.

Ing. Daro Dueas

A EL MANEJO DE SECCIONES CRITICAS

71 Espera Limitada: Debe existir un lmite sobre el nmero de veces que se permite que los dems procesos entren en su seccin crtica, despus de que un proceso haya efectuado una solicitud de entrar a su seccin crtica y antes que la solicitud sea concedida. No se puede posponer a un proceso en espera indefinida para entrar a su seccin crtica.

Ing. Daro Dueas

ESPERA ACTIVA
71 Mientras un proceso se encuentre esperando a que otro proceso termine de culminar las actividades de su seccin critica, se dice que el proceso que espera se encuentra en ESPERA ACTIVA.

Ing. Daro Dueas

PROCESOS
SEMFORO: Es una variable numrica entera de tipo protegida (slo la maneja el sistema operativo) que se manipula a travs de operaciones atmicas bien definidas: * WAIT = DOWN = P(S): while S < = o do;

S:=S-i;
SIGNAL = UP = V(S): S:=S+i; Ing. Daro Dueas

PROCESOS

Adicionalmente definiremos un procedimiento: INICIA_SEMAFORO (S,VALOR);

donde se asigna el contenido de valor al semforo S. (S := VALOR;)

Los semforos y sus operaciones se encuentran implementadas en el ncleo (KERNEL) del sistema operativo.

Ing. Daro Dueas

_SfNKMZSCm
PROCESOS 7. TIPOS:
Binarios: Toman solamente los valores 0 1. Contadores: Su contenido puede ser mayor de 1. 71 Usos: Para el manejo de las secciones crticas. Para el acceso y uso de recursos.

Ing. Daro Dueas

IMPLEMENTACIN DE LAS OPERACIONES SOBRE SEMBeEGHWVESMRA BDOS Valor: Integer; Lista: Lista_de_procesos. END;

P(S):S.Valor:=S.Valor-i; If S.Valor < o then begin Agregar proceso de Semforo.lista; Bloquear (Proceso) end;

Ing. Daro Dueas

IMPLEMENTACIN DE LAS OPERACIONES SOBRE SEMFORO SIN ESPERA OCIOSA V(S): S.Valor := S.Valor+1; If S.Valor <= o then begin Remover proceso de Semforo.Lista; Activar (Proceso) end;

Ing. Daro Dueas

^^^^^^^^^B

_^-~""

^^^^^^^^

USO DE SEMFOROS PARA E


var Activo :semaforo;

iL MANEJO DE SECCIONES

Ejecuciomboolean; Procedure proceso_uno; begin while Ejecucin do begin Actividades_preliminares_uno; P(Activo); Seccion_critica_uno; V( Activo); otras_actividades_uno; end Procedure proceso_dos; begin while Ejecucin do begin Actividades_preliminares_dos; P(Activo); Seccion_cntica_dos; V( Activo); otras_actividades_dos; end

end;

end;

Ing. Daro Dueas

IMPLEMENTACIN DE LAS OPERACIONES SOBRE SEM&EGR S I N ESPERA OCIOSA IniciaSemaforo(Activo,i); COBEGIN Proceso_uno; Proceso_dos; COEND END.

Ing. Daro Dueas

var critica, vacios,llenos:Semaforo;

PROBLEMA DEL PRODUCTOR Y CONSUMIDOR


rogram Productor v consumidor: Procedure Consumidor; begin while ejecucin do begin P(Llenos); P(Critica); Tomar_dato_buffer; V( Critica); V(Vacios); Utilizar_Dato end end;

Procedure Productor; begin while ejecucin do begin obtener_dato; P(Vacios); P( Critica); Introducir_dato_buffer; V( Critica); V( Llenos); end end; Ing. Daro Dueas

PROBLEMA DEL PRODUCTOR Y CONSUMIDOR BEGIN (*principal*) IniciaSemaforo (critica, i); IniciaSemaforo (varios, n); IniciaSemaforo (llenos, o); COBEGIN Productor; Consumidor; COEND; END. (*PRODUCTOR_Y_CONSUMIDOR*)

Ing. Daro Dueas

ProPfOBlMA D E L BARBERO DORMILN varbarbero,cliente,critica:semaforo Esperando :Integer


EjecuciomBoolean; Procedure Barbero; begin while ejecucin do begin P(clientes); P (critica); Esperando=Esperando-i; V( Barberos); V( critica); Cortar_el_pelo; end end; Ing. Daro Dueas procedure cliente; begin P(critica); If esperando<Cantidad_Sillas; then begin Esperando :=Esperando+i; V(clientes); V(critica); P(barbero); Obtener_corte_de_pelo; end else V(critica); end;

<

PROBLEMA DEL BARBERO DORMILN BEGIN (*principal*) IniciaSemaforo (clientes.o); IniciaSemaforo


(barbero,o); IniciaSemaforo (critica,i); COBEGIN Barbero; Clientes; COEND END.

Ing. Daro Dueas

HARDWARE DE SINCRONIZACIN i- TEST_AND_SET Es una instruccin de hardware especial que permite probar y modificar el contenido de un dato "atmicamente".

function Test_And_Set (var valor:boolean):boolean; begin Test_and_set:=valor; Valor :=True; end

Ing. Daro Dueas

Uso del Test_and_Set


Entrar:= False; Repeat

While Test_and_Set ( Entrar ) do ;

SECCIN CRTICA

Entrar := False;

Until Ejecucin = False

Ing. Daro Dueas

HARDWARE DE SINCRONIZACIN

2- La instruccin SWAP Es una instruccin de hardware especial que permite intercambiar el contenido de dos datos (o variables) "atmicamente". Procedure SWAP (A,B) ; var tempiboolean; begin temp:=a; a:=b; b:=temp end Ing. Daro Dueas

Uso del SWAP Entrar:= False:


REPEAT
Clave:= True; Repeat SWAP (Entrar, Clave); until Clave = false

SECCIN CRTICA

Entrar := False;
UNTIL Ejecucin = false; Ing. Daro Dueas

MONITORES

71 Es una herramienta de sincronizacin.


71 Posee una estructura propia. Es una coleccin de procedimientos, variables y estructuras de datos que se agrupan en un mdulo especial. 71 Los procesos pueden llamar a los procedimientos de un monitor siempre que lo requieran, pero no pueden accesar directamente las estructuras de datos internas del monitor.

Ing. Daro Dueas

MONITORES: CARACTERSTICAS
i- Slo un proceso puede estar activo en el monitor en un mismo instante. 2- Los monitores son una construccin de lenguaje de programacin. 3- Cuando un proceso X llama a un procedimiento del monitor, las primeras instrucciones del procedimiento chequearn si otro proceso Y est actualmente activo dentro del monitor. Si es as, el proceso llamador X ser suspendido hasta que el otro proceso Y abandone el monitor. 4- Las variables locales de un monitor slo pueden ser accesadas por los procedimientos definidos internamente en el monitor. 5- Libera al programador de la necesidad de exclusin mutua.

Ing. Daro Dueas

COMOJVI^ ^tf^RON^ RECURSOS COMPARTIDOS.

LA

i- Uso de variables de condicin. 2- Estas variables de condicin se accesan con dos operaciones: WAIT (espera) SIGNAL (sealar)

3- La operacin WAIT(x) significa que el proceso que la invoca, es suspendido hasta que otro proceso invoque la operacin Signal (x). Esto significa que la operacin SIGNAL(X) "despier-ta" a un proceso suspendido sobre la variable de condicin X. Ing. Daro Dueas

M Var

MM1 IAB&igm po.


Recurso_uso:Boolean; Recurso_libre: Condition; s

Procedure ObtenerRecurso;
Begin If RecursoUso then Wait (Recursolibre) end; BEGIN (* Principal *) Recurso_uso:= False; END. Ing . Dar o Du ea

Procedure DevolverRecurso;

Recurso_uso:= False; Signal (Recurso-Libre) end;

Begin

COMUNICACIN ENTRE PROCESOS

Esquemas de comunicacin: i) Memoria compartida: Los procesos se comunican a travs de variables compartidas. El sistema operativo provee la memoria compartida. El programador tiene la

responsabilidad de proveer comunicacin. Ing. Daro Dueas

COMUNICACIN ENTRE PROCESOS


Los mensajes pueden ser de tamao Sistema de mensajes: El sistema operativo tiene la responsabilidad de proveer comunicacin.______________________________________________ -11 Operaciones: * SEND (enviar) * RECEIVE (recibir)

Ing. Daro Dueas

COMUNICACIN ENTRE PROCESOS

ENLACE DE COMUNICACIN (LINK) Debe existir entre dos procesos que deseen comunicarse. Pueden ser: Fsicos: - Memoria Compartida. Bus de Hardware. Red de Interconexin. Lgico: Deben definirse e

implementarse. Ing. Daro Dueas

COMUNICACIN ENTRE PROCESOS TIPOS DE COMUNICACIN. A- Directa: - Proceso fuente y proceso destino. - Operaciones: SEND (P,Mensaje) RECEIVE (Q,Mensaje) - Simtrica: Comunicacin uno auno.

Ing. Daro Dueas

COMUNICACIN ENTRE PROCESOS

PROPIEDADES DEL LINK EN LA COMUNICACIN DIRECTA i) Se establece automticamente entre cada par de procesos comunicantes. ii) Entre cada par de procesos que se comunican existe slo un "LINK". iii) Un Link est asociado exactamente con dos procesos. iv) El link es bidireccional. Ing. Daro Dueas

COMUNICACIN ENTRE PROCESOS


Ejemplo: Caso Productor - Consumidor. Procedure Productor; Pr Dcedure Consumidor; Beein Begin

Repeat

Repeat

Producir un_item en next p

lceceive(productor,next c)

SEND(consumidor,next p)

consumir item desde next c


Until False Erd; Ing. Daro Dueas

Until False End;

COMUNICACIN ENTRE PROCESOS B. INDIRECTA: - Los mensajes son enviados y recibidos a travs de buzones Cada buzn tiene su propia identificacin. Operaciones: SEND(A,mensaje) RECEIVE(A,mensaje) donde A es el buzn. - Asimtrica: Es de uno a varios.

Ing. Daro Dueas

COMUNICACIN ENTRE PROCESOS

PROPIEDADES DEL LINK EN LA COMUNICACIN INDIRECTA. i) Se establece entre dos procesos si tiene un buzn compartido. ii) Un Link puede estar asociado con ms de dos procesos. iii) Entre cada par de procesos que se comunican puede existir ms de un Link. iv) Puede ser unidireccional o bidireccional. Ing. Daro Dueas

COMUNICACIN ENTRE PROCESOS


PROPIETARIOS DE UN BUZN (MAILBOX). Un proceso P = Propietario -> P slo lee de A. Q = Usuario -> Q slo escribe en A El sistema Operativo: Ofrece

mecanismos para: i) Crear un nuevo buzn, ii) Enviar y recibir mensajes, iii) Destruir un buzn.

Ing. Daro Dueas

COMUNICACIN ENTRE PROCESOS PIPES: -Generalmente se usa entre un proceso enviador y un proceso consumidor. - Los mensajes son de tamao fijo.

BUFFERING:
Se refiere a la cantidad de mensajes que pueden residir temporalmente en "un link". Esta propiedad puede verse como una "cola de mensajes" que est relacionada (unida) al link.

Ing. Daro Dueas

COMUNICACIN ENTRE PROCESOS FORMAS (COLAS) i) Capacidad cero: - El link no puede tener ningn mensaje esperando en el.

ii) Capacidad Limitada: A lo sumo V mensajes pueden

residir en la cola del link.


iii) Capacidad Ilimitada: La cola tiene potencialmente longitud infinita.

Ing. Daro Dueas

También podría gustarte