SlideShare una empresa de Scribd logo
1 de 8
Semáforos
Giovanny Leal Amaya
Eduar Melo Roa
¿Qué es?
Un semáforo es una variable especial que
constituye una serie de opciones elementales para
poder restringir o garantizar el acceso a los
recursos en un sistema operativo con un entorno
de multiprocesamiento (en el que se ejecutarán
varios procesos concurrentemente). Fueron
inventados por Edsger Dijkstra en 1965 y se
usaron por primera vez en el sistema
operativo THEOS.
• Un semáforo es una estructura diseñada para
sincronizar dos o más
threads o procesos, de modo que su ejecución se
realice de forma
ordenada y sin conflictos entre ellos.
Tipo de semáforos
 Semáforo Contador:
Nos permiten llevar la cuenta del número de
unidades de recurso compartido disponible en
memoria, que va desde 0 hasta N.
• Semáforo de Espera:
Se emplea para forzar que un proceso pase a
estado bloqueado hasta que se cumpla la
condición que le permite ejecutarse. Por lo
general, el contador vale 0 inicialmente, no
obstante, podría tener un valor distinto de cero.
• Semáforo de exclusión mutua:
Inicialmente su contador vale 1 y permite que
haya un único proceso simultáneamente dentro de
la sección crítica.
Ventajas del uso de semáforos
La principal ventaja de los semáforos frente a los
cerrojos es que permiten sincronizar dos o más
procesos de manera que no se desperdician
recursos de CPU realizando comprobaciones
continuadas de la condición que permite
progresar al proceso.
• Desventajas del uso de semáforos
Mal uso por parte de los programadores.
No hay nada que obligue a los programadores a
usarlos.
Los compiladores no ofrecen ningún mecanismo
de comprobación sobre el correcto uso de los
semáforos.
 Son independientes del recurso compartido al
que se asocian.
• El por qué no se pueden usar directamente otras estructuras mas
clásicas, como por ejemplo usar una variable común para decidir si
se
puede o no acceder a un recurso, se debe a que estamos en un
sistema
multitarea: hacer esto implicaría realizar una espera activa
(un bucle, comprobando constantemente si la variable está o no a 0,
y así saber si podemos seguir ejecutando o no). Por otro lado, puede
ocurrir algo mucho peor: supongamos que un proceso comprueba la
variable, y ve que el recurso está libre, por lo que procedería a
cambiar dicha variable de valor y seguir. Pues bien, si justo después
de la comprobacion pero antes de que cambie el valor se conmuta de
tarea (puede pasar, pues el sistema operativo puede hacerlo en
cualquier momento), y el nuevo proceso comprueba la variable,
como
todavía no se ha actualizado, creerá que el recurso está libre,
e intentará tomarlo, haciendo que ambos programas fallen. Lo peor
del caso es que se tratará de un error aleatorio: unas veces fallará
(cuando se produzca cambio de tarea en ese punto) y otras no.
Ejemplo
• Para evitarlo, se idearon los semáforos. Un
semáforo básico es una
estructura formada por una posición de
memoria y dos instrucciones,
una para reservarlo y otra para liberarlo. A esto
se le puede añadir
una cola de threads para recordar el orden en
que se hicieron las
peticiones.

Más contenido relacionado

La actualidad más candente

Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)
Javier Alvarez
 
Sistemas operativos distribuidos.
Sistemas operativos distribuidos.Sistemas operativos distribuidos.
Sistemas operativos distribuidos.
Daniela Velasquez
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
Carlos Solano
 
Administración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosAdministración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueos
jocuva101
 

La actualidad más candente (20)

Sistema operativos distribuidos
Sistema operativos distribuidosSistema operativos distribuidos
Sistema operativos distribuidos
 
BD. control de concurrencia
BD. control de concurrenciaBD. control de concurrencia
BD. control de concurrencia
 
Mecanismo de sincronización de procesos
Mecanismo de sincronización de procesosMecanismo de sincronización de procesos
Mecanismo de sincronización de procesos
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
Thread
ThreadThread
Thread
 
Hilos hebras
Hilos hebrasHilos hebras
Hilos hebras
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Implementación de hilos
Implementación de hilos Implementación de hilos
Implementación de hilos
 
Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)
 
Sistemas operativos distribuidos.
Sistemas operativos distribuidos.Sistemas operativos distribuidos.
Sistemas operativos distribuidos.
 
Niveles De Aislamiento
Niveles De AislamientoNiveles De Aislamiento
Niveles De Aislamiento
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoria
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
 
