Está en la página 1de 6

República Bolivariana de Venezuela

Ministerio del poder popular para la educación universitaria,


ciencia y tecnología
Universidad pedagógica experimental Libertador
Instituto pedagógico de Maracay
"Rafael Alberto Escobar Lara"
Maracay - Estado Bolivariano de Aragua
Especialidad informática
Catedra Sistemas operativos

Sincronización de procesos.

Autor:
José Angel Pérez León CIV-15119223
E-mail: joseleo1980@gmail.com
TlF: 0414-490.98.37

Profesor:
Prof. Edgar Sojo

Maracay, agosto 2021


SINCRONIZACIÓN Y CONTROL DE PROCESOS

1. Exclusión mutua:

Este término se usa para describir los momentos en que múltiples procesos
o hilos comparten código, recursos o datos de forma de que solo uno de ellos
tenga acceso al objeto compartido en cada momento y se logra impidiendo a
cualquier proceso que realice una acción mientras se le haya permitido a otro.

Con el fin de que se eviten conflictos, interbloqueo e inducir exclusiones


mutuas, se crea la sincronización de procesos para que múltiples procesos
coordinen sus actividades para intercambiar información, de manera que solo un
proceso al mismo tiempo puede ejecutar determinado código o acceder a
determinados datos, y para conseguirlo se usa el algoritmo de Dekker como una
solución de software para la exclusión mutua.

Entre las características que se deben presentar para que se suscite una
exclusión mutua están:

• Que solo se permite un proceso dentro de su sección critica para el


uso de un recurso compartido.
• Un proceso que se pare en su sección critica no debe interferir con
otro proceso.
• Un proceso solicitando una sección critica, no debe ser postergado
indefinidamente.
• Cuando una sección crítica esté libre de uso o procesos, debe
conceder acceso a cualquier proceso que lo solicite sin demora.
• Las velocidades relativas de los procesos y el número de
procesadores son variables siempre.
• Un proceso permanece dentro de su sección critica durante un tiempo
finito, siempre.
2. Semáforos:

Como su nombre lo indica, se trata de un algoritmo cuyo objetivo es


lograr que entre dos o más procesos pueda existir cooperación por medio de
simples señales que obliguen a los procesos a detenerse en un lugar
específico hasta que se le indique. Estas señales llamadas semáforos, son
variables que ejecutaran los procesos, siendo “semSignal(s)” para transmitir
y “semWait(S)” para recibir.

Existen dos tipos: semáforo general o con contador, y el semáforo


binario o mutex que, en lugar de usar un contador, solo toma dos estados o
valores, 0 o 1.

3. Problemas clásicos de sincronización de procesos concurrentes:

• El problema de productor/consumidor: Este problema se presenta


cuando hay uno más procesos generando datos para un buffer, y hay
un único consumidor que está extrayendo esos datos desde ese
buffer, entonces el sistema está obligado a evitar la superposición de
las operaciones sobre los datos, ya que solo un agente consumidor o
productor, puede acceder al buffer en un momento dado.
Soluciones, 1-Introducir una variable auxiliar que pueda
establecerse dentro de la sección critica del consumidor para su uso
posterior. 2-Implementar el uso de semáforos generales para llevar el
control de los momentos vacíos o en desuso de la transmisión de
datos.
• Al usar semáforos mediante algoritmos de dekker o Peterson, por
ejemplo, se tiende a sobrecargar el sistema, por tanto, una de las
soluciones es hacer una implementación de hardware para lograr la
exclusión mutua.
4. Monitores:

El monitor es una construcción del lenguaje de programación que


proporciona una funcionalidad equivalente a la de los semáforos, pero es más
fácil de controlar.

a) Versión de monitor con señal: un monitor es un modulo de software que


consiste en uno o mas procedimientos, una secuencia de inicialización y
datos locales. Características:
• Las variables locales de datos solo son accesibles por los
procedimientos del monitor.
• Un proceso entra en el monitor invocando uno de sus procedimientos.
• Solo un proceso a la vez podrá ejecutarse dentro del monitor.
b) Versión de monitor con notificación y difusión: un monitor requiere que, si hay
al menos en una cola de una condición, “un proceso de dicha cola se ejecuta
inmediatamente cuando otro proceso retome la ejecución de algún proceso
bloqueado por esa condición”. El proceso en la cola de la condición será
retomado en un momento futuro conveniente, cuando el monitor este
disponible, pero como no hay garantía de que algún otro proceso entre en el
monitor antes que, en el proceso notificado, el proceso notificado deberá
volver a comprobar la condición.
5. Paso de mensajes:

Cuando los procesos interaccionan entre sí, deben satisfacerse dos


requisitos fundamentales: sincronización y comunicación. Los procesos
necesitan ser sincronizados para conseguir exclusión mutua; los procesos
cooperantes pueden necesitar intercambiar información. Un enfoque que
proporciona ambas funciones es el paso de mensajes.
El paso de mensajes tiene la ventaja añadida de que se presta a ser
implementado tanto en sistemas distribuidos como en multiprocesadores de
memoria compartida y sistemas monoprocesador.
Para que los procesos puedan entablar el paso de mensajes, deben
usar dos operaciones como mínimo: “Send(destino, mensaje)” y
“Recive(origen, mensaje)”.
El formato general del mensaje debe ser como se ilustra a
continuación:

•Tipo de mensaje
•ID de destino
•ID de origen
Cabecera •Longitud del mensaje
•Informacion del control

• Contenido de mensajes
Cuerpo

En el paso de mensajes se logra exclusión mutua pues, cuando hay


un mensaje, se le entregara solo a uno de los procesos y los otros se
bloquearán, o en otro caso, si la cola de mensajes esta vacía, todos los
procesos se bloquearan y cuando haya un mensaje disponible, solo uno de
los procesos se activará y tomara el mensaje.
REFERENCIAS BIBLIOGRAFICAS:

• Stallings, W. Sistemas operativos. Aspectos internos y principios de diseño.


NJ: Prentice Hall, 2005.

También podría gustarte