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

Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
Sergio Sanchez
 
SISTEMAS OPERATIVOS MULTIMEDIA
SISTEMAS OPERATIVOS MULTIMEDIASISTEMAS OPERATIVOS MULTIMEDIA
SISTEMAS OPERATIVOS MULTIMEDIA
Mari Ng
 
Diseño de Sistemas
Diseño de SistemasDiseño de Sistemas
Diseño de Sistemas
JUANESTEFA
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
Fernando Camacho
 
Ciclo De Vida
Ciclo De VidaCiclo De Vida
Ciclo De Vida
Jgperez
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
Margarita Labastida
 
Documentos de analisis de requerimientos
Documentos de analisis de requerimientosDocumentos de analisis de requerimientos
Documentos de analisis de requerimientos
Milton Garzon
 
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
 
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador
Miguel Joshua Godinez Barbosa
 

La actualidad más candente (20)

Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientos
 
Operaciones Sobre Procesos
Operaciones Sobre ProcesosOperaciones Sobre Procesos
Operaciones Sobre Procesos
 
SISTEMAS OPERATIVOS MULTIMEDIA
SISTEMAS OPERATIVOS MULTIMEDIASISTEMAS OPERATIVOS MULTIMEDIA
SISTEMAS OPERATIVOS MULTIMEDIA
 
Diseño de Sistemas
Diseño de SistemasDiseño de Sistemas
Diseño de Sistemas
 
10.el diseño en el nivel de componentes
10.el diseño en el nivel de componentes10.el diseño en el nivel de componentes
10.el diseño en el nivel de componentes
 
Arquitecturas de software
Arquitecturas de softwareArquitecturas de software
Arquitecturas de software
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Semana 3 gestion de la configuracion y control de cambios
Semana 3 gestion de la configuracion y control de cambiosSemana 3 gestion de la configuracion y control de cambios
Semana 3 gestion de la configuracion y control de cambios
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Ciclo De Vida
Ciclo De VidaCiclo De Vida
Ciclo De Vida
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
 
Documentos de analisis de requerimientos
Documentos de analisis de requerimientosDocumentos de analisis de requerimientos
Documentos de analisis de requerimientos
 
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
 
Software caja negra y caja blanca
Software caja negra y caja blancaSoftware caja negra y caja blanca
Software caja negra y caja blanca
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
Metodologia y prototipo
Metodologia y prototipoMetodologia y prototipo
Metodologia y prototipo
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador
 

Similar a Programacion concurrente

Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmos
Abimael hernandez
 
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
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
Luis 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
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
gladysmamani
 

Similar a Programacion concurrente (20)

Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmos
 
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
 
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTEPROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
 

Más de puracastillo

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

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
MiNeyi1
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 

Último (20)

PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
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
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 

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);