SlideShare une entreprise Scribd logo
1  sur  39
En un sistema multiprogramado con un
único procesador, los procesos se intercalan
en el tiempo para dar la apariencia de
ejecución simultánea.
Como no se consigue un procesamiento
paralelo real y aunque se produce una
cierta sobrecarga en los intercambios de
procesos de un sitio a otro, la ejecución
intercalada produce beneficios importantes
en la eficiencia del procesamiento y en la
estructuración de los programas.
El problema principal se da por la
velocidad relativa de ejecución de los
procesos, la cual no puede predecirse y
dependen de las actividades de otros
procesos, de la forma en que el SSOO trata
las políticas de planificación.
Lectura / Escritura
Lectura / Escritura
Compartir recursos globales está lleno de
riesgos. ¿ Por que ?
El orden en que se ejecuten las lecturas y
escrituras, es critico. ¿ Por que ? :P
Que pasa si un Proceso A solicita uso y
obtiene control sobre un canal de E/S y se
suspende (el proceso A) antes de hacer uso
del canal?
Proceso A Proceso B
Proceso C
Proceso A Proceso B
Proceso C
Veamos el siguiente ejemplo:
void echo(){
ent=getchar();
sal=ent;
putchar(sal);
}
Cualquier programa puede llamar a este
procedimiento repetidas veces para recibir
la entrada de un usuario y mostrarla en
pantalla.
Considérese un sistema multiprogramado
con un único usuario, el cual puede pasar
de una aplicación a otra y cada aplicación
utiliza el mismo teclado para la entrada y la
misma salida por pantalla……
……… Como cada aplicación utiliza el
procedimiento echo(), tiene sentido que
éste sea un procedimiento compartido que
se cargue en una parte de la memoria para
todas las aplicaciones; así se usa una copia
del procedimiento y se ahorra espacio.
Esto es útil, estamos de acuerdo, ya que
nos permite una interacción cercana y
eficiente entre los procesos. Sin embargo,
compartir puede dar lugar a problemas.
Proceso A
Proceso B
1.- Llama al procedimiento
echo y es interrumpido
inmediatamente, después de
terminar la función de
entrada. En este punto, el
último carácter leído, X,
estará almacenado en la
variable ent.
2.- Se activa el proceso B y
llama al procedimiento
echo, que se ejecuta hasta
el final y muestra un
caracter Y en la pantalla.
3.- Se reanuda el proceso A,
Ahora el valor de X ha sido
sobrescrito en la variable
ent con Y; Por lo tanto, lo
original para A se perdió.
¿Que pasa si decimos ahora que solo un
proceso a la vez puede utilizar la función
echo()?
El S.O. debe ser capaz de seguir la pista a
los distintos procesos (Lo cual hace
mediante los PCB)
El S.O. debe proteger los datos y los
recursos físicos de cada proceso contra
injerencias no intencionadas de otros
procesos. Esto supone emplear técnicas
relativas a la memoria, archivos y E/S.
Los resultados de un proceso debe ser
independientes de la velocidad relativa a
la que se realiza la ejecución de otros
procesos concurrentes.
La manera en que interactúan los procesos
se puede clasificar en función del nivel de
conocimiento que cada proceso tiene de la
existencia de los demás.
Procesos no tienen conocimiento de
los demás. Estos son llamados procesos
independientes que no están pensados
para operar juntos. Nótese que aunque los
procesos no trabajen juntos, el S.O. tiene
que encargarse de la competencia por los
recursos.
Procesos tienen conocimiento
indirecto de otros. No conocen
necesariamente a los otros por sus PID,
pero comparten el acceso de algunos
objetos, como un Buffer de E/S. Estos
procesos muestran Cooperación
indirecta.
Procesos tienen un conocimiento
directo de los otros. Estos son capaces
de comunicarse con los demás por el PID y
están diseñados para trabajar
conjuntamente en alguna actividad. Estos
procesos muestran , al igual que los
anteriores, cooperación.
Obviamente, las condiciones no estarán
siempre tan claramente diferenciadas.
“Dos o más procesos necesitan acceder a
un recurso durante el curso de su
ejecución; ningún proceso es consciente de
la existencia de los otros y no se ve
afectado por su ejecución”
Por ende, cada proceso debe dejar tal y
como esté el estado de cualquier recurso
que utilice, como E/S, Memoria, CPU o
Reloj.
En el caso de que existan procesos en
competencia, se deben solucionar tres
problemas de control……
Esto se da cuando dos o mas procesos
quieren acceder a un único recurso no
compartible, como una impresora.
Estos recursos serán llamados, Recursos
Críticos y la parte del programa que los
accede se conoce como Sección Critica
del programa.
Recurso Crítico
Proceso A
Proceso B
Pide recurso en
00:00:12:15
Pide recurso en
00:00:12:16
Imaginemos que tenemos a P1 y P2 con
dos recursos R1 y R2. Ahora supongamos
que cada proceso necesita acceder a ambo
recursos para llevar a cabo una parte de su
función.
Proceso A Proceso B
R1 R2
Ambos necesitan
acceder a R1 y R2
¿Cual es el problema
aquí?!
Esto es cuando un proceso no puede
acceder a un recurso por un tiempo
ilimitado.
El recurso sigue existiendo después de que
un proceso lo use (recurso reutilizable) o
desaparece una vez utilizado.
Los procesos pueden compartir el uso de
un recurso o lo deben usar en modo
exclusivo o dedicado.
Hay un único ejemplar de cada recurso o
existen múltiples unidades de cada uno.
Es factible expropiar el recurso al proceso
que lo está utilizando.
Proceso P1
Solicita (C)
Solicita (I)
Uso de los recursos
Libera (I)
Libera (C)
Proceso P2
Solicita (I)
Solicita (C)
Uso de los recursos
Libera (C)
Libera (I)
1.- P1 : solicita (C)
2.- P2 : solicita (I)
3.- P2 : solicita (C)
4.- P1 : solicita (I)
1.- P1 : solicita (C)
2.- P1 : solicita (I)
3.- P2 : solicita (I)
4.- P1 : libera (I)
5.- P2 : solicita (C)
6.- P1 : libera (C)
7.- P2 : libera (C)
8.- P2 : libera (I)
Proceso P1
Enviar (P3,A)
Recibir (P3,B)
Enviar (P2,C)
Proceso P2
Recibir (P1,D)
Enviar (P3,E)
Proceso P3
Recibir (P2,F)
Enviar (P1,G)
Recibir(P1,H)
Proceso P1
solicitar (C)
Enviar (P2,A)
libera (C)
Proceso P2
solicita (C)
Recibir (P1,B)
libera (C)
G={ {N} , {A} }
N se descompone de dos subconjuntos
disjuntos que se corresponden con los
procesos P y los recursos R. Cada recurso
Ri tiene asociado un valor que representa
cuántas unidades del recurso existen.
El conjunto de aristas A se descompone de
similar manera. Las Aristas de asignación
que relacionan R con P indican que el
proceso tiene asignada una unidad de dicho
recurso. Las aristas de solicitud que
relacionan P con R indican que el proceso
está esperando la concesión de una unidad
de dicho recurso.
Tomando en cuenta que tenemos un sistema con 3
recursos, R1 con 2 unidades, R2 con 3 unidades y
R3 con 2 unidades. A su vez, tenemos tres procesos
que realizan la siguiente traza de peticiones:
1.- P1 : solicita (R1[2])
2.- P2 : solicita (R2[1])
3.- P2 : solicita (R1[1])
4.- P3 : solicita (R2[1])
N = { P1,P2,P3,R1(2),R2(3),R3(2) }
A = { R1P1, R1P1, R2P2, P2  R1, R2P3 }
R1 R2 R3
P3
P2
P1
N = { P1,P2,P3,R1(2),R2(3),R3(2) }
A = { R1P1, R1P1, R2P2, P2  R1, R2P3 }
5.- P3 : solicita (R2[1])
6.- P1 : solicita (R2[1],R3[2])
R1 R2 R3
P3
P2
P1
N = { P1,P2,P3,R1(2),R2(3),R3(2) }
A = { R1P1, R1P1, R2P2, P2R1, R2P3, R2P3,
P1R2, P1R3,P1R3}
Tomando en cuenta que tenemos un sistema con 3
recursos, cada uno de ellos con una sola unidad y 4
procesos que realizan las siguiente traza de
peticiones:
1.- P1 : solicita (R1[1])
2.- P2 : solicita (R2[1])
3.- P2 : solicita (R1[1])
4.- P3 : solicita (R2[1])
5.- P4 : solicita (R3[1])
6.- P1 : solicita (R2[1])
N = ???
A = ???
R1 R2 R3
P3
P2
P1
N = { P1,P2,P3,P4,R1(1),R2(1),R3(1) }
A = {R1P1, R2P2,P2R1,P3R2,R3P4,P1R2}
P4
Veremos el método de Dekker, el cual tiene
la ventaja de ilustrar la mayoría de los
errores habituales que se producen en la
construcción de programas concurrentes.
Primer Intento de Dekker
/* Proceso A*/
While(turno !=0)
/*hacer nada*/
/*Sección Critica*/
Turno=1;
/* Proceso B*/
While(turno !=1)
/*hacer nada*/
/*Sección Critica*/
Turno=0;
Segundo Intento de Dekker
/* Proceso A*/
While(señal[1])
/*hacer nada*/
Señal[0]=true;
/*Sección Critica*/
Señal[0]=false;
/*Resto Código*/
/* Proceso B*/
While(señal[0])
/*hacer nada*/
Señal[1]=true;
/*Sección Critica*/
Señal[1]=false;
/*Resto Código*/
Tercer Intento de Dekker
/* Proceso A*/
Señal[0]=true;
While(señal[1])
/*hacer nada*/
/*Sección Critica*/
Señal[0]=false;
/* Proceso B*/
Señal[1]=true;
While(señal[0])
/*hacer nada*/
/*Sección Critica*/
Señal[1]=false;
Cuarto Intento de Dekker
/* Proceso A*/
Señal[0]=true;
While(señal[1])
/*hacer nada*/
Señal[0]=false;
/*Sección Critica*/
Señal[0]=true;
/* Proceso B*/
Señal[1]=true;
While(señal[0])
/*hacer nada*/
Señal[1]=false;
/*Sección Critica*/
Señal[1]=true;
Dos o mas procesos pueden cooperar por
medio de señales simples de forma que se
pueda obligar a detener un proceso en una
posición determinada hasta que reciba una
señal especifica.
Para esta señalización se usan unas
variables especificas llamadas semáforos.
Para transmitir una señal por el semáforo X
los procesos ejecutan la primitiva Signal(X).
Para recibir una señal de los procesos se
ejecuta la primitiva Wait(X)
Los Semáforos son variables que tienen un
valor entero sobre el que se pueden definir
las tres operaciones siguientes:
Un semáforo puede iniciarse con un valor
no negativo.
Wait disminuye el valor del semáforo. Si el
valor se hace negativo, el proceso que
ejecuta wait se bloquea.
Signal incrementa el valor del semáforo. Si
el valor no es positivo, se desbloquea un
proceso bloqueado por wait.
struct semaforo{
int contador;
tipoCola cola;
}
void wait(semaforo s){
s.contador--;
if(s.contador <0){
poner este proceso en s.cola;
bloquear este proceso;
}
}
void signal(semaforo s){
s.contador++;
if(s.contador <=0){
quita un proceso de s.cola;
Poner proceso P en la cola de
listos;
}
}
1
A B C
0
-1
-2
-1
0
1
Wait(cierre)
Wait(cierre)
Wait(cierre)
Signal(cierre)
Signal(cierre)
Signal(cierre)
B
B
C
C
El valor
absoluto de
este numero
es igual a la
cantidad de
proceso que
hay en cola.
Sincronización de Procesos

