Tarea 3

HILOS


4.1 La tabla 3.5 enumera los elementos más habituales de un bloque de control de proceso para un sistema operativo sin hilos. De ellos, cuáles deberían pertenecer a un bloque de control de hilo y cuáles a un bloque de control de proceso en un sistema multihilo.

Bloque de control de hilo:
Ø Espacio de memoria
Ø Procesos hijos
Ø Temporizadores
Ø Señales y semáforos
Ø Contabilidad
Ø Variables globales
Ø Archivos abiertos

Bloque de control de proceso en un sistema multihilo:
Ø 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).
Ø 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 del mismo.
Ø El estado de ejecución del hilo (ejecución, listo, etc.)

4.2 Indique razonadamente por qué un cambio de modo entre hilos puede ser menos costoso que un cambio de modo entre procesos.

Un cambio de modo entre hilos puede ser menos costoso que un cambio de modo entre procesos ya que en cada cambio de proceso se produce mucha más sobrecarga.

4.3 Cuáles son las dos características diferentes y potencialmente independientes que expresa el concepto de proceso

Ø Unidad de propiedad de los recursos
Ø Unidad de expedición

4.4 Indique 4 ejemplos generales del uso de hilos en un sistema monousuario multiprogramado.

Ø 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 comparten, normalmente, los hilos de un proceso

El 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 frente a las KLT.

Ø El intercambio de hilos no necesita los privilegios del modo de núcleo.
Ø Se puede realizar una planificación específica.
Ø Los ULT pueden ejecutar en cualquier sistema operativo.

4.7 Enumere dos desventajas de los ULT frente a los KLT.

Ø La mayoría de las llamadas al sistema son bloqueadoras
Ø No se puede aprovechar las ventajas de los multiprocesadores

4.8 Defina Recubrimiento

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 distintas arquitecturas nombradas en la figura 4.8

Ø 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 elementos clave de diseño para un sistema operativo SMP.

Ø Procesos o hilos concurrentes.
Ø Planificación.
Ø Sincronización.
Ø Gestión de memoria.
Ø Fiabilidad y tolerancia a los fallos

4.11 Indique ejemplos de funciones y servicios de un sistema operativo monolítico convencional que puedan ser subsistemas externos en un sistema operativo con micronúcleo.

Ø 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 con micronúcleo frente a un diseño monolítico.

Ø 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 del rendimiento de un sistema operativo con micronúcleo.

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.

Ø 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

Su forma básica de comunicación son los mensajes.