lunes, 25 de octubre de 2010

Paso de mensajes, interbloque y concurrencia


Paso de mensajes
Cuando se quiere comunicar y sincronizar procesos que ejecutan en maquinas  distintas es necesario recurrir al paso de mensajes .  En este tipo de comunicación los procesos intercambian mensajes entre ellos.
Utilizando paso de mensajes como mecanismo de comunicación entre procesos no es necesario recurrir a variables compartidas, únicamente debe existir  un enlace de comunicación entre ellos.
Los procesos se comunican mediante dos operaciones básicas:
·         SEND (destino, mensaje): envía un mensaje al proceso destino.
·         RECEIVE (origen, mensaje): recibe un mensaje del proceso origen.

Existen múltiples implementaciones de sistemas con paso de mansajes. A continuación se describen algunos aspectos de diseño  relativos a este tipo de sistemas.

  • Tamaño del mensaje
  • Flujo de datos
  • Nombrado
  • Sincronización
  • Almacenamiento
 
INTERBLOQUEOS
Un ínterbloqueo supone un
bloqueo permanente de un conjunto de procesos que compiten por recursos o bien se
comunican o sincronizan entre sí.
Los interbloqueos que aparecen cuando se utilizan mecanismos de comunicación y
sincronización se deben a un mal uso de los mismos.

CONCURRENCIA
En computación, la concurrencia es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.

Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupándose de forma alternada en uno y otro proceso a pequeñísimos intervalos de tiempo. De esta manera simula que se están ejecutando a la vez.

Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros también en ejecución, el número de caminos de ejecución puede ser extremadamente grande, resultando en un comportamiento sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de programación y conceptos que permitan hacer la concurrencia más manejable.





jueves, 14 de octubre de 2010

CONCURRENCIA

Concurrencia
Un SO multitarea permite que coexistan varios procesos ala vez ejecutando todos ellos de forma concurrente. Existen 3 modelos de computadora en los que se pueden ejecutar procesos concurrentes:
  • Multiprogramación con un solo procesador
  • multiprocesador
  • multicomputadora
Tipos de Procesos Concurrentes
  • Independiente: Es aquel que se ejecuta sin requerir la ayuda o cooperación de otros procesos.
  • Cooperantes: Cuando están diseñados para trabajar conjuntamente.
Exclusión Mutua
Establece que para que se produsca un interbloqueo, los recursos implicados en el mismo deben ser de uso exclusivo. Para asegurar que no se pueda satisfacer esta condición, había que conseguir que todos los recursos del sistema fuera de tipo compartido. Sin embargo, esto no es posible puesto que hay recursos que sin intrínsecamente de caracter exclusivo, por lo tanto esta primera condición no permite definiir estrategias de prebención.


Sincronización
La comunicación de un mensaje entre dos procesos implica cierto nivel de sincronización entre ambos. El receptor no puede recibir un mensaje hasta que sea enviado por otro proceso.

Principios Generales de la Concurrencia
  1. El SO debe seguir alos distintos procesos activos.
  2. El SO debe asignar y retirar los distintos recursos a cada proceso activo, entre los que se incluyen: tiempo de proceso, memoria, archivos y dispositivos E/S
  3. El SO debe proteger los datos y los recursos físiscos de cada proceso contra ingerencias no intensionadas de otros procesos.
  4. Los resultados de un proceso deben ser independientes de la velocidad ala que se realiza la ejecución de dos procesos concurrentes.
Exclusión Mutua:  Por Software
Pueden implementarse soluciones de software para los procesos concurrentes que se ejecutan en máquinas monoprocesador o multiprocesador con memoria principal compartida.
  • Algoritmo de dekker
La solucion se desarrolla en etapas.
  • Algoritmo de peterson
Peterson ha desarrollado una solución simple y elegante. La variable global señal indica la posición de cada proceso con respecto a la exclusión mutua y la variable global turno resuelve los conflictos de simultaniedad.

Exclusión Mutua: Soluciones por Hardware
Para garantizar la exclusión mutua, es suficiente con impedir que un proceso sea interrumpido. Esta capacidad puede ofrecerse en forma de primitivas definidas por el núcleo del sistema para habilitar o inhabilitar las interrupciones.