5. SISTEMAS OPERATIVOS CON GESTIÓN DE HILOS.

  1. MACH.
  2. OSF/1.
  3. AMOEBA.
  4. WINDOWS NT.
  5. SunOS 5.x.
  6. OTROS SISTEMAS OPERATIVOS.

La estructura del kernel de la mayoría de los sistemas operativos que dominaban el mercado hasta hace unos años, era una estructura monolítica que podía o no permitir la multitarea, pero no solía permitir el multiproceso real en múltiples procesadores, a pesar de que empezaban a aparecer nuevas arquitecturas multiprocesador. Normalmente, esto sistemas operativos se basaban en el concepto de proceso, como entidad planificable, con un solo hilo de control. Este era el caso de UNIX, que no permite múltiples hilos de control dentro de un mismo proceso.

Con la aparición de nuevas arquitecturas multiprocesador y multicomputador era necesario que se desarrollaran nuevos sistemas operativos que pudiesen explotar las ventajas de estas nuevas arquitecturas, de cara a mejorar el rendimiento de las aplicaciones y de los sistemas. Estos nuevos sistemas operativos proporcionan soporte de hilos a nivel del kernel, soporte de multiprocesadores y en ocasiones de multicomputadores, convirtiéndose, en algunos casos, en los nuevos sistemas operativos distribuidos o al menos sistemas operativos de red.

Un hilo es una entidad que puede ejecutarse sola. Los hilos son como procesos ligeros que un estado mínimo necesario, que incluye el estado del procesador y los contenidos de los registros relevantes. En un multiprocesador, múltiples hilos pueden ejecutarse en paralelo en procesadores diferentes. Esto significa que los hilos asignados a diferentes procesadores no deben estar relacionados, y que todos los hilos asignados al mismo procesador pueden compartir los recursos.

La planificación de múltiples hilos en un conjunto de procesadores disponibles se llama gang-cheduling o planificación en grupo. Para implementar un kernel multihilo se emplean semáforos o bloqueos cíclicos para separar múltiples hilos con conjuntos diferentes de recursos kernel. El objetivo es maximizar el grado de paralelismo en las operaciones del núcleo. Los hilos no relacionados pueden ejecutarse en procesadores distintos sin contención de recursos, y la utilización de la CPU debe aumentar de forma notable, sin que la sobrecarga añadida para su gestión sea excesiva.

Existen muchos sistemas operativos actuales en cuyo desarrollo se tuvo en cuenta la implementación de hilos y su soporte por el kernel, mientras que en otros ha sido un añadido posterior (lo que en muchos caso ha obligado a rediseñar el sistema operativo). Algunos ejemplos son Mach, OSF/1, Amoeba, Windows NT, SunOS 5.x, OS/2, NeXTStep, AIX, IRIX. A continuación se presentan las características más importantes y su relación con los hilos de los cinco primeros sistemas.