Mecanismos de exclusión mutua

Share Button

Funciones Del sistema operativo:

Un sistema Informático busca una ejecución fluida, rápida, buen tiempo de respuesta Aceptable, que sea eficiente, diseño fácil de entender

§Diseño (comodidad)

§Eficiencia

§Seguridad

§Compatibilidad

§Capacidad de evolución

  • Ejecutando:


     El proceso está actualmente en ejecución.

  • Listo:

     Un proceso que Se prepara para ejecutar cuando tenga oportunidad.

  • Bloqueado:

     Un Proceso que no puede ejecutar hasta que se cumpla un evento determinado o Se complete una operación E/S.

  • Nuevo:

     Un proceso que Se acaba de crear y que aún no ha sido admitido en el grupo de procesos Ejecutables por el sistema operativo. Suele ser un proceso que aún no se Ha cargado en memoria principal aunque su BCP sí ha sido creado.

  • Terminado:

     Un Proceso que ha sido liberado del grupo de procesos ejecutables por el Sistema operativo, debido a que ha sido detenido o que ha sido abortado Por alguna razón.

Estos son los Tipos de eventos que llevan a cada transición de estado para cada proceso:

§Null -> Nuevo:
 Se crea un proceso nuevo para ejecutar un programa.

§Nuevo -> Listo:
 El sistema operativo mueve a un proceso del Estado Nuevo al estado Listo cuando éste se encuentre preparado para ejecutar Un nuevo proceso. La mayoría de sistemas fijan un límite basado en el número de Procesos existentes o en la cantidad de memoria virtual que se podrá utilizar Por parte de los procesos existentes. Este límite garantiza que no haya Demasiados procesos activos y que se degrade el rendimiento del sistema.

§Listo -> Ejecutando:
 Cuando llega el momento de seleccionar un Nuevo proceso para ejecutar, el sistema operativo selecciona uno de los Procesos que se encuentren en estado Listo. Esta tarea la realiza el Planificador.

§Ejecutando -> Saliente:
 El proceso que actualmente está en ejecución Se finaliza por parte del sistema operativo, tanto si ha finalizado su Ejecución o si ha sido abortado por algún motivo.

§Ejecutando -> Listo:
 Esta transición se suele producir cuando el Proceso que está en ejecución ha alcanzado el máximo tiempo posible de Ejecución de forma ininterrumpida. Prácticamente todos los sistemas Multiprogramados imponen este tipo de restricción de tiempo.

§Ejecutando -> Bloqueado:
 Un proceso se pone en estado Bloqueado si Solicita algo por lo que debe esperar. Pueden ser muchos los motivos de esta Transición: solicitar una operación de E/S, solicitar una sección de memoria Compartida que no está inmediatamente disponible, comunicarse con otro proceso Y bloquearse hasta que el otro proceso le proporcione los datos solicitados, Etc.

§Bloqueado -> Listo:
 Un proceso en estado Bloqueado se mueve a Listo cuando sucede el evento por el cual esperaba.

§Listo -> Saliente:
 Para simplificar, esta transición no se Muestra en la imagen del modelo de cinco estados. Un padre puede terminar la Ejecución de un proceso hijo en cualquier momento. De igual manera, si el padre Termina, todos los procesos hijos asociados al padre pueden finalizarse.

§Bloqueado -> Saliente:
 Igual que el caso anterior.

Concurrencia:

Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.

Paralelismo:

Caso particular de concurrencia.
Necesidad de sincronización y comunicación. • Comunicación:
Necesidad de transmisión de información entre procesos concurrentes. • Sincronización:
Necesidad de que las ejecuciones de los procesos concurrentes se produzcan Según una secuenciación temporal, conocida y establecida entre los propios Procesos.

Exclusión mutua:


Para que el acceso a ciertos recursos sea exclusivo de un proceso cada vez. A La parte del programa que los utiliza se le llama sección crítica.

Sección crítica:


• Cada proceso tiene un segmento de código llamado sección crítica. • No está Permitido que más de un proceso estén simultáneamente en su sección crítica. • Un protocolo rige la forma de entrar y salir de la sección crítica.

Interbloqueo e inanición:


Hacer que se Cumpla la exclusión mutua puede dar lugar a dos problemas adicionales: • Interbloqueo:
Considera dos procesos y dos recursos. Supón que cada proceso necesita acceder A ambos recursos para llevar a cabo una parte de su función. Puede suceder que El sistema operativo asigne R1 a P1 y R2 a P2. Cada proceso está esperando uno De los dos recursos. Ninguno liberará el recurso que posee hasta que adquiera El otro y realice su tarea. • Inanición:
Supón tres procesos que acceden Periódicamente a un recurso. Considera que P1 posee el recurso y que P2 y P3 Están esperando. Cuando P1 haya ejecutado su sección crítica tanto P2 como P3 Podrán solicitar el recurso. Supón que le le concede el acceso a P3 y que, Antes de que termine su sección crítica, P1 solicita acceso de nuevo y así Sucesivamente, se puede llegar a una situación en la que P2 nunca accede al Recurso

Algoritmo de Dekker Intentos:


1.Diseñados para poder pasar el Control de ejecución entre ellos, no es una técnica apropiada para dar soporte Al procesamiento concurrente. Cuando hay diferencias grandes de velocidad es el Proceso más lento el que marca el ritmo.

2.Verifico la sección crítica del Otro proceso y coloco una señal al entrar y salir en su sección crítica

3.Una vez que un proceso ha puesto Su señal en cierto, el otro no puede entrar a su sección crítica hasta que el Primero salga de ella. Se garantiza la EM, sin embargo, se generará interbloqueo si ambos procesos ponen su señal a cierto antes de ambos hayan ejecutado El while. Además, si un proceso falla en su sección crítica, el otro queda bloqueado permanentemente.

4.El interbloqueo se había originado Porque cada proceso establecía su señal sin conocer el estado del otro proceso. Para solucionarlo haremos que los procesos activen y desactiven su seña

Solución final combinación entre: • Primer Intento, donde se usa la variable turno (ahora usamos turno para indicar quien Tiene prioridad para entrar a su sección crítica). • Cuarto intento.

Algoritmo de Peterson: Más simple que el de Dekker, garantiza la Exclusión mutua: • Cada proceso tiene un turno para entrar en la sección Crítica. • Si un proceso desea entrar en la sección crítica, debe activar su Señal y puede que tenga que esperar a que llegue su turno. Impide el interbloqueo ya Que si un proceso se encuentra esperando en el “while”, entonces la señal y el Turno del otro proceso están activadas. El proceso que está esperando entrará En su sección crítica cuando la señal o el turno del otro se desactiven.

Share Button

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.