Está en la página 1de 7

Hilo: una secuencia de tareas encadenadas muy pequeña que puede ser ejecutada por

un sistema operativo.
Micronúcleo: tipo de núcleo de un sistema operativo que provee un conjunto de
primitivas o llamadas mínimas al sistema para implementar servicios básicos como
espacios de direcciones, comunicación entre procesos y planificación básica.
procesos ligeros: es una unidad básica de utilización de la CPU consistente en un
juego de registros y un espacio de pila. Comparte datos, código y registros con sus
hebras pares. 
hilos de nivel de núcleo (KLT): En una aplicación KLT pura, todo el trabajo de gestión
de hilos lo realiza el núcleo. En el área de la aplicación no hay código de gestión de
hilos, únicamente un API (interfaz de programas de aplicación) para la gestión de hilos
en el núcleo. Windows 2000, Linux y OS/2 utilizan este método.
Multihilo: Las unidades centrales de procesamiento con capacidad para multihilo tienen
soporte en hardware para ejecutar eficientemente múltiples hilos de ejecución.
puerto: interfaz a través de la cual se pueden enviar y recibir los diferentes tipos de
datos.
hilo de nivel de usuario (ULT): En una aplicación ULT pura, todo el trabajo de gestión
de hilos lo realiza la aplicación, y el núcleo o kernel no es consciente de la existencia
de hilos. Es posible programar una aplicación como multihilo mediante una biblioteca
de hilos. La misma contiene el código para crear y destruir hilos, intercambiar mensajes
y datos entre hilos, para planificar la ejecución de hilos y para salvar y restaurar el
contexto de los hilos.
multiprocesador simétrico (SMP):  En computación, SMP es un tipo de arquitectura de
computadoras en la que dos o más unidades de procesamiento comparten una única
memoria central.
sistema operativo monolítico: se caracterizan por implementar en el núcleo los cuatro
componentes fundamentales del sistema operativo, que son la planificación de
procesos, la administración de la memoria principal, la administración de ficheros y la
gestión de los dispositivos de entrada/salida.
Mensaje: es un contenedor que se emplea para intercambiar información entre dos o
más procesos.
Proceso: puede entenderse informalmente como un programa en ejecución.
Formalmente un proceso es "Una unidad de actividad que se caracteriza por la
ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de
recursos del sistema asociados".
Tarea: es una unidad de ejecución o una unidad de trabajo. El término es ambiguo;
otros términos más precisos son proceso, hilo (para la ejecución), petición, paso, entre
otros.5

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?
1. Identificación del proceso
Identificadores
2. Información de estado del procesador
Registros visibles por el usuario
Registros de estado y control
Puntero de pila
3. Información de control de proceso
Información de estado y de planificación
Estructuración de datos
Comunicación entre procesos
Privilegios de proceso
Gestión de memoria
Propia de recursos y utilización
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.
Los mayores beneficios de los hilos provienen de las consecuencias del rendimiento:
1. Lleva mucho menos tiempo crear un nuevo hilo en un proceso existente que crear un
proceso totalmente nuevo. Los estudios realizados por los que desarrollaron el sistema
operativo Mach muestran que la creación de un hilo es diez veces más rápida que la
creación de un proceso en UNIX [TEVA87].
2. Lleva menos tiempo finalizar un hilo que un proceso.
3. Lleva menos tiempo cambiar entre dos hilos dentro del mismo proceso.
4. Los hilos mejoran la eficiencia de la comunicación entre diferentes programas que
están ejecutando. En la mayor parte de los sistemas operativos, la comunicación entre
procesos independientes requiere la intervención del núcleo para proporcionar
protección y los mecanismos necesarios de comunicación. Sin embargo, ya que los
hilos dentro de un mismo proceso comparten memoria y archivos, se pueden
comunicar entre ellos sin necesidad de invocar al núcleo.
4.3. ¿Cuáles son las dos características diferentes y potencialmente independientes en
el concepto de proceso?
1. Propiedad de recursos. Un proceso incluye un espacio de direcciones virtuales para
el manejo de la imagen del proceso.
2. Planificación/ejecución. La ejecución de un proceso sigue una ruta de ejecución
(traza) a través de uno o más programas. Esta ejecución puede estar intercalada con
ese u otros procesos. De esta manera, un proceso tiene un estado de ejecución
(Ejecutando, Listo, etc.) y una prioridad de activación y ésta es la entidad que se
planifica y activa por el sistema operativo.
4.4. Dé cuatro ejemplos generales del uso de hilos en un sistema
multiprocesador monousuario.
• Trabajo en primer plano y en segundo plano. Por ejemplo, en un programa de hoja de
cálculo, un hilo podría mostrar menús y leer la entrada de usuario, mientras otro hilo
ejecuta los mandatos de usuario y actualiza la hoja de cálculo.
• Procesamiento asíncrono. Los elementos asíncronos de un programa se pueden
implementar como hilos.
• Velocidad de ejecución. Un proceso multihilo puede computar una serie de datos
Mientras que lee los siguientes de un dispositivo.
• Estructura modular de programas. Los programas que realizan diversas tareas o que
tienen varias fuentes y destinos de entrada y salida, se pueden diseñar e implementar
más fácilmente usando hilos.
4.5. ¿Qué recursos son compartidos normalmente por todos los hilos de un
proceso?
la multiprogramación permite el intercalado de múltiples hilos con múltiples procesos.
4.6. Enumere tres ventajas de los ULT sobre los KLT.
1. El cambio de hilo no requiere privilegios de modo núcleo porque todas las
estructuras de datos de gestión de hilos están en el espacio de direcciones de usuario
de un solo proceso.
2. La planificación puede especificarse por parte de la aplicación.
3. Los ULT pueden ejecutar en cualquier sistema operativo. No se necesita ningún
cambio en el nuevo núcleo para dar soporte a los ULT.
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).
El objetivo de esta técnica es convertir una llamada al sistema bloqueante en una
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. Con esta rutina jacket, el
código verifica si el dispositivo de E/S está ocupado. Si lo está, el hilo entra en estado
Bloqueado y pasa el control (a través de la biblioteca de hilos) a otro hilo. Cuando este
hilo recupera de nuevo el control, chequea de nuevo el dispositivo de E/S.
4.9. Defina brevemente las diversas arquitecturas que se nombran en la Figura
• Única instrucción, múltiples flujos de datos(SIMD): Una única instrucción de máquina
controla la ejecución simultánea de un número de elementos de proceso. Cada
elemento de proceso tiene una memoria de datos asociada, de forma que cada
instrucción se ejecuta en un conjunto de datos diferente a través de los diferentes
procesadores.
• Múltiples instrucciones, múltiples flujos de datos(MIMD): Un conjunto de procesadores
ejecuta simultáneamente diferentes secuencias de instrucciones en diferentes
conjuntos de datos.
 Memoria Compartida:
 Maestro Esclavo: Con la arquitectura maestro/esclavo, el núcleo del sistema
