Sei sulla pagina 1di 10

Conceptos Analoga Ventajas Desventajas

Conceptos
Un semforo es una variable que toma valores enteros no negativos. Un semforo es una estructura diseada para sincronizar dos o ms procesos, de modo que su ejecucin se realice de forma ordenada y sin conflictos entre ellos. Un semforo bsico es una estructura formada por dos instrucciones, una para reservarlo y otra para liberarlo. A esto se le puede aadir una cola de procesos para recordar el orden en que se hicieron las peticiones.

Funcionamiento
Slo se pueden hacer dos operaciones con un semforo(S): Down (o wait): Si S > 0, decrementa S en 1 Si S = 0, el proceso se suspende hasta que S > 0 Up (o signal): Incrementa S en 1

Analoga

Para que nos sirven los Semaforos


Controlar, permitiendo o restringiendo a los procesos el acceso al recurso compartido Resolver problemas de sincronizacin

Tipos de Semaforos
BINARIO: Un semforo binario es un indicador de condicin (S) que registra si un recurso est disponible o no. Un semforo binario slo puede tomar dos valores: O y 1. Si, para un semforo binario. S=1 entonces el recurso est disponible y la tarea lo puede utilizar; si S=0 el recurso no est disponible y el proceso debe esperar.

GENERALES:

El semforo binario resulta adecuado cuando hay que

proteger un recurso que pueden compartir varios procesos, pero cuando lo que hay que proteger es un conjunto de recursos similares, se puede usar una versin ms general del concepto de semforo que lleve la cuenta del numero de recursos disponibles. En este caso el semforo se inicializa con el nmero total de recursos disponibles (n) y las operaciones de espera y seal se disean de modo que se impida el acceso al recurso protegido por el semforo cuando el valor de ste es igual que cero.

//Para bloquear Down (semaforo){ if semaforo> 0 then semaforo=semaforo-1 else bloquear_el_proceso(); }

//Para liberar Up (semaforo){ if hay_proceso_bloqueado then despertar_el_proceso() else semforo = semforo + 1 }

Ventajas
Sincronizar procesos, de modo que su ejecucin se realice de forma ordenada y sin conflictos entre ellos. Restringir o permitir el acceso a recursos compartidos.

Son componentes de muy bajo nivel de abstraccin, de fcil comprensin y con una gran capacidad funcional.
Resuelven los problemas que presenta la concurrencia.

Desventajas
Es fcil cometer errores. Los semforos son una herramienta debajo nivel, que requiere un uso disciplinado y cuidadoso.

Un solo Down o Up mal colocado puede hacer que el programa funcione incorrectamente. Es mejor usar mecanismos ms abstractos y fiables.

Potrebbero piacerti anche