Material 2019D1 COM330 01 119247
Material 2019D1 COM330 01 119247
Material 2019D1 COM330 01 119247
Sección crítica
Es la parte del programa con un comienzo y un final
claramente marcados que generalmente contiene la
actualización de una o más variables compartidas.
Competencia entre procesos por los recursos
• Los procesos concurrentes entran en conflicto cuando compiten por
el uso del mismo recurso; dos o má s procesos necesitan acceder a un
recurso durante su ejecució n .Cada proceso debe dejar tal y como
esté el estado del recurso que utilice.
• La ejecució n de un proceso puede influir en el comportamiento de los
procesos que compiten. Por Ej. Si dos procesos desean acceder a un
recurso, el sistema operativo le asignará el recurso a uno y el otro tendrá
que esperar.
• Cuando hay procesos en competencia, se deben solucionar tres
problemas de control: la necesidad de exclusió n mutua.
• Suponiendo que dos procesos quieren acceder a un recurso no
compartible. A estos recursos se les llama “recursos críticos” y la
parte del programa que los utiliza es la “secció n crítica” del
programa. Es importante que só lo un programa pueda acceder a su
secció n crítica en un momento dado.
• Hacer que se cumpla la exclusió n mutua provoca un interbloqueo.
• Sólo un proceso, de todos los que poseen secciones críticas por el mismo
recurso compartido, debe tener permiso para entrar en ella en un
momento dado. Un proceso que se interrumpe en una secció n no crítica
debe hacerlo sin interferir con los otros procesos. Un proceso no debe
poder solicitar acceso a una secció n crítica para despué s ser demorado
indefinidamente, no puede permitirse el interbloqueo o la inanició n.
• Si ningú n proceso está en su secció n crítica, cualquier proceso que
solicite entrar en la suya debe poder hacerlo sin demora. No se debe
suponer sobre la velocidad relativa de los procesos o el nú mero de
procesadores.
• Un proceso permanece en su secció n crítica por un tiempo finito. Una
manera de satisfacer los requisitos de exclusió n mutua es dejar la
responsabilidad a los procesos que deseen ejecutar
concurrentemente.
• Tanto si son programas del sistema como de aplicació n, los procesos
deben coordinarse unos con otros para cumplir la exclusió n mutua, sin
ayuda del lenguaje de programació n o del sistema operativo.
Exclusión mutua
• Consiste en que un solo proceso excluye temporalmente a todos los
demá s para usar un recurso compartido de forma que garantice la
integridad del sistema
• Los algoritmos de exclusió n mutua se usan en programació n para evitar
que fragmentos de có digo conocidos como secciones críticas sean
accedidas al mismo tiempo a recursos que no deben ser compartidos
• La té cnica que se emplea para conseguir la exclusió n mutua es inhabilitar
las interrupciones durante el conjunto de instrucciones má s pequeñ o que
impedirá la corrupció n de la estructura compartida
• La mayoría de los mé todos de exclusió n mutua clá sicos intentan reducir
la espera activa mediante las colas y cambios de contexto
• Algunos investigadores afirman que las pruebas indican que estos
algoritmos especiales pierden má s tiempo del que ahorran
• Algunos ejemplos de soluciones por software y hardware son los
algoritmos clá sicos de exclusió n mutua:
1. El algoritmo de
Dekker
2. El algoritmo de
Peterson
Semáforos
Un semáforo es un algoritmo de control de procesos diseñada
para sincronizar dos o más procesos, de modo que su ejecución
se realice de forma ordenada y sin conflictos entre ellos.
Los semá foros pueden ser usados para diferentes propó sitos, entre
ellos:
• Implementar cierres de exclusió n mutua o locks.
• Eliminar Barreras
• Permitir a un má ximo de N threads, acceder a
un recurso, inicializando el semá foro en N.
Se utilizan dos variables comunes para realizar el có digo.
La operació n P Se denomina "wait" o "espera"
Wait.- Pregunta a los procesos si su contador es > ó = que cero, en
caso de no ser así, los decrementa. 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 el control del procesador.
La operació n V se denomina "signal" o "señ al".
• Mantenimiento má s simple.
Menos errores de
programació n.
Monitores
• La interfaz del monitor es un conjunto de funciones que
representan las diferentes operaciones que pueden hacerse con
el recurso.
• La implementació n del monitor garantiza la exclusió n
mutua: Mediante semá foros o algú n otro mecanismo.
• Implícitamente en los lenguajes
concurrentes Monitor residente
• Son programas que residían en memoria y que gestionaban
la ejecució n de una cola de trabajos.
• Un monitor residente estaba compuesto por un cargador, un
Inté rprete de comandos y un Controlador (drivers) para el
manejo de entrada/salida.