Download Se cuenta con un sistema operativo tradicional

Document related concepts

Proceso inactivo del sistema wikipedia , lookup

Cambio de contexto wikipedia , lookup

RTAI wikipedia , lookup

Seguridad en hilos wikipedia , lookup

Multiprocesamiento wikipedia , lookup

Transcript
E.U. de Informática
Departamento de Informática Aplicada
Examen final de Sistemas Operativos I
10 de septiembre de 2003
EJERCICIO 2 (puntuación 3´5 puntos)
Tiempo Estimado: 60 m
Se cuenta con un sistema operativo multiproceso tradicional, en el que cada proceso cuenta con un único
hilo de ejecución o thread. Sin embargo, se pretende que los procesos de usuario puedan ser multihilo, es
decir, cuenten con varios threads de ejecución. Para conseguirlo, se proporciona una biblioteca, por
encima del sistema operativo, que ofrece funciones para crear y destruir threads, así como para establecer
la política de planificación de dichos threads dentro del proceso, como se puede ver en la siguiente figura:
Thread 1
Proceso de
usuario P1
BCT´s
T1
T2
Thread 2
FIFO
Sistema
Operativo
cpu
Pn
P1
…
Cola de preparados
BCP´s
P1
Round
Robin
…
Pn
En este modelo, cuando el sistema operativo asigna al proceso de usuario una porción de procesador
mediante la política planificación Round Robin, dentro del proceso se reparte dicho tiempo entre los
threads creados, según la política de planificación local establecida en la biblioteca, en este caso es FIFO.
Además, todas las estructuras necesarias para mantener los threads de un proceso se crean dentro del
espacio del proceso, incluida una tabla de bloques de control de threads (Tabla de BCT`s).
Hay que destacar que, al crear los threads en el nivel de usuario, estos threads no existen para el sistema
operativo: para el núcleo la unidad de planificación es el proceso.
Suponiendo que el sistema operativo utiliza Round Robin con una porción de tiempo de 100 ms y que se
crean simultáneamente dos procesos P1 y P2 (estando P1 el primero en la cola de preparados) cuyo
código es el siguiente:
P1
(1) Usa cpu (50 ms)
(2) Hace una llamada al sistema bloqueante (100 ms)
(3) Usa cpu (10 ms)
(4) Usa cpu (30 ms)
P2
Usa cpu (30 ms)
Se pide:
1) Dibuje el cronograma relativo a los procesos P1, P2 y el proceso ocioso para los casos siguientes:
a) El proceso P1 es monohilo.
b) El proceso P1 tiene dos hilos: el hilo P1A ejecuta las tres primeras instrucciones (1, 2 y 3) y el hilo
P1B ejecuta la última (4). Se supone que P1A está antes que P1B en la cola de preparados.
2) Ahora se desea que la gestión de threads se haga desde dentro del sistema operativo, para que la
unidad mínima de planificación sea el thread y no el proceso, por lo que es necesario modificar el
núcleo, tal como se ve en la figura:
Proceso de
usuario P1
T1
T2
Sistema
Operativo
Tn
… T2
Cola de preparados
T1
BCP´s
?
P1
cpu
Round
Robin
…
Pn
a) Indique todos los campos de las estructuras que introduciría o modificaría para que el núcleo
pueda soportar threads.
b) Proponga las especificaciones de las llamadas al sistema que permitan crear y destruir threads.
c) Repita el cronograma para el proceso P1 multihilo y P2, siendo el orden inicial en la cola de
preparados P1A, P1B y P2.
3) Explique razonadamente qué ventajas e inconvenientes ve en el uso de los threads:
a) Implementados en el espacio de usuario.
b) Implementados dentro del sistema operativo.
Related documents