SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Procesos
Administración, Coordinación y Sincronización
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
UNIVERSIDAD POLITECNICA TERRITORIAL DE LARA
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
La programación concurrente es la simultaneidad en la ejecución de múltiples tareas interactivas. Estas tareas
pueden ser un conjunto de procesos o hilos de ejecución creados por un único programa. Las tareas se pueden
ejecutar en un sola UCP (multiprogramación), en varios procesadores o en una red de computadores
distribuidos. La programación concurrente está relacionada con la programación paralela, pero enfatiza más la
interacción entre tareas. Así, la correcta secuencia de interacciones o comunicaciones entre los procesos y los
nodos los procesos coordinados de recursos que se comparten por tareas son las claves de esta disciplina.
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
La programación concurrente tiene capacidad para realizar varias tareas al mismo tiempo o muchas tareas
en una sola PC con un procesador o varios.
Es necesario tratar conceptos importantes como lo son:
• Multitareas:Multitareas: Es la capacidad de un sistema operativo para ejecutar varios procesos al mismo tiempo
corriendo sobre un procesador.
• Multiprogramación Es la técnica que permite que dos o mas programas ocupen la misma unidad de
memoria principal y que sean ejecutados al mismo tiempo.
La multiprogramación se refiere a dos o mas programas corriendo o procesándose al mismo tiempo; La
multiprogramación se controla a través del sistema operativo, el cual observa los programas y los vigila
hasta que estén concluidos.
• Concurrencia: La concurrencia es el punto clave en los conceptos de multitarea, multiprogramación y
multiproceso, la concurrencia comprende un gran numero de cuestiones de diseño incluyendo la
comunicación entre procesos, la compartición y competencia por los recursos, la sincronización de la
ejecución de varios procesos y la asignación del procesador a los procesos.
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
COMUNICACIÓN Y SINCRONIZACIÓN DE PROCESO
La sincronización entre procesos puede definirse como la necesidad que tienen algunos procesos de
bloquearse en determinadas circunstancias y ser despertados cuando ocurren ciertos eventos.
La 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
Requisitos para la Exclusión Mutua
 En cada momento sólo se la permite a un proceso estar en sección critica para un recurso
 Un proceso que termina en su sección no crítica debe hacerlo sin interferir con otros procesos
 No interbloqueo o inanición
 Un proceso no debe ser demorado en su acceso a la sección crítica cuando no hay otro proceso
usándola.
No se debe asumir nada relativo a la velocidad de los procesos o el número de ellos.
 Un proceso permanece en su sección crítica por un tiempo finito
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Sección Critica
Sección Crítica Porción de código con variables compartidas y que debe ejecutarse en exclusión mutua. Se
tienen que cumplir una serie de condiciones:
 Hay que garantizar la exclusión mutua entre los diferentes procesos a la hora de acceder al recurso
compartido. No puede haber 2 procesos dentro de sus respectivas secciones críticas.
 No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto.
 Ningún proceso que este fuera de su sección critica debe interrumpir a otro para el acceso a la sección critica.
Cuando mas de un proceso desee entrar en su sección critica, se le debe conceder la entrada en un tiempo
finito.
Los lenguajes concurrentes deben proporcionar herramientas para resolver este tipo de problemas.
Para la solución al problema de la exclusión mutua hay 3 tipos de soluciones
 Soluciones software
 Soluciones hardware
 Soluciones aportadas por el sistema operativo
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Requisitos para la Exclusión Mutua
Soluciones Software Para La Exclusión Mutua
 Algoritmo de Dekker
 Algoritmo de Peterson
 Semáforos.
 Monitores.
 Paso de Mensajes
Soluciones Hardware Para La Exclusión Mutua
 Inhibición de Interrupciones
 Instrucciones máquina especiales
 Instrucción Test and Set.
