sistemasoperativos_tutorias_2015

69
SISTEMAS OPERATIVOS Tutorías Curso 2015 - 2016

Upload: kulunkadeco

Post on 18-Feb-2016

217 views

Category:

Documents


3 download

DESCRIPTION

Sistemas Operativos Turoeia

TRANSCRIPT

Page 1: SistemasOperativos_Tutorias_2015

SISTEMAS OPERATIVOS

Tutorías Curso 2015 - 2016

Page 2: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 1

Repasar Guías de Asignatura. Materias.

Exámenes.

PED.

Bibliografía.

Exámenes años anteriores.

PED años anteriores.

Definiciones de Programas, Procesos, Multitarea..

Page 3: SistemasOperativos_Tutorias_2015

Definiciones de Programa, Programa, Multitarea..

Programa: El algoritmo. Es una secuencia de instrucciones, escritas para realizar una tarea específica con una computadora. El programa tiene un formato ejecutable que la computadora puede utilizar directamente para ejecutar las instrucciones

Proceso: Puede informalmente entenderse como un programa en ejecución en un contexto. Dos o más procesos pueden ejecutar el mismo programa empleando sus propios datos y recursos.

Cada invocación a un programa genera un proceso distinto e independiente. Los procesos compiten por el uso de los recursos del sistema, de manera que se necesitan herramientas que permitan la sincronización y la comunicación entre los procesos. En cualquier instante de tiempo, sólo un proceso estará en ejecución mientras que los otros estarán suspendidos, preparados o esperando a que ocurra algún evento.

Ejercicio. Listar 5 programas y 5 procesos ejecutándose en vuestro sistema operativo.

Multitarea: Capacidad que tienen los S.O. de ejecutar de forma simultánea varios procesos.

Multiprogramación: Se intenta mantener del modo más ocupado posible a todos los recursos del sistema con el entrelazado y el solapamiento de la ejecución de más de un programa.

Solamente cambiando la atención de un único procesador entre varios programas y dejando que cada uno se ejecute unas milésimas de segundo antes de ir a otro, permite crear la ilusión de la ejecución concurrente o al unísono de los programas.

Además de la multitarea incluye la capacidad de gestión de la memoria y de los ficheros.

Sistemas de tiempo compartido: Sistemas con multiprogramación interactiva en los que se asigna a cada programa un mismo intervalo de tiempo de ejecución.

Page 4: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 2

Repasar Apuntes Tema 2. 2.2 RELACIÓN ENTRE LOS PROCESOS

2.3 ESPECIFICACIÓN DE LOS PROCESOS

2.4 ESTADOS DE LOS PROCESOS

2.4.1 TRANSICIONES ENTRE LOS ESTADOS

2.5 EL BLOQUE DE CONTROL DE PROCESOS

2.7 EL PLANIFICADOR DE PROCESOS

Ejercicios Libro Tema 2.

Ejercicios Exámenes Tema2.

Page 5: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 2

Page 6: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 2

Page 7: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 2

Page 8: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 2

Page 9: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 2

Page 10: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 3

Page 11: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 3

Page 12: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 3

Page 13: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 3

Page 14: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 3

Page 15: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 3

Page 16: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

La ejecución concurrente de procesos presenta varios problemas, todos ellos asociados al hecho de que no es posible predecir la velocidad relativa de ejecucion de un proceso. Dicha velocidad es función de la política de planificación del sistema operativo, de la forma en que se tratan las interrupciones y de la actividad de los otros procesos en el sistema.

Uno de los principales problemas de la ejecución concurrente de procesos es que el acceso arecursos globales compartidos (memoria, dispositivos de E/S, etc) debe controlarse de alguna forma si se desea que el resultado de la ejecución de un proceso sea independiente de la velocidad de ejecución del proceso con respecto a los otros procesos concurrentes.

Page 17: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Exclusión mutua

Interacción entre procesos concurrentes

En un sistema con multiprogramación se ejecutan múltiples procesos de manera concurrente.Podemos distinguir

