SlideShare una empresa de Scribd logo
1 de 27
1
Tema 7: Concurrencia y
Sincronización
Sistemas Operativos
2
Índice:
1. Suspensión y Reanudación
2. Semáforos
3. Propiedades y Características de los
Semáforos
4. Problemas Clásicos de Concurrencia
2
Tema
7:
Concurrencia
y
Sincronización
3
Índice:
1. Suspensión y Reanudación
2. Semáforos
3. Propiedades y Características de los
Semáforos
4. Problemas Clásicos de Concurrencia
3
Tema
7:
Concurrencia
y
Sincronización
4
1. Suspensión y Reanudación
Tema
7:
Concurrencia
y
Sincronización
 Primitivas más simples:
sleep ()
 Bloquea al proceso que la invoca
wakeup (int pid)
 Reanuda a proceso cuyo PID se indica
 ¿Y si dicho proceso no está sleeping?
• La llamada a wakeup() no tiene efecto
• Se recuerda la llamada para que el próximo sleep() que haga
el proceso no tenga efecto.
• Se trata como un error.
5
1. Suspensión y Reanudación
Tema
7:
Concurrencia
y
Sincronización
 Implementación: ¡trivial!
sleep ()
 Nuevo estado proceso llamante: bloqueado
 Insertar en lista de procesos bloqueados
 Activar bit “sleeping” en PCB para indicar causa de
bloqueo
wakeup (int pid)
 Nuevo estado proceso despertado: preparado
 Quitar de lista de procesos bloqueados e insertar en
preparados
 Desactivar bit “sleeping” en PCB
6
1. Suspensión y Reanudación
Tema
7:
Concurrencia
y
Sincronización
 Aplicando estas primitivas a resolver problemas en
la vida real: productor/consumidor.
while(true)
{
producir_elemento();
if (contador==N)
sleep();
almacenar_elemento();
contador++;
if (contador==1)
wakeup(consumidor);
}
productor
0
1
2
3
tabla
N-1
ins ext
contador=0
while(true)
{
if (contador==0)
sleep();
retirar_elemento();
contador--;
if (contador==(N-1))
wakeup(productor);
usar_elemento();
}
consumidor
contador=1
contador=2
contador=3
contador=N
7
1. Suspensión y reanudación
Tema
7:
Concurrencia
y
Sincronización
 Problemas:
 Suspensión es incondicional
• ¡No hay atomicidad comprobación-acción!
 Procesos deben conocerse entre sí
 Un único estado de espera por proceso
• Procesos están “o despiertos o dormidos”
• Si proceso está dormido, no hay vinculación alguna con la
causa por la que está en dicho estado
8
Índice:
1. Suspensión y Reanudación
2. Semáforos
3. Propiedades y Características de los
Semáforos
4. Problemas Clásicos de Concurrencia
8
Tema
7:
Concurrencia
y
Sincronización
9
2. Semáforos
Tema
7:
Concurrencia
y
Sincronización
1. Concepto de semáforo
2. Implementación de semáforos
3. Semáforos en la práctica
4. Semáforos binarios
10
2. Semáforos
Tema
7:
Concurrencia
y
Sincronización
1. Concepto de semáforo
2. Implementación de semáforos
3. Semáforos en la práctica
4. Semáforos binarios
11
2.1 Concepto de semáforo
Tema
7:
Concurrencia
y
Sincronización
 E. W. Dijkstra (1.965)
 Semaforo = tipo abstracto de datos, que encapsula:
 Un contador entero
 Una lista de procesos bloqueados en el semáforo
 Operaciones sobre semáforos:
 down(s):
• si contador = 0, proceso se bloquea en semáforo
• decrementa contador
 up(s):
• Incrementa contador
• Si había algún proceso bloqueado en semáforo, reanuda uno
 ¡Ambas operaciones son atómicas!
12
2.1 Concepto de semáforo
Tema
7:
Concurrencia
y
Sincronización
 Utilidad: proteger acceso a recursos compartidos
 A cada recurso compartido, se asocia semáforo con valor
inicial 1.
 Secciones críticas asociadas al recurso:
• Protocolo de entrada: down(s)
• Protocolo de salida: up(s)
 Ventajas:
 Robustez
• Comprobación/Acción son atómicas
 Procesos que se coordinan no necesitan conocerse entre sí
• Sólo necesitan conocer semáforos que comparten
 Flexibilidad