Algoritmo de Dekker: Es un algoritmo de programación concurrente para exclusión mutua, que permite a
dos procesos o hilos de ejecución compartir un recurso sin conflictos. Fue uno de los primeros
algoritmos de exclusión mutua inventados, implementado por Edsger Diikstra.
Existen cinco versiones del algoritmo Dekker, teniendo ciertos fallos los primeros
cuatro. La versión 5 es la que trabaja más eficientemente, siendo una combinación de
la 1 y la 4
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Requisitos para la Exclusión Mutua
Primer intento de Dekker: El proceso no puede hacer nada productivo hasta que obtiene permiso para entrar en su
sección crítica.
Segundo intento de Dekker: Este método no garantiza la exclusión mutua debido a que cada proceso puede
comprobar su flag y proceder a la entrada en la sección critica al mismo tiempo
Tercer intento de Dekker: El interbloqueo es posible cuando dos procesos activan sus flags para entrar en sección
crítica y luego deben esperar a que el otro salga de la sección crítica.
Cuarto intento de Dekker: Es posible que todos los procesos activen sus flags, comprueben los otros procesos y
desactiven sus flags. Pero esto no dura mucho tiempo, por eso no se considera interbloqueo aunque este retraso es
injustificable.
Solución Correcta: Cada proceso obtiene un turno para su sección crítica. Si un proceso quiere entrar en su sección
crítica, activa un flag y espera su turno
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Algoritmo Dekker
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Algoritmo de Peterson
Peterson desarrolló el primer algoritmo (1981) para dos procesos que fue una simplificación del algoritmo
de Dekker para dos procesos. Posteriormente este algoritmo fue generalizado para que funcione para N
procesos .En el algoritmo para N procesos las variables c[i] además de valer "verdadero" y "falso", pueden
valer "en sección critica" y turno desde 1 hasta N.
SEMÁFORO
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Un semáforo es una estructura 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 consta de dos operaciones: Primitivas señal , Espera
Originalmente definidas como P y V por que operan sobre un tipo especial de variable semáforo “S”. La variable semáforo
puede tomar valores enteros y, excepto posiblemente en su inicialización, solo puede ser accedida y manipulada por medio de
las operaciones : Signal, Wait
Solo se permiten tres operaciones sobre un semáforo:
1. Inicializa (s: Semáforo_Binario; v: integer) -- > poner el valor del semáforo s al valor de v (0,1).
2. Espera (wait)(s) if s = 1 then s: = 0 else Suspender la tarea que hace la llamada y ponerla en la cola de tareas.
3. Señal (signal)(s) if cola de tareas vacía then s : = 1 else Reanudar la primera tarea de la cola tareas
Características de los semáforos
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Son independientes de la máquina
Son simples
Pueden trabajar con varios procesos
Pueden permitir que varios procesos entren en la sección crítica al mismo tiempo en caso de necesitarse esta
posibilidad
Doble uso de los semáforos:
Exclusión mutua
Sincronización
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Codificación los semáforos
• Las primitivas P y V se realizan por software
• Razón: P y V se ven implicados en aspectos de planificación
• Partimos de la siguiente declaración:
typedef struct
{
int contador;
(cola q;)
int t; /* Para multiprocesadores */
} SEMAFORO;
• En el caso de los semáforos con espera activa el código entre paréntesis sobra
P y V en sistemas multiprocesador
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
P (SEMAFORO *s)
{
while (TAS(s->t) != 0);
if (s->contador > 0)
{
s->contador- = 1;
s->t = 0;
return;
}
Añadimos proc. a s->q
s->t = 0;
Planificación
}
V (SEMAFORO *s)
{
while (TAS(s->t) != 0);
if (s->q vacía)
{
s->contador+ = 1;
} else {
Sacar proceso de s->q;
Despertarlo;
}
s->t = 0;
}
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Lectores-escritores
• Descripción:
• Los escritores acceden a la BBDD cuando no haya ningún otro escritor y ningún
lector. Semáforo escribir
• Los lectores acceden cuando no haya ningún escritor accediendo o esperando.
Semáforo leer
• Variables compartidas: LA, LE, EA, EE
• A estas variables accederemos en exclusión mutua protegidas con un semáforo
exmut
• Valores iniciales:
leer = escribir = 0
exmut = 1
LA = EA = LE = EE = 0
• Además: Los escritores tienen prioridad sobre los lectores
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Lectores-escritores
Lector Escritor
P (exmut);
if ((EA + EE) == 0)
{
V (leer);
LA = LA + 1;
} else {
LE = LE + 1;
}
V (exmut);
P (leer);
Leemos los datos;
P (exmut);
LA = LA - 1;
if (LA == 0 && EE > 0)
{
V (escribir);
EA = EA + 1;
EE = EE - 1;
}
P (exmut);
if (( EA + LA + EE) == 0)
{
V (escribir);
EA = EA + 1;
} else {
EE = EE + 1;
}
V (exmut);
P (escribir);
Escribimos los datos;
P (exmut);
EA = EA - 1;
if (EE > 0)
{
V (escribir);
EA = EA + 1;
EE = EE - 1;
} else while (LE > 0) {
V (leer);
LA = LA + 1;
LE = LE - 1;
}
V (exmut);
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Problema de los filósofos
void toma_tenedores(int i) {
P(exmut);
estado[i] = HAMBRIENTO;
comprueba(i);
V(exmut);
P(semaforo[i]);
} /* Fin de toma_tenedores */
void pon_tenedores(int i) {
P(exmut);
estado[i] = PENSANDO;
comprueba((i-1)%N);
comprueba((i+1)%N);
V(exmut);
} /* Fin de pon_tenedores */
void comprueba(int i)
{
if (estado[i] == HAMBRIENTO
&& estado[(i-1)%N] != COMIENDO
&& estado[(i+1)%N] != COMIENDO)
{
estado[i] = COMIENDO;
V(semaforo[i]);
}
} /* Fin de comprueba */
• ¿A qué valores se deben iniciar los semáforos?
• ¿Por qué la función comprueba siempre se invoca desde una
sección crítica?
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
• Problema: 1 barbero y N sillas de espera
• Si un cliente entra y no hay sillas, se va
• Semáforos:
• clientes: número de clientes en espera sin contar el que está en la silla del
peluquero
• barberos: número de barberos inactivos
• exmut: exclusión mutua
• Variable compartida:
• esperando: número de clientes esperando
• Inicialmente:
clientes=0 barberos=0 exmut=1 esperando=0
Problema del barbero dormilón
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Barbero Cliente
do
{
P(exmut);
if (esperando < SILLAS) {
esperando++;
V(clientes);
V(exmut);
P(barberos);
/* Se corta el pelo */
} else {
V(exmut);
}
} while (PELOLARGO);
do
{
P(clientes);
P(exmut);
esperando=esperando-1;
V(barberos);
V(exmut);
/* Corta el pelo */
} while (TRUE);
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Monitores
Es una construcción de alto nivel para sincronización.
Es mas fácil de controlar que los semáforos.
Se implementan como biblioteca de programas.
Es un modulo de software con 1 o + procedimientos, una secuencia de inicialización
y datos locales.
Características principales
– Las variables locales son accedidas sólo por el monitor
– El proceso entra en el monitor invocando uno de sus procedimientos
– Sólo un proceso puede estar ejecutando el monitor en cada instante dado
(ofrece exclusión mutua)
Ejemplos: Una estructura de datos compartida, puedo ponerla dentro de un
monitor
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Tipo nombre-monitor = monitor;
Declaración de variables
Procedure entry P1(...);
Begin...end;
....
Procedure entry Pn(...);
Begin...end;
Begin
Código inicializació
Sintaxis de un monitor
NOTA
Asegura que solo un proceso a la vez puede estar activo dentro
del monitor.
El programador no necesita codificar explícitamente.
Se agrega el constructor condition para sincronización
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Comunicación con mensajes
Definición:
Mensaje: parte de información que es pasada de un proceso a otro
Buzón: lugar donde se depositan los mensajes desde el envío a la recepción
Fuerza la exclusión mutua
Intercambio de información
Operaciones sobre mensajes:
send (destination, message)
receive (source, message)
Métodos de comunicación
Comunicación en un único sentido: los mensajes fluyen en un único sentido
Ejemplos: Tuberías de UNIX, productor-consumidor y streams
Comunicación bidireccional: los mensajes fluyen en ambos sentidos
Ejemplos: Llamadas a procedimientos remotos (RPC´s) o el modelo cliente-servidor
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Ventaja: se puede implementar en sistemas distribuidos, en multiprocesador, y mono con memoria
compartida.
Comunicación con mensajes
Características de sincronización
Envío bloqueante, recepción bloqueante
El E y el R se bloquean hasta que se entrega el mensaje (Rendezvous).
Envío no bloqueante, recepcion bloqueante
El E puede continuar, pero R se bloquea hasta que llega el mensaje.
Envío no bloqueante, recepción no bloqueante
Nadie espera
El send no bloqueante es la forma mas útil en programación concurrente. Cuidado con la generación de
mensajes excesiva. El programador debe controlar la recepción.
El Envío no bloqueante, recepción bloqueante es útil para procesos servidores que ofrezcan servicio o
recursos a otros procesos
SISTEMAS OPERATIVOS . ING. PURA CASTILLO
Ejemplos
• Productor:
int mensaje1[1000];
while (1)
{
--Preparamos el mensaje1--
enviar (mensaje1, buzón);
}
• Cliente:
char resp[1000];
envia(“leer vax”, buzon1);
recibir (resp, buzon2);
• Consumidor:
int mensaje2[1000];
while (1)
{
recibir (mensaje2, buzón);
--Procesamos el mensaje2--
}
• Servidor:
char orden[100];
char resp[1000];
recibir (orden, buzon1);
enviar (resp, buzon2);

