Está en la página 1de 5

Cap.4 Tarea: Términos clave, cuestiones de repaso pág.

196

Términos Clave
1. Hilo: Se trata de una unidad de trabajo. Incluye el contexto del procesador
(que contiene el contador del programa y el puntero de pila) y su propia
área de datos para una pila (para posibilitar el salto a subrutinas). Un hilo se
ejecuta secuencialmente y se puede interrumpir de forma que el procesador
pueda dar paso a otro hilo.

2. Hilos de nivel de núcleo: Son entidades fundamentales que se pueden


planificar para ejecutar en cualquier procesador del sistema.

3. Hilos de nivel de usuario: Implementados a través de una biblioteca de hilos


en el espacio de direcciones de un proceso, son invisibles al sistema
operativo. Los hilos de nivel de usuario (user-level threads, ULT)9 son la
interfaz para las aplicaciones paralelas.

4. Mensaje: Un mensaje es un conjunto de bytes con un tipo asociado. UNIX


proporciona las llamadas al sistema msgsnd y msgrcv para que los
procesos puedan realizar la transferencia de mensajes. Asociada con cada
proceso existe una cola de mensajes, que funciona como un buzón.

5. Micronúcleo: Un micronúcleo es la pequeña parte central de un sistema


operativo que proporciona las bases para extensiones modulares.

6. Multihilo: Multihilo se refiere a la capacidad de un sistema operativo de dar


soporte a múltiples hilos de ejecución en un solo proceso.

7. Multiprocesador simétrico: En un multiprocesador simétrico (Symmetric


Multiprocessor, SMP), el núcleo puede ejecutar en cualquier procesador, y
normalmente cada procesador realiza su propia planificación del conjunto
disponible de procesos e hilos.

8. Proceso: Una unidad de actividad caracterizada por un solo hilo secuencial


de ejecución, un estado actual, y un conjunto de recursos del sistema
asociados.
9. Procesos ligeros: puede ser visto como una asociación entre ULT e hilos de
núcleo. Cada LWP soporta uno o más ULT y se asocia con un hilo de
núcleo. Los LWP se planifican de forma independiente por el núcleo y
pueden ejecutar en paralelo en múltiples procesadores.

10. Puerto: Un puerto es, en esencia, una cola de mensajes destinada a un


proceso particular; un proceso puede tener múltiples puertos.

11. Sistema operativo monolítico: El término sistema operativo monolítico se


utiliza frecuentemente para referirse a los dos tipos de sistemas operativos
que hemos denominado como monolíticos y por capas.

12. Tarea: Un programa en ejecución. El sistema operativo se encarga de


controlar y planificar un proceso. Lo mismo que tarea

Preguntas de revisión
4.1. La Tabla 3.5 enumera los elementos típicos que se encuentran en un
bloque de control de proceso para un sistema operativo monohilo. De éstos,
¿cuáles deben pertenecer a un bloque de control de hilo y cuáles deben
pertenecer a un bloque de control de proceso para un sistema multihilo?
En un entorno multihilo, un proceso se define como la unidad de protección y
unidad de asignación de recursos. A los procesos se les asocian los siguientes
elementos:
 Un espacio de direcciones virtuales, que contiene la imagen del proceso.
 Acceso protegido a los procesadores, otros procesos (para la comunicación
entre procesos), archivos y recursos de E/S (dispositivos y canales).
En un proceso puede haber uno o más hilos, cada uno con lo siguiente:
 El estado de ejecución del hilo (Ejecución, Listo, etc.).
 El contexto del procesador, que se salva cuando no está ejecutando; una
forma de ver el hilo es como un contador de programa independiente
operando dentro de un proceso.
 Una pila de ejecución.
 Almacenamiento estático para las variables locales.
 Acceso a la memoria y a los recursos del proceso, compartidos con todos
los otros hilos de este. 
4.2. Enumere las razones por las que un cambio de contexto entre hilos
puede ser más barato que un cambio de contexto entre procesos.
Porque no implica un costoso cambio de contexto.
4.3. ¿Cuáles son las dos características diferentes y potencialmente
independientes en el concepto de proceso?
 Unidad de propiedad de los recursos.
 Unidad de Expedición.
4.4. Dé cuatro ejemplos generales del uso de hilos en un sistema
multiprocesador monousuario.
 Trabajo interactivo y en segundo plano.
 Procesamiento asíncrono.
 Aceleración de la ejecución.
 Estructuración modular de los programas.
