martes, 19 de noviembre de 2013

SINCRONIZACION Y COMUNICACION ENTRE PROCESOS

Sincronización y Comunicación entre Procesos

Los procesos es la abstracción de un programa en ejecución se dividen en dos tipos los independientes y los cooperantes, los procesos independientes son aquellos que no necesitan la ayuda de otro proceso pata poderse ejecutar. Los procesos cooperantes son aquellos que están echos para trabajar conjuntamente en alguna actividad.

Independientemente de esto los procesos independientes como los cooperantes tiene que comunicarse de algún modo entre si y estas comunicaciones pueden ser de dos tipos

interacciones motivadas por que los procesos comparten o compiten por el acceso a recursos físicos o lógicos.

interaccion motivada por que los procesos se comunican y sincronizan entre si para alcanzar un objetivo comun por ejemplo un copilador.

Exclusion mutua

los mutexson diseñados para la exclusion y es el mas cencillo. los mutex son una especie de filtros en el cual se pueden ver dos estados:

lock: intenta bloquear el mutex. si el mutex ya esta bloqueado por otro proceso, el proceso que realiza la operacion se bloquea. en caso contrario, se bloquea el mutex si bloquear el proceso.

unlock: desbloquea el mutex. si existen procesos bloqueados en el, se desbloqueara a uno de ellos, que sera el nuevo proceso que quiera el mutex.





En la Figura 4.2.1 se representa de forma gráfica una situación en la que dos procesos ligeros intentan acceder de forma simultánea a ejecutar código de una sección crítica utilizando un mutex para protegerla.

Una variable condicional es una variable de sincronización asociada a un mutex que se utiliza para bloquear a un proceso hasta que ocurra algún suceso. Las variables condicionales tienen dos operaciones atómicas para esperar y señalizar:


c_wait: bloquea al proceso que ejecuta la llamada y le expulsa del mutex dentro del cual se ejecuta y al que está asociado la variable condicional, permitiendo que algún otro proceso adquiera el mutex. El bloqueo del proceso y la liberación del mutex se realiza de forma atómica.

 c_signal: desbloquea a uno o varios procesos suspendidos en la variable condicional. El proceso que se despierta compite de nuevo por el mutex.

Definiciones de Dijkstra:
Algoritmo empleado en la obtención de la trayectoria más corta en grafos. Llamado así por su creador EdsgerWybeDijkstra, holandés nacido en 1930.

Condición de carrera:
Es una expresión usada en electrónica y en programación para Sistemas Operativos con capacidad de multiprocesamiento.

semaforo

Un semáforo es una estructura diseñada para sincronizar dos o más threads o procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos.

VER MAS

0 comentarios: