teoría de sistemas operativos sincronización procesos departamento de electrónica 2º semestre,...
TRANSCRIPT
![Page 1: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/1.jpg)
Teoría de Sistemas Operativos
Sincronización Procesos
Departamento de Electrónica
2º Semestre, 2003Gabriel Astudillo Muñoz
http://www.elo.utfsm.cl/~elo321
![Page 2: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/2.jpg)
2
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Dos o más procesos leen o escriben ciertas zonas compartidas
Proceso 1 Proceso N
SO
Recurso
El resultado final puededepender de lo que cadaproceso ejecutó.
![Page 3: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/3.jpg)
3
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Supongamos el siguiente problema:
Tenemos una Base de Datos financiera. Cada ficha representa una persona y puede o no tener deuda.El código que permite buscar deudores es el siguiente:
![Page 4: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/4.jpg)
4
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
void main(){ int deudores busca(0,3000); busca(3001, 5000); printf(“Deudores: %d”,deudores);}void busca(int ind1, ind2) { for(i=ind1; i<=ind2; i++) if(esDeudor(i)) deudores++;}
![Page 5: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/5.jpg)
5
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Qué pasa si modificamos el código
de la siguiente manera?void main(){
int deudores
pid=fork()
if(pid==0){ busca(0,3000);}
else{ busca(3001, 5000); }
printf(“Deudores: %d”,deudores);
}
![Page 6: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/6.jpg)
6
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Lo anterior se conoce como una“condición de competencia”.
Existe la necesidad de eliminar estetipos de condiciones.
El resultado final no puede dependerDel tiempo ni del lugar de ejecución de losprocesos
![Page 7: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/7.jpg)
7
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
•Exclusión Mutua: concepto que garantiza que si un proceso utiliza un recurso compartido, los demás no pueden utilizarlo.
•Sección Crítica: Parte del programa en la que tiene acceso al recurso compartido.
Para evitar que existan condiciones de competencia, se debe evitar que dos o más procesos accedan al mismo tiempo a la Sección Crítica
![Page 8: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/8.jpg)
8
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Cualquier solución al problema debe cumplir:
1.Dos procesos no deben encontrarse al mismo tiempo dentro de sus secciones críticas.
2.No se deben hacer hipótesis sobre la velocidad o el número de CPU.
3.Ningún proceso que esté en ejecución fuera de su sección crítica puede bloquear a otros procesos.
4.Ningún proceso debe esperar eternamente para entrar a su sección crítica.
![Page 9: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/9.jpg)
9
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Alternancia estricta:
Proceso 0 Proceso 1While (1) { while(turn != 0) espera(); } seccion_critica(); turn = 1; seccion_nocritica();}
While (1) { while(turn != 1) espera(); } seccion_critica(); turn = 0; seccion_nocritica();}
¿Qué sucede si un proceso quiere entrar dos veces consecutivas a su sección crítica?
![Page 10: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/10.jpg)
10
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Solución de Peterson:
Para el proceso P(i), i=0,1:
otro=1-i;
while (TRUE) {
interesado[i] = TRUE;
turno = otro;
while (interesado[otro] && turno==otro);
sección_crítica();
interesado[i]=FALSE;
sección_no_crítica();
}
Inicialmente interesado[0]=interesado[1]=FALSE y turno puede ser 1 o 0.
![Page 11: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/11.jpg)
11
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Solución de Peterson:
Exclusión Mutua:
Dos procesos quieren entrar:
No pueden entrar al mismo tiempo, porque la condición de espera en el while no puede ser falsa para ambos procesos a la vez.
Entonces supongamos que Pi entra primero. En ese caso, turno=i, y para que el otro entre, turno debe cambiar a 1-i, o bien interesado[i] a FALSE.
El único que hace esos cambios es el propio proceso i, y lo hace cuando está fuera de su sección crítica.
![Page 12: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/12.jpg)
12
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Solución de Peterson:
Ausencia de Aplazamiento indefinido (starvation)
Si el proceso i quiere entrar y el otro está ejecutando su sección no crítica,
interesado[otro]==FALSE y Pi no tiene impedimento para entrar.
Entrada garantizada.
Si un proceso quiere entrar, a lo más debe esperar que el otro salga de la sección crítica
![Page 13: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/13.jpg)
13
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Instrucción TSL:
•Lee el contenido de una palabra de memoria en un registro para después almacenar un valor distinto de cero en esa dirección
•Las operaciones de lectura y almacenamiento de la palabra tienen la garantía de ser indivisibles
![Page 14: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/14.jpg)
14
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Instrucción TSL:
•Se emplea una variable compartida, flag. Ésta coordina el acceso al recurso compartido.
•Cuando flag==0, cualquier proceso puede darle el valor 1 mediante la instrucción TSL y después leer o escribir en el recurso compartido. Al terminar, el proceso vuelve a hacer flag=0.
![Page 15: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/15.jpg)
15
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Instrucción TSL:
enter_region:tsl register,flag // copia flag al registro y hace flag=1
cmp register,#0 // ¿flag = 0?jnz enter_region // si era distinto de cero, la cerradura // estaba establecida por lo que hay // que hacer un cicloret // retorno a quien hizo la llamada;
leave_region:mov flag,#0 // almacena un 0 en flagret // regresa a quien hizo la llamada
![Page 16: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/16.jpg)
16
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Semáforos:
Un semáforo es una variable entera (positiva), cuyo valor sólo puede ser accesado mediante las operaciones wait y signal
![Page 17: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/17.jpg)
17
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Semáforos:
WAIT: verifica si el valor de un semáforo es mayor que cero y en este caso decrementa dicho valor y el proceso continúa. Si es cero, el proceso se va a dormir
Las modificaciones al valor del semáforo sólo se ejecutan en forma indivisible, es decir, si un proceso está modificando un semáforo ningún otro proceso puede esta modificando el mismo valor
![Page 18: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/18.jpg)
18
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Semáforos:
SIGNAL: incrementa el valor del semáforo respectivo. Si uno o más procesos dormían y no podían completar una operación DOWN anterior, el SO elige alguno de ellos y se le permite terminar la operación WAIT.
después de un SIGNAL en un semáforo con procesos durmiendo, dicho semáforo seguirá con valor 0, pero habrá un menor número de procesos durmiendo.
![Page 19: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/19.jpg)
19
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Semáforos:
/*Semáforo mutex compartido por N procesos e inicializado en 1*//*Estructura del proceso Pi */while (TRUE) {wait(mutex);/*Sección Critica*/signal(mutex);/*Sección No Crítica*/}
![Page 20: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/20.jpg)
20
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Se produce cuando un proceso de un sistema multiprogramado espera un evento que nunca va a ocurrir.
Un conjunto de procesos está en deadlock cuando cada proceso en el conjunto está esperando por un evento que solo puede ser causado por otro proceso en el conjunto.
![Page 21: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/21.jpg)
21
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Proceso A Proceso Bwait(s);wait(q);/* SC */signal(q);signal(s);
wait(q);wait(s);/* SC */signal(s);signal(q);
Ejemplo
¿ Cuándo hay Bloqueo Mutuo ?
![Page 22: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/22.jpg)
22
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Condiciones para un bloqueo:
•Cada recurso está asignado a un proceso o está disponible
1.- Condición de exclusión mutua.
P1R1
R1
Asignado
![Page 23: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/23.jpg)
23
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Condiciones para un bloqueo:
•Los procesos que tienen recursos asignados con anterioridad, pueden solicitar nuevos recursos.
2.- Condición de posesión y espera
P1R1
R2
SolicitaAsignado
![Page 24: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/24.jpg)
24
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Condiciones para un bloqueo:
•Los recursos asignados no pueden ser forzados a dejar un proceso
El proceso que los posee debe liberarlos en forma explícita.
Condición de no apropiación
![Page 25: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/25.jpg)
25
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Condiciones para un bloqueo:
•Debe existir una cadena circular de dos o más procesos, cada uno de los cuales espera un recurso asignado por el siguiente miembro de la cadena.
Condición de espera circular
P1
R1
P2
R2
Solicita
AsignadoSolicita
Asignado
![Page 26: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/26.jpg)
26
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
![Page 27: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/27.jpg)
27
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
º
![Page 28: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/28.jpg)
28
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Tiempo Proceso A Proceso B Comentario 0 A0 1 A1 El plotter es asignado a A 2 A2 3 B0 Cambio de contexto 4 B1 La impresora es asignada a B 5 B2 6 B3 7 B4 B Necesita el plotter, El proceso
B no puede seguir, ya que el plotter está asignado a A
8 A3 Cambio de contexto 9 A4 A necesita la impresora. No
puede seguir ya que está asignada a B
10 B4 B Necesita el plooter 11 A4 A necesita la impresora etc ... ... ...
![Page 29: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/29.jpg)
29
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Evitar un bloqueo:
En vez de restringir la forma u orden en que los procesos deben solicitar recursos, podríamos chequear que sea seguro conceder un recurso, antes de otorgarlo.
Obs:Necesitamos que cada proceso declare la cantidad máxima de recursos de cada clase que va a necesitar:
![Page 30: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/30.jpg)
30
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Evitar un bloqueo:
Un estado de asignación de recursos es el número de recursos disponibles y asignados, y el máximo declarado por cada proceso.
Un estado seguro es un estado en el cual el sistema puede asignar recursos a los procesos (hasta su máximo) en alguna secuencia, y evitar bloqueo mutuo
![Page 31: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/31.jpg)
31
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Evitar un bloqueo:
Un estado es seguro sólo si existe una secuencia segura, es decir, una secuencia de procesos <P1, P2,...,Pn > donde, para cada Pi, los recursos que Pi aún puede solicitar pueden satisfacerse con los recursos disponibles y los retenidos por Pj con j<i. Si los recursos que Pi necesita no están disponibles, Pi puede esperar hasta que los Pj terminen. Si no existe tal secuencia, se dice que el sistema está en un estado inseguro
![Page 32: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/32.jpg)
32
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Consideremos un sistema con 12 unidadesde cinta y 3 procesos: P1,P2,P3.
Máximo
Requerimiento
t0
P0 10 5
P1 4 2
P2 9 2
3
En t0 el sistema esta en un estado seguro, con secuencia P1,P0,P2.
![Page 33: Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz elo321](https://reader036.vdocuments.co/reader036/viewer/2022062301/5665b47d1a28abb57c91f163/html5/thumbnails/33.jpg)
33
Situación
Sincronización de Procesos
Conceptos
Soluciones
Bloqueos
Consideremos un sistema con 12 unidadesde cinta y 3 procesos: P1,P2,P3.
Máximo
Requerimiento
t0
P0 10 5
P1 4 2
P2 9 3
2
En t0 el sistema está en un estado inseguro, No hay secuencia segura puede existir bloqueomutuo.