Daniel Morillo Jorge Boscán Gregory Carrasco

Slides:



Advertisements
Presentaciones similares
GESTION DE PROCESOS.
Advertisements

Sistemas Operativos Generalidades de S.O. Gestión de procesos Memoria
Concurrencia Exclusión mutua y sincronización
Tabla de Contenido Concurrencia.
Programación de Computadores
Programación de Computadores
Mecanismo de semáforos
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
ADA: lenguaje de programación concurrente
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 1: Introduccion Unidad 1: Consideraciones acerca de la eficiencia.
Conceptos de la clase anterior
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Programación Concurrente DAI - UNSAAC.
Teoría de lenguajes y compiladores
7a.1 Silberschatz, Galvin y Gagne ©2003 Sistemas Operativos 6ª edición Capítulo 7: Sincronización de procesos parte a.
Sincronización de procesos
TRAMPAS EN EL DISEÑO DE LENGUAJES CON RELACIÓN A LOS NOMBRES - REGLAS DE ALCANCE - COMPILACIÓN POR SEPARADO CONTROL DE FLUJO - EVALUACIÓN DE EXPRESIONES.
Universidad de Tarapacá Fundamentos Lenguaje y Programación Rodrigo Cornejo Mejías Jonathan Cea Chávez Marcelo Gómez Gonzales.
PROBLEMAS DE SINCRONISMO DISTRIBUIDO
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
Concurrencia: Exclusión Mútua y Sincronización
Capítulo 3 Concurrencia: exclusión mutua y sincronización. Comunicación entre procesos.
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++
1 Concurrencia Procesos y Programas. 2 Establecer Comunicación entre procesos (memoria común)
Procesadores del Lenguaje
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.
Semáforos Cecilia Hernández
Unidad III Administración de procesos
Profesor: Rodrigo Sanhueza Figueroa
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.
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.
 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
Programación secuencial vs programación concurrente
Diseño y análisis de algoritmos Clasificación II.
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.
PROCESOS SISTEMAS OPERATIVOS. CONTENIDO Procesos Comunicación entre procesos Problemas clásicos Planificación de un proceso Organización de procesos en.
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 I Arreglos. Los elementos de un arreglo son todos del mismo tipo de dato (todos integer o real o char o registros o aún arreglos)
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.
TEMA 2. Programación Concurrente
Administrador de procesos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Robiro A. Asuaje L.17/07/20151 Universidad Centro Occidental “Lisandro Alvarado“ Decanato de Ciencias COORDINACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS.
Informática III 2009 Ing. Estela D'Agostino 1 Programación secuencial vs programación concurrente Pascal, C, Fortran, Cobol Secuenciales único hilo de.
Teoría de Sistemas Operativos Sincronización Procesos
Tema 9: Gestión de Procesos. Tema 9: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Gestión de.
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.
“variables , sentencia if y bucles”
UTFSM - Sistemas Operativos
Estructura: COLA Profesor: Ing. Erick López Ch. M.R.I.
Desarrollador Profesional de Juegos Programación III Unidad II Trabajando con bloqueo de datos.
Desarrollador Profesional de Juegos Programación III Unidad II introducción a Mutex Secciones críticas.
Historia de los sistemas operativos. Los Sistemas Operativos han sufrido una serie de cambios revolucionarios llamados generaciones. Hay cuatro generaciones:
UNIVERSIDAD CENTROCCIDENTAL “LISANDRO ALVARADO” DECANATO DE CIENCIAS Y TECNOLOGÍA DEPARTAMENTO DE SISTEMAS Unidad III: “PROGRAMACIÓN CONCURRENTE Y CONTROL.
Resumen de Sistemas Operativos I Msc./Ing. Antonio Mena.
Semáforos y Comunicación entre Procesos
Transcripción de la presentación:

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

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.

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.

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(); }

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.

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

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

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

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]);

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;

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

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;

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

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.

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.

¡GRACIAS POR SU ATENCIÓN!