• Tanto semáforos como recursos compartidos
13
2. Semáforos
Tema
7:
Concurrencia
y
Sincronización
1. Concepto de semáforo
2. Implementación de semáforos
3. Semáforos en la práctica
4. Semáforos binarios
14
void down(semaforo s)
{
if (s->contador>0)
s->contador--;
else
{
insertar_en_lista (&s->bloqueados, getpid());
sleep();
}
}
2.2 Implementación de semáforos
Tema
7:
Concurrencia
y
Sincronización
struct s_semaforo
{
int contador;
listaproc bloqueados;
}
typedef s_semaforo *semaforo;
struct nodoproc
{
PID proceso;
struct nodoproc *sig;
}
typedef struct nodoproc *listaproc
void up(semaforo s)
{
if (lista_vacia(s->bloqueados))
s->contador++;
else
{
int pid=sacar_de_lista(s->bloqueados);
wakeup(pid);
}
}
semaforo CrearSemaforo(int valor);
void DestruirSemaforo(semaforo s);
15
2. Semáforos
Tema
7:
Concurrencia
y
Sincronización
1. Concepto de semáforo
2. Implementación de semáforos
3. Semáforos en la práctica
4. Semáforos binarios
16
2.3 Semáforos en la práctica
Tema
7:
Concurrencia
y
Sincronización
Productor/Consumidor con semáforos
while(true)
{
producir_elemento();
down(vacias);
down(excmut);
almacenar_elemento();
up(excmut);
up(llenas);
}
productor
0
1
2
3
tabla
N-1
ins ext
contador=0
while(true)
{
down(llenas);
down(excmut);
retirar_elemento();
up(excmut);
up(vacias);
consumir_elemento();
}
consumidor
excmut=1
vacias=N
llenas=0
down(excmut);
down(vacias);
17
2. Semáforos
Tema
7:
Concurrencia
y
Sincronización
1. Concepto de semáforo
2. Implementación de semáforos
3. Semáforos en la práctica
4. Semáforos binarios
18
2.4 Semáforos binarios
Tema
7:
Concurrencia
y
Sincronización
 Caso particular: semáforos con sólo dos estados:
 Abierto (true, 1, …)
 Cerrado (false, 0, …)
 Operaciones sobre semáforos binarios:
 down(s):
• si estado=cerrado, proceso se bloquea en semáforo
• estado=cerrado
 up(s):
• estado=abierto
• Si había algún proceso bloqueado en semáforo, reanuda uno
 ¿Son más potentes semáforos contadores que
semáforos binarios?
19
void up(semaforo s)
{
down_b(s->exc);
++(s->contador);
if (s->contador <=0)
up_b(s->esp);
up_b(s->exc);
}
void down(semaforo s)
{
down_b(s->blqd);
down_b(s->exc);
--(s->contador);
if (s->contador >=0)
up_b(s->exc);
else
{
up_b(s->exc);
down_b(s->esp);
}
up_b(s->blqd);
}
2.4 Semáforos binarios
Tema
7:
Concurrencia
y
Sincronización
struct s_semaforo
{
int contador;
semaforo_b blqd; /* =abierto */
semaforo_b exc; /* =abierto */
semaforo_b esp; /* =cerrado*/
}
typedef s_semaforo *semaforo;
20
Índice:
1. Suspensión y Reanudación
2. Semáforos
3. Propiedades y Características de los
Semáforos
4. Problemas Clásicos de Concurrencia
20
Tema
7:
Concurrencia
y
Sincronización
21
3. Propiedades y Características de los Sem.
Tema
7:
Concurrencia
y
Sincronización
 Reglas generales:
 Si un semáforo controla sección crítica,
• Cerrar lo más tarde posible
• Abrir tan pronto como sea posible
 Secciones críticas anidadas:
• Evitar en la medida de lo posible
• down(a) y despues down(b)→ admisible si proceso que hace
up(b) no hace down(a)
 Selección proceso que se desbloquea up:
 No especificado
 Depende de implementación:
• FIFO, aleatorio, prioridad…
 Los programas nunca deben depender de este detalle!
22
3. Propiedades y Características de los Sem.
Tema
7:
Concurrencia
y
Sincronización
 Granularidad: nº de recursos controlados por cada
semáforo
 Granularidad fina: un recurso por semáforo
 Granularidad gruesa: un semáforo para todos los recursos:
