{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

SO s17 Ejercicios de Monitores-2

SO s17 Ejercicios de Monitores-2 - Sistemas OperativosI...

Info iconThis preview shows pages 1–9. Sign up to view the full content.

View Full Document Right Arrow Icon
Sistemas Operativos I Ing. Jorge Garza Murillo Sesi ó n 17
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Sesi ó n de ejercicios con Monitores 2
Background image of page 2
Conceptos clave Variables tipo Condition Operaciones sobre las variables tipo Condition: Wait (C) y Signal (C) Procedimientos del monitor Llamadas al monitor 3
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Ejemplo de Monitor Proceso P0; repeat -------- ----------- M.incrementa_var ( ); -------- M.imprime_var( ); until false; Proceso P1; repeat -------- ----------- M.decrementa_var ( ); -------- -------- until false; Monitor M; var a:integer; Procedure incrementa_var( ) begin a:=a+1; end; Procedure decrementa_var( ) begin a:=a-1; end; Procedure imprime_var( ) begin print a; end; Begin a:=0; End;
Background image of page 4
Ejemplo de Monitor Proceso P0; Begin repeat M.entrar( ); a:=a+1; M.salir( ); until false; End; Proceso P1; Begin repeat M.entrar( ); a:=a-1; M.salir( ); until false; End; Monitor M; var recurso_en_uso:boolean; libre: condition; Procedure entrar( ); Begin if (recurso_en_uso) then wait(libre); recurso_en_uso:=true; End; Procedure salir( ); Begin recurso_en_uso:=false; signal(libre); End; Begin recurso_en_uso:=false; End;
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Ejercicio Se tiene un buffer circular con “n” posiciones de 0 a Max - 1 No se permite escribir si el buffer está lleno, ni leer si está vacío. Sólo un proceso puede leer o escribir el buffer a la vez. Nota: La exclusión mutua asociada a esta segunda condición, la garantiza automáticamente el mecanismo de Monitor. 6
Background image of page 6
Visto gr á ficamente: 7 SigLeer = 0 SigEscribir = 0 buffer circular 0 Max-1 1 2 3
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
8 Monitor Buffercircular; Var Max: Integer; BufferCircular: Array [0..Max - 1] of Cosas; Ocupados, SigEscribir, SigLeer: 0..Max; ProcEsperaDatos, ProcEsperaEspacio: Condition;
Background image of page 8
Image of page 9
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}