Implementacion Hilos
Enviado por ale11 • 24 de Octubre de 2012 • 652 Palabras (3 Páginas) • 1.398 Visitas
IMPLEMENTACIÓN DE HILOS
Implementación a nivel usuario
Un hilo a nivel de usuario mantiene todo su estado en el espacio de usuario. Por esta razón el hilo no utiliza recursos del kernel para su administración y se puede sustituir entre hilos sin cambiar el espacio de direcciones.
Esta implementación puede ser la más eficiente, ya que no se necesita entrar al kernel en cada llamada, pero complica la gestión de señales y otras operaciones con los hilos.
Ventajas
• Un paquete de hilos a nivel de usuario puede implementarse en un sistema operativo que no soporte hilos.
• Permite que cada proceso tenga un algoritmo de planificación diferente para sus hilos, de acuerdo a sus necesidades.
• El intercambio de hilos es más rápido que las indicaciones al núcleo porque a nivel kernel se realiza un cambio de contexto completo.
• Mejor escalabilidad, al no necesitar reservar espacios para las tablas, pila en el área del kernel, que suele limitar el numero máximo de hilos en el sistema.
Desventaja
• Los hilos a nivel de usuario no se pueden ejecutar mientras el kernel está ocupado.
Implementación a nivel kernel
El kernel conoce y gestiona los hilos. No se necesita un sistema de tiempo de ejecución dentro de cada proceso. Además no existe ninguna tabla de hilos en cada proceso. Para cada proceso el núcleo tiene una tabla con una entrada por cada uno de los hilos del proceso, con los registros, estado, prioridades y otra información sobre cada hilo. La información es la misma que en los hilos a nivel de usuario, sólo que se encuentra en el espacio del núcleo y no en el espacio de usuario (dentro del sistema de tiempo de ejecución), por lo cual está limitado.
Las llamadas que pueden bloquear un hilo se implementan como llamadas al sistema, lo que supone un mayor coste que en el caso de nivel de usuario, donde se realizaban llamadas a un procedimiento del sistema de tiempo de ejecución.
Si un hilo se bloquea, el kernel puede decidir entre ejecutar otro hilo del mismo proceso si alguno de ellos está listo o un hilo de otro proceso.
A diferencia delos hilos a nivel de usuario, el sistema de tiempo de ejecución mantiene en ejecución los hilos del propio proceso hasta que el kernel les quita la CPU, o no existan más hilos del proceso listos para la ejecución.
Implementación hibrida
Intenta combinar las ventajas de los hilos a nivel usuario con las ventajas de los hilos a nivel kernel. El kernel coopera con el paquete de hilos de nivel usuario en la planificación.
Consideraciones de conversión de código de hilado simple a multihilado
El convertir esos programas en multihilo es complicado.
El código de un hilo consta de múltiples procedimientos, al igual que un proceso. Estos procedimientos pueden tener variables
...