Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
TIPOS DE PROCESOS
INDEPENDIENTES COOPERATIVOS:
Sincronizacin
COBEGIN
accin i; accin 2; Conjunto de instrucciones que se ejecutarn en paralelo. accin n COEND
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
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
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 .
PffiMITI VTUFfXebStN-MUTUA
ENTRAR_EXCLUSION_MUTUA SALIR_EXCLUSION_MUTUA
^^^^^^^^^B
_^-~""
^^^^^^^^
Frecuencia :=0;
SALIR EXCLUSIN MUTUA;
SALIREXCLUSIONMUTUA
end
end; end;
end
PRIMITIVAS DE EXCLUSIN MUTUA BEGIN Frecuencia:=o; COBEGIN Observador; Reportero; COEND END.
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
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.
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.
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.
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.
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
Los semforos y sus operaciones se encuentran implementadas en el ncleo (KERNEL) del sistema operativo.
_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.
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;
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;
^^^^^^^^^B
_^-~""
^^^^^^^^
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;
IMPLEMENTACIN DE LAS OPERACIONES SOBRE SEM&EGR S I N ESPERA OCIOSA IniciaSemaforo(Activo,i); COBEGIN Proceso_uno; Proceso_dos; COEND 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*)
<
HARDWARE DE SINCRONIZACIN i- TEST_AND_SET Es una instruccin de hardware especial que permite probar y modificar el contenido de un dato "atmicamente".
SECCIN CRTICA
Entrar := False;
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
SECCIN CRTICA
Entrar := False;
UNTIL Ejecucin = false; Ing. Daro Dueas
MONITORES
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.
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
Procedure ObtenerRecurso;
Begin If RecursoUso then Wait (Recursolibre) end; BEGIN (* Principal *) Recurso_uso:= False; END. Ing . Dar o Du ea
Procedure DevolverRecurso;
Begin
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
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
COMUNICACIN ENTRE PROCESOS TIPOS DE COMUNICACIN. A- Directa: - Proceso fuente y proceso destino. - Operaciones: SEND (P,Mensaje) RECEIVE (Q,Mensaje) - Simtrica: Comunicacin uno auno.
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
Repeat
Repeat
lceceive(productor,next c)
SEND(consumidor,next p)
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.
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
mecanismos para: i) Crear un nuevo buzn, ii) Enviar y recibir mensajes, iii) Destruir un buzn.
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.
COMUNICACIN ENTRE PROCESOS FORMAS (COLAS) i) Capacidad cero: - El link no puede tener ningn mensaje esperando en el.