Está en la página 1de 1

Examen diciembre 2006:

¿A nivel de sistema operativo y Process Control Block, cuáles estructuras son necesarias para describir un hilo (thread)?
Respuesta:
A nivel del PCB, el sistema debe tener una estructura independiente para cada thread de un proceso que contenga por lo menos el stack, registros y el
program counter.

Examen febrero 2007:


Proponga una estructura de datos necesaria para poder representar hilos (threads) a nivel del sistema operativo. Mencione solamente los campos
principales del bloque descriptor del proceso .
Respuesta:
Para poder representar hilos (threads) es necesario tener estructuras para la pila (stack), el contador de programa (program counter) y los registros de
cada hilo. Se debe modificar el PCB de forma tal de que cada hilo tenga estas estructuras de forma independiente.

Examen febrero 2005:


Describa brevemente dos limitaciones de los hilos a nivel de usuario sin soporte del núcleo.
Respuesta:
Un fallo de página de un hilo hace que se bloquee el proceso con todos los otros hilos. Idem con E/S. Idem con llamadas al sistema.Aún si el sistema es
multiprocesador y tiene CPU’s ociosas, todos los hilos competirán por un solo procesador, el del proceso que los contiene. En caso de ser múltiples
hilos de un proceso que ejerce como máquina virtual de ellos (por ejemplo planificándolos), una vez que está ejecutando un hilo, no existe forma
expropiarle el control para dárselo al proceso/máquina virtual. La única forma es que los propios hilos lo cedan (por ejemplo llamando algún servicio de
la máquina virtual, en vez de hacer llamadas directas al sistema).

Examen diciembre 2005:


En un sistema monoprocesador, qué gran ventaja tiene, a nivel de procesos de usuario, un sistema que soporte hilos (threads) a nivel de sistema, frente a
uno que no lo haga.
Respuesta:
Aprovechar que ejecuten otros hilos del mismo procesos mientras alguno de ellos se haya bloqueado en una operación de entrada/salida. Esto es posible
ya que el sistema operativo reconoce los hilos como unidades de ejecución independientes.

Examen marzo 2003:


a) ¿Qué ventaja o desventaja tiene soportar threads a nivel de usuario en un multiprocesador?
b) Dé una desventaja de soportar threads a nivel de núcleo, en comparación a hacerlo a nivel de usuario.
Respuesta:
Para el cambio de contexto es necesario llamar al sistema, lo que lo hace más lento que la conmutación entre hilos a nivel de usuario.
c) Suponga que usted debe procesar una matriz de información, de N x N, donde N es muy grande. Discuta la conveniencia de utilizar tareas
multihiladas o procesos para realizar esta acción.
Respuesta:
Es más conveniente el uso de threads colocando la matriz en el espacio común de direcciones, como una variable global. Es razonable esperar que la
aplicación que procesa la matriz no requiera proteger sus hilos entre sí, y que en cambio cada thread deba acceder a toda la matriz. Si se resuelve
mediante procesos, debería emplearse un mecanismo de comunicación del sistema, con la pérdida de desempeño que cada llamada implica.

Examen julio 2004:


¿En la implementación de qué tipo de programas resulta especialmente útil el contar con un servicio de hilos o procesos multihilados?
Respuesta:
En aplicaciones que son servidores de múltiples usuarios atendidos en paralelo, como servidores de bases de datos, servidores de archivos, etc.
Frecuentemente estos servidores mantienen un pool de hilos, evitando el costo de crearlos bajo demanda. Hilos es especialmente útil si en memoria se
mantiene información común a todos los usuarios, por ejemplo información de estado de la aplicación.

Examen febrero 2005:


¿Cuál es la principal diferencia que hay entre implementar un servicio de comunicación de mensajes entre procesos de un mismo computador, respecto
a hacerlo entre hilos de un mismo proceso?
Respuesta:
El primero requiere un mecanismo gestionado por el sistema, como colas de memoria compartida, mensajes, etc., con el costo de las llamadas
correspondientes, y los cambios de contexto. Con hilos es posible hacerlo sin intervención del sistema, direccionando sobre el mismo espacio virtual.

También podría gustarte