Más contenido relacionado

La actualidad más candente

Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salidaDavid Martinez
 
Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y ProcesadorMario Alberto Antonio Lopez
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre Juan Anaya
 
Sicronización entre procesos
Sicronización entre procesosSicronización entre procesos
Sicronización entre procesosglocom15
 
BD. control de concurrencia
BD. control de concurrenciaBD. control de concurrencia
BD. control de concurrencialiras loca
 
Sistemas operativos memoria virtual
Sistemas operativos memoria virtualSistemas operativos memoria virtual
Sistemas operativos memoria virtualandreapab
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosK Manuel TN
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++EdsonRc
 
Distribución y fragmentación de datos
Distribución y fragmentación  de datosDistribución y fragmentación  de datos
Distribución y fragmentación de datosJosé Mendoza
 
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 interbloqueosjocuva101
 
Control de concurrencias investigación
Control de concurrencias investigaciónControl de concurrencias investigación
Control de concurrencias investigaciónJhoel Dgez Garcia
 
Administración de Memoria en UNIX
Administración de Memoria en UNIXAdministración de Memoria en UNIX
Administración de Memoria en UNIXNatalia Ludeña
 

La actualidad más candente (20)

Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salida
 
Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y Procesador
 
DB1 Unidad 5: SQL Avanzado
DB1 Unidad 5: SQL AvanzadoDB1 Unidad 5: SQL Avanzado
DB1 Unidad 5: SQL Avanzado
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 
Sicronización entre procesos
Sicronización entre procesosSicronización entre procesos
Sicronización entre procesos
 
