Está en la página 1de 3

Los mecanismos de comunicación permiten la transferencia de información entre dos procesos.

• Archivos

• Tuberías (pipes, FIFOS)

• Variables en memoria compartida

• Paso de mensajes

Los mecanismos de sincronización permiten forzar a un proceso a detener su ejecución hasta que
ocurra un evento en otro proceso.

• Construcciones de los lenguajes concurrentes (procesos ligeros)

• Servicios del sistema operativo:

– Señales (asincronismo)

– Tuberías (pipes, FIFOS)

– Semáforos

– Mutex y variables condicionales

– Paso de mensajes

• Las operaciones de sincronización deben ser atómicas

La comunicación entre procesos: necesaria si se desea que varios procesos puedan


colaborar para realizar una misma tarea. Sincronización === funcionamiento
coordinado en la resolución de una tarea encomendada.

El SO ofrece mecanismos básicos de comunicación, que permiten transferir cadenas de


bytes. Deben ser los procesos que se comunican quienes interpreten el significado de
las cadenas transferidas para su labor coordinada.

Los mecanismos de comunicación y sincronización son dinámicos. Es decir, cuando se


necesita un mecanismo de este estilo, se crea, usa y destruye, de forma que no se
establezca de forma definitiva ningún mecanismo de comunicación, ya que ellos
podrían producir efectos indeseados. Es decir, la comunicación es algo puntual.

Los servicios básicos de comunicación son:

a. crear: el proceso solicita la creación del mecanismo


b. enviar o escribir: el proceso emisor envía información al proceso receptor
c. recibir o leer: el proceso receptor recibe información
d. destruir: el proceso solicita la destrucción del mecanismo de comunicación
La comunicación puede ser sincrona y asíncrona:

a. síncrona: los dos procesos han de ejecutar servicios de forma simultánea. El


emisor ha de ejecutar el servicio enviar mientras el receptor ejecuta recibir.
b. asíncrona: el emisor hace el envío y prosigue su ejecución. El SO ofrece un
almacenamiento intermedio para guardar la información enviada, hasta que el
receptor la solicite.

Esquema de Sincronización Sincrona

El interbloqueo, llamado también bloqueo mutuo o deadlock, se define como el bloqueo


permanente de procesos que requieren los servicios de determinados recursos.

Es decir, cuando todos los procesos aseguran algunos recursos pero quedan a la espera de otros,
los cuales han sido asignados a procesos diferentes.

Prevención, detección y predicción del interbloqueo


Las soluciones del interbloqueo se presentan a través de tres estrategias: prevención, detección y
predicción del mismo.

Prevención: se logra a partir del diseño del sistema operativo impidiendo que exclusión mutua,
retención y espera y no apropiación puedan darse.

Detección: aquí el interbloqueo puede presentarse, sin embargo el sistema operativo ejecuta
periódicamente un algoritmo que crea estrategias de recuperación ante la aparición del círculo
vicioso de espera. Las estrategias de recuperación pueden ser abandono, retroceso, abandono
controlado o apropiación total de recursos.

Predicción: se realiza mediante procesos dinámicos que establecen si la petición de un recurso


podrá conducir a interbloqueo. Si bien es cierto la predicción es la estrategia más eficiente ante el
problema de interbloqueo tiene restricciones en el número de procesos y recursos a gestionar, por
la sobrecarga que puede producir en el sistema.

También podría gustarte