Juju

Solo disponible en BuenasTareas
  • Páginas : 4 (863 palabras )
  • Descarga(s) : 0
  • Publicado : 26 de abril de 2011
Leer documento completo
Vista previa del texto
Semáforos
Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso dealmacenamiento del sistema o variables del código fuente) en un entorno de multiprocesamiento (en el que se ejecutarán varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra y seusaron por primera vez en el sistema operativo THEOS.
Semáforos es un algoritmo de control de procesos, que tiene solo dos operaciones básicas, las cuales son:
Wait.- Pregunta a los procesos si sucontador es > ó = que cero, en caso de no ser así, los decremento. El proceso que cambia en este caso a negativo (−1) desde la cola de procesos Listos a ser ejecutados es el que automáticamente toma elcontrol del procesador.
Signal.- A partir de un tiempo t definido por el despachador se ejecuta, y pregunta a los procesos si su contador es < que cero en caso de que sea afirmativa la respuesta,saca a este proceso de su ejecución y depende de su estado.
TIPOS:
- Binarios: Toman solamente los valores 0 ó 1.
- Contadores: Su contenido puede ser mayor de 1.
Usos:
*Para el manejo de las secciones críticas.
* Para el acceso y uso de recursos.
Los semáforos sólo pueden ser manipulados usando las siguientes operaciones (éste es el código con espera activa):Inicia (Semáforo s, Entero v)
{
s = v;
}
En el que se iniciará la variable semáforo s a un valor entero v.
P (Semáforo s)
{
If(s>0)
s = s-1;
Else
Wait ();
}
La cual mantendrá en espera activa al regido por el semáforo si éste tiene un valor inferior o igual al nulo.
V (Semáforo s)
{
If(!procesos bloqueados)
s = s+1;
Else
Signal ();
}
Sección Crítica
Se denomina sección crítica, en programación concurrente, a la porción de código de un programa de computador...
tracking img