Monitores Cabudare, noviembre de 2010 Universidad Fermín Toro

Slides:



Advertisements
Presentaciones similares
GESTION DE PROCESOS.
Advertisements

Programación de Computadores
Manejo de errores y excepciones
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
ADA: lenguaje de programación concurrente
Administración de procesos y del procesador.
Daniel Morillo Jorge Boscán Gregory Carrasco
Programación modular Procedimientos y Funciones
Resolución de Problemas y Algoritmos Buffer - Read & Readln
Técnicas de Programación con Visual Basic
Informática II Prof. Dr. Gustavo Patiño MJ
EXCEPCIÓN DE ERRORES.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Programación Concurrente DAI - UNSAAC.
Teoría de lenguajes y compiladores
Administración de procesos y del procesador.
Alejandro Ledezma Milanez Sonia Lizbeth Hernández Martinez Zaira Samara Chavez Hernandez Gilberto Saduj Castañeda Garcia.
7a.1 Silberschatz, Galvin y Gagne ©2003 Sistemas Operativos 6ª edición Capítulo 7: Sincronización de procesos parte a.
1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Universidad de Tarapacá Fundamentos Lenguaje y Programación Rodrigo Cornejo Mejías Jonathan Cea Chávez Marcelo Gómez Gonzales.
Tema 6: Clases Antonio J. Sierra.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Un hilo es un único flujo de ejecución dentro de un proceso. Un proceso es un programa ejecutándose dentro de su propio espacio de direcciones. Los.
Semana 5 Subprogramas..
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
Cobol C Pascal Fortran 5. UNIDADES DE PROGRAMAS SmallTalk Java C++
UNIDAD 3 Conceptos de Sistemas Operativos.
Unidad III Administración de procesos
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 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca - Argentina.
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
Material de apoyo Unidad 4 Estructura de datos
 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.
Capítulo 7 Gestión de memoria.
Módulo 8: Manejo de Errores y Excepciones
Gestión de procesos Sistemas Operativos Edwin Morales
EXPRESIONES Y SENTENCIAS
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
Fundamentos de Programación Iteraciones
APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Administrador de procesos
Introducción a los SOs.
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Teoría de Sistemas Operativos Sincronización Procesos
Metodología de la programación
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.
Estados de procesos El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una serie de estados discretos. Transiciones.
Por: Mario Felaco Mercedes Martinez Sistemas Operativos III Ene-Mar 2007.
Threads en Java  Threads: programas multitarea  Creación de threads  Ciclo de vida de un thread  Sincronización.
La estrategia de prevención del interbloqueo consiste, a grandes rasgos, en diseñar un sistema de manera que esté excluida, a priori, la posibilidad de.
UTFSM - Sistemas Operativos
Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4.
INTERRUPCIONES – ABRAZO MORTAL
Estructuras de Decisión
Objetivos del tema. Hemos visto lo que es la estructura de un programa, los datos, que esos datos en realidad se convierten en variables de distinto.
TIPOS DE SISTEMAS OPERATIVOS.  Que es un sistema operativo??  Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar,
Curso: Fundamentos de Computación
Programación en Visual Basic
Bloqueos Mutuos Modelo del Sistema Caracterización de Deadlock Métodos de manejo de Deadlocks Prevención de Deadlocks Evitación de Deadlocks Detección.
Desventajas Poco eficiente: lectura y escritura en disco es lenta Necesita otro mecanismo de sincronización para acceder a los datos Son los procesos.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Universidad de Panamá Facultad de Informática Programación V Tema: Monitores Profesor: Daniel Serrano Integrantes: Avelino Machuca Meybelin Rojas Jorge.
El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. Estas instrucciones se encuentran.
Transcripción de la presentación:

Monitores Cabudare, noviembre de 2010 Universidad Fermín Toro Vicerrectorado Académico Facultad de Ingeniería Escuela de Ingeniería en computación Monitores Román Carlis Páez Mariangel Alejo Yohana Cabudare, noviembre de 2010

Monitores Definición: El concepto de monitor fue definido por primera vez por Charles Antony Richard Hoare en un artículo del año 1974. Son objetos destinados a ser usados sin peligro por más de un hilo de ejecución. La característica que principalmente los define es que sus métodos son ejecutados con exclusión mutua. Lo que significa, que en cada momento en el tiempo, un hilo como máximo puede estar ejecutando cualquiera de sus métodos.