Administración de Memoria
Administración de MemoriaAdministración de Memoria
Administración de Memoria
 
BD. control de concurrencia
BD. control de concurrenciaBD. control de concurrencia
BD. control de concurrencia
 
Gestion de memoria en Linux
Gestion de memoria en LinuxGestion de memoria en Linux
Gestion de memoria en Linux
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Sistemas operativos memoria virtual
Sistemas operativos memoria virtualSistemas operativos memoria virtual
Sistemas operativos memoria virtual
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datos
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++
 
Distribución y fragmentación de datos
Distribución y fragmentación  de datosDistribución y fragmentación  de datos
Distribución y fragmentación de datos
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
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
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
 
Control de concurrencias investigación
Control de concurrencias investigaciónControl de concurrencias investigación
Control de concurrencias investigación
 
Gestion memoria windows
Gestion memoria windowsGestion memoria windows
Gestion memoria windows
 
Administración de Memoria en UNIX
Administración de Memoria en UNIXAdministración de Memoria en UNIX
Administración de Memoria en UNIX
 

Similar a Programacion concurrente

2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativosCrisel777
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De ProcesosAcristyM
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De ProcesosAcristyM
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosLorena Ramos
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2Luis Cigarroa
 
Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.Andrea
 
Presentación1
Presentación1Presentación1
Presentación1janet290
 
Exclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforoExclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforoJHOVANI189612GAZGA
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesosIchinose 11
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1honeyjimenez
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacintoAreli996
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Uriel Martinez Cervantes
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEgladysmamani
 

Similar a Programacion concurrente (20)

2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativos
 
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
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
 
Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.
 
Procesos_so
Procesos_soProcesos_so
Procesos_so
 
Presentación1
Presentación1Presentación1
Presentación1
 
UNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADORUNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADOR
 
Exclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforoExclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforo
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
Funciones de un SO
Funciones de un SOFunciones de un SO
Funciones de un SO
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Portafolio 2
Portafolio 2Portafolio 2
Portafolio 2
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacinto
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
 
Unidad2
Unidad2Unidad2
Unidad2
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutua
 

Más de puracastillo

ejerciciospropuestosgestionM.pdf
ejerciciospropuestosgestionM.pdfejerciciospropuestosgestionM.pdf
ejerciciospropuestosgestionM.pdfpuracastillo
 
Ejercicios Propuestos 2023
Ejercicios Propuestos 2023Ejercicios Propuestos 2023
Ejercicios Propuestos 2023puracastillo
 
mapa conceptual.pptx
mapa conceptual.pptxmapa conceptual.pptx
mapa conceptual.pptxpuracastillo
 
clase invertida.pptx
clase invertida.pptxclase invertida.pptx
clase invertida.pptxpuracastillo
 
Guia N1_ Modelo de PL.pdf
Guia N1_ Modelo de PL.pdfGuia N1_ Modelo de PL.pdf
Guia N1_ Modelo de PL.pdfpuracastillo
 
Presentación sistema operativo.pptx
Presentación sistema operativo.pptxPresentación sistema operativo.pptx
Presentación sistema operativo.pptxpuracastillo
 
Unidad2 métodos cuantitativa
Unidad2 métodos cuantitativa Unidad2 métodos cuantitativa
Unidad2 métodos cuantitativa puracastillo
 
Ejercicios Propuestos Sincronización.pdf
Ejercicios Propuestos Sincronización.pdfEjercicios Propuestos Sincronización.pdf
Ejercicios Propuestos Sincronización.pdfpuracastillo
 
Ejercicios propuestos Procesos e Hilos
Ejercicios propuestos Procesos e Hilos Ejercicios propuestos Procesos e Hilos
Ejercicios propuestos Procesos e Hilos puracastillo
 
Gestiond memoria-pnfi
Gestiond memoria-pnfiGestiond memoria-pnfi
Gestiond memoria-pnfipuracastillo
 
