Download Se cuenta con un sistema operativo tradicional
Document related concepts
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