Contenu connexe

Tendances

Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesosIchinose 11
 
Algoritmos de Dekker
Algoritmos de DekkerAlgoritmos de Dekker
Algoritmos de Dekkermastermind87
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativosDaniel Vargas
 
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosAbimael hernandez
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutuatatyseli
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekkernerexi
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONPANAFMX
 
Algoritmo de dekker
Algoritmo de dekkerAlgoritmo de dekker
Algoritmo de dekkerJuanFrank13
 
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
 
Algorit. De Dekker
Algorit. De DekkerAlgorit. De Dekker
Algorit. De DekkerLuz_star
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1honeyjimenez
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - SemáforosJuan Rojas
 
Estados de transicion de procesos
Estados de transicion de procesosEstados de transicion de procesos
Estados de transicion de procesosLarry Cepeda
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesossueich
 
Unidad 2 Sistemas Operativos.
Unidad 2 Sistemas Operativos.Unidad 2 Sistemas Operativos.
Unidad 2 Sistemas Operativos.A6M0
 
Estados y transiciones de los procesos
Estados y transiciones de los procesosEstados y transiciones de los procesos
Estados y transiciones de los procesosAlberto Ch
 
Exclusion mutua y sincronizacion
Exclusion mutua y sincronizacionExclusion mutua y sincronizacion
Exclusion mutua y sincronizacionltgrajales
 
Modelo de estados y transiciones
Modelo de estados y transicionesModelo de estados y transiciones
Modelo de estados y transicionesyuukilore3
 

Tendances (20)

Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
Algoritmos de Dekker
Algoritmos de DekkerAlgoritmos de Dekker
Algoritmos de Dekker
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
 
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmos
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutua
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekker
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSON
 
Algoritmo de dekker
Algoritmo de dekkerAlgoritmo de dekker
Algoritmo de dekker
 
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.
 
Algoritmo de dekker
Algoritmo de dekker Algoritmo de dekker
Algoritmo de dekker
 
Algorit. De Dekker
Algorit. De DekkerAlgorit. De Dekker
Algorit. De Dekker
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - Semáforos
 
Estados de transicion de procesos
Estados de transicion de procesosEstados de transicion de procesos
Estados de transicion de procesos
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesos
 
Unidad 2 Sistemas Operativos.
Unidad 2 Sistemas Operativos.Unidad 2 Sistemas Operativos.
Unidad 2 Sistemas Operativos.
 
Concepto de proceso
Concepto de procesoConcepto de proceso
Concepto de proceso
 
Estados y transiciones de los procesos
Estados y transiciones de los procesosEstados y transiciones de los procesos
Estados y transiciones de los procesos
 
Exclusion mutua y sincronizacion
Exclusion mutua y sincronizacionExclusion mutua y sincronizacion
Exclusion mutua y sincronizacion
 