Plan de clases proyecto iii fase1 2021
Plan de clases proyecto iii fase1 2021Plan de clases proyecto iii fase1 2021
Plan de clases proyecto iii fase1 2021puracastillo
 
Plan evaluacion uniencasa sistemas operativos2
Plan evaluacion uniencasa sistemas operativos2Plan evaluacion uniencasa sistemas operativos2
Plan evaluacion uniencasa sistemas operativos2puracastillo
 
Plan evaluacion uniencasa sistemas operativos
Plan evaluacion uniencasa sistemas operativosPlan evaluacion uniencasa sistemas operativos
Plan evaluacion uniencasa sistemas operativospuracastillo
 
Ejercicios propuestos ms
Ejercicios propuestos msEjercicios propuestos ms
Ejercicios propuestos mspuracastillo
 
Ejercicios propuestos metodo simplex
Ejercicios propuestos metodo simplexEjercicios propuestos metodo simplex
Ejercicios propuestos metodo simplexpuracastillo
 
Plan evaluación uniencasa investigación de operaciones
Plan evaluación uniencasa investigación de operacionesPlan evaluación uniencasa investigación de operaciones
Plan evaluación uniencasa investigación de operacionespuracastillo
 
Guia 2 metodo grafico
Guia 2 metodo graficoGuia 2 metodo grafico
Guia 2 metodo graficopuracastillo
 
Ejercicios propuestos metodo grafico
Ejercicios propuestos metodo graficoEjercicios propuestos metodo grafico
Ejercicios propuestos metodo graficopuracastillo
 
Entregables proyecto iii
Entregables proyecto iii Entregables proyecto iii
Entregables proyecto iii puracastillo
 
Baremos fase i y ii
Baremos fase i y iiBaremos fase i y ii
Baremos fase i y iipuracastillo
 

Más de puracastillo (20)

ejerciciospropuestosgestionM.pdf
ejerciciospropuestosgestionM.pdfejerciciospropuestosgestionM.pdf
ejerciciospropuestosgestionM.pdf
 
Ejercicios Propuestos 2023
Ejercicios Propuestos 2023Ejercicios Propuestos 2023
Ejercicios Propuestos 2023
 
mapa conceptual.pptx
mapa conceptual.pptxmapa conceptual.pptx
mapa conceptual.pptx
 
clase invertida.pptx
clase invertida.pptxclase invertida.pptx
clase invertida.pptx
 
Guia N1_ Modelo de PL.pdf
Guia N1_ Modelo de PL.pdfGuia N1_ Modelo de PL.pdf
Guia N1_ Modelo de PL.pdf
 
Presentación sistema operativo.pptx
Presentación sistema operativo.pptxPresentación sistema operativo.pptx
Presentación sistema operativo.pptx
 
Unidad2 métodos cuantitativa
Unidad2 métodos cuantitativa Unidad2 métodos cuantitativa
Unidad2 métodos cuantitativa
 
Ejercicios Propuestos Sincronización.pdf
Ejercicios Propuestos Sincronización.pdfEjercicios Propuestos Sincronización.pdf
Ejercicios Propuestos Sincronización.pdf
 
Ejercicios propuestos Procesos e Hilos
Ejercicios propuestos Procesos e Hilos Ejercicios propuestos Procesos e Hilos
Ejercicios propuestos Procesos e Hilos
 
Gestiond memoria-pnfi
Gestiond memoria-pnfiGestiond memoria-pnfi
Gestiond memoria-pnfi
 
Plan de clases proyecto iii fase1 2021
Plan de clases proyecto iii fase1 2021Plan de clases proyecto iii fase1 2021
Plan de clases proyecto iii fase1 2021
 
Plan evaluacion uniencasa sistemas operativos2
Plan evaluacion uniencasa sistemas operativos2Plan evaluacion uniencasa sistemas operativos2
Plan evaluacion uniencasa sistemas operativos2
 
Plan evaluacion uniencasa sistemas operativos
Plan evaluacion uniencasa sistemas operativosPlan evaluacion uniencasa sistemas operativos
Plan evaluacion uniencasa sistemas operativos
 
Ejercicios propuestos ms
Ejercicios propuestos msEjercicios propuestos ms
Ejercicios propuestos ms
 
Ejercicios propuestos metodo simplex
Ejercicios propuestos metodo simplexEjercicios propuestos metodo simplex
Ejercicios propuestos metodo simplex
 
Plan evaluación uniencasa investigación de operaciones
Plan evaluación uniencasa investigación de operacionesPlan evaluación uniencasa investigación de operaciones
Plan evaluación uniencasa investigación de operaciones
 
Guia 2 metodo grafico
Guia 2 metodo graficoGuia 2 metodo grafico
Guia 2 metodo grafico
 
