1. Comunicación y sincronización
Texto íntegro de la conversión. Las figuras y la disposición de las notas se pueden consultar en el PDF.
Página 7
1.Comunicación y sincronización
En sistemas concurrentes, los procesos cooperan en el cálculo y la realización de tareas variadas y comparten recursos lógicos1. En estos sistemas, los procesos han de sincronizar su acceso a los objetos compartidos y han de poder intercambiar información entre ellos.
En general, se considera que hay dos maneras de establecer una cooperación entre los procesos:
- La sincronización: este procedimiento permite el acceso concurrente de los procesos a objetos del sistema que requiere un acceso secuencial y asegura la integridad y la consistencia del sistema.
La sincronización entre procesos en sistemas concurrentes es imprescindible para que el sistema se mantenga coherente y, además, es necesaria a la hora de acceder a los recursos compartidos tanto en las estructuras de datos como en los dispositivos. Como el sistema operativo no sabe cuáles son las intenciones de los procesos, todos aquellos procesos que quieran compartir algún objeto dentro del sistema deben ponerse de acuerdo entre ellos para que el acceso que se ha de llevar a cabo sea coherente y no tenga ningún tipo de error. Para poder establecer los protocolos de acceso, el sistema y algunos lenguajes de programación ofrecen herramientas de sincronización entre los procesos.
Ejemplos
Los siguientes son ejemplos claros de objetos del sistema a los que acceden de manera concurrente los procesos:
- Las variables compartidas por todos los procesos dentro del sistema.
- Los dispositivos de naturaleza no compartida, como la impresora.
La utilización de protocolos de sincronización adecuados a los procesos que utilizan recursos comunes puede ser complicada y puede tener consecuencias bastante negativas para el sistema.
En este módulo didáctico presentamos con detalle los principales problemas que plantea la sincronización y describimos los semáforos como mecanismo de sincronización que la mayoría de los sistemas operativos suele ofrecer.
- La comunicación: en procesos concurrentes, normalmente hay que intercambiar resultados parciales, se debe enviar información del estado de los procesos o intercambiar información en general. Los diferentes sistemas operativos han propuesto varios mecanismos que permiten comunicar ciertas cantidades de información entre los procesos.
Notas y pies de figura de la fuente
(1)Los dispositivos, el código y las variables son algunos de los recursos que los procesos comparten.
Página 8
Algunos de estos mecanismos son los siguientes:
-
La memoria compartida, que permite comunicar procesos mediante el uso de variables compartidas.
-
El paso de mensajes, un mecanismo relativamente sencillo que integra tareas de sincronización y comunicación entre procesos en sistemas centralizados y sistemas distribuidos.
-
Las señales, interrupciones de software que pueden recibir los procesos para indicar que se ha producido un determinado éxito; por ejemplo, que ha expirado un temporizador, que se ha producido una bajada de tensión, que se ha generado una salida de rango en operaciones aritméticas (overflow), etc.
A continuación, veremos cómo realizar estas operaciones en dos escenarios: cuando los procesos comparten algún recurso lógico (por ejemplo, un rango de direcciones del espacio lógico) y cuando los procesos no comparten el espacio lógico.
Ver fragmento extraído sin normalizar
## Página 7
<!-- source-page: 7 -->
GNUFDL • PID_00214803 7 Comunicación y sincronización
1.Comunicación y sincronización
En sistemas concurrentes, los procesos cooperan en el cálculo y la realización (1)Los dispositivos, el código y las
de tareas variadas y comparten recursos lógicos1. En estos sistemas, los proce- variables son algunos de los recur-
sos que los procesos comparten.
sos han de sincronizar su acceso a los objetos compartidos y han de poder
intercambiar información entre ellos.
En general, se considera que hay dos maneras de establecer una cooperación
entre los procesos:
1) La sincronización: este procedimiento permite el acceso concurrente de
los procesos a objetos del sistema que requiere un acceso secuencial y asegura
la integridad y la consistencia del sistema.
La sincronización entre procesos en sistemas concurrentes es imprescindible
para que el sistema se mantenga coherente y, además, es necesaria a la hora de
acceder a los recursos compartidos tanto en las estructuras de datos como en
los dispositivos. Como el sistema operativo no sabe cuáles son las intenciones
de los procesos, todos aquellos procesos que quieran compartir algún objeto
dentro del sistema deben ponerse de acuerdo entre ellos para que el acceso
que se ha de llevar a cabo sea coherente y no tenga ningún tipo de error. Para
poder establecer los protocolos de acceso, el sistema y algunos lenguajes de
programación ofrecen herramientas de sincronización entre los procesos.
Ejemplos
Los siguientes son ejemplos claros de objetos del sistema a los que acceden de manera
concurrente los procesos:
• Las variables compartidas por todos los procesos dentro del sistema.
• Los dispositivos de naturaleza no compartida, como la impresora.
La utilización de protocolos de sincronización adecuados a los procesos que
utilizan recursos comunes puede ser complicada y puede tener consecuencias
bastante negativas para el sistema.
En este módulo didáctico presentamos con detalle los principales problemas
que plantea la sincronización y describimos los semáforos como mecanismo
de sincronización que la mayoría de los sistemas operativos suele ofrecer.
2) La comunicación: en procesos concurrentes, normalmente hay que inter-
cambiar resultados parciales, se debe enviar información del estado de los pro-
cesos o intercambiar información en general. Los diferentes sistemas operati-
vos han propuesto varios mecanismos que permiten comunicar ciertas canti-
dades de información entre los procesos.
## Página 8
<!-- source-page: 8 -->
GNUFDL • PID_00214803 8 Comunicación y sincronización
Algunos de estos mecanismos son los siguientes:
• La memoriacompartida, que permite comunicar procesos mediante el
uso de variables compartidas.
• El pasodemensajes, un mecanismo relativamente sencillo que integra
tareas de sincronización y comunicación entre procesos en sistemas cen-
tralizados y sistemas distribuidos.
• Las señales, interrupciones de software que pueden recibir los procesos
para indicar que se ha producido un determinado éxito; por ejemplo, que
ha expirado un temporizador, que se ha producido una bajada de tensión,
que se ha generado una salida de rango en operaciones aritméticas (over-
flow), etc.
A continuación, veremos cómo realizar estas operaciones en dos escenarios:
cuando los procesos comparten algún recurso lógico (por ejemplo, un rango de
direcciones del espacio lógico) y cuando los procesos no comparten el espacio
lógico.