Modelo de estados y transiciones
Modelo de estados y transicionesModelo de estados y transiciones
Modelo de estados y transiciones
 

Similaire à Sincronización de Procesos

Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Gabriel Loría Solís
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesosECCI
 
U n i d a d 2 sist oper
U n i d a d    2 sist operU n i d a d    2 sist oper
U n i d a d 2 sist operfloresitalagu
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesospainni
 
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 procesadorFernando Camacho
 
Procesos en los Sistemas Operativos
Procesos en los Sistemas OperativosProcesos en los Sistemas Operativos
Procesos en los Sistemas OperativosAlix Indriago
 
Apuntes02ele
Apuntes02eleApuntes02ele
Apuntes02eleparrau
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezVanessa Ramirez
 
Procesos - Sistemas Operativos
Procesos - Sistemas OperativosProcesos - Sistemas Operativos
Procesos - Sistemas Operativosrichardstalin
 
Presentación1
Presentación1Presentación1
Presentación1janet290
 
Correccion parcial 2 do corte
Correccion parcial 2 do corteCorreccion parcial 2 do corte
Correccion parcial 2 do corteSebastianV91
 
Prueba
PruebaPrueba
Pruebaemnero
 
Los conceptos basicos de la programacion 10 5 (1)
Los conceptos basicos de la programacion  10 5 (1)Los conceptos basicos de la programacion  10 5 (1)
Los conceptos basicos de la programacion 10 5 (1)VictoriaRamrez13
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2Luis Cigarroa
 

Similaire à Sincronización de Procesos (20)

Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos Clase 3 Sistemas Operativos Administración de procesos
Clase 3 Sistemas Operativos Administración de procesos
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
 
U n i d a d 2 sist oper
U n i d a d    2 sist operU n i d a d    2 sist oper
U n i d a d 2 sist oper
 
UNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADORUNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADOR
 
prueba
pruebaprueba
prueba
 
Gestión de procesos
Gestión de procesosGestión de procesos
Gestión de procesos
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesos
 
Proceso
ProcesoProceso
Proceso
 
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
 
Tema5
Tema5Tema5
Tema5
 
Grupo1
Grupo1Grupo1
Grupo1
 
Procesos en los Sistemas Operativos
Procesos en los Sistemas OperativosProcesos en los Sistemas Operativos
Procesos en los Sistemas Operativos
 
Apuntes02ele
Apuntes02eleApuntes02ele
Apuntes02ele
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
Procesos - Sistemas Operativos
Procesos - Sistemas OperativosProcesos - Sistemas Operativos
Procesos - Sistemas Operativos
 
Presentación1
Presentación1Presentación1
Presentación1
 
Correccion parcial 2 do corte
Correccion parcial 2 do corteCorreccion parcial 2 do corte
Correccion parcial 2 do corte
 