Ejercicios propuestos metodo grafico
Ejercicios propuestos metodo graficoEjercicios propuestos metodo grafico
Ejercicios propuestos metodo grafico
 
Entregables proyecto iii
Entregables proyecto iii Entregables proyecto iii
Entregables proyecto iii
 
Baremos fase i y ii
Baremos fase i y iiBaremos fase i y ii
Baremos fase i y ii
 

Último

Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicaFlor Idalia Espinoza Ortega
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 

Último (20)

Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 

Programacion concurrente

  • 1. Procesos Administración, Coordinación y Sincronización SISTEMAS OPERATIVOS . ING. PURA CASTILLO UNIVERSIDAD POLITECNICA TERRITORIAL DE LARA
  • 2. PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE La programación concurrente es la simultaneidad en la ejecución de múltiples tareas interactivas. Estas tareas pueden ser un conjunto de procesos o hilos de ejecución creados por un único programa. Las tareas se pueden ejecutar en un sola UCP (multiprogramación), en varios procesadores o en una red de computadores distribuidos. La programación concurrente está relacionada con la programación paralela, pero enfatiza más la interacción entre tareas. Así, la correcta secuencia de interacciones o comunicaciones entre los procesos y los nodos los procesos coordinados de recursos que se comparten por tareas son las claves de esta disciplina. SISTEMAS OPERATIVOS . ING. PURA CASTILLO
  • 3. SISTEMAS OPERATIVOS . ING. PURA CASTILLO La programación concurrente tiene capacidad para realizar varias tareas al mismo tiempo o muchas tareas en una sola PC con un procesador o varios. Es necesario tratar conceptos importantes como lo son: • Multitareas:Multitareas: Es la capacidad de un sistema operativo para ejecutar varios procesos al mismo tiempo corriendo sobre un procesador. • Multiprogramación Es la técnica que permite que dos o mas programas ocupen la misma unidad de memoria principal y que sean ejecutados al mismo tiempo. La multiprogramación se refiere a dos o mas programas corriendo o procesándose al mismo tiempo; La multiprogramación se controla a través del sistema operativo, el cual observa los programas y los vigila hasta que estén concluidos. • Concurrencia: La concurrencia es el punto clave en los conceptos de multitarea, multiprogramación y multiproceso, la concurrencia comprende un gran numero de cuestiones de diseño incluyendo la comunicación entre procesos, la compartición y competencia por los recursos, la sincronización de la ejecución de varios procesos y la asignación del procesador a los procesos.
  • 4. SISTEMAS OPERATIVOS . ING. PURA CASTILLO COMUNICACIÓN Y SINCRONIZACIÓN DE PROCESO La sincronización entre procesos puede definirse como la necesidad que tienen algunos procesos de bloquearse en determinadas circunstancias y ser despertados cuando ocurren ciertos eventos. La 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 Requisitos para la Exclusión Mutua  En cada momento sólo se la permite a un proceso estar en sección critica para un recurso  Un proceso que termina en su sección no crítica debe hacerlo sin interferir con otros procesos  No interbloqueo o inanición  Un proceso no debe ser demorado en su acceso a la sección crítica cuando no hay otro proceso usándola. No se debe asumir nada relativo a la velocidad de los procesos o el número de ellos.  Un proceso permanece en su sección crítica por un tiempo finito
  • 5. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Sección Critica Sección Crítica Porción de código con variables compartidas y que debe ejecutarse en exclusión mutua. Se tienen que cumplir una serie de condiciones:  Hay que garantizar la exclusión mutua entre los diferentes procesos a la hora de acceder al recurso compartido. No puede haber 2 procesos dentro de sus respectivas secciones críticas.  No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto.  Ningún proceso que este fuera de su sección critica debe interrumpir a otro para el acceso a la sección critica. Cuando mas de un proceso desee entrar en su sección critica, se le debe conceder la entrada en un tiempo finito. Los lenguajes concurrentes deben proporcionar herramientas para resolver este tipo de problemas. Para la solución al problema de la exclusión mutua hay 3 tipos de soluciones  Soluciones software  Soluciones hardware  Soluciones aportadas por el sistema operativo
  • 6. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Requisitos para la Exclusión Mutua Soluciones Software Para La Exclusión Mutua  Algoritmo de Dekker  Algoritmo de Peterson  Semáforos.  Monitores.  Paso de Mensajes Soluciones Hardware Para La Exclusión Mutua  Inhibición de Interrupciones  Instrucciones máquina especiales  Instrucción Test and Set. Algoritmo de Dekker: Es un algoritmo de programación concurrente para exclusión mutua, que permite a dos procesos o hilos de ejecución compartir un recurso sin conflictos. Fue uno de los primeros algoritmos de exclusión mutua inventados, implementado por Edsger Diikstra. Existen cinco versiones del algoritmo Dekker, teniendo ciertos fallos los primeros cuatro. La versión 5 es la que trabaja más eficientemente, siendo una combinación de la 1 y la 4
  • 7. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Requisitos para la Exclusión Mutua Primer intento de Dekker: El proceso no puede hacer nada productivo hasta que obtiene permiso para entrar en su sección crítica. Segundo intento de Dekker: Este método no garantiza la exclusión mutua debido a que cada proceso puede comprobar su flag y proceder a la entrada en la sección critica al mismo tiempo Tercer intento de Dekker: El interbloqueo es posible cuando dos procesos activan sus flags para entrar en sección crítica y luego deben esperar a que el otro salga de la sección crítica. Cuarto intento de Dekker: Es posible que todos los procesos activen sus flags, comprueben los otros procesos y desactiven sus flags. Pero esto no dura mucho tiempo, por eso no se considera interbloqueo aunque este retraso es injustificable. Solución Correcta: Cada proceso obtiene un turno para su sección crítica. Si un proceso quiere entrar en su sección crítica, activa un flag y espera su turno
  • 8. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Algoritmo Dekker
  • 9. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Algoritmo de Peterson Peterson desarrolló el primer algoritmo (1981) para dos procesos que fue una simplificación del algoritmo de Dekker para dos procesos. Posteriormente este algoritmo fue generalizado para que funcione para N procesos .En el algoritmo para N procesos las variables c[i] además de valer "verdadero" y "falso", pueden valer "en sección critica" y turno desde 1 hasta N.
  • 10. SEMÁFORO SISTEMAS OPERATIVOS . ING. PURA CASTILLO Un semáforo es una estructura 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 consta de dos operaciones: Primitivas señal , Espera Originalmente definidas como P y V por que operan sobre un tipo especial de variable semáforo “S”. La variable semáforo puede tomar valores enteros y, excepto posiblemente en su inicialización, solo puede ser accedida y manipulada por medio de las operaciones : Signal, Wait Solo se permiten tres operaciones sobre un semáforo: 1. Inicializa (s: Semáforo_Binario; v: integer) -- > poner el valor del semáforo s al valor de v (0,1). 2. Espera (wait)(s) if s = 1 then s: = 0 else Suspender la tarea que hace la llamada y ponerla en la cola de tareas. 3. Señal (signal)(s) if cola de tareas vacía then s : = 1 else Reanudar la primera tarea de la cola tareas
  • 11. Características de los semáforos SISTEMAS OPERATIVOS . ING. PURA CASTILLO Son independientes de la máquina Son simples Pueden trabajar con varios procesos Pueden permitir que varios procesos entren en la sección crítica al mismo tiempo en caso de necesitarse esta posibilidad Doble uso de los semáforos: Exclusión mutua Sincronización
  • 12. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Codificación los semáforos • Las primitivas P y V se realizan por software • Razón: P y V se ven implicados en aspectos de planificación • Partimos de la siguiente declaración: typedef struct { int contador; (cola q;) int t; /* Para multiprocesadores */ } SEMAFORO; • En el caso de los semáforos con espera activa el código entre paréntesis sobra
  • 13. P y V en sistemas multiprocesador SISTEMAS OPERATIVOS . ING. PURA CASTILLO P (SEMAFORO *s) { while (TAS(s->t) != 0); if (s->contador > 0) { s->contador- = 1; s->t = 0; return; } Añadimos proc. a s->q s->t = 0; Planificación } V (SEMAFORO *s) { while (TAS(s->t) != 0); if (s->q vacía) { s->contador+ = 1; } else { Sacar proceso de s->q; Despertarlo; } s->t = 0; }
  • 14. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Lectores-escritores • Descripción: • Los escritores acceden a la BBDD cuando no haya ningún otro escritor y ningún lector. Semáforo escribir • Los lectores acceden cuando no haya ningún escritor accediendo o esperando. Semáforo leer • Variables compartidas: LA, LE, EA, EE • A estas variables accederemos en exclusión mutua protegidas con un semáforo exmut • Valores iniciales: leer = escribir = 0 exmut = 1 LA = EA = LE = EE = 0 • Además: Los escritores tienen prioridad sobre los lectores
  • 15. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Lectores-escritores Lector Escritor P (exmut); if ((EA + EE) == 0) { V (leer); LA = LA + 1; } else { LE = LE + 1; } V (exmut); P (leer); Leemos los datos; P (exmut); LA = LA - 1; if (LA == 0 && EE > 0) { V (escribir); EA = EA + 1; EE = EE - 1; } P (exmut); if (( EA + LA + EE) == 0) { V (escribir); EA = EA + 1; } else { EE = EE + 1; } V (exmut); P (escribir); Escribimos los datos; P (exmut); EA = EA - 1; if (EE > 0) { V (escribir); EA = EA + 1; EE = EE - 1; } else while (LE > 0) { V (leer); LA = LA + 1; LE = LE - 1; } V (exmut);
  • 16. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Problema de los filósofos void toma_tenedores(int i) { P(exmut); estado[i] = HAMBRIENTO; comprueba(i); V(exmut); P(semaforo[i]); } /* Fin de toma_tenedores */ void pon_tenedores(int i) { P(exmut); estado[i] = PENSANDO; comprueba((i-1)%N); comprueba((i+1)%N); V(exmut); } /* Fin de pon_tenedores */ void comprueba(int i) { if (estado[i] == HAMBRIENTO && estado[(i-1)%N] != COMIENDO && estado[(i+1)%N] != COMIENDO) { estado[i] = COMIENDO; V(semaforo[i]); } } /* Fin de comprueba */ • ¿A qué valores se deben iniciar los semáforos? • ¿Por qué la función comprueba siempre se invoca desde una sección crítica?
  • 17. SISTEMAS OPERATIVOS . ING. PURA CASTILLO • Problema: 1 barbero y N sillas de espera • Si un cliente entra y no hay sillas, se va • Semáforos: • clientes: número de clientes en espera sin contar el que está en la silla del peluquero • barberos: número de barberos inactivos • exmut: exclusión mutua • Variable compartida: • esperando: número de clientes esperando • Inicialmente: clientes=0 barberos=0 exmut=1 esperando=0 Problema del barbero dormilón
  • 18. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Barbero Cliente do { P(exmut); if (esperando < SILLAS) { esperando++; V(clientes); V(exmut); P(barberos); /* Se corta el pelo */ } else { V(exmut); } } while (PELOLARGO); do { P(clientes); P(exmut); esperando=esperando-1; V(barberos); V(exmut); /* Corta el pelo */ } while (TRUE);
  • 19. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Monitores Es una construcción de alto nivel para sincronización. Es mas fácil de controlar que los semáforos. Se implementan como biblioteca de programas. Es un modulo de software con 1 o + procedimientos, una secuencia de inicialización y datos locales. Características principales – Las variables locales son accedidas sólo por el monitor – El proceso entra en el monitor invocando uno de sus procedimientos – Sólo un proceso puede estar ejecutando el monitor en cada instante dado (ofrece exclusión mutua) Ejemplos: Una estructura de datos compartida, puedo ponerla dentro de un monitor
  • 20. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Tipo nombre-monitor = monitor; Declaración de variables Procedure entry P1(...); Begin...end; .... Procedure entry Pn(...); Begin...end; Begin Código inicializació Sintaxis de un monitor NOTA Asegura que solo un proceso a la vez puede estar activo dentro del monitor. El programador no necesita codificar explícitamente. Se agrega el constructor condition para sincronización
  • 21. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Comunicación con mensajes Definición: Mensaje: parte de información que es pasada de un proceso a otro Buzón: lugar donde se depositan los mensajes desde el envío a la recepción Fuerza la exclusión mutua Intercambio de información Operaciones sobre mensajes: send (destination, message) receive (source, message) Métodos de comunicación Comunicación en un único sentido: los mensajes fluyen en un único sentido Ejemplos: Tuberías de UNIX, productor-consumidor y streams Comunicación bidireccional: los mensajes fluyen en ambos sentidos Ejemplos: Llamadas a procedimientos remotos (RPC´s) o el modelo cliente-servidor
  • 22. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Ventaja: se puede implementar en sistemas distribuidos, en multiprocesador, y mono con memoria compartida. Comunicación con mensajes Características de sincronización Envío bloqueante, recepción bloqueante El E y el R se bloquean hasta que se entrega el mensaje (Rendezvous). Envío no bloqueante, recepcion bloqueante El E puede continuar, pero R se bloquea hasta que llega el mensaje. Envío no bloqueante, recepción no bloqueante Nadie espera El send no bloqueante es la forma mas útil en programación concurrente. Cuidado con la generación de mensajes excesiva. El programador debe controlar la recepción. El Envío no bloqueante, recepción bloqueante es útil para procesos servidores que ofrezcan servicio o recursos a otros procesos
  • 23. SISTEMAS OPERATIVOS . ING. PURA CASTILLO Ejemplos • Productor: int mensaje1[1000]; while (1) { --Preparamos el mensaje1-- enviar (mensaje1, buzón); } • Cliente: char resp[1000]; envia(“leer vax”, buzon1); recibir (resp, buzon2); • Consumidor: int mensaje2[1000]; while (1) { recibir (mensaje2, buzón); --Procesamos el mensaje2-- } • Servidor: char orden[100]; char resp[1000]; recibir (orden, buzon1); enviar (resp, buzon2);