Sistemas operativos modernos

el proceso B intenta ingresar en su región crítica pero no lo logra porque otro proceso ya está en su región crítica, y sólo permitimos uno a la vez. Por tanto, B se suspende en forma tempo­ ral hasta el tiempo T' 3 , cuando A sale de su región crídca y permite que B entre de inmediato. En algún momento {T^), B saldrá y estaremos de nuevo en la situación original en la que nin­ gún proceso está en su región crítica. Proceso A A entra en su región critica ^ / / Proceso B B intenta entrar en su región / critica B entra en B sale de su región critica su región critica Tiempo Figura 2-19. Exclusión mutua empleando regiones críticas. 2.3.3 Exclusión mutua con espera activa En esta sección examinaremos diversas propuestas para lograr la exclusión mutua, de modo que mientras un proceso está actualizando la memoria compartida en su región crítica, ningún otro proceso entre en su propia región crítica y cause problemas. Inhabilitación de interrupciones La solución más sencilla es hacer que cada proceso inhabilite todas las interrupciones inmedia­ tamente después de ingresar en su región crítica y las vuelva a habilitar justo antes de salir de ella. Con las interrupciones inhabilitadas, no puede haber interrupciones de reloj. Después de to­ do, la CPU sólo se conmuta de un proceso a otro como resultado de interrupciones de reloj o de otro tipo, y con las interrupciones desactivadas la CPU no se cambiará a otro proceso. Así, una vez que un proceso haya inhabilitado las interrupciones, podrá examinar y actualizar la memo­ ria compartida sin temor a la intromisión de otro proceso. Por lo general este enfoque es poco atractivo porque no es prudente conferir a los proce­ sos de usuario la capacidad de inhabilitar todas las interrupciones. Supongamos que uno de ellos lo hace, y nunca vuelve a activarlas: eso podría acabar con el sistema. Además, si el sis­ tema es un multiprocesador, con dos o más CPUs, la inhabilitación de interrupciones sólo afec­ tará a la CPU que ejecutó la instrucción disable. Las demás seguirán operando en forma normal y podrán tener acceso a la memoria compartida.

RkJQdWJsaXNoZXIy MjI4NDcx