Professional Documents
Culture Documents
Sistema Operativo I
Capitulo #5
Tema
Sincronización entre procesos
Participante
Luis Jarlin Tejeda Encarnación
Matricula
2018 – 6747
Profesor
José Doñé
Fecha
11/02/2019
Índice
Presentación................................................................................................................. 1
Índice e Introducción ................................................................................................. 2
Comunicación entre procesos .................................................................................. 3
Semáforos .................................................................................................................. 6
Monitores ................................................................................................................... 7
Introducción
La comunicación entre procesos es una función básica de los sistemas
operativos que provee un mecanismo que permite a los procesos comunicarse y
sincronizarse entre sí, los mecanismos de sincronización (sección crítica,
semáforos, monitores, regiones críticas, problemas clásicos de la comunicación
entre procesos es útil para modelar procesos que compiten por el acceso
exclusivo a un número limitado de recursos, como una unidad de cinta u otro
dispositivo de E/S
Comunicación entre procesos
Las técnicas de IPC están divididas dentro de métodos para: paso de mensajes,
sincronización, memoria compartida y llamadas de procedimientos remotos
(RPC).
- Directa: Las primitivas “enviar” y “recibir” especifican el nombre del proceso con
el que se comunican.
receive (Q, mensaje); espera la recepción de un mensaje por parte del proceso
Q (Q es el proceso fuente).
Mecanismos de sincronización
Sección critica
El método más común para evitar que dos procesos accedan al mismo tiempo a
un recurso es el de la exclusión mutua.
Semáforos
Los semáforos son un tipo de datos que están compuestos por dos atributos:
down(semáforo s)
si s.contador == 0:
sino:
s.contador--
Nótese que siempre que queramos forzar una transición de un proceso ha estado
bloqueado, tenemos que hacer que dicho proceso realice una operación down
sobre un semáforo cuyo contador vale cero.
up(semáforo s)
sino:
s.contador++
}
Nótese que una operación up sobre un semáforo en el que hay procesos en su
cola resulta en que se retire uno de los procesos (el primero de la cola, es decir,
el que lleva más tiempo en la cola), realizando éste la transición a estado
preparado. Es un error frecuente pensar que una operación up resulte en que el
proceso retirado de la cola pase a estado activo. Recuerde que las transiciones
de estado activo a preparado y viceversa son siempre controladas por el
planificador del sistema operativo.
Monitores
Es un Módulo de software.
Regiones Críticas
Son bloques de código que al ser declarados como regiones críticas respecto de
una variable, el compilador introduce en ella los mecanismos de
sincronización necesarios para que su ejecución se realice en régimen de
exclusión mutua respecto de otras regiones críticas declaradas respecto de la
misma variable.
Una variable que se requiera que sea accedida bajo régimen de exclusión
mutua se puede declarar como compartida (shared) y el compilador
garantiza que en ningún punto del programa se puede utilizar dicha
variable salvo dentro de las regiones críticas correspondientes.
Cuando una región se declare como crítica, el compilador incluirá
de forma automática y transparente para el programador, el conjunto de
semáforos o mecanismos equivalentes que sean necesarios para
garantizar que se va a ejecutar en régimen de exclusión mutua
Un proceso que trata de ejecutar una región crítica, compite con otros procesos
que también lo intentan:
En esta solución, el primer lector que obtiene el acceso a la base de datos realiza
un wait sobre el semáforo bd. Los lectores siguientes sólo incrementan un
contador, nl. Al salir los lectores, éstos decrementan el contador, y el último en
salir realiza un signal sobre el semáforo, lo que permite entrar a un escritor
bloqueado, si existe.
Una hipótesis implícita en esta solución es que los lectores tienen prioridad sobre
los escritores. Si surge un escritor mientras varios lectores se encuentran en la
base de datos el escritor debe esperar. Pero si aparecen nuevos lectores, y
queda al menos un lector accediendo a la base de datos, el escritor deberá
esperar hasta que no haya más lectores interesados en la base de datos.
Comunicación-cliente-servidor
En el modelo cliente-servidor, los procesos llamados servidores ofrecen una
serie de servicios a otros procesos que se denominan clientes. El proceso
servidor puede residir en la misma máquina que el cliente o en una distinta, en
cuyo caso la comunicación deberá realizarse a través de una red de
interconexión. Muchas aplicaciones y servicios de red, como el correo
electrónico y la transferencia de archivos, se basan en este modelo.
Conclusión
Bibliografía
https://es.wikipedia.org/wiki/Secci%C3%B3n_cr%C3%ADtica
https://1984.lsi.us.es/wiki-ssoo/index.php/Sem%C3%A1foros
http://wiki.inf.utfsm.cl/index.php?title=Monitores
https://www.ctr.unican.es/asignaturas/procodis_3_ii/doc/procodis_2_04.pdf
http://siom-udm.blogspot.com/2016/06/v-behaviorurldefaultvmlo.html