Professional Documents
Culture Documents
Prctica N 3
Semforos
Ing. Ivn Medrano Valencia
1. OBJETIVO.
En la Prctica N 2 se pudo comprobar que cmo dos proceso cooperantes sin hacer
ninguna consideracin de concurrencia lleva a un comportamiento anmalo. Esto llev a la
conclusin de que es necesario algn mecanismo de exclusin mutua: mientras un
proceso est accediendo al recurso compartido hay que impedir que otros procesos
puedan acceder al mismo. El objetivo de esta prctica es lograr la exclusin mutua
utilizando el mecanismo semforo.
2. BASE TEORICA COMPLEMENTARIA
Semforo.
Es una de las primeras herramientas utilizadas para proteger la seccin crtica y lograr la
exclusin mutua, adems sirve para disear protocolos de sincronizacin entre procesos.
Consta de dos operaciones primitivas: P y V
V seala la ocurrencia de un evento (signal)
P se usa para demorar un proceso hasta que ocurra un evento (wait)
Semforos
notify();
}
public void P() throws InterruptedException
{
if(Thread.interrupted()) throw new InterruptedException();
synchronized (this)
{
try
{
while (a_permisos <=0)
wait();
--a_permisos;
}
catch (InterruptedException ie)
{
notifyAll();
throw ie;
}
}
}
}
es equivalente a:
void f()
{
synchronized (this)
{
/* cuerpo del mtodo */
}
}
3. DESARROLLO DE LA PRACTICA.
Seguiremos tomando como problema a resolver el de la Prctica N 2.
Paso 1.- Compilar y ejecutar los siguientes programas.
public class Movimiento extends Thread
{ float a_monto;
CuentaBanco a_cta;
Semaforo a_mutex;
int a_tiempo;
public Movimiento(CuentaBanco p_cta, float p_monto, int p_tiempo,
Semaforo p_mutex)
{
a_cta=p_cta;
a_monto=p_monto;
a_tiempo=p_tiempo;
a_mutex=p_mutex;
}
Semforos
Pregunta 1.- Es ahora correcta la ejecucin del programa, explique por qu?.
Pregunta 2.- Cree varios hilos que abonan y varios que retiran dinero de la cuenta y
verifique si hay consistencia en los datos.
TRABAJO:
Suponer que estamos en una discoteca y resulta que est estropeado el servicio de chicas y
todos tienen que compartir el de chicos. Se pretende establecer un protocolo de entrada al
servicio usando semforos en el que se cumplan las siguientes restricciones:
4. BIBLIOGRAFA.
Doug Lea
Semforos
Deitel y Deitel
Ken Arnold
James Goslin
David Holmes
Milenkovic
http://www.oup-usa.org/docs
http://java.sun.com/
Sun MycroSystems.