23
3. Propiedades y Características de los Sem.
Tema
7:
Concurrencia
y
Sincronización
Granularidad fina:
 Ventajas:
 mayor grado de paralelismo
P1
P2
 Inconvenientes:
 mayor número de semáforos
 ¡Posibilidad de interbloqueo!
Granularidad gruesa:
 (inversa)
24
Índice:
1. Suspensión y Reanudación
2. Semáforos
3. Propiedades y Características de los
Semáforos
4. Problemas Clásicos de Concurrencia
24
Tema
7:
Concurrencia
y
Sincronización
25
4. Problemas Clásicos de Concurrencia
Tema
7:
Concurrencia
y
Sincronización
Los Filósofos Comensales
void filosofo (int i)
{
while(true)
{
pensar();
coger_tenedor(derecho(i));
coger_tenedor(izquierdo(i));
comer();
soltar_tenedor(derecho(i));
soltar_tenedor(izquierdo(i));
}
}
26
4. Problemas Clásicos de Concurrencia
Tema
7:
Concurrencia
y
Sincronización
void filosofo (int i)
{
while(true)
{
pensar();
down (s);
coger_tenedor(derecho(i));
coger_tenedor(izquierdo(i));
comer();
soltar_tenedor(derecho(i));
soltar_tenedor(izquierdo(i));
up (s)
}
}
 ¿Una posible solución?
27
4. Problemas Clásicos de Concurrencia
Tema
7:
Concurrencia
y
Sincronización
excmut
f[0]
f[1]
f[2]
f[3]
f[N]
void filosofo (int i)
{
while(true)
{
pensar();
coger_tenedores(i);
comer();
soltar_tenedores(i);
}
}
void coger_tenedores(int i)
{
down(excmut);
estado[i]= HAMBRIENTO;
probar(i);
up(excmut);
down(f[i]);
}
void soltar_tenedores(int i)
{
down(excmut);
estado[i]= PENSANDO;
probar(izquierdo(i));
probar(derecho(i));
up(excmut);
}
void probar (int i)
{
if ((estado[i]==HAMBRIENTO) && (estado[izquierdo(i) != COMIENDO)
&& (estado[derecho(i)] != COMIENDO)
{
estado[i]= COMIENDO;
up(f[i])
}
}

Más contenido relacionado

Similar a 17961921.ppt

Controladores logico programables
Controladores logico programablesControladores logico programables
Controladores logico programablesMaestros Online
 
02_Layer2-laboratorio Cisco en packtracert.pdf
02_Layer2-laboratorio Cisco en packtracert.pdf02_Layer2-laboratorio Cisco en packtracert.pdf
02_Layer2-laboratorio Cisco en packtracert.pdfdecter007
 
Parcial II de Sistema de Operación – Semestre 201322
Parcial II de Sistema de Operación – Semestre 201322Parcial II de Sistema de Operación – Semestre 201322
Parcial II de Sistema de Operación – Semestre 201322Viviana Trujillo
 
Controladores logico programables
Controladores logico programablesControladores logico programables
Controladores logico programablesMaestros en Linea
 
Practica 5 simulink-5156
Practica 5 simulink-5156Practica 5 simulink-5156
Practica 5 simulink-5156RossiHeredia1
 
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)Pablo Alvarez Doval
 
Circuitos combinacionales
Circuitos combinacionalesCircuitos combinacionales
Circuitos combinacionalesElmer Mendoza
 
So 07-concurrencia-6x1
So 07-concurrencia-6x1So 07-concurrencia-6x1
So 07-concurrencia-6x1DIEGODIEGO23
 
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
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrentepuracastillo
 
Curso de lab view seis horas
Curso de lab view seis horasCurso de lab view seis horas
Curso de lab view seis horasRaul Carrillo
 
UTPL-LÓGICA DE LA PROGRAMACIÓN-II BIMESTRE-(abril agosto 2012)
UTPL-LÓGICA DE LA PROGRAMACIÓN-II BIMESTRE-(abril agosto 2012)UTPL-LÓGICA DE LA PROGRAMACIÓN-II BIMESTRE-(abril agosto 2012)
UTPL-LÓGICA DE LA PROGRAMACIÓN-II BIMESTRE-(abril agosto 2012)Videoconferencias UTPL
 
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALESVictor Asanza
 
Pairwise and property based testing
Pairwise and property based testingPairwise and property based testing
Pairwise and property based testingAgustin Ramos
 

Similar a 17961921.ppt (20)

Controladores logico programables
Controladores logico programablesControladores logico programables
Controladores logico programables
 
02_Layer2-laboratorio Cisco en packtracert.pdf
02_Layer2-laboratorio Cisco en packtracert.pdf02_Layer2-laboratorio Cisco en packtracert.pdf
02_Layer2-laboratorio Cisco en packtracert.pdf
 
Parcial II de Sistema de Operación – Semestre 201322
Parcial II de Sistema de Operación – Semestre 201322Parcial II de Sistema de Operación – Semestre 201322
Parcial II de Sistema de Operación – Semestre 201322
 
Controladores logico programables
Controladores logico programablesControladores logico programables
Controladores logico programables
 
Practica 5 simulink-5156
Practica 5 simulink-5156Practica 5 simulink-5156
Practica 5 simulink-5156
 
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Basica)
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Pipelining
PipeliningPipelining
Pipelining
 
