Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INFORME
PUNO-PERU
2020
1. ¿Qué es concurrencia?
Definición de diccionario: coincidir en el espacio o en el tiempo dos o más personas o
cosas. n En Informática, se habla de concurrencia cuando hay una existencia simultánea
de varios procesos en ejecución. n Ojo, concurrencia existencia simultánea no implica
ejecución simultánea.
loop
Sección_No_Crítica (SNC);
Pre_Protocolo;
Sección_Crítica (SC);
Post_Protocolo;
end loop;
Importante
Suponemos que cada proceso se ejecuta a una velocidad distinta de cero n No
podemos hacer suposiciones acerca de las velocidades relativas de los procesos
3. Mecanismos de Sincronización
Basadas en memoria compartida
-Inhibición de Interrupciones
-Espera activa
-Semáforos
-Regiones críticas
-Monitores
Basadas en el paso de mensajes
-Canales
-Buzones
3.1. Semáforos
Edsger Dijkstra, 1965
Objetivo: herramienta universal para sincronizar procesos, que sirva como componente
básico para construir algoritmos concurrentes, Dijkstra lo definió como una variable
entera S con dos operaciones atómicas: n P(S): esperar a que S>0; S:=S-1; n V(S):
S:=S+1.
El semáforo no puede adquirir valores negativos
4. Problemas clásicos de concurrencia
4.2. Fumadores
En una "mesa" hay varias unidades de papel, tabaco y fósforos. Un grupo de procesos
pasa su vida fumando. Para cada fumada se consume una unidad de cada recurso. Si
falta algún recurso, los procesos que lo necesitan entran en estado de espera.
Aleatoriamente aparece un agente que repone algunas unidades de los recursos.
4.3. Filósofos
Estos filósofos pasan su vida esperando ... y comiendo en una mesa redonda de una
fuente inagotable de fideos con palillos chinos (después de todo, ellos inventaron los
fideos). Para comerlos requieren de dos palillos. En la versión clásica son 5 filósofos
pero puede generalizarse a 2n+1 con n>1 para evitar trivialidades. El problema es que
hay la misma cantidad de filósofos que de palillos, y que hacen falta 2 palillos para
comer