Robiro A. Asuaje L.17/07/20151 Universidad Centro Occidental “Lisandro Alvarado“ Decanato de Ciencias COORDINACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS.

Slides:



Advertisements
Presentaciones similares
GESTION DE PROCESOS.
Advertisements

Concurrencia Exclusión mutua y sincronización
Tabla de Contenido Concurrencia.
1.3. PROGRAMACION PARALELA
Tipos de Organización ... La organización de máquinas multiprocesadores más típicas son: Mesh Networks. Binary Tree Networks. Hypertree Networks. Pyramid.
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Organización de la Memoria.
Daniel Morillo Jorge Boscán Gregory Carrasco
Modelo de procesos de dos estados
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Programación Concurrente DAI - UNSAAC.
Estructuras de control
SISTEMAS OPERATIVOS UNIDAD 1..
HERRAMIENTAS INFORMATICAS
Sincronización de procesos
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Semana 5 Subprogramas..
Concurrencia: Exclusión Mútua y Sincronización
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Cobol C Pascal Fortran 5. UNIDADES DE PROGRAMAS SmallTalk Java C++
PROGRAMACION CONCURRENTE
1 Concurrencia Procesos y Programas. 2 Establecer Comunicación entre procesos (memoria común)
Sistemas Concurrentes: el problema de la exclusión mutua I.T. Informática de Sistemas Curso
Sincronización de Procesos Semáforos Emely Arráiz Ene-Mar 08.
Unidad III Administración de procesos
Capítulo 1 “Elementos de Programación”
Sistemas Concurrentes: Paso de mensajes
Sistemas Concurrentes: programación concurrente
Comunicación entre Procesos por pase de mensajes Universidad Simón Bolívar Departamento de Computación y T.I Sistemas de operación III CI-4822 Prof. Yudith.
Sincronización de procesos Mariano Gómez Plaza.  Mariano Gómez Plaza Sincronización de procesos 2 Tipos de procesos IndependientesCooperantes.
IET110 Sistemas Operativos P04: Exclusión Mutua Prof. Jonathan MakucSlide: 1.
Sistemas en tiempo real (STR)
INSTITUTO TECNOLOGICO SUPERIOR DE TAMAZUNCHALE INTEGRANTES: MAXIMO HERNANDEZ BAUTISTA CLAUDIA JIMENEZ PROCOPIO ANA LUZ RODRIGUEZ JONGUITUD LEONEL AQUINO.
Microsoft© Visual Basic . Net.
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA.
Informática Ingeniería en Electrónica y Automática Industrial
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Sincronización de Procesos Conceptos Problema SC Soluciones Software Soluciones Hardware Emely Arráiz Ene-Mar 08.
Teoría – Alejandro Gonzalez
Módulo 8: Manejo de Errores y Excepciones
Programación secuencial vs programación concurrente
Monitores Mecanismo sincronización de nivel más alto que semáforos Construcción a nivel de lenguaje de programación que controla el acceso a datos compartidos.
Sincronización de Procesos
Sincronización de Procesos
Tema 9.6: Sincronización de Procesos
Monitores Cabudare, noviembre de 2010 Universidad Fermín Toro
Programación secuencial vs programación concurrente
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
Administrador de procesos
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Tema 5: Multiprocesadores
Informática III 2009 Ing. Estela D'Agostino 1 Programación secuencial vs programación concurrente Pascal, C, Fortran, Cobol Secuenciales único hilo de.
1 Ana Mercedes Cáceres Instructor: Raúl Aguilar Año 2006 [Parte I ]
Teoría de Sistemas Operativos Sincronización Procesos
Unidad 2 – Gestión de Procesos
1 5. UNIDADES DE PROGRAMAS. 2 Uso de mecanismos de control de secuencia de: Invocaciones Retornos Entre: PPSP 1 a) I R SP 1 SP 2 b) I R Unidades subordinadas.
Protocolos de Sondeo SNOOPY
UTFSM - Sistemas Operativos
Estructura: COLA Profesor: Ing. Erick López Ch. M.R.I.
Estructuras de Decisión
Funciones principales!
Gestión de Procesos Hilos.
Ciclos en Visual Basic Yaimira Pérez. Los ciclos son estructuras de repetición que ejecutan una o varias instrucciones durante la cantidad de veces que.
Procesos Un proceso es un programa en ejecución. Modelo de procesos secuenciales. Abstracción del SO.
UNIVERSIDAD CENTROCCIDENTAL “LISANDRO ALVARADO” DECANATO DE CIENCIAS Y TECNOLOGÍA DEPARTAMENTO DE SISTEMAS Unidad III: “PROGRAMACIÓN CONCURRENTE Y CONTROL.
Transcripción de la presentación:

