Escolar Documentos
Profissional Documentos
Cultura Documentos
PROCESOS CONCURRENTES
CONCURRENCIA: Capacidad del sistema operativo de realizar actividades simultneas PROCESOS CONCURRENTES: Si dos o ms procesos pueden ser ejecutados por el computador en paralelo, diremos que dichos procesos son concurrentes.
TIPOS DE PROCESOS
INDEPENDIENTES COOPERATIVOS: Sincronizacin
CONDICIN DE CARRERA
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".
ENTRAR_EXCLUSION_MUTUA SALIR_EXCLUSION_MUTUA
program Exclusion_Mutua; var Frecuencia:Integer; Ejecucion:boolean; Procedure Observador; begin while Ejecucion do begin Observar_Evento;
ENTRAR_EXCLUSION_MUTUA;
Frecuencia:=Frecuencia+1;
SALIR_EXCLUSION_MUTUA
write(Frecuencia); Frecuencia:=0;
SALIR_EXCLUSION_MUTUA;
end end;
end end;
SECCIN CRTICA
La exclusin mutua permite el manejo adecuado de los procesos concurrentes asncronos. Cuando un proceso obtiene acceso a datos y recursos compartidos, se dice que el conjunto de instrucciones que los manipulan conforman una SECCIN CRTICA
ESPERA ACTIVA
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.
SINCRONIZACIN DE 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 < = 0 do; S:=S-1; * SIGNAL = UP = V(S): S:=S+1;
SINCRONIZACIN DE 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.
SINCRONIZACIN DE PROCESOS
TIPOS: - Binarios: Toman solamente los valores 0 1. - Contadores: Su contenido puede ser mayor de 1.
Usos:
Para el manejo de las secciones crticas. Para el acceso y uso de recursos.
T YPE SEMAFORO = RECORD Valor: Integer; Lista: Lista_de_procesos. END; P(S): S.Valor:=S.Valor-1; If S.Valor < 0 then begin Agregar proceso de Semforo.lista; Bloquear (Proceso) end;
IMPLEMENTACIN DE LAS OPERACIONES SOBRE SEMFORO SIN ESPERA OCIOSA V(S): S.Valor := S.Valor +1; If S.Valor <= 0 then begin Remover proceso de Semforo.Lista; Activar (Proceso) end;
Procedure proces o_ dos ; beg in while Ejecucion do beg in Actividades _ preliminares _ dos ; P(Activo); Seccion_ critica_ dos ; V(Activo); otras _ actividades _ dos ; end end;
IMPLEMENTACIN DE LAS OPERACIONES SOBRE SEMFORO SIN ESPERA OCIOSA BEGIN IniciaSemaforo(Activo,1); COBEGIN Proceso_uno; Proceso_dos; COEND END.
Procedure Cons umidor; beg in while ejecucion do beg in P(Llenos ); P(Critica); Tomar_ dato_ buf fer; V(Critica); V(Vacios ); Utilizar_ Dato end end;
pro c edure c l i ente; beg i n P ( c ri t i c a) ; If espera ndo < C a nt i d ad _ S i l l a s ; t hen beg i n E speran do : = E s p er a n do + 1 ; V( c l i ente s ) ; V( c ri t i c a) ; P ( barbero ) ; Obtener_ c o r t e _ d e _ p el o ; end el se V( c ri t i c a) ; end;
BEGIN (*principal*) IniciaSemaforo (clientes,0); IniciaSemaforo (barbero,0); IniciaSemaforo (critica,1); COBEGIN Barbero; Clientes; COEND END.
HARDWARE DE SINCRONIZACIN
1- 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
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 temp:boolean; begin temp:=a; a:=b; b:=temp end
MONITORES
Es una herramienta de sincronizacin. Posee una estructura propia. Es una coleccin de procedimientos, variables y estructuras de datos que se agrupan en un mdulo especial. Los procesos pueden llamar a los procediprocedi mientos de un monitor siempre que lo rere quieran, pero no pueden accesar directamente las estructuras de datos internas del monitor.
MONITORES: CARACTERSTICAS
1 - 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.
CMO MANEJAN LOS MONITORES, LA SINCRONIZACION DE PROCESOS MANEJO DE LOS RECURSOS COMPARTIDOS.
1 - 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"despier - ta" a un proceso suspendido sobre la variable de condicin X. X
MONITORES: EJEMPLO.
Monitor ASIGNADOR_RECURSO; Var Recurso_uso:Boolean; Recurso_libre: Condition; Procedure Obtener_Recurso; Begin If Recurso_Uso then Wait (Recurso_libre) end; BEGIN (* Principal *) Recurso_uso:= False; END. end; Procedure Devolver_Recurso; Begin Recurso_uso:= False; Signal (Recurso-Libre)
buzn A