• Procesos independientes, que se ejecutan sin tener en cuenta la existencia de otros procesos.

• Procesos cooperantes, que intercambian información o colaboran entre si para compartir unrecurso o realizar alguna tarea.

• Cooperación directa: los procesos conocen la existencia e identidad de los otros procesos con los que colaboran.

• Cooperación indirecta, los procesos no conocen la existencia e identidad de los otrosprocesos y, en consecuencia, no se comunican con ellos pero deben garantizar que los recursos queden en un estado coherente.

Page 18: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Condiciones de carrera.

El problema denominado condición de carrera (race condition) surge cuando múltiples procesos independientes se ejecutan concurrentemente y acceden para leer o escribir en un recurso compartido. En ese caso el resultado final de la ejecucion depende del orden en que se hayan planificado los procesos.

Page 19: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Condiciones de carrera.

En definitiva este programa posee una condición de carrera, los procesos A y B compiten por ser los primeros en escribir y leer el valor de la variable contador. En la primera secuencia de ejemplo, el proceso A es el primero en escribir pero es el segundo en leer la variable contador. Mientras que en la segunda secuencia, el proceso A es el primero tanto en leer como en escribir dicha variable. En función del resultado de las carreras el resultado del programa es diferente.

Page 20: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Secciones críticasSección critica o región critica de un proceso es una instrucción o conjunto de instruccionessecuenciales de su código que requieren manipular un recurso compartido (variable, dato, fichero, …) con otros procesos. Dentro del código de un proceso pueden existir varias regiones criticas.

Page 21: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

4. Descripción de la exclusión mutuaLas condiciones de carrera se evitarían si se garantizase que cuando un proceso A está ejecutando instrucciones

dentro de una sección crítica S1 asociada un recurso R1 compartido, entonces ningún otro proceso puede ejecutar

código de una sección crítica asociada a R1 hasta que el proceso A no salga de S1 .

En definitiva lo que se requiere es exclusión mutua, es decir, que el uso de un recurso por parte de un

proceso excluya su uso para los restantes.

Page 22: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Repaso de los conceptos más importantes.

En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo (i.e. Round Robin) para dar apariencia de ejecución simultánea. Aunque no se consigue un procesado en paralelo real, y aunque se produce un sobrecargado en la CPU por el hecho de tener que cambiar de tarea constantemente, las ventajas de todo esto son muy elevadas.

Uno de los grandes problemas que nos podemos encontrar es que el hecho de compartir recursos está lleno de riesgos. Por ejemplo, si dos procesos hacen uso al mismo tiempo de una variable global y ambos llevan a cabo tanto operaciones de lectura como de escritura sobre dicha variable, el orden en que se ejecuten estas lecturas y escrituras es crítico, puesto que se verá afectado el valor de la variable.

Page 23: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Repaso de los conceptos más importantes.Concepto de condiciones de carrera:

Situaciones en las que dos o más procesos leen o escriben en un área de memoria compartida y el resultado final depende de los instantes de ejecución de cada uno. Esto se soluciona impidiendo que más de un proceso acceda simultáneamente a las variables compartidas. Se soluciona garantizando la exclusión mutua.

Concepto de exclusión mutua.

Consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.

Page 24: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Repaso de los conceptos más importantes.

Concepto de sección crítica.

Es la parte del programa con un comienzo y un final claramente marcados que generalmente contiene la actualización de una o más variables compartidas. Para que una solución al problema de la exclusión mutua sea válida, se tienen que cumplir una serie de condiciones:

• Hay que garantizar la exclusión mutua entre los diferentes procesos a la hora de acceder al recurso compartido. No puede haber en ningún momento dos procesos dentro de sus respectivas secciones críticas.

• No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto.

• Ningún proceso que esté fuera de su sección crítica debe interrumpir a otro para el acceso a la sección crítica.

• Cuando más de un proceso desee entrar en su sección crítica, se le debe conceder la entrada en un tiempo finito, es decir, que nunca se le tendrá esperando en un bucle que no tenga final.