Prueba
PruebaPrueba
Prueba
 
Los conceptos basicos de la programacion 10 5 (1)
Los conceptos basicos de la programacion  10 5 (1)Los conceptos basicos de la programacion  10 5 (1)
Los conceptos basicos de la programacion 10 5 (1)
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
 

Plus de Luis Lastra Cid

Diseño de un PLE - Actividad 2, módulo 4.
Diseño de un PLE - Actividad 2, módulo 4. Diseño de un PLE - Actividad 2, módulo 4.
Diseño de un PLE - Actividad 2, módulo 4. Luis Lastra Cid
 
Actividad de aprendizaje sistemas operativos (Actividad diplomado USACH)
Actividad de aprendizaje sistemas operativos (Actividad diplomado USACH)Actividad de aprendizaje sistemas operativos (Actividad diplomado USACH)
Actividad de aprendizaje sistemas operativos (Actividad diplomado USACH)Luis Lastra Cid
 
Suse studio como herramienta docente en el área de Sistemas Operativos
Suse studio como herramienta docente en el área de Sistemas OperativosSuse studio como herramienta docente en el área de Sistemas Operativos
Suse studio como herramienta docente en el área de Sistemas OperativosLuis Lastra Cid
 
SUSEstudio, Linux a la carta
SUSEstudio, Linux a la cartaSUSEstudio, Linux a la carta
SUSEstudio, Linux a la cartaLuis Lastra Cid
 
SUSEstudio, openSUSE a la carta
SUSEstudio, openSUSE a la cartaSUSEstudio, openSUSE a la carta
SUSEstudio, openSUSE a la cartaLuis Lastra Cid
 
SUSE Studio como herramienta docente
SUSE Studio como herramienta docenteSUSE Studio como herramienta docente
SUSE Studio como herramienta docenteLuis Lastra Cid
 
Estructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosEstructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosLuis Lastra Cid
 
openSUSE, Opción para newbies
openSUSE, Opción para newbiesopenSUSE, Opción para newbies
openSUSE, Opción para newbiesLuis Lastra Cid
 
Software Libre en la Empresa
Software Libre en la EmpresaSoftware Libre en la Empresa
Software Libre en la EmpresaLuis Lastra Cid
 
Software libre en entidades educacionales
Software libre en entidades educacionalesSoftware libre en entidades educacionales
Software libre en entidades educacionalesLuis Lastra Cid
 
Como organizar un laboratorio de computación y no morir en el intento
Como organizar un laboratorio de computación y no morir en el intentoComo organizar un laboratorio de computación y no morir en el intento
Como organizar un laboratorio de computación y no morir en el intentoLuis Lastra Cid
 
¿Y de que me sirve un elefante?
¿Y de que me sirve un elefante?¿Y de que me sirve un elefante?
¿Y de que me sirve un elefante?Luis Lastra Cid
 

Plus de Luis Lastra Cid (17)

Desafío 1 Robomind
Desafío 1 RobomindDesafío 1 Robomind
Desafío 1 Robomind
 
Diseño de un PLE - Actividad 2, módulo 4.
Diseño de un PLE - Actividad 2, módulo 4. Diseño de un PLE - Actividad 2, módulo 4.
Diseño de un PLE - Actividad 2, módulo 4.
 
Actividad de aprendizaje sistemas operativos (Actividad diplomado USACH)
Actividad de aprendizaje sistemas operativos (Actividad diplomado USACH)Actividad de aprendizaje sistemas operativos (Actividad diplomado USACH)
Actividad de aprendizaje sistemas operativos (Actividad diplomado USACH)
 
F1code.cl
F1code.clF1code.cl
F1code.cl
 
Desconferencia barcamp
Desconferencia barcampDesconferencia barcamp
Desconferencia barcamp
 
Presentación jrsl2010
Presentación jrsl2010Presentación jrsl2010
Presentación jrsl2010
 
Suse studio como herramienta docente en el área de Sistemas Operativos
Suse studio como herramienta docente en el área de Sistemas OperativosSuse studio como herramienta docente en el área de Sistemas Operativos
Suse studio como herramienta docente en el área de Sistemas Operativos
 
SUSEstudio, Linux a la carta
SUSEstudio, Linux a la cartaSUSEstudio, Linux a la carta
SUSEstudio, Linux a la carta
 