Robiro A. Asuaje L.17/07/20151 Universidad Centro Occidental “Lisandro Alvarado“ Decanato de Ciencias COORDINACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS

Robiro A. Asuaje L.17/07/20152 PROCESOS CONCURRENTES ä CONCURRENCIA: Capacidad del sistema operativo de realizar actividades simultáneas ä PROCESOS CONCURRENTES: Si dos o más procesos pueden ser ejecutados por el computador en paralelo, diremos que dichos procesos son concurrentes.

Robiro A. Asuaje L.17/07/20153 TIPOS DE PROCESOS u INDEPENDIENTES u COOPERATIVOS: Sincronización

Robiro A. Asuaje L.17/07/20154 ESTRUCTURA DE CONTROL PARA INDICAR CONCURRENCIA COBEGIN acción 1; acción 2; Conjunto de instrucciones. que. se ejecutarán en paralelo. acción n COEND

Robiro A. Asuaje L.17/07/20155 ESTRUCTURA DE CONTROL PARA INDICAR CONCURRENCIA ä Ejemplo 1:Determinar el valor máximo entre A,B,C,D suponiendo que el computador tiene disponible la función MAX (X1,X2) COBEGIN M1:=MAX(A,B); M2:=MAX(C,D); COEND M:=MAX(M1,M2);

Robiro A. Asuaje L.17/07/20156 ESTRUCTURA DE CONTROL PARA INDICAR CONCURRENCIA ä Ejemplo 2: Evaluar la siguiente expresión númerica R:=(A+B)*(C+D)-(E-F) COBEGIN R1:=A+B; R2:=C+D; R3:=E-F; COEND R4:=R1*R2; R5:=R4-R3;

Robiro A. Asuaje L.17/07/20157 ESTRUCTURA DE CONTROL PARA INDICAR PARALELISMO ä Ejemplo 3: A:=5; COBEGIN WRITE (A); A:=0; COEND

Robiro A. Asuaje L.17/07/20158 CONDICIÓN DE CARRERA ä Cuando se maneja sincronización estándar y se observan actualizaciones al mismo tiempo, en la cual una se va a hacer primero que la otra, se denomina “Condición de Carrera".

Robiro A. Asuaje L.17/07/20159 PRIMITIVAS DE EXCLUSIÓN MUTUA ä Se implementan a través de dos instrucciones: –ENTRAR_EXCLUSION_MUTUA –SALIR_EXCLUSION_MUTUA

Robiro A. Asuaje L.17/07/ 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 end end; Procedure Reportero; begin while Ejecucion do begin ENTRAR_EXCLUSION_MUTUA; write(Frecuencia); Frecuencia:=0; SALIR_EXCLUSION_MUTUA; end end;

Robiro A. Asuaje L.17/07/ PRIMITIVAS DE EXCLUSIÓN MUTUA BEGIN Frecuencia:=0; COBEGIN Observador; Reportero; COEND END.

Robiro A. Asuaje L.17/07/ SECCIÓN CRÍTICA u La exclusión mutua permite el manejo adecuado de los procesos concurrentes asíncronos. u Cuando un proceso obtiene acceso a datos y recursos compartidos, se dice que el conjunto de instrucciones que los manipulan conforman una SECCIÓN CRÍTICA

Robiro A. Asuaje L.17/07/ REQUISITOS QUE SE DEBEN CUMPLIR PARA EL MANEJO DE SECCIONES CRÍTICAS ä Exclusión Mutua: Si un proceso se está ejecutando en su sección crítica, entonces ningún otro proceso se puede estar ejecutando en su sección critica en ese mismo tiempo.

