TECNOLOGICO DE ESTUDIOS SUPERIORES DE COACALCO
Ingeniería en sistemas computacionales
Alumno:
Bazan Zenil Alan Misael
Actividad:
Hilos o Hebras
Asignatura:
Sistemas Operativos
Fecha de entrega:
16 de octubre
Grupo:
3511
En los sistemas operativos y programación concurrente, los términos hebras (también conocidas
como threads) e hilos se utilizan para describir la ejecución concurrente de tareas dentro de un
proceso. La administración de hebras o hilos es fundamental en los sistemas modernos para
optimizar el uso de recursos y mejorar el rendimiento.
Si cada vez que el planificador elige qué proceso pasar de Listo a en ejecución debe considerar
buena parte de dicha información, la simple transferencia de todo esto entre la memoria y el
procesador podría llevar a un desperdicio burocrático de recursos.
Una respuesta a esta problemática fue la de utlizar los hilos de ejecución, a veces conocidos como
procesos ligeros (LWP, Lightweight processes). Cuando se consideran procesos basados en un
modelo de hilos, se puede proyectar en sentido inverso que todo proceso es como un solo hilo de
ejecución. Un sistema operativo que no ofreciera soporte expreso a los hilos los planificaría
exactamente del mismo modo.
La programación basada en hilos puede hacerse completamente y de forma transparente en
espacio de usuario (sin involucrar al sistema operativo).
Estos hilos se llaman hilos de usuario (user threads), y muchos lenguajes de programación los
denominan hilos verdes (green threaos).
Un caso de uso interesante es en los sistemas operativos minimos, capaces de ejecutar una
máquina virtual de alguno de esos lenguajes: si bien el sistema operativo no maneja
multiprocesamiento, mediante los hilos de usuario se crean Los procesos que implementan hilos
ganan un poco en el rendimiento gracias a no tener que reemplazar al PCB activo cuando
intercalan la ejecución de sus diferentes hilos; pero además de esto, ganan mucho más por la
ventaja de compartir espacio de memoria sin tener que establecerlo explicitamente a través de
mecanismos de comunicación entre procesos (PC, Inter Process Communications). Dependiendo
de la plataforma, a veces los hilos de usuario inclusive utilizan multitarea cooperativa para pasar el
control dentro de un mismo proceso.
Planificación basada en prioridad:
o Descripción: El sistema asigna una prioridad a cada hilo, y el planificador selecciona los
hilos con mayor prioridad para ser ejecutados.
o Ventaja: Los hilos importantes se ejecutan más rápidamente.
o Desventaja: Si hay muchos hilos de alta prioridad, los de baja prioridad pueden sufrir de
inanición.
Planificación round-robin:
o Descripción: Cada hilo recibe una cantidad fija de tiempo para ejecutarse (cuánto de CPU o
quantum). Una vez que el hilo ha utilizado su quantum, se suspende y se da paso al
siguiente hilo en la cola. Luego el ciclo se repite.
o Ventaja: Garantiza que todos los hilos obtengan tiempo de CPU.
o Desventaja: Puede no ser eficiente para hilos con diferentes necesidades de tiempo.
Planificación por lotes o batch:
o Descripción: Se agrupan múltiples hilos que requieren ser ejecutados de manera similar, en
lugar de planificar cada uno individualmente. Los grupos de hilos son ejecutados como un
bloque.
o Ventaja: Minimiza el cambio de contexto y mejora la eficiencia en algunos casos.
o Desventaja: Menos adecuado para tareas interactivas.
Planificación multicolas:
o Descripción: Los hilos se dividen en diferentes colas según su tipo o características (por
ejemplo, colas de prioridad alta y baja). Cada cola puede tener su propio algoritmo de
planificación (como round-robin para una cola y planificación por prioridad para otra).
o Ventaja: Flexible, se pueden asignar distintos algoritmos de planificación según el tipo de
trabajo.
o Desventaja: Mayor complejidad en la implementación.
Planificación justa (Fair Share Scheduling):
o Descripción: El sistema se asegura de que todos los hilos tengan un acceso justo a los
recursos de la CPU. Cada hilo recibe una porción proporcional del tiempo de CPU, sin que
uno acapare más recursos que otros.
o Ventaja: Evita la inanición de hilos y distribuye de manera justa los recursos.
o Desventaja: No prioriza hilos más críticos o urgentes, lo que puede ser un inconveniente en
sistemas con necesidades en tiempo real.
Planificación First-Come, First-Served (FCFS):
o Descripción: Los hilos se planifican en el orden en el que llegan. El primer hilo que solicita
CPU es el primero en ejecutarse.
o Ventaja: Simple y fácil de implementar.
o Desventaja: Puede ser ineficiente, ya que no toma en cuenta las características de los hilos
(por ejemplo, uno que necesite poco tiempo puede quedar esperando mucho por uno que
ocupe más).
Planificación cooperativa:
o Descripción: En esta técnica, los hilos deben ceder voluntariamente el control de la CPU. El
sistema no los interrumpe; depende de ellos decidir cuándo parar y dejar que otros hilos
se ejecuten.
o Ventaja: Menos sobrecarga por cambio de contexto.
o Desventaja: Un hilo mal diseñado puede no ceder el control, causando problemas de
rendimiento o bloqueos.
Planificación basada en tiempo real:
o Descripción: Diseñada para sistemas donde se deben cumplir restricciones temporales
estrictas. Se basa en planificar hilos de acuerdo con sus necesidades de tiempo real, como
sistemas embebidos o sistemas de control industrial.
o Ventaja: Garantiza que las tareas críticas se ejecuten en el momento adecuado.
o Desventaja: Los hilos que no son de tiempo real pueden sufrir de inanición.