Page 25: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Repaso de los conceptos más importantes.

Para solucionar el problema de la exclusión mutua vamos a tener tres tipos de soluciones:

Soluciones software.Soluciones hardware.Soluciones aportadas por el Sistema Operativo.

Page 26: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Repaso de los conceptos más importantes.

3. Soluciones del Sistema Operativo.3.1. Semáforos.

3.1.1. Semáforos binarios.Dijkstra dio en 1968 una solución elegante y sencilla al problema de la exclusión mutua con la introducción del concepto de semáforo binario. Esta técnica permite resolver la mayoría de los problemas de sincronización entre procesos y forma parte del diseño de muchos sistemas operativos y de lenguajes de programación concurrentes.

Un semáforo binario es un indicador de condición (S) que registra si un recurso está disponible o no. Un semáforo binario sólo puede tomar dos valores: O y 1. Si, para un semáforo binario. S=1 entonces el recurso está disponible y la tarea lo puede utilizar; si S=0 el recurso no está disponible y el proceso debe esperar.

Los semáforos sólo permiten tres operaciones sobre ellos:Espera.Señal.Inicializar.

Page 27: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Notas importantes de libro.

La exclusión mutua así planteada resuelve las condiciones de carrera. Sin embargo, si no se exigen algunos

requisitos adicionales puede producir otros problemas de control de procesos, como el interbloqueo y

la inanición de procesos.

El interbloqueo o bloqueo mutuo de dos o más procesos, se produce por ejemplo cuando dos procesos A y

B necesitan dos recursos R1 y R2 para realizar una cierta función. Si A posee R1 y B posee R2 ninguno

puede progresar, ambos se quedan esperando por el recurso que necesitan, y no pueden liberar el reurso que

poseen hasta obtener el otro recurso y realizar la función correspondiente.

Por su parte la inanición de un proceso se produce cuando un proceso no puede progresar al necesitar un

recurso al que nunca llega a acceder porque el sistema operativo siempre le relega dando prioridad a

otros procesos.

Page 28: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Soluciones software a la exclusión mutua. Primeras aproximaciones

En esta sección se van describir dos posibles soluciones software a la exclusión mutua: el uso de

un cerrojo y alternancia estricta, y el algoritmo de Peterson. Para simplificar su explicación se van a

considerar únicamente dos procesos A y B concurrentes.

Ambas soluciones se caracterizan porque no presuponen el apoyo de sistema operativo o del hardware del

computador para su implementación.

El principal inconveniente de ambas soluciones es que cualquier proceso que desea entrar en una sección

crítica, si está siendo ejecutada por otro proceso, debe esperar a que éste termine mediante la ejecución de un

bucle que comprueba el valor de una condición basada en el valor de una o varias

variables. Esta variable hace las veces de cerrojo (lock). Cuando el valor del cerrojo se comprueba dentro

de un bucle se habla de cerrojo con vuelta (spinlock). A dicho tipo de espera se le denomina espera activa

(busy waiting) o espera cíclica (spin waiting). La espera activa supone un problema si se dilata mucho en

el tiempo ya que consume valiosos ciclos de uso del procesador que podrían ser utilizados para ejecutar

otros procesos

Page 29: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

TRUE=l

Int turno=0; / * Variable global que se usa como cerrojo * /

Void procesoA ()