Componentes de un monitor Un monitor tiene cuatro componentes: inicialización, datos privados, procedimientos del monitor y cola de entrada. Inicialización: contiene el código a ser ejecutado cuando el monitor es creado. Datos privados: contiene los procedimientos privados, que sólo pueden ser usados desde dentro del monitor y no son visibles desde fuera. Procedimientos del monitor: son los procedimientos que pueden ser llamados desde fuera del monitor. Cola de entrada: contiene a los threads que han llamado a algún procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos aún.

Exclusión mutua en un monitor Los monitores están pensados para ser usados en entornos multiproceso o multihilo, y por lo tanto muchos procesos o threads Pueden llamar a la vez a un procedimiento del monitor. El monitor hace cumplir la exclusión mutua implícitamente, de modo que sólo un procedimiento esté siendo ejecutado a la vez. De esta forma, si un thread llama a un procedimiento mientras otro thread está dentro del monitor, se bloqueará y esperará en la cola de entrada hasta que el monitor quede nuevamente libre. Los monitores poseen variables de condición que son accesibles sólo desde adentro. Existen dos funciones para operar con las variables de condición:

Las variables de condición indican eventos, y no poseen ningún valor. cond_wait(c): suspende la ejecución del proceso que la llama con la condición c. El monitor se convierte en el dueño del lock y queda disponible para que otro proceso pueda entrar. cond_signal(c): reanuda la ejecución de algún proceso suspendido con cond_wait bajo la misma condición. Si hay varios procesos con esas características elige uno. Si no hay ninguno, no hace nada. Las variables de condición indican eventos, y no poseen ningún valor. Si un thread tiene que esperar que ocurra un evento, se dice espera por (o en) la variable de condición correspondiente. Si otro thread provoca un evento, simplemente utiliza la función cond_signal con esa condición como parámetro. De este modo, cada variable de condición tiene una cola asociada para los threads que están esperando que ocurra el evento correspondiente

Estructura de un monitor El monitor es un módulo de software Características principales Las variables de datos locales son accesibles sólo por el monitor Procese entre monitor invocando unos de sus procedimientos Sólo un procese pueda estar ejecutando en el monitor a la vez

Tipos de monitores Tipo Hoare: En la definición original de Hoare, el thread que ejecuta cond_signal le cede el monitor al thread que esperaba. El monitor toma entonces el lock y se lo entrega al thread durmiente, que reanuda la ejecución. Más tarde cuando el monitor quede libre nuevamente el thread que cedió el lock volverá a ejecutar. Tipo Mesa: En los monitores de Lampson y Redell el thread que ejecuta cond_signal sobre una variable de condición continúa con su ejecución dentro del monitor. Si hay otro thread esperando en esa variable de condición, se lo despierta y deja como listo. Podrá intentar entrar el monitor cuando éste quede libre, aunque puede suceder que otro thread logre entrar antes.

Este nuevo thread puede cambiar la condición por la cual el primer thread estaba durmiendo. Cuando reanude la ejecución el durmiente, debería verificar que la condición efectivamente es la que necesita para seguir ejecutando. En el proceso que durmió, por lo tanto, es necesario cambiar la instrucción if por while, para que al despertar compruebe nuevamente la condición, y de no ser cierta vuelva a llamar a cond_wait. Los monitores de Lampson y Redell poseen la función cond_broadcast(c), que notifica a los threads que están esperando en la variable de condición c y los pone en estado listo. Al entrar al monitor, cada thread verificará la condición por la que estaban detenidos, al igual que antes

Monitores y problema prod/cons Exclusión mutua es automática, el monitor garantiza que solo el productor o el consumidor estaran ejecutandose Si el almacen esta totalmente ocupado, el productor realizará una operación WAIT se encontrará bloqueado hasta que consumidor ejecute un SIGNAL Si el almacen esta totalmente vacio el consumidor realizará una operación WAIT se encontrará bloqueado hasta que productor ejecute un SIGNAL

Monitores y problema prod/cons monitor ProdCons condition lleno, vacio; integer cont, N; procedure producir; begin if (cont = N) then wait(lleno); introducir_elemento; cont := cont +1; if (cont = 1) then signal(vacio); end; procedure retirar; begin if (cont = 0) then wait(vacio) retirar_elemento; cont := cont-1 if (cont = N-1) then signal(lleno); end; cont := 0; N=100; end monitor;