Robiro A. Asuaje L.17/07/ ä Progreso: Si ningún proceso se está ejecutando en su sección crítica y existen procesos que desean entrar a sus secciones críticas, entonces sólo aquellos procesos que no se encuentran ejecutando otras actividades, pueden participar en la decisión de cuál será el siguiente en entrar en la sección crítica y esta selección no puede postergarse indefinidamente. REQUISITOS QUE SE DEBEN CUMPLIR PARA EL MANEJO DE SECCIONES CRÍTICAS

Robiro A. Asuaje L.17/07/ REQUISITOS QUE SE DEBEN CUMPLIR PARA EL MANEJO DE SECCIONES CRÍTICAS ä Espera Limitada: Debe existir un límite sobre el número de veces que se permite que los demás procesos entren en su sección crítica, después de que un proceso haya efectuado una solicitud de entrar a su sección crítica y antes que la solicitud sea concedida. No se puede posponer a un proceso en espera indefinida para entrar a su sección crítica.

Robiro A. Asuaje L.17/07/ ESPERA ACTIVA ä Mientras un proceso se encuentre esperando a que otro proceso termine de culminar las actividades de su sección critica, se dice que el proceso que espera se encuentra en ESPERA ACTIVA.

Robiro A. Asuaje L.17/07/ SINCRONIZACIÓN DE PROCESOS SEMÁFORO: Es una variable numérica entera de tipo protegida (sólo la maneja el sistema operativo) que se manipula a través de operaciones atómicas bien definidas: * WAIT = DOWN = P(S): while S < = 0 do; S:=S-1; * SIGNAL = UP = V(S): S:=S+1;

Robiro A. Asuaje L.17/07/ SINCRONIZACIÓN DE PROCESOS Adicionalmente definiremos un procedimiento: INICIA_SEMAFORO (S,VALOR); donde se asigna el contenido de valor al semáforo S. (S := VALOR;) Los semáforos y sus operaciones se encuentran implementadas en el núcleo (KERNEL) del sistema operativo.

Robiro A. Asuaje L.17/07/ SINCRONIZACIÓN DE PROCESOS ä Usos: –Para el manejo de las secciones críticas. –Para el acceso y uso de recursos. ä TIPOS: - Binarios: Toman solamente los valores 0 ó 1. - Contadores: Su contenido puede ser mayor de 1.

Robiro A. Asuaje L.17/07/ IMPLEMENTACIÓN DE LAS OPERACIONES SOBRE SEMÁFORO SIN ESPERA OCIOSA TYPE 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 Semáforo.lista; Bloquear (Proceso) end;

Robiro A. Asuaje L.17/07/ IMPLEMENTACIÓN DE LAS OPERACIONES SOBRE SEMÁFORO SIN ESPERA OCIOSA V(S): S.Valor := S.Valor +1; If S.Valor <= 0 then begin Remover proceso de Semáforo.Lista; Activar (Proceso) end;

Robiro A. Asuaje L.17/07/ USO DE SEMÁFOROS PARA EL MANEJO DE SECCIONES CRÍTICAS Program semaforo; var Activo:semaforo; Ejecucion:boolean; Procedure proceso_uno; begin while Ejecucion do begin Actividades_preliminares_uno; P(Activo); Seccion_critica_uno; V(Activo); otras_actividades_uno; end end; Procedure proceso_dos; begin while Ejecucion do begin Actividades_preliminares_dos; P(Activo); Seccion_critica_dos; V(Activo); otras_actividades_dos; end end;

Robiro A. Asuaje L.17/07/ IMPLEMENTACIÓN DE LAS OPERACIONES SOBRE SEMÁFORO SIN ESPERA OCIOSA BEGIN IniciaSemaforo(Activo,1); COBEGIN Proceso_uno; Proceso_dos; COEND END.