{

while(TRUE) { / * Bucle infinito * /

/ * sección no crítica * /

while(turno!=0 ) ; / * Bucle de espera * /

/ * sección crítica * /

turno=l;

/ * sección no crítica */

}

Void procesoB ()

{

while(TRUE) { / * Bucle infinito * /

/ * sección no crítica * /

while(turno!=1 ) ; / * Bucle de espera * /

/ * sección crítica * /

turno=0;

/ * sección no crítica */

}

En esta solución se considera la existencia de una variable global de acceso turno, que se usa como cerrojo y que

puede tomar como valor el identificador numérico de un proceso. En este caso el proceso A tiene el identificador 0 y el

proceso B el identificador 1. Nótese que el valor al que se inicializa el cerrojo determina qué proceso puede entrar en

primer lugar en su sección crítica, en este caso es el proceso A.

Page 30: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Esta solución garantiza la propiedad en exclusiva de un recurso, que es el primer requisito para

garantizar la exclusión mutua. Sin embargo posee dos inconvenientes.

En primer lugar la velocidad de ejecución de los procesos A y B viene limitada por la velocidad de ejecución

del proceso más lento. Puesto que la ejecución de los procesos A y B se va alternando estrictamente para

garantizar la propiedad en exclusiva del recurso compartido, hasta que un proceso (por ejemplo A) no termina en

su sección critica y configura la variable turno con el identificador del otro proceso (B), éste no puede acceder.

En consecuencia, aunque la velocidad ejecución de B fuera más rápida que la de A, su velocidad real se

ralentiza al tener que esperar por A.

El segundo problema que tiene esta solución es que si un proceso falla (por ejemplo A) antes de

poder cambiar el valor de turno al identificador del otro proceso (B), entonces éste (B) permanecerá

bloqueado indefinidamente.

Page 31: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 5Sincronización y comunicación de procesos

Condición de carrera:

El uso de recursos compartidos no se produce únicamente en el caso de procesos cooperantes. También lo

procesos independientes ejecutándose concurrentemente utilizan recursos compartidos, aunque en vez de cooperar,

compiten por el uso de dichos recursos.

Un problema denominado condición de carrera (race condition) que surge cuando múltiples procesos independientes

se ejecutan concurrentemente y acceden para leer o escribir en un recurso compartido, es que el resultado final de la

ejecución depende del orden en que se hayan planificado los procesos, es decir, en que se hayan ejecutado las

instrucciones de lectura y escritura de cada proceso sobre el recurso.

La depuración de programas que pueden poseer condiciones de carrera es complicada, ya que la mayoría de las veces

que se ejecutan parecen funcionar correctamente y las condiciones de carrera solo se manifiestan en algunos casos

muy concretos.

Región crítica:

Se denomina sección crítica o región crítica de un proceso a una instrucción o conjunto de instrucciones secuenciales

de su código que requieren manipular un recurso compartido (variable, dato, fichero, .. . ) con otros procesos. Dentro

del código de un proceso pueden existir varias secciones críticas.

Page 32: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 5Sincronización y comunicación de procesos

Exclusión Mutua:

Las condiciones de carrera se evitarían si se garantizase que cuando un proceso A está ejecutando instrucciones dentro

de una sección crítica S1 asociada un recurso R1 compartido, entonces ningún otro proceso puede ejecutar código de

una sección crítica asociada a R1 hasta que el proceso A no salga de S1.

En definitiva lo que se requiere es exclusión mutua, es decir, que el uso de un recurso por parte de un proceso excluya

su uso para los restantes.

Dos posibles soluciones para implementar la Exclusión Mutua: El uso de un cerrojo y alternancia estricta, y el

algoritmo de Peterso. Cerrojo, ej ejemplo de Turno. Ver el ejemplo del libro.

El principal problema es La espera Activa: La espera activa supone un problema si se dilata mucho en el tiempo ya

que consume valiosos ciclos de uso del procesador que podrían ser utilizados para ejecutar otros procesos.

El segundo problema que tiene esta solución es que si un proceso falla (por ejemplo A) antes de poder cambiar el

valor de turno al identificador del otro proceso (B), entonces éste (B) permanecerá bloqueado indefinidamente.

Page 33: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 5Sincronización y comunicación de procesos

Otro problema alternancia estricta y velocidad. En primer lugar la velocidad de ejecución de los procesos A y B viene

limitada por la velocidad de ejecución del proceso más lento. Puesto que la ejecución de los procesos A y B se va

alternando estrictamente para garantizar la propiedad en exclusiva del recurso compartido, hasta que un proceso (por

ejemplo A) no termina en su sección critica y configura la variable turno con el identificador del otro proceso (B), éste

no puede acceder. En consecuencia, aunque la velocidad ejecución de B fuera más rápida que la de A, su velocidad

real se ralentiza al tener que esperar por A.

T. Dekker para obtener exclusión mutua sin necesidad de asegurar una alternancia estricta de los procesos. Dicha

solución, conocida como algoritmo de Dekker, en su forma original solo es aplicable para la ejecución concurrente

de do procesos y no es sencillo extenderla para un número superior.

Peterson obtuvo una solución simple y elegante para el problema de garantizar completamente la exclusión mutua

de un número arbitrario de procesos concurrentes. Dicha solución, conocida como algoritmo de Peterson se

muestra en la Figura 4.5 escrita en pseudocódigo basado en el lenguaje C para el caso de dos procesos concurrentes.

Por otra parte este algoritmo evita la posibilidad de interbloqueo

Page 34: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 5Sincronización y comunicación de procesos

SemáforosEl funcionamiento de las operaciones wait_sem y signa1_sem que se ha descrito en los párrafos anteriores corresponde

a un semáforo general o semáforo con contador. Una versión simplificada de este semáforo general corresponde al caso

del semáforo binario, también denominado mutex en la literatura que únicamente puede tomar los valores 0 y 1. En el

caso de un semáforo binario las operaciones wait_sem y signal_sem funcionan de la siguiente manera:

wait_sem (s). Esta operación comprueba el valor del semáforo S. Si S=0, entonces el proceso es colocado en la cola de

procesos bloqueados asociada al semáforo y se bloquea. Si S = 1 , entonces pone el semáforo a 0 y el proceso puede

continuar su ejecución.

Signal_sem (s) . Esta operación comprueba si la cola de procesos bloqueados asociada al semáforo S está vacía. En

caso afirmativo, pone el semáforo a 1, y continúa su ejecución. En caso negativo, es decir, hay procesos bloqueados en

el semáforo, entonces el sistema operativo elimina de la cola asociada al semáforo a uno de los procesos bloqueados, y

le despierta lo que hace que pase al estado preparado para ejecución.

Por otra parte, un semáforo binario solamente puede ser inicializado a 0 o 1.

Page 35: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 5Sincronización y comunicación de procesos

Utilidad de los semáforos. Obtención de exclusión mutua.

El problema de la exclusión mutua se soluciona fácilmente utilizando semáforos. Simplemente hay que utilizar tantos semáforos como recursos distintos compartan, a través de regiones críticas, los procesos concurrentes.

Page 36: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 5Sincronización y comunicación de procesos

Page 37: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 38: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 39: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 40: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 41: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 42: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Productores

Consumidores

Page 43: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 44: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 45: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 46: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 47: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 48: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 49: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 50: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 51: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 52: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 53: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 54: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 55: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 56: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 57: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 58: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 59: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 60: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 61: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 62: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 63: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Los semáforos proporcionan un mecanismo de sincronización de procesos concurrentes muy útil y flexible.

Sin embargo, deben introducirse cuidadosamente en el código de los programas para que el funcionamiento

sea el esperado. Para intentar evitar los errores potenciales asociados a una inadecuada colocación de los

semáforos y, en definitiva, para simplificar la escritura de los programas de procesos concurrentes, C.A.R.

Hoare introdujo en 1974 el concepto de monitor.

Page 64: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

semáforos proporcionan un mecanismo de sincronización de

procesos concurrentes muy útil y

e. Sin embargo, deben introducirse cuidadosamente en el código

de los programas para que el

narniento sea el esperado. Para intentar evitar los errores

potenciales asociados a una inadecuada

ión de los semáforos y, en definitiva, para simplificar la

escritura de los programas de procesos

entes, C.A.R. Hoare introdujo en 1974 el concepto de monitor.

Page 65: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Monitores

Page 66: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 67: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 68: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos

Page 69: SistemasOperativos_Tutorias_2015

Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos