sistemasoperativos_tutorias_2015
DESCRIPTION
Sistemas Operativos TuroeiaTRANSCRIPT
![Page 1: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/1.jpg)
SISTEMAS OPERATIVOS
Tutorías Curso 2015 - 2016
![Page 2: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/5.jpg)
Sistemas Operativos Tutoría 2
![Page 6: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/6.jpg)
Sistemas Operativos Tutoría 2
![Page 7: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/7.jpg)
Sistemas Operativos Tutoría 2
![Page 8: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/8.jpg)
Sistemas Operativos Tutoría 2
![Page 9: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/9.jpg)
Sistemas Operativos Tutoría 2
![Page 10: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/10.jpg)
Sistemas Operativos Tutoría 3
![Page 11: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/11.jpg)
Sistemas Operativos Tutoría 3
![Page 12: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/12.jpg)
Sistemas Operativos Tutoría 3
![Page 13: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/13.jpg)
Sistemas Operativos Tutoría 3
![Page 14: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/14.jpg)
Sistemas Operativos Tutoría 3
![Page 15: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/15.jpg)
Sistemas Operativos Tutoría 3
![Page 16: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/36.jpg)
Sistemas Operativos Tutoría 5Sincronización y comunicación de procesos
![Page 37: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/37.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 38: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/38.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 39: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/39.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 40: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/40.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 41: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/41.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 42: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/42.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
Productores
Consumidores
![Page 43: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/43.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 44: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/44.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 45: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/45.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 46: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/46.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 47: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/47.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 48: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/48.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 49: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/49.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 50: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/50.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 51: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/51.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 52: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/52.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 53: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/53.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 54: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/54.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 55: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/55.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 56: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/56.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 57: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/57.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 58: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/58.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 59: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/59.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 60: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/60.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 61: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/61.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 62: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/62.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 63: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/63.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/64.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/65.jpg)
Sistemas Operativos Tutoría 4Monitores
![Page 66: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/66.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 67: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/67.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 68: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/68.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos
![Page 69: SistemasOperativos_Tutorias_2015](https://reader034.vdocuments.co/reader034/viewer/2022042703/5695d2091a28ab9b0298e3e7/html5/thumbnails/69.jpg)
Sistemas Operativos Tutoría 4Sincronización y comunicación de procesos