¿Donde se queda un proceso bloqueado no por interrupción de E/S?

¿Donde se queda un proceso bloqueado no por interrupción de E/S?

de Daniel Padron Simon -
Número de respuestas: 2

Buenas tardes, una ultima pregunta. 

En el teórico se mencionó que los PCB de los procesos pueden estar en 3 tipos de lugares. En la lista de procesos del sistema, en la cola de procesos ready, y en la cola de espera por un dispositivo determinado. 

Por lo que entiendo que si un proceso se bloquea por un recurso A, espera en una cola de procesos que están esperando por A. ¿qué pasa si está esperando por algo que no es un recurso? Por ejemplo un semáforo. ¿Se tiene una cola propia por el semáforo, monitor, etc?

Saludos y gracias 

Daniel


En respuesta a Daniel Padron Simon

Re: ¿Donde se queda un proceso bloqueado no por interrupción de E/S?

de Federico Rivero -
Hola!

Sí, cada semáforo, mailbox, condition de monitor y demás mecanismos de sincronización tienen su propia cola o estructura de datos apropiada para identificar los procesos bloqueados.

Saludos,
Federico
En respuesta a Daniel Padron Simon

Re: ¿Donde se queda un proceso bloqueado no por interrupción de E/S?

de Jorge Merlino -

Un semáforo también puede ser considerado un recurso del SO aunque sea solo software. En cualquier caso el SO tiene que saber quienes están esperando por un semáforo para saber a quien despertar cuando se libera así que lo más razonable es tener una lista por semáforo también (aunque podría haber alguna otra implementación)

Por otro lado los monitores usualmente no están implementados a nivel del sistema operativo sino que los implementa una biblioteca de más alto nivel que usa los recursos del SO (ej. semáforos)