4.5. ¿Qué recursos son compartidos normalmente por todos los hilos de un
proceso?
Todos los hilos de un proceso comparten el estado y los recursos del proceso.
Residen en el mismo espacio de direcciones y tienen acceso a los mismos datos.
4.6. Enumere tres ventajas de los ULT sobre los KLT.
1. El intercambio de hilos no necesita los privilegios del modo de núcleo, porque
todas las estructuras de datos de gestión de hilos están en el espacio de
direcciones de usuario de un mismo proceso. Por lo tanto, el proceso no debe
cambiar a modo de núcleo para gestionar hilos. Con ello se evita la sobrecarga
de dos cambios de modo (de usuario a núcleo y de núcleo a usuario).2.
2. Se puede realizar una planificación específica. Para una aplicación puede ser
mejor la planificación mediante turno rotatorio mientras que para otra puede ser
mejor la planificación por prioridades. Se puede realizar un algoritmo de
planificación a medida de la aplicación sin afectar a la planificación subyacente
del sistema operativo.3.
3. Los ULT pueden ejecutar en cualquier sistema operativo. Para dar soporte
a ULT no es necesario realizar cambios en el núcleo subyacente. La biblioteca
de hilos es un conjunto de utilidades de aplicación compartidas por todas las
aplicaciones.
4.7. Enumere dos desventajas de los ULT en comparación con los KLT.
1. En un sistema operativo típico muchas llamadas al sistema son
bloqueantes. Como resultado, cuando un ULT realiza una llamada al
sistema, no sólo se bloquea ese hilo, sino que se bloquean todos los hilos
del proceso.
2. En una estrategia pura ULT, una aplicación multihilo no puede sacar
ventaja del multiproceso. El núcleo asigna el proceso a un solo procesador
al mismo tiempo. Por consiguiente, en un determinado momento sólo puede
ejecutar un hilo del proceso.
4.8. Defina jacketing (revestimiento).
Otra forma de solucionar el problema de hilos que se bloquean es una técnica
denominada jacketing (revestimiento). El objetivo de esta técnica es convertir una
llamada al sistema bloqueante en una la llamada al sistema no bloqueante. Por
ejemplo, en lugar de llamar directamente a una rutina del sistema de E/S, un hilo
puede llamar a una rutina jacket de E/S a nivel de aplicación.
4.9. Defina brevemente las diversas arquitecturas que se nombran en la
Figura 4.8.
 Flujo de instrucción simple/dato simple (SISD):
un único procesador ejecuta un único flujo de instrucciones para operar
sobre datos almacenados en una única memoria.

 Flujo de instrucción simple/datos múltiples (SIMD):


una única instrucción de máquina controla la ejecución simultánea de varios
elementos del proceso según una secuencia de bloqueos. Cada elemento
del proceso tiene una memoria de datos asociada, por lo que cada
instrucción se ejecuta sobre un conjunto de datos diferente por medio de
distintos procesadores. En esta categoría se encuentran los vectores y
matrices de procesadores.

 Flujo de instrucción múltiple/dato simple (MISD):


se transmite una secuencia de datos a un conjunto de procesadores, cada
uno de los cuales ejecuta una instrucción de la secuencia. Esta estructura
no se ha implementado nunca.

 Flujo de instrucción múltiple/datos múltiples (MIMD):


un conjunto de procesadores ejecuta simultáneamente varias secuencias
de instrucciones sobre distintos conjuntos de datos. 

4.10. Enumere los aspectos principales de diseño de un sistema operativo


SMP.
1. Procesos e hilos concurrentes
2. Planificación
3. Sincronización
4. Gestión de Memoria
5. Fiabilidad y Tolerancia a fallos
4.11. Dé ejemplos de servicios y funciones que se encuentran en un sistema
operativo monolítico típico que podrían ser subsistemas externos en un
sistema operativo micronúcleo.
1. Procesos cliente.
2. Gestores de dispositivos.
3. Servidores de archivos.
4. Servidores de procesos.
5. Memoria virtual.
4.12. Enumere y explique brevemente siete ventajas potenciales de un
diseño micronúcleo en comparación con un diseño monolítico.
1. Interfaz uniforme.
2. Extensibilidad.
3. Flexibilidad.
4. Portabilidad.
5. Fiabilidad.
6. Soporte a sistemas distribuidos.
7. Sistema operativo orientado a objetos.
4.13. Explique la desventaja potencial de rendimiento de un sistema
operativo micronúcleo.
Una desventaja potencial, citada con frecuencia, de los micronúcleos es su
rendimiento. Consume más tiempo construir y enviar un mensaje, por aceptar y
decodificar la respuesta, a través del micronúcleo que mediante una simple
llamada al sistema.
4.14. Enumere cuatro funciones que le gustaría encontrar incluso en un
sistema operativo micronúcleo mínimo.
Un micronúcleo debe incluir aquellas funciones que dependen directamente del
hardware, y cuya funcionalidad cuya funcionalidad es necesaria para dar soporte a
las aplicaciones y servidores que ejecutan en modo núcleo. Estas funciones se
engloban en las siguientes categorías generales: gestión de memoria de bajo
nivel, comunicación entre procesos, gestión de interrupciones y E/S.
4.15. ¿Cuál es la forma básica de comunicación entre procesos o hilos en un
sistema operativo micronúcleo?
La forma básica de comunicación entre dos procesos o hilos en un sistema
operativo con micronúcleo son los mensajes.

También podría gustarte