Está en la página 1de 15

Principios de la concurrencia

1. Es la insistencia de los procesos hacia los recursos.


2. La concurrencia es fundamental en todas estas áreas y
para el diseño sistemas operativos.
3. Comprende un gran numero de cuestiones de diseño
incluida la comunicación entre procesos.
Exclusión mutua soporte de hardware

Exclusión mutua

Es cuando un proceso excluye temporalmente a todos los


demás para usar un recurso compartido
Interacción de procesos

1. Los procesos no tienen conocimiento de los demás


2. los procesos tienen un conocimiento indirecto de los otros:
3. los procesos tienen conocimiento directo de los otros:
Deshabilitar Interrupciones

Este mecanismos primitivo y solo valido en sistemas


monoprocesador
1. Cumple con el requisito de portabilidad
2. Deshabilitar las interrupciones en un procesador no evita
que en otro se ejecute la sección critica.

Protocolo:
Cli: entrada deshabilitar interrupciones .
Sti: salida volver habilitar interrupciones.
Algoritmo de Dekker
Código de Programa
Semáforos
¿Dónde se encuentran?

Semáforos: Los semáforos en Java están alojados en el


paquete java.util.concurrent con el
Un semáforo binario es un nombre de Semaphore.
indicador (S) de condición que
registra si un recurso está
disponible o no. Un semáforo
binario sólo puede tomar dos
valores: 0 y 1. ¿Cómo implementar semáforos en Java?

A continuación elaboraremos un ejemplo a dos


fases, lo primero será nuestra implementación
y luego la clase encargada de ejecutar:
Código semáforo
Código Monitores
Monitores
Monitores:
 Un monitor es un objeto que implementa acceso
Son módulos de alto nivel de
bajo e.m a todos sus métodos.
abstracción
 En Java, son objetos de una clase cuyos
orientados a la gestión de recursos
métodos públicos son todos synchronized .
que van a ser usados
 Un objeto con métodos synchronized
concurrentemente. Resuelven
proporciona un cerrojo que permite implantar
internamente, el acceso de forma
monitores con comodidad.
segura a una variable o a un recurso
 Los métodos wait, notify, notifyAll permiten
compartido por múltiples procesos
sincronizar el monitor, de acuerdo a la
concurrentes. Hoare,1974.
semántica de los mismos ya conocida.
Semáforos vs. Monitores

● Un semáforo es un objeto que es utilizado para sincronizar


el acceso a un recurso compartido, mientras que un monitor
constituye la interfaz de acceso al propio recurso
compartido.
● Los monitores ofrecen mayor seguridad (reliability),
robustez y escalabilidad; complementan al encapsulamiento
de un objeto, sincronizando el acceso al mismo.
● Los semáforos permiten limitar el número de procesadores
que acceden concurrentemente a un recurso compartido,
estableciendo un protocolo de adquisición (wait) y
liberación (signal).
 
 
Paso de mensaje
la comunicacion entre de un mensaje entre dos
procesos implica nivel de sincronización entre los
dos el receptor no puede recibir el mensaje hasta
que haya enviado otro proceso en conclusión esto
es sincronizar send o receive

hay dos posibilidades:


1. Si el mensaje fue enviado previamente, el
mensaje será recibido y la ejecución continúa.
2. Si no hay mensajes esperando, entonces:
(a) el proceso se bloquea hasta que el mensaje
llega o
(b) el proceso continúa ejecutando, abandonando
el intento de recepción.
Tres son las combinaciones

• Envío bloqueante, recepción bloqueante.


Ambos emisor y receptor se bloquean hasta que el
mensaje se entrega.

• Envío no bloqueante, recepción bloqueante.


Aunque el emisor puede continuar, el receptor
se bloqueará hasta que el mensaje solicitado
llegue.

• Envío no bloqueante: Ninguna de las partes tiene


que esperar. receptor
indicar el origen del mensaje a recibir.
El problema de los lectores y escritores
El problema lector/escritores se define como sigue:
Hay un área de datos compartida entre un número
de procesos. El área de datos puede ser un
fichero, un bloque de memoria principal o incluso
un banco de registros del procesador.

Las siguientes condiciones deben satisfacerse.


1. Cualquier número de lectores pueden leer del
fichero simultáneamente.
2. Sólo un escritor al tiempo puede escribir en el
fichero.
3. Si un escritor está escribiendo en el fichero ningún
lector puede leerlo.

También podría gustarte