COMUNICACION Y SINCRONIZACION ENTRE PROCESOS EN UN SISTEMA OPERATIVO
Los sistemas se clasifican en dos tipos de procesos, mencionados acontinuacion:
El independiente siendo aquel que no requiere de ninguna ayuda o cooperacion
El cooperante conocido como el proceso que trabaja e interactua con otros
ELEMENTOS
CONDICIONES DE CARRERA
REGIONES CRITICAS
EXCLUSION MUTUA CON ESPERA OCUPADA
DORMIR Y DESPERTAR
SEMAFORO
MONITORES
TRANSMISION DE MENSAJES
BARRERAS
Son cuando la salida de un proceso depende de la secuencia de eventos que se ejecutan en orden arbitrario y trabajan en un mismo recurso puede que adquieran un error cuando los eventos no llegan como lo programado
Es cuando se tiene acceso a un recurso compartido
La clave para evitar problemas es prohibir que mas de un proceso lea o escriba datos compartidos simultaneamente, por ello, solo se es necesario que solo un proceso utilice la variable compartido
SE NECESITAN 4 CONDICIONES
Dos procesos no deben encontrarsen al mismo tiempo
No se deben hacer hipotesis sobre la verdad
Ningun proceso que este en ejecucion puede bloquear a otros procesos
Ningun proceso espera cierto tiempo para entrar a su seccion critica
Evita que entre mas de un proceso a la vez en la seccion critica
La seccion critica es aquella donde el fragmento de codigo puede modificar a un recurso compartido como las señales, las colas, entre otros
SLEEP
WAKEUP
En el sistema, hace que el proceso se bloquee hasta que otro otro proceso lo despierte
Es un proceso que tiene un parametro de que el proceso se activara
Variable especial que permite o restringue el acceso a recursos compartidos en un sistema multiprocesal
Es la estructura de datos destinada a ser usada sin peligro por mas de un hilo de ejecucion
En algunos de los usos de los semaforos se percibe las funciones necesarias quedan repartidos en el codigo del programa asegurando el buen funcionamiento de los algoritmos
Fue definido por primera vez por Charles Antony Richard en 1974
Tiene diferentes tipos de lenguaje de programacion como Pascal concurrente, Modula-2, Modula-3 y Java
SEND
RECEIVE
Envia un mensaje a un destino
Recibe un mensaje de una fuente
SENDREC
Envia un mensaje a un destino y recoge la respuesta
3 FORMAS DE TRANSMISIONES
Al invocar al receptor recv, el mensaje se copia del espacio de memoria del emisor al receptor
Tiene un coste lineal, al invocar el send de un mensaje, este copia del emisor al buzon, es decir, a la memoria del sistema
Cuando se invoca un receive, se copia el mensaje a la memoria, donde fue previamente autorizado para almacenarse
Esta destinados a los grupos de procesos y tiene la regla de que ningun proceso puede continuar la siguiente fase solo hasta que los otros tambien esten listos de ello
Al final, se coloca una barrera terminada cada fase