BLOQUEO MUTUO Y APLAZAMIENTO INDEFINIDO
Cuando el proceso de un sistema de multiprogramación espera en balde a que se presente un evento específico, se dice que se encuentra en un estado de bloqueado mutuo. En un bloqueo del sistema, pueden ser uno o varios los procesos que se encuentran en un bloqueo mutuo.
Los bloqueos mutuos pueden aparecer en muchas formas. Si a un proceso se le asigna la tarea de esperar a que ocurra un evento y el sistema no incluye providencias para señalar la ocurrencia de dicho evento, habrá un bloqueo mutuo con un solo proceso.
Es muy difícil detectar los bloqueos mutuos de esta naturaleza. La mayor parte de los bloqueos mutuos en los sistemas reales implican una competencia entre varios procesos por varios recursos.
BLOQUEO MUTUO SIMPLE DE RECURSOSLa mayor parte de los bloqueos mutuos de los sistemas operativos se presentan a causa de una competencia normal por los recursos dedicados, es decir, recursos que solo pueden ser utilizados por un usuario a la vez; se conocen también como recursos reutilizables en serie.
Un bloqueo muto simple. Este sistema está bloqueado porque cada proceso tiene un recurso solicitado por el otro proceso y ninguno de ellos está dispuesto a liberar el recurso que tiene.
BLOQUEO MUTUO EN SISTEMA DE SPOOL
Los sistemas de spool son procesos al bloqueo mutuo. Un sistema de spool se utiliza para mejorar la producción del sistema haciendo que un programa sea independiente de la baja velocidad de operación de dispositivos tales como las impresoras.
Una manera de reducir la posibilidad de bloqueo mutuo en los sistemas de spool es reservar un espacio mucho mayor para los archivos de spool que es considerado indispensable.
APLAZAMIENTO INDEFINIDO
Tal situación se conoce con varios nombres, entre los que se incluyen aplazamiento indefinido, bloqueo indefinido e inanición, y puede resultar tan peligrosa como un bloqueo mutuo.
El aplazamiento indefinido puede ocurrir debido a predisposiciones en las políticas de planificación de recursos del sistema.
CONCEPTOS DE RECURSOSUn sistema operativo es ante todo un administrador de recursos. Se encarga de la asignación de un amplio conjunto de recursos de varios tipos. La gran variedad de los tipos de recursos es una de las razones del interés que despiertan los sistemas operativos.
Algunos recursos son no apropiables y no pueden arrebatarse al proceso al que han sido asignados. Por ejemplo, las unidades de cinta se asignan a un proceso en particular por periodos de varios minutos u horas. Mientras la unidad de cinta permanece a un proceso y nadie puede arrebatarla a ese proceso para dársela a otro.
El código que no se puede modificar mientras se usa se le llama reentrante. El código que se puede modificar, pero que vuelve a su forma inicial cada vez que se utiliza, se llama reutilizable en serie.
CONDICIONES NECESARIAS PARA EL BLOQUEO MUTUO
Coffman, Elphick y Shoshani, establecen que deben darse las siguientes cuatro condiciones necesarias para que un bloqueo mutuo.
Los procesos exigen un control exclusivo de los recursos que necesitan (condición de exclusión mutua)
Los procesos mantienen la posesión de los recursos ya asignados a ellos mientras esperan recursos adicionales (condición de espera).
Los recursos no pueden arrebatarse a los procesos a los cuales están asignados hasta que termine su utilización (condición de no apropiación).
Existe una cadena circular de procesos en la cual cada proceso tiene uno o más recursos que son requeridos por el siguiente proceso en la cadena (condición de espera circular).
AREAS PRINCIPALES EN LA INVESTIGACION DEL BLOQUEO MUTUO
Los resultados de la investigación sobre el bloqueo mutuo han sido “satisfactorios” en cuanto a que se han encontrado métodos limpios y rápidos para manejar la mayoría de los problemas comunes. En principio existen cuatro grandes áreas de interés en la investigación sobre el bloqueo mutuo: prevención, técnicas para evitarlo, detección y recuperación.
Si a un proceso le asigna la tarea de esperar a que ocurra un evento y el sistema no incluye providencias para señalar la ocurrencia de dicho evento, habrá un bloqueo mutuo con un solo
proceso. Es muy difícil detectar los bloqueos mutuos de esta naturaleza.
proceso. Es muy difícil detectar los bloqueos mutuos de esta naturaleza.
La mayor parte de los bloqueos mutuos en los sistemas reales implican una
competencia entre varios procesos por varios recursos.
competencia entre varios procesos por varios recursos.
La mayor parte de los bloqueos mutuos de los sistemas operativos se
presentan a causa de una competencia normal por los recursos dedicados
es decir, recursos que solo pueden ser utilizados por un usuario a la vez;
se conoce también como recursos reutilizables en serie.
presentan a causa de una competencia normal por los recursos dedicados
es decir, recursos que solo pueden ser utilizados por un usuario a la vez;
se conoce también como recursos reutilizables en serie.
QUE ES UN DEMONIO
Un demonio es un tipo especial de programa que se ejecuta en segundo plano en vez de ser controlado directamente por el usuario (es un proceso no interactivo). Este tipo de programas se ejecutan de forma continua (infinita) , vale decir, que funciona sin tener relación con una terminal oconsola y, consecuentemente, sin interactuar con un humano. El origen de la palabra daemon (demonio) es una abreviación de Disks And Extensions MONitor, y proviene del primer daemon que fue un programa que automaticamente hacia copias de seguridad en cintas de datos del sistema de archivos.
Los programas demonio reciben distintas denominaciones según elsistema operativo del que se trate. Así, en MS-DOS reciben el nombre deTSRs. En Windows, en cambio, los demonios son llamados "servicios". En los sistemas operativos del tipo Unix, en particular, suelen tener las siguientes características:
No disponen de una interfaz gráfica y/o visual directa con un humano.
Proporcionan servicios específicos, como el correo electrónico, el servidor de páginas Web o la base de datos a través de conexiones víared.
No hacen uso de la entradas y salidas estándar para comunicar errores y/o registrar su funcionamiento, sino que usan archivos del sistema en zonas especiales (/var/log/ en los UNIX más modernos) o utilizan otros demonios especializados en dicho registro como el syslogd.
Los programas demonio reciben distintas denominaciones según elsistema operativo del que se trate. Así, en MS-DOS reciben el nombre deTSRs. En Windows, en cambio, los demonios son llamados "servicios". En los sistemas operativos del tipo Unix, en particular, suelen tener las siguientes características:
No disponen de una interfaz gráfica y/o visual directa con un humano.
Proporcionan servicios específicos, como el correo electrónico, el servidor de páginas Web o la base de datos a través de conexiones víared.
No hacen uso de la entradas y salidas estándar para comunicar errores y/o registrar su funcionamiento, sino que usan archivos del sistema en zonas especiales (/var/log/ en los UNIX más modernos) o utilizan otros demonios especializados en dicho registro como el syslogd.
Un Demonio es un programa que corre continuamente y existe para el propósito de atender requerimientos periódicos de servicios que un sistema de computo espera recibir. El demonio reenvía los requerimientos a otros programas (o procesos) en la medida en que lo requiera. En el caso de los servidores de páginas Web, éstos tienen un demonio HTTP (HTTPD) cuyo oficio es esperar continuamente a que aparezcan requerimientos de páginas de clientes Web y sus usuarios.