Sistemas operativos modernos
Cuando transcurre el número especificado de segundos, el sistema operativo envía una se ñal de alarma al proceso. La señal hace que el proceso suspenda en forma temporal lo que es té haciendo, guarde sus registros en la pila y comience a ejecutar un procedimiento especial de manejo de señales, por ejemplo, para retransmitir un mensaje supuestamente perdido. Cuando termina el manejador de señales, el proceso en ejecución se reinicia en el estado en que estaba justo antes de la señal. Las señales son el análogo en software de ias interrupciones en hard ware, y pueden generarse por diversas causas además de la expiración de los temporizadores. Muchas interrupciones de sistema detectadas por hardware, como la ejecución de una instruc ción no permitida o el uso de una dirección no válida, también se convierten en señales que se envían al proceso culpable. El administrador del sistema asigna un ¡dentifícador de usuario (UID; user identifica- tion) a cada persona autorizada para usar un sistema. Cada proceso que se inicia tíene el UID de la persona que lo inició. Un proceso hijo tiene el mismo UID que su padre. Los usuarios pueden ser miembros de grupos, cada uno de los cuales tiene un identifícador de grupo (GID; group identification). Un UID, llamado superusuario (en UNIX), tiene poderes especiales y podría violar mu chas de las reglas de protección. En las instalaciones grandes, sólo el administrador del siste ma conoce la contraseña necesaria para convertirse en superusuario, pero muchos de los usuarios ordinarios (sobre todo estudiantes) dedican un esfuerzo considerable a tratar de hallar defectos en el sistema que les permitan convertirse en superusuarios sin la contraseña. En el capítulo 2 estudiaremos los procesos, la comunicación entre procesos y cuestiones relacionadas con estos temas. 1.5.2 Bloqueos irreversibles Cuando dos o más procesos están interactuando, a veces pueden meterse en una situación de estancamiento de la que no pueden salir. Tal situación se denomina bloqueo irreversible. La mejor manera de presentar los bloqueos irreversibles es con un ejemplo del mundo real que todos conocemos, un bloqueo de tráfico. Consideremos la situación de la figura 1-I3a. En ésta, cuatro autobuses se están acercando a una intersección. Detrás de cada uno vienen más (que no se muestran). Con un poco de mala suerte, los primeros cuatro podrían llegar a la in tersección al mismo tiempo, dando pie a la situación de la figura 1-13b en la que se bloquean mutuamente y ninguno de ellos puede avanzar. Cada uno está bloqueando a uno de los otros, y no pueden retroceder debido a los autobuses que están detrás de ellos. No es fácil salir de es ta situación. En una computadora, los procesos pueden experimentar una situación análoga en la que ya no pueden avanzar. Por ejemplo, imaginemos una computadora con una unidad de cinta y una grabadora de CD. Ahora imaginemos que dos procesos necesitan producir un CD-ROM cada uno a partir de datos que están en una cinta. El proceso l solicita la unidad de cinta y se le con cede. Luego el proceso 2 solicita la grabadora de CD y se le concede. Ahora el proceso l soli cita la grabadora de CD y queda suspendido hasta que el proceso 2 la desocupe. Por úlrimo, el proceso 2 solicita la unidad de cinta y también queda suspendido porque el proceso 1 la está
RkJQdWJsaXNoZXIy MjI4NDcx