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:
Publicar un comentario