Robiro A. Asuaje L.17/07/ PROBLEMA DEL PRODUCTOR Y CONSUMIDOR Program Productor_y_consumidor; var critica,vacios,llenos:Semaforo; Procedure Productor; begin while ejecucion do begin obtener_dato; P(Vacios); P(Critica); Introducir_dato_buffer; V(Critica); V(Llenos); end end; Procedure Consumidor; begin while ejecucion do begin P(Llenos); P(Critica); Tomar_dato_buffer; V(Critica); V(Vacios); Utilizar_Dato end end;

Robiro A. Asuaje L.17/07/ PROBLEMA DEL PRODUCTOR Y CONSUMIDOR BEGIN (*principal*) IniciaSemaforo (critica, 1); IniciaSemaforo (vacios, n); IniciaSemaforo (llenos, 0); COBEGIN Productor; Consumidor; COEND; END. (*PRODUCTOR_Y_CONSUMIDOR*)

Robiro A. Asuaje L.17/07/ PROBLEMA DEL BARBERO DORMILON Program Barbero_Dormilon; var barbero,cliente,critica:semaforo Esperando:Integer Ejecucion:Boolean; Procedure Barbero; begin while ejecucion do begin 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;

Robiro A. Asuaje L.17/07/ PROBLEMA DEL BARBERO DORMILON BEGIN (*principal*) IniciaSemaforo (clientes,0); IniciaSemaforo (barbero,0); IniciaSemaforo (critica,1); COBEGIN Barbero; Clientes; COEND END.

Robiro A. Asuaje L.17/07/ HARDWARE DE SINCRONIZACIÓN 1- TEST_AND_SET Es una instrucción de hardware especial que permite probar y modificar el contenido de un dato “atómicamente". function Test_And_Set (var valor:boolean):boolean; begin Test_and_set:=valor; Valor:=True; end

Robiro A. Asuaje L.17/07/ Uso del Test_and_Set Entrar:= False; Repeat While Test_and_Set ( Entrar ) do ; SECCIÓN CRÍTICA Entrar := False; Until Ejecución = False

Robiro A. Asuaje L.17/07/ HARDWARE DE SINCRONIZACIÓN 2- La instrucción SWAP Es una instrucción de hardware especial que permite intercambiar el contenido de dos datos (o variables) “atómicamente". Procedure SWAP (A,B) ; var temp:boolean; begin temp:=a; a:=b; b:=temp end

Robiro A. Asuaje L.17/07/ Uso del SWAP Entrar:= False; REPEAT Clave:= True; Repeat SWAP (Entrar, Clave); until Clave = false SECCIÓN CRÍTICA Entrar := False; UNTIL Ejecución = false;

Robiro A. Asuaje L.17/07/ MONITORES ä Es una herramienta de sincronización. ä Posee una estructura propia. Es una colección de procedimientos, variables y estructuras de datos que se agrupan en un módulo especial. ä Los procesos pueden llamar a los procedi- mientos de un monitor siempre que lo re- quieran, pero no pueden accesar directamente las estructuras de datos internas del monitor.

Robiro A. Asuaje L.17/07/ MONITORES: CARACTERÍSTICAS 1- Sólo un proceso puede estar activo en el monitor en un mismo instante. 2- Los monitores son una construcción de lenguaje de programación. 3- Cuando un proceso X llama a un procedimiento del monitor, las primeras instrucciones del procedimiento chequearán 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 sólo pueden ser accesadas por los procedimientos definidos internamente en el monitor. 5- Libera al programador de la necesidad de exclusión mutua.

Robiro A. Asuaje L.17/07/ CÓMO MANEJAN LOS MONITORES, LA SINCRONIZACION DE PROCESOS MANEJO DE LOS RECURSOS COMPARTIDOS. u 1- Uso de variables de condición. u 2- Estas variables de condición se accesan con dos operaciones: * WAIT (espera) * SIGNAL (señalar) u 3- La operación WAIT(x) significa que el proceso que la invoca, es suspendido hasta que otro proceso invoque la operación Signal (x). Esto significa que la operación SIGNAL(X) "despier- ta" a un proceso suspendido sobre la variable de condición X.