SUSEstudio, openSUSE a la carta
SUSEstudio, openSUSE a la cartaSUSEstudio, openSUSE a la carta
SUSEstudio, openSUSE a la carta
 
SUSE Studio como herramienta docente
SUSE Studio como herramienta docenteSUSE Studio como herramienta docente
SUSE Studio como herramienta docente
 
Estructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosEstructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractos
 
openSUSE, Opción para newbies
openSUSE, Opción para newbiesopenSUSE, Opción para newbies
openSUSE, Opción para newbies
 
Lab-O-matiC
Lab-O-matiCLab-O-matiC
Lab-O-matiC
 
Software Libre en la Empresa
Software Libre en la EmpresaSoftware Libre en la Empresa
Software Libre en la Empresa
 
Software libre en entidades educacionales
Software libre en entidades educacionalesSoftware libre en entidades educacionales
Software libre en entidades educacionales
 
Como organizar un laboratorio de computación y no morir en el intento
Como organizar un laboratorio de computación y no morir en el intentoComo organizar un laboratorio de computación y no morir en el intento
Como organizar un laboratorio de computación y no morir en el intento
 
¿Y de que me sirve un elefante?
¿Y de que me sirve un elefante?¿Y de que me sirve un elefante?
¿Y de que me sirve un elefante?
 

Dernier

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ónLourdes Feria
 
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 triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
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
 
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
 
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
 
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
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 

Dernier (20)

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
 
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 triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
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
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
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...
 
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
 
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
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 

