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.
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.
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.
Soluciones hardware.
Las soluciones hardware se dividen en dos tipos:
Las soluciones hardware se dividen en dos tipos:
- Optimistas.
- Consideran que lo mas probable es que no haya conflictos, y si los hay sea en número reducido, por lo que permiten cualquier acceso a la variable compartida. En caso de conflicto, mantienen la integridad del sistema descartando las actualizaciones.
- Pesimistas.
- Bloquean todo aquello que pueda interferir.
- Actualizan la variable.
- Desbloquean lo bloqueado al principio.
- Deshabilitar interrupciones y habilitar interrupciones (pesimista).
- Test and Set (Compartir y Fijar) (pesimista).
- Comparar e intercambiar (optimista).
No hay comentarios:
Publicar un comentario