Circuitos combinacionales
Circuitos combinacionalesCircuitos combinacionales
Circuitos combinacionales
 
Lab1
Lab1Lab1
Lab1
 
So 07-concurrencia-6x1
So 07-concurrencia-6x1So 07-concurrencia-6x1
So 07-concurrencia-6x1
 
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
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
Curso de lab view seis horas
Curso de lab view seis horasCurso de lab view seis horas
Curso de lab view seis horas
 
Semaforos
SemaforosSemaforos
Semaforos
 
UTPL-LÓGICA DE LA PROGRAMACIÓN-II BIMESTRE-(abril agosto 2012)
UTPL-LÓGICA DE LA PROGRAMACIÓN-II BIMESTRE-(abril agosto 2012)UTPL-LÓGICA DE LA PROGRAMACIÓN-II BIMESTRE-(abril agosto 2012)
UTPL-LÓGICA DE LA PROGRAMACIÓN-II BIMESTRE-(abril agosto 2012)
 
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES
⭐⭐⭐⭐⭐ PRÁCTICA: ANÁLISIS DE CIRCUITOS COMBINATORIALES
 
Pairwise and property based testing
Pairwise and property based testingPairwise and property based testing
Pairwise and property based testing
 
Presentación1vhdl
Presentación1vhdlPresentación1vhdl
Presentación1vhdl
 

Más de ssuser948499

bases de datos gestion y manejo de ytaba
bases de datos gestion y manejo de ytababases de datos gestion y manejo de ytaba
bases de datos gestion y manejo de ytabassuser948499
 
Presentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsbPresentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsbssuser948499
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosssuser948499
 
la publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio acla publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio acssuser948499
 
f_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas pof_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas possuser948499
 
editores de texto.neln sistemas de bases
editores de texto.neln sistemas de baseseditores de texto.neln sistemas de bases
editores de texto.neln sistemas de basesssuser948499
 
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.pptintroduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.pptssuser948499
 
proyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptxproyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptxssuser948499
 
mongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles frmongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles frssuser948499
 
presentacinorm-150325230016-conversion-gate01.pptx
presentacinorm-150325230016-conversion-gate01.pptxpresentacinorm-150325230016-conversion-gate01.pptx
presentacinorm-150325230016-conversion-gate01.pptxssuser948499
 
Curso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas aCurso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas assuser948499
 
introducion a sistemas de bases de datos
introducion a sistemas de bases de datosintroducion a sistemas de bases de datos
introducion a sistemas de bases de datosssuser948499
 
instalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestioinstalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestiossuser948499
 
seguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internetseguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internetssuser948499
 
modulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia intermodulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia interssuser948499
 
Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24ssuser948499
 
presentacion d actividad opara bases de datos
presentacion d actividad opara bases de datospresentacion d actividad opara bases de datos
presentacion d actividad opara bases de datosssuser948499
 
aplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.pptaplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.pptssuser948499
 
gestión y manejo de bases de datos basic
gestión y manejo de bases de datos basicgestión y manejo de bases de datos basic
gestión y manejo de bases de datos basicssuser948499
 
Plantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptxPlantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptxssuser948499
 

Más de ssuser948499 (20)

bases de datos gestion y manejo de ytaba
bases de datos gestion y manejo de ytababases de datos gestion y manejo de ytaba
bases de datos gestion y manejo de ytaba
 
Presentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsbPresentación1.estudio de casos de usobsb
Presentación1.estudio de casos de usobsb
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
 
la publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio acla publicidaden el internetcomo medio ac
la publicidaden el internetcomo medio ac
 
f_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas pof_ormulas_y_funciones.excel planillas po
f_ormulas_y_funciones.excel planillas po
 
editores de texto.neln sistemas de bases
editores de texto.neln sistemas de baseseditores de texto.neln sistemas de bases
editores de texto.neln sistemas de bases
 
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.pptintroduccionallaprogramacionweb-230123213144-47a8fc90.ppt
introduccionallaprogramacionweb-230123213144-47a8fc90.ppt
 
proyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptxproyectointegrador-100308005101-phpapp02.pptx
proyectointegrador-100308005101-phpapp02.pptx
 
mongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles frmongodb.base de datis noo relacionles fr
mongodb.base de datis noo relacionles fr
 
presentacinorm-150325230016-conversion-gate01.pptx
presentacinorm-150325230016-conversion-gate01.pptxpresentacinorm-150325230016-conversion-gate01.pptx
presentacinorm-150325230016-conversion-gate01.pptx
 
Curso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas aCurso_OBS. infromatica basica sistemas a
Curso_OBS. infromatica basica sistemas a
 
introducion a sistemas de bases de datos
introducion a sistemas de bases de datosintroducion a sistemas de bases de datos
introducion a sistemas de bases de datos
 
instalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestioinstalacion de linux ububtu 10.10 gestio
instalacion de linux ububtu 10.10 gestio
 
seguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internetseguridad de las aplicaciones web en el internet
seguridad de las aplicaciones web en el internet
 
modulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia intermodulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia inter
 
Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24Gestion y manejo de bases de datos II 24
Gestion y manejo de bases de datos II 24
 
presentacion d actividad opara bases de datos
presentacion d actividad opara bases de datospresentacion d actividad opara bases de datos
presentacion d actividad opara bases de datos
 
aplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.pptaplicaciones_web_advantage_multimedia.ppt
aplicaciones_web_advantage_multimedia.ppt
 
gestión y manejo de bases de datos basic
gestión y manejo de bases de datos basicgestión y manejo de bases de datos basic
gestión y manejo de bases de datos basic
 
Plantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptxPlantilla_de_presentación_de_trabajo_remoto.pptx
Plantilla_de_presentación_de_trabajo_remoto.pptx
 

Último

Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfCurso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfcesar17lavictoria
 
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...wvernetlopez
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxYajairaMartinez30
 

Último (20)

Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfCurso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
 
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
Presentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptxPresentación electricidad y magnetismo.pptx
Presentación electricidad y magnetismo.pptx
 

