Sistemas Operativos
Estructuras de lenguaje de programacion
Monitores
Mario Medina (mariomedina@udec.cl)
Caractersticas de un Monitor
Variables locales al monitor no son accesibles por procedimientos externos
Un proceso entra a un monitor invocando a uno de sus
procedimientos
S
olo un proceso puede estar ejecutando en el monitor a la vez
Asegura exclusion mutua
Proteger los datos compartidos insertandolos en un monitor
queue of
entering
processes
monitor waiting area
Variables de condici
on
Entrance
MONITOR
local data
cwait(c1)
condition variables
Procedure 1
condition cn
cwait(cn)
Procedure k
Uso de monitores
Proceso entra a monitor por entrada controlada
Asegura exclusion mutua
urgent queue
csignal
initialization code
Exit
Semaforos
Consumidor
while(true) {
take(x);
consume(x);
}
take(x)
if (count == 0) {
cwait(notEmpty);
}
x = buffer[out];
out = (out + 1) %n;
count;
csignal(notFull);
Monitores de Hoare
Monitores Mesa
add(x)
while (count == n) {
cwait(notFull);
}
buffer[in] = x;
in = (in + 1) %n;
count++;
cnotify(notEmpty);
take(x)
while (count == 0) {
cwait(notEmpty);
}
x = buffer[out];
out = (out + 1) %n;
count;
cnotify(notFull);