condición de espera ocupada

5
Condición de Espera Ocupada Esta condición consiste en que un proceso pide un recurso que ya está asignado a otro proceso y la condición de no apropiación 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 ejecución en esperar. La solución más común a este problema consiste en que el sistema operativo se dé cuenta de esta situación y mande a una cola de espera al proceso, otorgándole inmediatamente el turno de ejecución a otro proceso. Condición de Exclusión Mutua Cuando un proceso usa un recurso del sistema realiza una serie de operaciones sobre el recurso y después lo deja de usar. A la sección de código que usa ese recurso se le llama región crítica. La condición de exclusión mutua establece que solamente se permite a un proceso estar dentro de la misma región crítica. Esto es, que en cualquier momento solamente un proceso puede usar un recurso a la vez. Para lograr la exclusión mutua se ideo también el concepto de región crítica. Para logar la exclusión mutua generalmente se usan algunas técnicas para lograr entrar a la región crítica: semáforos, monitores, el algoritmo de Dekker y Peterson, los candados. Condición 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.

Upload: brenda-luz-trujillo-andino

Post on 07-Dec-2015

214 views

Category:

Documents


2 download

DESCRIPTION

Planificacion de procesos

TRANSCRIPT

Page 1: Condición de Espera Ocupada

Condición de Espera Ocupada

Esta condición consiste en que un proceso pide un recurso que ya está asignado a otro proceso y la condición de no apropiación 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 ejecución en esperar. La solución más común a este problema consiste en que el sistema operativo se dé cuenta de esta situación y mande a una cola de espera al proceso, otorgándole inmediatamente el turno de ejecución a otro proceso.

Condición de Exclusión Mutua

Cuando un proceso usa un recurso del sistema realiza una serie de operaciones sobre el recurso y después lo deja de usar. A la sección de código que usa ese recurso se le llama región crítica. La condición de exclusión mutua establece que solamente se permite a un proceso estar dentro de la misma región crítica. Esto es, que en cualquier momento solamente un proceso puede usar un recurso a la vez. Para lograr la exclusión mutua se ideo también el concepto de región crítica. Para logar la exclusión mutua generalmente se usan algunas técnicas para lograr entrar a la región crítica: semáforos, monitores, el algoritmo de Dekker y Peterson, los candados.

Condición 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 más serio que se puede presentar en un ambiente de concurrencia es el abrazo mortal, también llamado trabazón y en inglés deadlock. El deadlock es una condición que ningún sistema o conjunto de procesos quisiera exhibir, ya que consiste en que se presentan al mismo tiempo cuatro condiciones necesarias: La condición de no apropiación, la condición de espera circular, la condición de exclusión mutua y la condición 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 quedarán congelados para siempre.

Page 2: Condición de Espera Ocupada

En el área de la informática, el problema del deadlock ha provocado y producido una serie de estudios y técnicas muy útiles, ya que éste puede surgir en una sola máquina o como consecuencia de compartir recursos en una red.

En el área de las bases de datos y sistemas distribuidos han surgido técnicas como el two phase locking y el two phase commit que van más allá de este trabajo. Sin embargo, el interés principal sobre este problema se centra en generar técnicas para detectar, prevenir o corregir el deadlock.

Las técnicas 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 filósofos

El problema fue planteado en 1965 por Edgar W. Dijkstra en relación a un conflicto en el acceso a un recurso compartido: Dispositivo de red, unidad de disco.

Cinco filósofos pasan la vida pensando y comiendo• Cuando un filósofo piensa, no interactúa 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 inanición

Primera Solución

• Representar cada palillo con un semáforo • Un filósofo trata de tomar un palillo ejecutando una operación espera con ese semáforo, y suelta sus palillos ejecutando la operación señal con los semáforos apropiados.

var palillo: array [0..4] of semáforo;

• Inicialmente todos los elementos de palillo están en 1

Primera Solución

Page 3: Condición de Espera Ocupada

• Garantiza que dos vecinos no estarán comiendo simultáneamente • Posibilidad de bloqueo mutuo •Suponga que los cinco filósofos sienten hambre simultáneamente y cada uno toma su palillo izquierdo

Posibles soluciones al problema de bloqueos

Permitir que como máximo filósofos se sienten a la mesa cuatro filósofos

Sólo permitir que un filósofo tome sus palillos si ambos están disponibles ( dentro de la sección crítica )

Solución asimétrica è Un filósofo impar toma primero su palillo izquierdo y luego el derecho, mientras que un filósofo par toma primero su palillo derecho y luego el izquierdo.

Cualquier solución satisfactoria deberá evitar la posibilidad que uno de los filósofos muera de hambre.

Una solución libre de bloqueos mutuos no elimina necesariamente la posibilidad de inanición

Solución por monitores

Distinguir entre los tres estados en los que podría estar un filósofo è Pensando, hambriento y comiendo

Definir el estado del mismo filósofo

Page 4: Condición de Espera Ocupada

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

• Sólo se permite que un escritor tenga acceso al objeto al mismo tiempo. •Mientras el escritor esté accediendo al objeto, ningún otro proceso lector ni escritor podrá acceder a él.• Se permite que múltiples 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 ningún 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, ningún otro lector puede comenzar a leer.

Sol/ Definir prioridades a lectores y escritores

Utilizado para probrar las primitivas de sincronización nueva