Gestión de procesos: Ejercicio de febrero de...

44
Diseño de sistemas operativos Gestión de procesos: Ejercicio de febrero de 2009

Transcript of Gestión de procesos: Ejercicio de febrero de...

Page 1: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

Diseño de sistemas operativos

Gestión de procesos:Ejercicio de febrero de 2009

Page 2: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (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; }

Page 3: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 4: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 5: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 6: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 7: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 8: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 9: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 10: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 11: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 12: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 13: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 14: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 15: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 16: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 17: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 18: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 19: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 20: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 21: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 22: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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; }

Page 23: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 24: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 25: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 26: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 27: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 28: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 29: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 30: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 31: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 32: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 33: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 34: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 35: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 36: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 37: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 38: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 39: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 40: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 41: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 42: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 43: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)

Page 44: Gestión de procesos: Ejercicio de febrero de 2009laurel.datsi.fi.upm.es/.../dso/ejercicio_feb09.pdf · 2009-11-04 · Diseño de Sistemas Operativos 5 Fernando Pérez Costoya (2009)

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)