Memoria
Comunicación entre procesos Los sistemas operativos actuales (año 2008), proveen mecanismos de comunicación entre procesos. Esta es necesaria en situaciones donde se entregan salidas de procesos como entradas de otros. La razón de ser fundamental de dicha comunicación es la de evitar que los procesos se estorben mutuamente y lleven al sistema a estadosinconsistentes.
Comunicación entre procesos
Competencia entre procesos Al compartirse recursos, los procesos entran en una dinámica denominada competencia. Dicha competencia se debe al hecho de que los recursos compartidos requieren una asignación exclusiva al ser modificados por algún proceso. Esquemáticamente:
P1
. . .
P1 i
. . .
Pn
R
Comunicación entre procesosSecciones críticas Un modo de evitar los conflictos es mediante la exclusión mutua. En los S.O. esto se logra mediante primitivas para solicitar y asignar o denegar los recursos que potencialmente pueden causar conflictos. Se definen secciones críticas, o regiones críticas que el sistema administrará de acuerdo a criterios preestablecidos.
Comunicación entre procesos
Secciones críticas(continuación) Dichas regiones críticas deben garantizar que no se produzcan conflictos, pero a la vez tienen que permitir la compartición de recursos entre procesos. Hay 4 condiciones esenciales para ello:
●
Exclusividad Flexibilidad con respecto al tiempo de CPU No bloqueo fuera de la región crítica Atención garantizada
●
●
●
Comunicación entre procesos
Seccionescríticas (continuación)
Exclusividad
La región crítica no estará asignada a más de un proceso, en ningún momento.
Flexibilidad
Los mecanismos deben ser independientes de las características de los procesadores en los que funcione el sistema.
Comunicación entre procesos
Secciones críticas (continuación)
No bloqueo
No existirá bloqueo de un recurso, por parte de los procesos queestén fuera de la región crítica.
Atención garantizada
Todo proceso debe tener acceso en algún momento, a una región crítica que requiera.
Comunicación entre procesos
Exclusión mutua con espera activa Se examinarán a continuación algunas soluciones para la exclusión mutua:
●
Inhabilitación por Interrupciones Candados Alternancia estricta Solución de Peterson TSL
●
●
●●
Comunicación entre procesos
Inhabilitación por Interrupciones Es el método más simple, consistente en la desactivación de interrupciones al ingresar un proceso a la región crítica y su activación al salir. Esto impide que haya conmutaciones de procesos mientras alguno esté en una región crítica. No es recomendable por varias razones:
Comunicación entre procesosInhabilitación por Interrupciones
(continuación)
Un proceso que omita la habilitación de interrupciones al salir de una región crítica dejará al sistema inutilizable. Un sistema con más de una CPU tendría bloqueada la CPU que ejecuta el proceso con acceso a una región crítica, pero las demás no tendrían dicho bloqueo, quedando en la práctica, disponible la r.c. que debería estar bloqueda. Comunicación entre procesos
Inhabilitación por Interrupciones
(continuación)
Impide al núcleo del sistema la inhabilitación de interrupciones, por lo que es posible que al entrar un proceso a una región crítica, lleve al sistema a un estado inconsistente. En la práctica esta solución es aplicable para bloqueos del núcleo del sistema y muy desaconsejable para el resto de los procesos. Comunicación entre procesos
Candados Esta solución establece una variable de candado (lock) para cada región crítica. Sus valores son 0 (abierto) o 1 (cerrado), según la región crítica esté asignada a un proceso o no. Desafortunadamente, es posible por ejemplo, que varios procesos soliciten acceso a una r.c.
Comunicación entre procesos
Candados (continuación) El primero registra...
Regístrate para leer el documento completo.