Está en la página 1de 4

Condicin de Espera Ocupada

Esta condicin consiste en que un proceso pide un recurso que ya est


asignado a otro proceso y la condicin de no apropiacin se debe
cumplir. Entonces el proceso estar gastando el resto de su time
slice checando si el recurso fue liberado. Es decir, desperdicia su
tiempo de ejecucin en esperar. La solucin ms comn a este
problema consiste en que el sistema operativo se d cuenta de
esta situacin y mande a una cola de espera al proceso,
otorgndole inmediatamente el turno de ejecucin a otro proceso.
Condicin de Exclusin Mutua
Cuando un proceso usa un recurso del sistema realiza una serie de
operaciones sobre el recurso y despus lo deja de usar. A la
seccin de cdigo que usa ese recurso se le llama regin crtica. La
condicin de exclusin mutua establece que solamente se permite
a un proceso estar dentro de la misma regin crtica. Esto es, que
en cualquier momento solamente un proceso puede usar un
recurso a la vez. Para lograr la exclusin mutua se ideo tambin el
concepto de regin crtica. Para logar la exclusin mutua
generalmente se usan algunas tcnicas para lograr entrar a la
regin crtica: semforos, monitores, el algoritmo de Dekker y
Peterson, los candados.
Condicin de Ocupar y Esperar un Recurso
Consiste en que un proceso pide un recurso y se le asigna. Antes de
soltarlo, pide otro recurso que otro proceso ya tiene asignado.
Los problemas descritos son todos importantes para el sistema
operativo, ya que debe ser capaz de prevenir o corregirlos. Tal vez
el problema ms serio que se puede presentar en un ambiente de
concurrencia es el abrazo mortal, tambin llamado trabazn y en
ingls deadlock. El deadlock es una condicin que ningn sistema
o conjunto de procesos quisiera exhibir, ya que consiste en que se
presentan al mismo tiempo cuatro condiciones necesarias: La
condicin de no apropiacin, la condicin de espera circular, la
condicin de exclusin mutua y la condicin de ocupar y esperar
un recurso. Ante esto, si el deadlock involucra a todos los procesos

del sistema, el sistema ya no podr hacer algo productivo. Si el


deadlock involucra algunos procesos, stos quedarn congelados
para siempre.
En el rea de la informtica, el problema del deadlock ha provocado y
producido una serie de estudios y tcnicas muy tiles, ya que ste
puede surgir en una sola mquina o como consecuencia de
compartir recursos en una red.
En el rea de las bases de datos y sistemas distribuidos han surgido
tcnicas como el two phase locking y el two phase commit que van
ms all de este trabajo. Sin embargo, el inters principal sobre
este problema se centra en generar tcnicas para detectar,
prevenir o corregir el deadlock.
Las tcnicas para prevenir el deadlock consisten en proveer mecanismos
para evitar que se presente una o varias de las cuatro condiciones
necesarias del deadlock. Algunas de ellas son:

Asignar recursos en orden lineal


Asignar todo o nada
Algoritmo del banquero

El problema de la cena de los filsofos


El problema fue planteado en 1965 por Edgar W. Dijkstra en relacin a un
conflicto en el acceso a un recurso compartido: Dispositivo de red,
unidad de disco.
Cinco filsofos pasan la vida pensando y comiendo
Cuando un filsofo piensa, no interacta con sus colegas .
Cuando tiene hambre, toma los dos palillos al mismo tiempo y
come sin soltarlos.
Cuando termina de comer, coloca los dos palillos sobre la mesa y
comienza a pensar.
Necesidad de asignar varios recursos entre varios procesos sin que
haya bloqueos mutuos ni inanicin
Primera Solucin

Representar cada palillo con un semforo Un filsofo trata de tomar


un palillo ejecutando una operacin espera con ese semforo, y
suelta sus palillos ejecutando la operacin seal con los semforos
apropiados.
var palillo: array [0..4] of semforo;
Inicialmente todos los elementos de palillo estn en 1
Primera Solucin
Garantiza que dos vecinos no estarn comiendo simultneamente
Posibilidad de bloqueo mutuo Suponga que los cinco filsofos
sienten hambre simultneamente y cada uno toma su palillo
izquierdo
Posibles soluciones al problema de bloqueos
Permitir que como mximo filsofos se sienten a la mesa cuatro filsofos
Slo permitir que un filsofo tome sus palillos si ambos estn disponibles
( dentro de la seccin crtica )
Solucin asimtrica Un filsofo impar toma primero su palillo izquierdo
y luego el derecho, mientras que un filsofo par toma primero su
palillo derecho y luego el izquierdo.
Cualquier solucin satisfactoria deber evitar la posibilidad que uno de
los filsofos muera de hambre.
Una solucin libre de bloqueos mutuos no elimina necesariamente la
posibilidad de inanicin
Solucin por monitores
Distinguir entre los tres estados en los que podra estar un filsofo
Pensando, hambriento y comiendo
Definir el estado del mismo filsofo

Existe un determinado objeto que se va a ser utilizado y compartido por


una serie de procesos concurrentes.
Un objeto se va a compartir entre varios usuarios, algunos solo quieren
leer el contenido ( lectores ), otros quieren actualizarlo (escritores)
Restricciones
Slo se permite que un escritor tenga acceso al objeto al mismo
tiempo. Mientras el escritor est accediendo al objeto, ningn
otro proceso lector ni escritor podr acceder a l.
Se permite que mltiples lectores tengan acceso al objeto, ya
que ellos nunca van a modificar el contenido del mismo
Un objeto se va a compartir entre varios usuarios, algunos solo quieren
leer el contenido ( lectores ), otros quieren actualizarlo (escritores)
Primer Problema : No se debe tener a ningn lector en espera a menos
que el escritor tenga el permiso del uso del objeto
Segundo Problema : Si un escritor est esperando acceder al objeto,
ningn otro lector puede comenzar a leer.
Sol/ Definir prioridades a lectores y escritores
Utilizado para probrar las primitivas de sincronizacin nueva

También podría gustarte