Origen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesOrigen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redes
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Arquitectura de Bases de Datos Oracle
Arquitectura de Bases de Datos OracleArquitectura de Bases de Datos Oracle
Arquitectura de Bases de Datos Oracle
 
Administración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueosAdministración de transacciones, problemas, candados e interbloqueos
Administración de transacciones, problemas, candados e interbloqueos
 
3.2 manejadores de bases de datos
3.2 manejadores de bases de datos3.2 manejadores de bases de datos
3.2 manejadores de bases de datos
 

Similar a Exposicion semaforos

S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
AcristyM
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
AcristyM
 
Taller interbloqueo
Taller interbloqueo Taller interbloqueo
Taller interbloqueo
Vero Mateus
 

Similar a Exposicion semaforos (20)

Procesos_so
Procesos_soProcesos_so
Procesos_so
 
Funciones de un SO
Funciones de un SOFunciones de un SO
Funciones de un SO
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
 
Vega_NoAnimation.pptx
Vega_NoAnimation.pptxVega_NoAnimation.pptx
Vega_NoAnimation.pptx
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Monitores
MonitoresMonitores
Monitores
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Presentación1
Presentación1Presentación1
Presentación1
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacinto
 
2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativos
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Portafolio 2
Portafolio 2Portafolio 2
Portafolio 2
 
Taller interbloqueo
Taller interbloqueo Taller interbloqueo
Taller interbloqueo
 
Elementos funcionales
Elementos funcionalesElementos funcionales
Elementos funcionales
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 

Último

Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
GuillermoBarquero7
 
2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
EncomiendasElSherpa
 

Último (6)

Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Caso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralCaso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business Central
 
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
 
2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
 
Trabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaTrabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - Ofimática
 

Exposicion semaforos

  • 2. ¿Qué es? Un semáforo es una variable especial que constituye una serie de opciones elementales para poder restringir o garantizar el acceso a los recursos en un sistema operativo con un entorno de multiprocesamiento (en el que se ejecutarán varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra en 1965 y se usaron por primera vez en el sistema operativo THEOS.
  • 3. • Un semáforo es una estructura diseñada para sincronizar dos o más threads o procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos.
  • 4. Tipo de semáforos  Semáforo Contador: Nos permiten llevar la cuenta del número de unidades de recurso compartido disponible en memoria, que va desde 0 hasta N. • Semáforo de Espera: Se emplea para forzar que un proceso pase a estado bloqueado hasta que se cumpla la condición que le permite ejecutarse. Por lo general, el contador vale 0 inicialmente, no obstante, podría tener un valor distinto de cero.
  • 5. • Semáforo de exclusión mutua: Inicialmente su contador vale 1 y permite que haya un único proceso simultáneamente dentro de la sección crítica. Ventajas del uso de semáforos La principal ventaja de los semáforos frente a los cerrojos es que permiten sincronizar dos o más procesos de manera que no se desperdician recursos de CPU realizando comprobaciones continuadas de la condición que permite progresar al proceso.
  • 6. • Desventajas del uso de semáforos Mal uso por parte de los programadores. No hay nada que obligue a los programadores a usarlos. Los compiladores no ofrecen ningún mecanismo de comprobación sobre el correcto uso de los semáforos.  Son independientes del recurso compartido al que se asocian.
  • 7. • El por qué no se pueden usar directamente otras estructuras mas clásicas, como por ejemplo usar una variable común para decidir si se puede o no acceder a un recurso, se debe a que estamos en un sistema multitarea: hacer esto implicaría realizar una espera activa (un bucle, comprobando constantemente si la variable está o no a 0, y así saber si podemos seguir ejecutando o no). Por otro lado, puede ocurrir algo mucho peor: supongamos que un proceso comprueba la variable, y ve que el recurso está libre, por lo que procedería a cambiar dicha variable de valor y seguir. Pues bien, si justo después de la comprobacion pero antes de que cambie el valor se conmuta de tarea (puede pasar, pues el sistema operativo puede hacerlo en cualquier momento), y el nuevo proceso comprueba la variable, como todavía no se ha actualizado, creerá que el recurso está libre, e intentará tomarlo, haciendo que ambos programas fallen. Lo peor del caso es que se tratará de un error aleatorio: unas veces fallará (cuando se produzca cambio de tarea en ese punto) y otras no. Ejemplo
  • 8. • Para evitarlo, se idearon los semáforos. Un semáforo básico es una estructura formada por una posición de memoria y dos instrucciones, una para reservarlo y otra para liberarlo. A esto se le puede añadir una cola de threads para recordar el orden en que se hicieron las peticiones.