Robiro A. Asuaje L.17/07/ MONITORES: Ejemplo. Monitor ASIGNADOR_RECURSO; Var Recurso_uso:Boolean; Recurso_libre: Condition; Procedure Obtener_Recurso; Procedure Devolver_Recurso; Begin If Recurso_Uso Recurso_uso:= False; then Wait (Recurso_libre) Signal (Recurso-Libre) end; BEGIN (* Principal *) Recurso_uso:= False; END.

Robiro A. Asuaje L.17/07/ COMUNICACION ENTRE PROCESOS Esquemas de comunicación: i) Memoria compartida: - Los procesos se comunican a través de variables compartidas. - El sistema operativo provee la memoria compartida. - El programador tiene la responsabilidad de proveer comunicación.

Robiro A. Asuaje L.17/07/ COMUNICACIÓN ENTRE PROCESOS ii) Sistema de mensajes: - El sistema operativo tiene la responsa- bilidad de proveer comunicación. - Operaciones: * SEND (enviar) Los mensajes pueden ser de tamaño * RECEIVE (recibir) fijo o variable

Robiro A. Asuaje L.17/07/ COMUNICACION ENTRE PROCESOS ENLACE DE COMUNICACION (LINK) - Debe existir entre dos procesos que deseen comunicarse. - Pueden ser: Físicos: - Memoria Compartida. - Bus de Hardware. - Red de Interconexión. Lógico: Deben definirse e implementarse.

Robiro A. Asuaje L.17/07/ COMUNICACION ENTRE PROCESOS TIPOS DE COMUNICACION. A- Directa: - Proceso fuente y proceso destino. - Operaciones: SEND (P,Mensaje) RECEIVE (Q,Mensaje) - Simétrica: Comunicación uno a uno.

Robiro A. Asuaje L.17/07/ COMUNICACION ENTRE PROCESOS PROPIEDADES DEL LINK EN LA COMUNICACION DIRECTA i) Se establece automáticamente entre cada par de procesos comunicantes. ii) Entre cada par de procesos que se comunican existe sólo un "LINK". iii) Un Link está asociado exactamente con dos procesos. iv) El link es bidireccional.

Robiro A. Asuaje L.17/07/ COMUNICACION ENTRE PROCESOS Ejemplo: Caso Productor - Consumidor. Procedure Productor; Procedure Consumidor; Begin Begin Repeat Repeat.. Producir un_item en next p Receive(productor,next c).. SEND(consumidor,next p) consumir item desde next c.. Until False Until False End; End;

Robiro A. Asuaje L.17/07/ COMUNICACION ENTRE PROCESOS B. INDIRECTA: - Los mensajes son enviados y recibidos a través de buzones - Cada buzón tiene su propia identificación. - Operaciones: SEND(A,mensaje) RECEIVE(A,mensaje) donde A es el buzón. - Asimétrica: Es de uno a varios.

Robiro A. Asuaje L.17/07/ COMUNICACION ENTRE PROCESOS PROPIEDADES DEL LINK EN LA COMUNICACION INDIRECTA. i) Se establece entre dos procesos si tiene un buzón compartido. ii) Un Link puede estar asociado con más de dos procesos. iii) Entre cada par de procesos que se comunican puede existir más de un Link. iv) Puede ser unidireccional o bidireccional.

Robiro A. Asuaje L.17/07/ COMUNICACION ENTRE PROCESOS PROPIETARIOS DE UN BUZON (MAILBOX). - Un proceso P = Propietario -> P sólo lee de A. Q = Usuario -> Q sólo escribe en A - El sistema Operativo: Ofrece mecanismos para: i) Crear un nuevo buzón. ii) Enviar y recibir mensajes. iii) Destruir un buzón. buzón P Q A

Robiro A. Asuaje L.17/07/ COMUNICACION ENTRE PROCESOS PIPES: -Generalmente se usa entre un proceso enviador y un proceso consumidor. - Los mensajes son de tamaño 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.

Robiro A. Asuaje L.17/07/ COMUNICACION ENTRE PROCESOS FORMAS (COLAS) i) Capacidad cero: - El link no puede tener ningún mensaje esperando en el. ii) Capacidad Limitada: A lo sumo “n“ mensajes pueden residir en la cola del link. iii) Capacidad Ilimitada: La cola tiene potencialmente longitud infinita.