17961921.ppt

  • 1. 1 Tema 7: Concurrencia y Sincronización Sistemas Operativos
  • 2. 2 Índice: 1. Suspensión y Reanudación 2. Semáforos 3. Propiedades y Características de los Semáforos 4. Problemas Clásicos de Concurrencia 2 Tema 7: Concurrencia y Sincronización
  • 3. 3 Índice: 1. Suspensión y Reanudación 2. Semáforos 3. Propiedades y Características de los Semáforos 4. Problemas Clásicos de Concurrencia 3 Tema 7: Concurrencia y Sincronización
  • 4. 4 1. Suspensión y Reanudación Tema 7: Concurrencia y Sincronización  Primitivas más simples: sleep ()  Bloquea al proceso que la invoca wakeup (int pid)  Reanuda a proceso cuyo PID se indica  ¿Y si dicho proceso no está sleeping? • La llamada a wakeup() no tiene efecto • Se recuerda la llamada para que el próximo sleep() que haga el proceso no tenga efecto. • Se trata como un error.
  • 5. 5 1. Suspensión y Reanudación Tema 7: Concurrencia y Sincronización  Implementación: ¡trivial! sleep ()  Nuevo estado proceso llamante: bloqueado  Insertar en lista de procesos bloqueados  Activar bit “sleeping” en PCB para indicar causa de bloqueo wakeup (int pid)  Nuevo estado proceso despertado: preparado  Quitar de lista de procesos bloqueados e insertar en preparados  Desactivar bit “sleeping” en PCB
  • 6. 6 1. Suspensión y Reanudación Tema 7: Concurrencia y Sincronización  Aplicando estas primitivas a resolver problemas en la vida real: productor/consumidor. while(true) { producir_elemento(); if (contador==N) sleep(); almacenar_elemento(); contador++; if (contador==1) wakeup(consumidor); } productor 0 1 2 3 tabla N-1 ins ext contador=0 while(true) { if (contador==0) sleep(); retirar_elemento(); contador--; if (contador==(N-1)) wakeup(productor); usar_elemento(); } consumidor contador=1 contador=2 contador=3 contador=N
  • 7. 7 1. Suspensión y reanudación Tema 7: Concurrencia y Sincronización  Problemas:  Suspensión es incondicional • ¡No hay atomicidad comprobación-acción!  Procesos deben conocerse entre sí  Un único estado de espera por proceso • Procesos están “o despiertos o dormidos” • Si proceso está dormido, no hay vinculación alguna con la causa por la que está en dicho estado
  • 8. 8 Índice: 1. Suspensión y Reanudación 2. Semáforos 3. Propiedades y Características de los Semáforos 4. Problemas Clásicos de Concurrencia 8 Tema 7: Concurrencia y Sincronización
  • 9. 9 2. Semáforos Tema 7: Concurrencia y Sincronización 1. Concepto de semáforo 2. Implementación de semáforos 3. Semáforos en la práctica 4. Semáforos binarios
  • 10. 10 2. Semáforos Tema 7: Concurrencia y Sincronización 1. Concepto de semáforo 2. Implementación de semáforos 3. Semáforos en la práctica 4. Semáforos binarios
  • 11. 11 2.1 Concepto de semáforo Tema 7: Concurrencia y Sincronización  E. W. Dijkstra (1.965)  Semaforo = tipo abstracto de datos, que encapsula:  Un contador entero  Una lista de procesos bloqueados en el semáforo  Operaciones sobre semáforos:  down(s): • si contador = 0, proceso se bloquea en semáforo • decrementa contador  up(s): • Incrementa contador • Si había algún proceso bloqueado en semáforo, reanuda uno  ¡Ambas operaciones son atómicas!
  • 12. 12 2.1 Concepto de semáforo Tema 7: Concurrencia y Sincronización  Utilidad: proteger acceso a recursos compartidos  A cada recurso compartido, se asocia semáforo con valor inicial 1.  Secciones críticas asociadas al recurso: • Protocolo de entrada: down(s) • Protocolo de salida: up(s)  Ventajas:  Robustez • Comprobación/Acción son atómicas  Procesos que se coordinan no necesitan conocerse entre sí • Sólo necesitan conocer semáforos que comparten  Flexibilidad • Tanto semáforos como recursos compartidos
  • 13. 13 2. Semáforos Tema 7: Concurrencia y Sincronización 1. Concepto de semáforo 2. Implementación de semáforos 3. Semáforos en la práctica 4. Semáforos binarios
  • 14. 14 void down(semaforo s) { if (s->contador>0) s->contador--; else { insertar_en_lista (&s->bloqueados, getpid()); sleep(); } } 2.2 Implementación de semáforos Tema 7: Concurrencia y Sincronización struct s_semaforo { int contador; listaproc bloqueados; } typedef s_semaforo *semaforo; struct nodoproc { PID proceso; struct nodoproc *sig; } typedef struct nodoproc *listaproc void up(semaforo s) { if (lista_vacia(s->bloqueados)) s->contador++; else { int pid=sacar_de_lista(s->bloqueados); wakeup(pid); } } semaforo CrearSemaforo(int valor); void DestruirSemaforo(semaforo s);
  • 15. 15 2. Semáforos Tema 7: Concurrencia y Sincronización 1. Concepto de semáforo 2. Implementación de semáforos 3. Semáforos en la práctica 4. Semáforos binarios
  • 16. 16 2.3 Semáforos en la práctica Tema 7: Concurrencia y Sincronización Productor/Consumidor con semáforos while(true) { producir_elemento(); down(vacias); down(excmut); almacenar_elemento(); up(excmut); up(llenas); } productor 0 1 2 3 tabla N-1 ins ext contador=0 while(true) { down(llenas); down(excmut); retirar_elemento(); up(excmut); up(vacias); consumir_elemento(); } consumidor excmut=1 vacias=N llenas=0 down(excmut); down(vacias);
  • 17. 17 2. Semáforos Tema 7: Concurrencia y Sincronización 1. Concepto de semáforo 2. Implementación de semáforos 3. Semáforos en la práctica 4. Semáforos binarios
  • 18. 18 2.4 Semáforos binarios Tema 7: Concurrencia y Sincronización  Caso particular: semáforos con sólo dos estados:  Abierto (true, 1, …)  Cerrado (false, 0, …)  Operaciones sobre semáforos binarios:  down(s): • si estado=cerrado, proceso se bloquea en semáforo • estado=cerrado  up(s): • estado=abierto • Si había algún proceso bloqueado en semáforo, reanuda uno  ¿Son más potentes semáforos contadores que semáforos binarios?
  • 19. 19 void up(semaforo s) { down_b(s->exc); ++(s->contador); if (s->contador <=0) up_b(s->esp); up_b(s->exc); } void down(semaforo s) { down_b(s->blqd); down_b(s->exc); --(s->contador); if (s->contador >=0) up_b(s->exc); else { up_b(s->exc); down_b(s->esp); } up_b(s->blqd); } 2.4 Semáforos binarios Tema 7: Concurrencia y Sincronización struct s_semaforo { int contador; semaforo_b blqd; /* =abierto */ semaforo_b exc; /* =abierto */ semaforo_b esp; /* =cerrado*/ } typedef s_semaforo *semaforo;
  • 20. 20 Índice: 1. Suspensión y Reanudación 2. Semáforos 3. Propiedades y Características de los Semáforos 4. Problemas Clásicos de Concurrencia 20 Tema 7: Concurrencia y Sincronización
  • 21. 21 3. Propiedades y Características de los Sem. Tema 7: Concurrencia y Sincronización  Reglas generales:  Si un semáforo controla sección crítica, • Cerrar lo más tarde posible • Abrir tan pronto como sea posible  Secciones críticas anidadas: • Evitar en la medida de lo posible • down(a) y despues down(b)→ admisible si proceso que hace up(b) no hace down(a)  Selección proceso que se desbloquea up:  No especificado  Depende de implementación: • FIFO, aleatorio, prioridad…  Los programas nunca deben depender de este detalle!
  • 22. 22 3. Propiedades y Características de los Sem. Tema 7: Concurrencia y Sincronización  Granularidad: nº de recursos controlados por cada semáforo  Granularidad fina: un recurso por semáforo  Granularidad gruesa: un semáforo para todos los recursos:
  • 23. 23 3. Propiedades y Características de los Sem. Tema 7: Concurrencia y Sincronización Granularidad fina:  Ventajas:  mayor grado de paralelismo P1 P2  Inconvenientes:  mayor número de semáforos  ¡Posibilidad de interbloqueo! Granularidad gruesa:  (inversa)
  • 24. 24 Índice: 1. Suspensión y Reanudación 2. Semáforos 3. Propiedades y Características de los Semáforos 4. Problemas Clásicos de Concurrencia 24 Tema 7: Concurrencia y Sincronización
  • 25. 25 4. Problemas Clásicos de Concurrencia Tema 7: Concurrencia y Sincronización Los Filósofos Comensales void filosofo (int i) { while(true) { pensar(); coger_tenedor(derecho(i)); coger_tenedor(izquierdo(i)); comer(); soltar_tenedor(derecho(i)); soltar_tenedor(izquierdo(i)); } }
  • 26. 26 4. Problemas Clásicos de Concurrencia Tema 7: Concurrencia y Sincronización void filosofo (int i) { while(true) { pensar(); down (s); coger_tenedor(derecho(i)); coger_tenedor(izquierdo(i)); comer(); soltar_tenedor(derecho(i)); soltar_tenedor(izquierdo(i)); up (s) } }  ¿Una posible solución?
  • 27. 27 4. Problemas Clásicos de Concurrencia Tema 7: Concurrencia y Sincronización excmut f[0] f[1] f[2] f[3] f[N] void filosofo (int i) { while(true) { pensar(); coger_tenedores(i); comer(); soltar_tenedores(i); } } void coger_tenedores(int i) { down(excmut); estado[i]= HAMBRIENTO; probar(i); up(excmut); down(f[i]); } void soltar_tenedores(int i) { down(excmut); estado[i]= PENSANDO; probar(izquierdo(i)); probar(derecho(i)); up(excmut); } void probar (int i) { if ((estado[i]==HAMBRIENTO) && (estado[izquierdo(i) != COMIENDO) && (estado[derecho(i)] != COMIENDO) { estado[i]= COMIENDO; up(f[i]) } }