1 Tarea 3 Hilos 1. Cuales bloques de control de proceso deberían pertenecer a un bloque de control de hilo y cuáles a un bloque de control de proceso en un sistema multihilo? Para modelos monohilo deben prevalecer; Pila de Usuario Pila del Núcleo. En los modelos multihilo debe haber los siguientes bloques de control; Bloque de control de hilo. Pila de usuario. Pila de núcleo. 2. Indique razonablemente por qué un cambio de modo entre hilos puede ser menos costoso que un cambio de modo entre procesos. a. Se tarda mucho menos tiempo en crear un nuevo hilo en un proceso existente que en crear un nuevo proceso. b. Se tarda mucho menos tiempo en terminar un hilo que un proceso. c. Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso. d. Los hilos aumentan la eficiencia de la comunicación entre programas en ejecución. 3. Cuáles son las dos características diferentes y potencialmente independientes que expresa el concepto de proceso? Estas características son. Unidad de propiedad de los recursos. Un proceso incluye un espacio de direcciones virtuales para mantener la imagen del proceso y, de cuando en cuando el proceso se le puede asignar el control o la propiedad de recursos tales como memoria principal, entre otros. Hilos, SMP y Micronúcleos Edgar A. Mendieta 2 Unidad de Expedición. La ejecución de un proceso sigue un camino de ejecución (traza) a través de uno o más programas. En la mayoría de los sistemas operativos, estas dos características son, de hecho, la esencia de un proceso. Para distinguir estas dos características, la unidad de expedición se conoce como hilo o proceso ligero, mientras que la unidad de propiedad de los recursos se le suele llamar proceso o tarea. 4. Indique cuatro ejemplos generales del uso de hilos en un sistema monousuario multiprogramado. Trabajo Interactivo y en Segundo Plano. Algunos hilos de un proceso pueden estar visualizando menús o opciones de una aplicación y otros pueden estar leyendo la entrada del usuario. Procesamiento Asíncrono. Los elementos asíncronos del programa se pueden implementar como hilos. Aceleración de la Ejecución. Un proceso con hilos múltiples puede computar un lote de datos mientras lee el lote siguiente de un dispositivo. Estructuración modular de los programas. Los programas que realizan una variedad de actividades o varios orígenes y destinos de entrada y salida pueden hacerse más fáciles de diseñar e implementar mediante hilos. 5. Qué recursos comparten, normalmente, 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. Si un hilo abre un dato en la memoria, los otros hilos utilizan el resultado cuando acceden al dato. Si un hilo abre un archivo con permisos de lectura, el resto de lectura, el resto de los hilos del mismo proceso también puede leer de él. 6. Enumere tres ventajas de los ULT frente a los KLT. Hilos, SMP y Micronúcleos Edgar A. Mendieta 3 a. 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. b. 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. c. Los ULT (hilos a nivel de usuario) pueden ejecutar en cualquier sistema operativo. Para dar soporte a los ULT no es necesario realizar cambios en el núcleo subyacente. 7. Enumere dos desventajas de los ULT frente a los KLT. a. En un sistema operativo, la mayoría de las llamadas al sistema son bloqueadoras. Así, pues cuando un ULT ejecuta una llamada al sistema no solo se bloquea ese hilo, sino todos los hilos del proceso. b. En una estrategia ULT pura, una aplicación multihilo no puede aprovechar las ventajas de los multiprocesadores. 8. Defina Recubrimiento. Convertir llamadas bloqueadoras del sistema en no bloqueadoras. Ejemplo; en vez de llamar directamente a una función del sistema para E/S, un hilo llama a una función de recubrimiento de E/S de aplicación. 9. Defina brevemente las distintas arquitecturas SMP (Simetric Multi Processing). a. Flujo de Instrucción simple/dato simple (SISD). Un único procesador ejecuta un único flujo de instrucciones para operar sobre los datos almacenados en una única memoria. b. Flujos de instrucción simple/datos múltiples (SIMD). Una única instrucción de máquina controla la ejecución simultánea de varios elementos de proceso según una secuencia de bloqueos. Hilos, SMP y Micronúcleos Edgar A. Mendieta 4 c. 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. d. 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. 10. Enumere los elementos claves para un Sistema Operativo SMP. a. Procesos o Hilos Concurrentes. Es necesario que las funciones del núcleo sean reentrantes, para permitir que varios procesadores ejecuten el mismo código del núcleo al mismo tiempo. b. Planificación. Se deben evitar los conflictos ya que la planificación se puede realizar en cualquier procesador. c. Sincronización. Cuando varios procesos activos pueden acceder a espacios de memoria o recursos compartidos, es necesario tomar precauciones para ofrecer una sincronización eficaz. d. Gestión de Memoria. La gestión de memoria en un multiprocesador debe solucionar todos los problemas encontrados en los monoprocesadores. e. Fiabilidad y Tolerancia a los fallos. El sistema operativo debe realizar una degradación proporcional en caso de fallo de un procesador. 11. Ejemplos de funciones y servicios de un sistema operativo monolítico convencional que pueden ser subsistemas externos en un sistema operativo con micro núcleo. Se pueden mencionar; controladores de dispositivos, los sistemas de archivos, los gestores de memoria virtual, los sistemas de ventanas y los servicios de seguridad. 12. Enumere y explique brevemente siete ventajas potenciales de un diseño con micro núcleo frente a un diseño monolítico. Hilos, SMP y Micronúcleos Edgar A. Mendieta 5 Interfaz uniforme; los sistemas de micro núcleo implementan una interfaz uniforme para las solicitudes realizadas por los procesos. Extensibilidad; permiten añadir nuevos servicios al conjunto de servicios ya existentes en algunas de las áreas funcionales. Flexibilidad; no solo se pueden agregar características al sistema operativo, también se pueden reducir las características actuales para dar lugar a una implementación más pequeña y más eficiente. Portabilidad; en los sistemas con micro núcleo, la gran mayoría del código especifico del procesador esta en el micro núcleo. Por lo que los cambios del sistema a nuevos procesadores serán menores. Fiabilidad; el uso de pequeño numero de Interfaces de Programa de Aplicación aumenta la probabilidad de producir código de calidad para los servicios del sistema operativo externo al núcleo. Soporte a sistemas distribuidos; cuando un cliente envía un mensaje a un proceso servidor, el mensaje debe incluir un identificador del servicio solicitado. Si el sistema distribuido está configurado para que todos los procesos y servicios tengan un identificador único, en realidad hay una sola imagen del sistema a nivel de micro núcleo. Sistema operativo orientado a objetos; un enfoque orientados a objetos puede aportar una disciplina al diseño del micronúcleo y al desarrollo de las extensiones modulares del sistema operativo. 13. Explique la desventaja potencial del rendimiento de un sistema operativo con micronucleo. Una desventaja potencial, citada con frecuencia, de los micronucleos es su rendimiento. Consume más tiempo construir y enviar un mensaje, o aceptar y descodificar la respuesta, a través del micronucleo que mediante una simple llamada al sistema. 14. Enumere tres funciones que esperaría encontrar incluso en un sistema operativo con un micronúcleo mínimo. Hilos, SMP y Micronúcleos Edgar A. Mendieta 6 a. Gestión de Memoria a bajo nivel. El micronúcleo tiene el control del concepto hardware de espacio de direcciones, para permitir implementar la protección en el proceso. La paginación y soporte a memoria externa es dada por: 1. Cesión. El propietario de un espacio de direcciones puede ceder varias de sus paginas a otro proceso. 2. Asociación. Un proceso puede asociar cualquiera de sus paginas al espacio de direcciones de otro, de forma que ambos procesos tienen acceso a estas paginas. 3. Rellenado. Un proceso puede reclamar cualquier pagina concedida o asociada a otro. b. Comunicación entre procesos. Los mensajes son el mecanismo básico de comunicación entre procesos o hilos en un sistema operativo con micronucleos. c. Gestión de Interrupciones E/S. En una arquitectura micronucleo, es posible gestionar las interrupciones de hardware como mensajes e incluir los puertos de E/S en espacios de direcciones. 15. Cuál es la forma básica de comunicación entre procesos o hilos en un sistema operativo con micronúcleo? Los mensajes son el mecanismo básico de comunicación entre procesos o hilos en un sistema operativo con micronucleos. Un mensaje incluye una cabecera, que identifica a los procesos emisor y receptor, y un cuerpo, que contiene directamente los datos, un puntero a un bloque de datos o alguna información de control sobre el proceso. Hilos, SMP y Micronúcleos Edgar A. Mendieta