Gestión de procesos: Ejercicio de febrero de...
Transcript of Gestión de procesos: Ejercicio de febrero de...
Diseño de sistemas operativos
Gestión de procesos:Ejercicio de febrero de 2009
Diseño de Sistemas Operativos 2 Fernando Pérez Costoya (2009)
Enunciado
a) ¿Qué debe optimizar seleccionar_próxima_petición? ¿Qué esquema usan los SSOO?b) ¿Dónde puede haber fallos de página?c) Traza de una operación síncronad) Solución planteada vs. Programar disco sólo en leer_disco en cuanto a uso del disco
• Ejemplo: A lee síncrono 1 bloque, B lee síncrono 1 bloque, C cálculos e) Error de diseño de operación asíncronaf) Arregle el error usando una interrupción software de procesog) Traza de una operación asíncrona usando solución de apartado f
leer_fichero() { Por cada bloque involucrado { Si está en caché Copia bloque de caché a zona usuario; Si no está en caché { Obtiene bloque libre en caché; leer_disco(petición); Si operación es síncrona { Bloquea_proc(cola asociada a bloq); Copia bloq de caché a zona usuario; } } } } leer_disco(petición) { Encola en lista de peticiones del disco; Si disco está libre Programa lectura a caché por DMA; }
int_disco() { Comprueba resultado de la operación;
Activa int. software de sistema para tratar operaciones de interr. diferidas;
} int_software_ops_disco_diferidas() { Desencola petición completada; Si peticiones pendientes en cola disco { seleccionar_próxima_petición(); Programa lectura a caché por DMA; } Si operación completada es síncrona Desbloquea_proc(cola asociada a bloq); Si operación completada es asíncrona Copia bloque de caché a zona usuario; }
Diseño de Sistemas Operativos 3 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (1) P solicita lectura síncrona de 2 bloques
P(U)
(1)
Diseño de Sistemas Operativos 4 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (2) P programa disco y se bloquea
P(U)
lee
P(S)
ccvprograma
disco
(1) (2)
Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (3) Q inicia ejecución dentro de modo sistema
P(U)
lee lanz
P(S)Q(S)
ccvprograma
disco
(1) (2) (3)
Diseño de Sistemas Operativos 6 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (4) Q ejecuta en modo usuario hasta que se produce interrupción del disco
P(U)
lee lanz
P(S) Q(U)Q(S)
ccvprograma
disco
(1) (2) (3) (4)
Diseño de Sistemas Operativos 7 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (5) Int. disco activa int. software de disco para diferir operaciones no urgentes
P(U)
lee intdisco
lanz
P(S) Q(U)Q(S)
ccv
Q(S)
activaint swdisco
programadisco
(1) (2) (3) (4) (5)
Diseño de Sistemas Operativos 8 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (6) Int. SW disco desbloquea a P: Prio(P)>Prio(Q) → int SW de planificación
P(U)
lee intdisco
lanz
P(S) Q(U)Q(S)
ccv
Q(S)
activaint swdisco
programadisco
activaint swplanif
intsw
disco
(1) (2) (3) (4) (5) (6)
Diseño de Sistemas Operativos 9 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (7) Int. SW de planificación expulsa a Q
P(U)
lee intdisco
lanz
P(S) Q(U)Q(S)
ccv
Q(S)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
(1) (2) (3) (4) (5) (6) (7)
Diseño de Sistemas Operativos 10 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (8) P continúa lectura realizando copia de datos que produce fallo de página
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
P(S)
(1) (2) (3) (4) (5) (6) (7) (8)
Diseño de Sistemas Operativos 11 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (9) Fallo de página no requiere acceso al disco y se completa
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S)
(1) (2) (3) (4) (5) (6) (7) (8) (9)
Diseño de Sistemas Operativos 12 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (10) P continúa lectura: programa disco y se bloquea
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S)
ccvprograma
disco
lee(cont)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
Diseño de Sistemas Operativos 13 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (11) Q continúa ejecución dentro de rutina int. SW de planificación
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
intsw
plani(cont)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S) Q(S)
ccvprograma
disco
lee(cont)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Diseño de Sistemas Operativos 14 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (12) Q ejecuta en modo usuario hasta que se produce interrupción del disco
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
intsw
plani(cont)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S) Q(S)
ccvprograma
disco
lee(cont)
Q(U)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)
Diseño de Sistemas Operativos 15 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (13) Int. disco activa int. software de disco para diferir operaciones no urgentes
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
intsw
plani(cont)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S) Q(S)
ccvprograma
disco
lee(cont)
intdisco
Q(U) Q(S)
activaint swdisco
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13)
Diseño de Sistemas Operativos 16 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (14) Int. SW disco desbloquea a P: Prio(P)>Prio(Q) → int SW de planificación
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
intsw
plani(cont)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S) Q(S)
ccvprograma
disco
lee(cont)
intdisco
Q(U) Q(S)
activaint swdisco
activaint swplanif
intsw
disco
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14)
Diseño de Sistemas Operativos 17 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (15) Int. SW de planificación expulsa a Q
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
intsw
plani(cont)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S) Q(S)
ccvprograma
disco
lee(cont)
intdisco
Q(U) Q(S)
cci
intsw
planif
activaint swdisco
activaint swplanif
intsw
disco
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)
Diseño de Sistemas Operativos 18 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (16) P continúa lectura realizando copia de datos que produce fallo de página
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
intsw
plani(cont)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S) Q(S)
ccvprograma
disco
lee(cont)
intdisco
Q(U)
lee(cont)
Q(S)
cci
intsw
planif
activaint swdisco
activaint swplanif
intsw
disco
copiadatos
P(S)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16)
Diseño de Sistemas Operativos 19 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (17) Fallo de página no requiere acceso al disco y se completa
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
intsw
plani(cont)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S) Q(S)
ccvprograma
disco
lee(cont)
intdisco
Q(U)
lee(cont)
Q(S)
cci
intsw
planif
activaint swdisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17)
Diseño de Sistemas Operativos 20 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (18) P completa la lectura
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
intsw
plani(cont)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S) Q(S)
ccvprograma
disco
lee(cont)
intdisco
Q(U)
lee(cont)
Q(S)
cci
intsw
planif
activaint swdisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S)
lee(cont)
finlee
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18)
Diseño de Sistemas Operativos 21 Fernando Pérez Costoya (2009)
Traza de operación síncrona
• P (prioridad alta): lectura síncrona 2 bloques de fichero no en caché; buffer de lectura variable global sin valor inicial en 2 páginas no accedidas antes.
• Q (prioridad baja): recién creado; cálculos en modo usuario.• (19) P vuelve a modo usuario
P(U)
lee intdisco
lanz
P(S) Q(U)
lee(cont)
Q(S)
ccv
Q(S)
intsw
plani(cont)
cci
intsw
planif
activaint swdisco
programadisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S) Q(S)
ccvprograma
disco
lee(cont)
intdisco
Q(U)
lee(cont)
Q(S)
cci
intsw
planif
activaint swdisco
activaint swplanif
intsw
disco
copiadatos
fallopág
P(S)
lee(cont)
P(U)
finlee
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19)
Diseño de Sistemas Operativos 22 Fernando Pérez Costoya (2009)
Uso de interrupción software de proceso
leer_fichero() { Por cada bloque involucrado { Si está en caché Copia bloque de caché a zona usuario; Si no está en caché { Obtiene bloque libre en caché; leer_disco(petición); Si operación es síncrona { Bloquea_proc(cola asociada a bloq); Copia bloq de caché a zona usuario; } } } } leer_disco(petición) { Encola en lista de peticiones del disco; Si disco está libre Programa lectura a caché por DMA; }
int_disco() { Comprueba resultado de la operación;
Activa int. software de sistema para tratar operaciones de interr. diferidas;
} int_software_ops_disco_diferidas() { Desencola petición completada; Si peticiones pendientes en cola disco { seleccionar_próxima_petición(); Programa lectura a caché por DMA; } Si operación completada es síncrona Desbloquea_proc(cola asociada a bloq); Si operación completada es asíncrona
Activa int.software de proceso dirigida a proceso que solicitó operación;
} int_software_proceso() { Copia bloque de caché a zona usuario; }
Diseño de Sistemas Operativos 23 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (1) P solicita lectura asíncrona de 2 bloques
P(U)
(1)
Diseño de Sistemas Operativos 24 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (2) P encola peticiones, programa disco para 1ª y completa la llamada
P(U)
lee
P(S)
programadisco
finlee
(1) (2)
Diseño de Sistemas Operativos 25 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (3) P ejecuta en modo usuario hasta que se produce la interrupción del reloj
P(U)
lee
P(S)P(U)
programadisco
finlee
(1) (2) (3)
Diseño de Sistemas Operativos 26 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (4) Int. reloj desbloquea a Q: Prio(P)<Prio(Q) → int SW de planificación
P(U)
lee intreloj
P(S)P(U)
programadisco
activaint swplanif
finlee
P(S)
(1) (2) (3) (4)
Diseño de Sistemas Operativos 27 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (5) Int. SW de planificación expulsa a P
P(U)
lee intreloj
P(S)P(U)
cci
intsw
planif
programadisco
activaint swplanif
finlee
P(S)
(1) (2) (3) (4) (5)
Diseño de Sistemas Operativos 28 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (6) Q completa la llamada dormir
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
finlee
P(S)
(1) (2) (3) (4) (5) (6)
Diseño de Sistemas Operativos 29 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (7) Q ejecuta en modo usuario hasta que se produce la interrupción del disco
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S) Q(U)
finlee
P(S)
(1) (2) (3) (4) (5) (6) (7)
Diseño de Sistemas Operativos 30 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (8) Int. disco activa int. software de disco para diferir operaciones no urgentes
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
finlee
P(S)
(1) (2) (3) (4) (5) (6) (7) (8)
Diseño de Sistemas Operativos 31 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (9) Int. SW disco activa int SW de proceso dirigida a P para E/S asíncrona
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
P(S)
(1) (2) (3) (4) (5) (6) (7) (8) (9)
Diseño de Sistemas Operativos 32 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (10) Q vuelve a modo usuario
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
Diseño de Sistemas Operativos 33 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (11) Q termina haciendo CCV a P
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Diseño de Sistemas Operativos 34 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (12) P completa rutina int. SW de planificación donde se quedó
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
intsw
plani(cont)
P(S)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)
Diseño de Sistemas Operativos 35 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (13) Tratamiento int. SW de E/S asíncrona copia bloque → fallo de página
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
intsw
plani(cont)
P(S)
intsw
proc
copiadatos
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13)
Diseño de Sistemas Operativos 36 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (14) Fallo de página no requiere acceso al disco y se completa
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
intsw
plani(cont)
P(S)
intsw
proc
copiadatos
fallopág
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14)
Diseño de Sistemas Operativos 37 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (15) Se completa tratamiento int. SW de E/S asíncrona
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
intsw
plani(cont)
P(S)
intsw
proc
copiadatos
fallopág
intsw
proc(cont)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)
Diseño de Sistemas Operativos 38 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (16) P vuelve a modo usuario hasta que se produce la interrupción del disco
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
intsw
plani(cont)
P(S)
intsw
proc
copiadatos
fallopág
intsw
proc(cont)
P(U)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16)
Diseño de Sistemas Operativos 39 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ª operación, luego exit bastante antes de fin 2ª operación.
• (17) Int. disco activa int. software de disco para diferir operaciones no urgentes
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
intsw
plani(cont)
P(S)
intsw
proc
copiadatos
fallopág
intsw
proc(cont)
intdisco
P(U) P(S)
activaint swdisco
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17)
Diseño de Sistemas Operativos 40 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (18) Int. SW disco activa int SW de proceso dirigida a P para E/S asíncrona
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
intsw
plani(cont)
P(S)
intsw
proc
copiadatos
fallopág
intsw
proc(cont)
intdisco
P(U) P(S)
activaint swdisco
activaint sw
proceso
intsw
disco
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18)
Diseño de Sistemas Operativos 41 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (19) Tratamiento int. SW de E/S asíncrona copia bloque → fallo de página
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
intsw
plani(cont)
P(S)
intsw
proc
copiadatos
fallopág
intsw
proc(cont)
intdisco
P(U) P(S)
activaint swdisco
activaint sw
proceso
intsw
disco
intsw
proc
copiadatos
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19)
Diseño de Sistemas Operativos 42 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (20) Fallo de página no requiere acceso al disco y se completa
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
intsw
plani(cont)
P(S)
intsw
proc
copiadatos
fallopág
intsw
proc(cont)
intdisco
P(U) P(S)
activaint swdisco
activaint sw
proceso
intsw
disco
intsw
proc
copiadatos
fallopág
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20)
Diseño de Sistemas Operativos 43 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (21) Se completa tratamiento int. SW de E/S asíncrona
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
discofinlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
intsw
plani(cont)
P(S)
intsw
proc
copiadatos
fallopág
intsw
proc(cont)
intdisco
P(U) P(S)
activaint swdisco
activaint sw
proceso
intsw
disco
intsw
proc
copiadatos
fallopág
intsw
proc(cont)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21)
Diseño de Sistemas Operativos 44 Fernando Pérez Costoya (2009)
Traza de operación asíncrona• P (prio. baja) misma operación pero asíncrona; al retornar cálculos.• Q (prio. alta) dormido; int. de reloj después de programada 1ª operación, pero
antes de su fin. Al desbloquearse, cálculos, interrumpidos por fin 1ªoperación, luego exit bastante antes de fin 2ª operación.
• (22) P vuelve a modo usuario
P(U)
lee intreloj
P(S)P(U)
findormir
cci
intsw
planif
programadisco
activaint swplanif
Q(S)
intdisco
Q(U) Q(S)
activaint swdisco
activaint sw
proceso
intsw
disco
P(U)
finlee
programadisco
Q(U)P(S)
exit
Q(S)
ccv
intsw
plani(cont)
P(S)
intsw
proc
copiadatos
fallopág
P(U)
intsw
proc(cont)
intdisco
P(U) P(S)
activaint swdisco
activaint sw
proceso
intsw
disco
intsw
proc
copiadatos
fallopág
intsw
proc(cont)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22)