Indice
Comunicación y Sincronización
Comunicación con datos comunes
Comunicación mediante mensajes
Problemas en la Interacción entre tareas.
Inversión de Prioridad
Protocolos.
Interacción entre tareas
En la mayoría de los sistemas de interés práctico las
tareas interaccionan mediante
datos comunes (protegidos)
mensajes
señales
La interacción puede darse entre tareas con distintas
prioridades.
El acceso a datos comunes debe protegerse.
El uso de mensajes se produce a traves de buzones.
El uso de señales se produce a traves de semáforos
En todos estos casos puede ocurrir que una tarea
tenga que esperar un suceso de otra menos
prioritaria
Comunicación y Sincronización
Raras veces los procesos de un sistema son
independientes unos de otros. Mas a menudo, cooperan
para un fin común o compiten por la utilización de los
recursos.
Para ello, es necesario realizar operaciones de
comunicación y sincronización entre procesos.
Dos procesos se comunican cuando hay una transferencia de
información de uno a otro.
Dos procesos estan sincronizados cuando hay restricciones
en el orden en que se ejecutan sus acciones.
Los dos conceptos estan relacionados.
Hay distintas formas de abordar el problema:
Datos comunes.
Mensajes.
Comunicacion entre procesos mediante Buzones
Coordinacion entre procesos mediante semaforos
Datos en memoria compartida utilizados por varios procesos
Comunicacion con datos comunes
En un sistema monoprocesador, la forma mas directa
de comunicación entre dos o mas procesos consiste
en compartir datos comunes.
El acceso incontrolado a variable comunes
Puede producir resultados anomalos.
Se dice que hay una condicion de carrera cuando
el resultado de la ejecucion depende del orden en
que se intercalan las instrucciones de dos o mas
procesos.
Se trata de una situacion que hay que evitar
Ejemplo:
Incrementar
Contador
LDA contador
INC
STA contador
Incrementar
Contador
LDA contador
INC
STA contador
A
B
Contador = 0
El resultado final puede ser 1 o 2
Depende de las velocidades relativas de los procesos.
Para evitar este problema hay que asegurar que las
Operaciones con variable comunes sean atómicas.
Deben de usarse mecanismos de exclusión mutua (p.ej. Semàforos)
Página siguiente |