Semaforos
por Giovanni Olivier Santiago
1. Son tipos de datos compuestos por dos tipos de datos
1.1. 1.-Un contador que siempre su valor es igual o mayor a cero 2.-Una lista de procesos inicialmente vacia
2. Se constituyen por dos metodos elementales
2.1. 1.-Wait ( ) - Denominado por P
2.2. 2.- Signal ( ) - Denomiado por V
3. Existen distintos tipos de semaforos dependiendo del numero de recursos a gestionar
3.1. 1.- Semaforo Contador: Gestiona mas de un recurso
3.2. 2.- Semaforo Binario: Gestiona un solo recurso
3.3. 3.- Semaforo de Exclusion Mutua: Permite que haya un unico proceso simultaneamente dentro de la seccion critica
3.4. 4.- Semaforo de Espera: Se emplea para forzar que un proceso a estado bloqueado hasta que se cumpla la condicion que le permita ejecutarse
4. Ventajas
4.1. Son faciles de implementar
4.2. Restringen o permiten el acceso a recursos
4.3. Se puede ocupar con cualquier numero de recursos
5. Sirve para restringir o dar acceso a recursos compartidos
5.1. Fueron inventados por Edsger Dijkstra en 1965
5.2. Son mecanismos de sincronizacion, ayudan a la ejecucion de dos o mas procesos
6. Metodos o Procesos
6.1. Inicializacion Inicia (Semaforo s, Entero r) { s=r; }
6.1.1. La variable s toma el valor de r, en el que r es el numero de recursos a gestionar
6.2. Espera Wait ( ) - P P(Semaforo s){ { if(s>0) s = s-1; else wait(); }
6.2.1. Si s>0, entonces s tomara el valor s-1 si no se llamara al proceso wait
6.3. Señal Signal ( ) - V V(Semáforo s) { if(!procesos_bloqueados) s = s+1; else signal(); }
6.3.1. SI no existen proceso bloqueados s se le asignara el valor de s+1, si no llamaremos a signal