domingo, 27 de noviembre de 2011

Tarea #3: Hilos


Roberto O. Martínez O. 


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?
R: Elementos de la tabla 3.5 para:
• Bloque de control de hilo: Serian todos aquellos de la categoría de información de estado del procesador, que serían los registros visibles para el usuario, los registros de control y de estado, y los punteros de pila.
• Bloque de control de proceso: Serian los del de identificación de proceso; y los de información de control de proceso, tales como información de planificación y de estado, la estructuración de datos, privilegios de los procesos, comunicación entre procesos, gestión de memoria y propiedad de los recursos y utilización.


4.2 Enumere las razones por las que un cambio de contexto entre hilos puede ser mas barato que un cambio de contexto entre procesos.
R: Un cambio de contexto entre hilos puede ser menos costoso (o se gastaría mucho menos tiempo) que un cambio de contexto entre proceso debido a que los hilos aumentan la eficiencia de la comunicación entre programas en ejecución, ya que crear un hilo por un proceso existente es mucho mas sencillo que crear todo un proceso completamente nuevo. Además los hilos comparten memoria y archivos, pueden comunicarse entre sí sin invocar al núcleo; y los procesos necesitan la intervención del núcleo para la comunicación.


4.3 ¿Cuáles son las dos características diferentes y potencialmente independientes en el concepto de proceso?
R: Características que expresa el concepto de proceso 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, al proceso se le puede asignar el control o la propiedad de recursos tales como la memoria principal, canales de E/S, dispositivos de E/S y archivos.
  • Unidad de expedición: La ejecución de un proceso sigue un camino de ejecución a través de uno o más programas. Esta ejecución puede ser intercalada con la de otros procesos.
4.4 Dé cuatro ejemplos generales del uso de hilos en un sistema multiprocesador monousuario.
R: Cuatro ejemplos del uso de hilos en un sistema multiprocesador monousuario son:
  • 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?
R: Los hilos de un proceso comparten el mismo espacio de direcciones y otros recursos, como los archivos abiertos. Cualquier modificación de un recurso desde un hilo afecta al entorno del resto de los hilos del mismo proceso.
4.6 Enumere tres ventajas de los ULT sobre los KLT.
R: Las tres ventajas de los ULT frente a las KLT:
  • 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.
  • 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 mejorar 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.
  • 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.
R: Dos desventajas de los ULT en comparación con los KLT son:
  • La mayoría de las llamadas al sistema son bloqueadoras, en un Sistema Operativo. Así pues, cuando un ULT ejecuta una llamada al sistema no sólo se bloquea ese hilo, sino todos los hilos del proceso.
  • En una estrategia ULT pura, una aplicación multihilo no puede aprovechar las ventajas de los multiprocesadores. El núcleo asigna un proceso aun sólo procesador cada vez. Por lo tanto, sólo puede ejecutar un hilo de cada proceso en cada instante. De hecho, se realiza multiprogramación de aplicación dentro de un proceso. Mientras que esta multiprogramación puede dar lugar a un importante incremento de velocidad de la aplicación, hay aplicaciones que podrían beneficiarse de la capacidad de ejecutar concurrentemente fragmentos de código.
4.8 Defina jacketing (revestimiento).
R: Revestimiento es el efecto sobre el aumento de la cantidad de producción obtenido, provocado ante un aumento de la cantidad de factores de producción empleados. Ademas es una manera de superar el problema de bloqueo de hilos y su propósito es convertir una llamada bloqueadora al sistema en otra no bloqueadora.
4.9 Defina brevemente las diversas arquitecturas que nombran en la figura 4.8.
R: Las distintas arquitecturas que aparecen en la figura 4.8 son:
  • Flujo de instrucción simple/dato múltiples (SIMD): es una única instrucción de máquina controla la ejecución simultánea de varios elementos del proceso según una secuencia de bloqueos.
  • Flujo de instrucción múltiple/datos múltiples (MIMD): es un conjunto de procesadores ejecuta simultáneamente varias secuencias de instrucciones sobre distintos conjuntos de datos.
  • Memoria compartida: es cuando los procesadores comparten una memoria común con lo que puede acceder a programas y datos almacenados en esa memoria común.
  • Agrupaciones: es cuando cada procesador tiene una memoria dedicada donde cada elemento del proceso es un computador auto contenido.
  • Maestro/Esclavo: es el núcleo del sistema operativo siempre ejecuta en un procesador determinado. El resto de los procesadores solamente pueden ejecutar programas de usuario y, en ocasiones, utilidades del sistema operativo.
  • Multiproceso Simétrico: es el núcleo puede ejecutar en cualquier procesador y, normalmente, cada procesador se auto planifica a partir de una cola de procesos o hilos libres.
4.10 Enumere los aspectos principales de diseño de un sistema operativo SMP.
R: Los aspectos principales de diseño para un SO SMP son:
  • Procesos o hilos concurrentes.
  • Planificación.
  • Sincronización.
  • Gestión de memoria.
  • Fiabilidad y tolerancia a los 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 con micronúcleo.
R: Ejemplos de servicios y funciones de un sistema operativo:
  • Cesión: el propietario de un espacio de direcciones puede ceder varias de sus páginas a otro proceso.
  • Asociación: un proceso puede asociar cualquiera de sus páginas al espacio de direcciones de otro, de forma que ambos procesos tiene accesos a estas páginas.
  • Rellenado: un proceso puede reclamar cualquier página concedida o asociada a otro.
4.12 Enumere y explique brevemente siete ventajas potenciales de un diseño micronúcleo en comparación con un diseño monolítico.
R: Las siete ventajas de un diseño con micro núcleo frente a un diseño monolítico son:
  • Uniformidad de interfaces: los procesos no necesitan diferenciar entre servicios de usuario y núcleo, ya que todos los servicios se utilizan mediante pasos de mensajes.
  • Fiabilidad: aumenta la probabilidad de producir código de calidad para los servicios del sistema operativo externos al núcleo.
  • Portabilidad: los cambios necesarios para portar el sistema a un nuevo procesador son menores y tienden a estar ordenados en agrupaciones lógicas.
  • Extensibilidad: permiten añadir nuevos servicios al conjunto de servicios ya existentes en alguna de las áreas funcionales.
  • Flexibilidad: se pueden reducir las características actuales para dar lugar a una implementación más pequeña y eficiente.
  • Soporte a los sistemas distribuidos: se incluyen agrupaciones controladas por un sistema operativo distribuido.
  • Soporte para sistemas operativos orientados a objetos: aporta una disciplina al diseño del micro núcleo y al desarrollo de las extensiones modulares del sistema operativo.
4.13 Explique la desventaja potencial de rendimiento de un sistema operativo micronúcleo.
R: La principal desventaja del rendimiento de un SO con micronúcleo es que consume más tiempo construir y enviar un mensaje, o aceptar y descodificar la respuesta, a través del micronúcleo que mediante una simple llamada al sistema.
4.14 Enumere tres funciones que esperaría encontrar incluso en un sistema operativo con un micronúcleo mínimo.
R: Las tres funciones que esperaría encontrar en un sistema operativo con un micronúcleo mínimo son:
  • Gestión de memoria a 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 con micronúcleo?
R: La forma básica de comunicación entre procesos o hilos en un SO con micronúcleo son los mensajes. 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.

No hay comentarios:

Publicar un comentario