operativo siempre ejecuta en un determinado procesador.
 Multiprocesamiento Simétrico: el núcleo puede ejecutar en cualquier procesador, y
normalmente cada procesador realiza su propia planificación del conjunto disponible de
procesos e hilos. El núcleo puede construirse como múltiples procesos o múltiples
hilos, permitiéndose la ejecución de partes del núcleo en paralelo.
 Memoria Distribuida:
 Cluster: La comunicación entre los computadores se puede
realizar a través de rutas prefijadas o bien a través de redes.
4.10. Enumere los aspectos principales de diseño de un sistema operativo SMP.
 Procesos o hilos simultáneos concurrentes.
 Planificación.
 Sincronización.
 Gestión de memoria.
 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.
 Manejadores de dispositivos
 Servidores de archivos
 Gestores de memoria virtual
 Sistemas de ventana y servicios de seguridad.
12. Enumere y explique brevemente siete ventajas potenciales de un diseño
micro núcleo en comparación con un diseño monolítico.
 Interfaces uniformes, en las peticiones realizadas por un proceso: no necesitan
diferenciar entre servicios a nivel de núcleo y a nivel de usuario, porque todos los
servicios se proporcionan a través de mensajes.
 Facilita la extensibilidad: permite agregar nuevos servicios, así como la realización de
múltiples servicios en la misma área funcional.
 Flexibilidad, relacionado con la extensibilidad: las características que se añaden al
sistema operativo además de las características existentes se pueden eliminar para
realizar una implementación más pequeña y más eficiente.
 Portabilidad: se convierte en una característica interesante del S.O en la
arquitectura micro núcleo, todo o gran parte del código especifico del procesador está
en el micro núcleo.
 Fiabilidad: el diseño modular ayuda a mejorar la fiabilidad, con una arquitectura micro
núcleo se pueden lograr mayores ganancias.
 Soporte a sistemas distribuidos: incluyendo clusters, controlados por el sistema
operativo, distribuidos cuando se envía un mensaje desde un cliente hasta un proceso
servidor, el mensaje debe incluir un identificador del servicio pedido.
 Una arquitectura micronúcleo: funciona bien en el contexto de un sistema operativo
orientado a objetos este enfoque puede servir para diseñar el micronucleo y para
desarrollar extensiones modulares para el S.O.
13. Explique la desventaja potencial de rendimiento de sistema operativo
micronucleo.
La desventaja es el tiempo que tarda construir y enviar un mensaje a través del
micronucleo, aceptar y decodificar la respuesta, que hacer una simple llamada a un
servicio.
14. Enumere cuatro funciones que le gustaría encontrar incluso en un sistema
operativo micro núcleo mínimo.
 Comunicación entre procesos: Función básica de todo sistema operativo.
 Planificación básica: el Planificador (scheduler) es un componente muy importante de
los sistemas operativos multitarea y multiproceso. Consiste en repartir el tiempo
disponible de un microprocesador entre todos los procesos que están disponibles para
su ejecución.
 Gestión de memoria: proceso de asignación de memoria a los programas que la
solicitan. Es una tarea de suma importancia para el funcionamiento de la misma.
 Sistema de archivos o sistema de ficheros: es el componente del sistema operativo
que se encarga de administrar y facilitar el uso de memoria periféricas, ya sean
secundarias o terciarias.
15. ¿Cuál es la forma básica de comunicación entre procesos o hilos en un
sistema operativo micronúcleo?
La comunicación se establece siguiendo una serie de reglas (protocolos de
comunicación), pueden comunicarse entre sí a través de compartir espacios de
memoria, ya sean variables compartidas o buffers, a través de las herramientas
provistas por las rutinas de IPC (inter-process-comunication)

También podría gustarte