Sincronización de Procesos

  • 1.
  • 2. En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo para dar la apariencia de ejecución simultánea. Como no se consigue un procesamiento paralelo real y aunque se produce una cierta sobrecarga en los intercambios de procesos de un sitio a otro, la ejecución intercalada produce beneficios importantes en la eficiencia del procesamiento y en la estructuración de los programas. El problema principal se da por la velocidad relativa de ejecución de los procesos, la cual no puede predecirse y dependen de las actividades de otros procesos, de la forma en que el SSOO trata las políticas de planificación.
  • 3. Lectura / Escritura Lectura / Escritura Compartir recursos globales está lleno de riesgos. ¿ Por que ? El orden en que se ejecuten las lecturas y escrituras, es critico. ¿ Por que ? :P Que pasa si un Proceso A solicita uso y obtiene control sobre un canal de E/S y se suspende (el proceso A) antes de hacer uso del canal?
  • 4. Proceso A Proceso B Proceso C Proceso A Proceso B Proceso C
  • 5. Veamos el siguiente ejemplo: void echo(){ ent=getchar(); sal=ent; putchar(sal); } Cualquier programa puede llamar a este procedimiento repetidas veces para recibir la entrada de un usuario y mostrarla en pantalla. Considérese un sistema multiprogramado con un único usuario, el cual puede pasar de una aplicación a otra y cada aplicación utiliza el mismo teclado para la entrada y la misma salida por pantalla……
  • 6. ……… Como cada aplicación utiliza el procedimiento echo(), tiene sentido que éste sea un procedimiento compartido que se cargue en una parte de la memoria para todas las aplicaciones; así se usa una copia del procedimiento y se ahorra espacio. Esto es útil, estamos de acuerdo, ya que nos permite una interacción cercana y eficiente entre los procesos. Sin embargo, compartir puede dar lugar a problemas. Proceso A Proceso B 1.- Llama al procedimiento echo y es interrumpido inmediatamente, después de terminar la función de entrada. En este punto, el último carácter leído, X, estará almacenado en la variable ent. 2.- Se activa el proceso B y llama al procedimiento echo, que se ejecuta hasta el final y muestra un caracter Y en la pantalla. 3.- Se reanuda el proceso A, Ahora el valor de X ha sido sobrescrito en la variable ent con Y; Por lo tanto, lo original para A se perdió.
  • 7. ¿Que pasa si decimos ahora que solo un proceso a la vez puede utilizar la función echo()? El S.O. debe ser capaz de seguir la pista a los distintos procesos (Lo cual hace mediante los PCB) El S.O. debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros procesos. Esto supone emplear técnicas relativas a la memoria, archivos y E/S. Los resultados de un proceso debe ser independientes de la velocidad relativa a la que se realiza la ejecución de otros procesos concurrentes.
  • 8.
  • 9. La manera en que interactúan los procesos se puede clasificar en función del nivel de conocimiento que cada proceso tiene de la existencia de los demás. Procesos no tienen conocimiento de los demás. Estos son llamados procesos independientes que no están pensados para operar juntos. Nótese que aunque los procesos no trabajen juntos, el S.O. tiene que encargarse de la competencia por los recursos. Procesos tienen conocimiento indirecto de otros. No conocen necesariamente a los otros por sus PID, pero comparten el acceso de algunos objetos, como un Buffer de E/S. Estos procesos muestran Cooperación indirecta.
  • 10. Procesos tienen un conocimiento directo de los otros. Estos son capaces de comunicarse con los demás por el PID y están diseñados para trabajar conjuntamente en alguna actividad. Estos procesos muestran , al igual que los anteriores, cooperación. Obviamente, las condiciones no estarán siempre tan claramente diferenciadas.
  • 11.
  • 12. “Dos o más procesos necesitan acceder a un recurso durante el curso de su ejecución; ningún proceso es consciente de la existencia de los otros y no se ve afectado por su ejecución” Por ende, cada proceso debe dejar tal y como esté el estado de cualquier recurso que utilice, como E/S, Memoria, CPU o Reloj. En el caso de que existan procesos en competencia, se deben solucionar tres problemas de control……
  • 13. Esto se da cuando dos o mas procesos quieren acceder a un único recurso no compartible, como una impresora. Estos recursos serán llamados, Recursos Críticos y la parte del programa que los accede se conoce como Sección Critica del programa. Recurso Crítico Proceso A Proceso B Pide recurso en 00:00:12:15 Pide recurso en 00:00:12:16
  • 14. Imaginemos que tenemos a P1 y P2 con dos recursos R1 y R2. Ahora supongamos que cada proceso necesita acceder a ambo recursos para llevar a cabo una parte de su función. Proceso A Proceso B R1 R2 Ambos necesitan acceder a R1 y R2 ¿Cual es el problema aquí?!
  • 15. Esto es cuando un proceso no puede acceder a un recurso por un tiempo ilimitado.
  • 16.
  • 17.
  • 18. El recurso sigue existiendo después de que un proceso lo use (recurso reutilizable) o desaparece una vez utilizado. Los procesos pueden compartir el uso de un recurso o lo deben usar en modo exclusivo o dedicado. Hay un único ejemplar de cada recurso o existen múltiples unidades de cada uno. Es factible expropiar el recurso al proceso que lo está utilizando.
  • 19. Proceso P1 Solicita (C) Solicita (I) Uso de los recursos Libera (I) Libera (C) Proceso P2 Solicita (I) Solicita (C) Uso de los recursos Libera (C) Libera (I) 1.- P1 : solicita (C) 2.- P2 : solicita (I) 3.- P2 : solicita (C) 4.- P1 : solicita (I)
  • 20. 1.- P1 : solicita (C) 2.- P1 : solicita (I) 3.- P2 : solicita (I) 4.- P1 : libera (I) 5.- P2 : solicita (C) 6.- P1 : libera (C) 7.- P2 : libera (C) 8.- P2 : libera (I)
  • 21. Proceso P1 Enviar (P3,A) Recibir (P3,B) Enviar (P2,C) Proceso P2 Recibir (P1,D) Enviar (P3,E) Proceso P3 Recibir (P2,F) Enviar (P1,G) Recibir(P1,H)
  • 22. Proceso P1 solicitar (C) Enviar (P2,A) libera (C) Proceso P2 solicita (C) Recibir (P1,B) libera (C)
  • 23. G={ {N} , {A} } N se descompone de dos subconjuntos disjuntos que se corresponden con los procesos P y los recursos R. Cada recurso Ri tiene asociado un valor que representa cuántas unidades del recurso existen. El conjunto de aristas A se descompone de similar manera. Las Aristas de asignación que relacionan R con P indican que el proceso tiene asignada una unidad de dicho recurso. Las aristas de solicitud que relacionan P con R indican que el proceso está esperando la concesión de una unidad de dicho recurso.
  • 24. Tomando en cuenta que tenemos un sistema con 3 recursos, R1 con 2 unidades, R2 con 3 unidades y R3 con 2 unidades. A su vez, tenemos tres procesos que realizan la siguiente traza de peticiones: 1.- P1 : solicita (R1[2]) 2.- P2 : solicita (R2[1]) 3.- P2 : solicita (R1[1]) 4.- P3 : solicita (R2[1]) N = { P1,P2,P3,R1(2),R2(3),R3(2) } A = { R1P1, R1P1, R2P2, P2  R1, R2P3 }
  • 25. R1 R2 R3 P3 P2 P1 N = { P1,P2,P3,R1(2),R2(3),R3(2) } A = { R1P1, R1P1, R2P2, P2  R1, R2P3 }
  • 26. 5.- P3 : solicita (R2[1]) 6.- P1 : solicita (R2[1],R3[2])
  • 27. R1 R2 R3 P3 P2 P1 N = { P1,P2,P3,R1(2),R2(3),R3(2) } A = { R1P1, R1P1, R2P2, P2R1, R2P3, R2P3, P1R2, P1R3,P1R3}
  • 28. Tomando en cuenta que tenemos un sistema con 3 recursos, cada uno de ellos con una sola unidad y 4 procesos que realizan las siguiente traza de peticiones: 1.- P1 : solicita (R1[1]) 2.- P2 : solicita (R2[1]) 3.- P2 : solicita (R1[1]) 4.- P3 : solicita (R2[1]) 5.- P4 : solicita (R3[1]) 6.- P1 : solicita (R2[1]) N = ??? A = ???
  • 29. R1 R2 R3 P3 P2 P1 N = { P1,P2,P3,P4,R1(1),R2(1),R3(1) } A = {R1P1, R2P2,P2R1,P3R2,R3P4,P1R2} P4
  • 30.
  • 31. Veremos el método de Dekker, el cual tiene la ventaja de ilustrar la mayoría de los errores habituales que se producen en la construcción de programas concurrentes. Primer Intento de Dekker /* Proceso A*/ While(turno !=0) /*hacer nada*/ /*Sección Critica*/ Turno=1; /* Proceso B*/ While(turno !=1) /*hacer nada*/ /*Sección Critica*/ Turno=0;
  • 32. Segundo Intento de Dekker /* Proceso A*/ While(señal[1]) /*hacer nada*/ Señal[0]=true; /*Sección Critica*/ Señal[0]=false; /*Resto Código*/ /* Proceso B*/ While(señal[0]) /*hacer nada*/ Señal[1]=true; /*Sección Critica*/ Señal[1]=false; /*Resto Código*/
  • 33. Tercer Intento de Dekker /* Proceso A*/ Señal[0]=true; While(señal[1]) /*hacer nada*/ /*Sección Critica*/ Señal[0]=false; /* Proceso B*/ Señal[1]=true; While(señal[0]) /*hacer nada*/ /*Sección Critica*/ Señal[1]=false;
  • 34. Cuarto Intento de Dekker /* Proceso A*/ Señal[0]=true; While(señal[1]) /*hacer nada*/ Señal[0]=false; /*Sección Critica*/ Señal[0]=true; /* Proceso B*/ Señal[1]=true; While(señal[0]) /*hacer nada*/ Señal[1]=false; /*Sección Critica*/ Señal[1]=true;
  • 35. Dos o mas procesos pueden cooperar por medio de señales simples de forma que se pueda obligar a detener un proceso en una posición determinada hasta que reciba una señal especifica. Para esta señalización se usan unas variables especificas llamadas semáforos. Para transmitir una señal por el semáforo X los procesos ejecutan la primitiva Signal(X). Para recibir una señal de los procesos se ejecuta la primitiva Wait(X)
  • 36. Los Semáforos son variables que tienen un valor entero sobre el que se pueden definir las tres operaciones siguientes: Un semáforo puede iniciarse con un valor no negativo. Wait disminuye el valor del semáforo. Si el valor se hace negativo, el proceso que ejecuta wait se bloquea. Signal incrementa el valor del semáforo. Si el valor no es positivo, se desbloquea un proceso bloqueado por wait.
  • 37. struct semaforo{ int contador; tipoCola cola; } void wait(semaforo s){ s.contador--; if(s.contador <0){ poner este proceso en s.cola; bloquear este proceso; } } void signal(semaforo s){ s.contador++; if(s.contador <=0){ quita un proceso de s.cola; Poner proceso P en la cola de listos; } }
  • 38. 1 A B C 0 -1 -2 -1 0 1 Wait(cierre) Wait(cierre) Wait(cierre) Signal(cierre) Signal(cierre) Signal(cierre) B B C C El valor absoluto de este numero es igual a la cantidad de proceso que hay en cola.