Está en la página 1de 4

Ángel Gabriel Torres Gallardo Fecha de entrega: 27 de septiembre 2023

INSTITUTO TECNOLÓGICO DE ACAPULCO


INGENIERÍA EN SISTEMAS COMPUTACIONALES

Sistemas Operativos
Tarea: Núcleos y niveles en estrato de diseño
Horario: 7:00 a 8:00 hrs.
Docente: Baños Montes Juan
Alumno: Torres Gallardo Ángel Gabriel
Aula: 711 No. Control: 21321234
Semestre:5to Periodo: Agosto-Diciembre 2023
Grupo: IS3

Lunes 18 de septiembre del 2023

Sistemas Operativos – 7:00 a 8:00


Ángel Gabriel Torres Gallardo Fecha de entrega: 27 de septiembre 2023

Hebras e hilos

En informática y sistemas operativos, una hebra (también conocida como hilo o thread) es
la unidad más pequeña de ejecución en un proceso. Los hilos permiten que un programa se
ejecute de manera concurrente, lo que significa que múltiples hebras pueden ejecutarse en
paralelo, compartiendo recursos y ejecutando diferentes partes del código al mismo tiempo.
Este enfoque de programación concurrente es fundamental para aprovechar al máximo la
capacidad de procesamiento de las CPU modernas.

Diferencia entre Procesos e Hilos


Antes de profundizar en las hebras, es importante entender la diferencia entre un proceso y
una hebra en un sistema operativo:
 Proceso: Un proceso es un programa en ejecución. Cada proceso tiene su propio
espacio de memoria, sus recursos y su conjunto de variables. Los procesos se
ejecutan de forma independiente y no comparten memoria entre sí, lo que significa
que la comunicación entre procesos suele requerir mecanismos de comunicación
interproceso, como tuberías o sockets.
 Hebra: Una hebra es una unidad de ejecución más pequeña dentro de un proceso.
Las hebras dentro de un proceso comparten la misma memoria y recursos, lo que
facilita la comunicación y la sincronización entre ellas. Sin embargo, esto también
puede llevar a problemas de concurrencia, como condiciones de carrera y bloqueos.

Ventajas de Usar Hebras


El uso de hebras en un sistema operativo proporciona varias ventajas:
 Mejora del rendimiento: Al permitir la ejecución concurrente, los programas pueden
aprovechar al máximo la capacidad de procesamiento de la CPU y realizar tareas en
paralelo.
 Mayor capacidad de respuesta: Las aplicaciones que utilizan hebras pueden
mantener una interfaz de usuario receptiva, incluso cuando realizan tareas intensivas
en CPU en segundo plano.
 Simplificación de la programación: La programación con hebras puede simplificar
la estructura del código, ya que diferentes tareas pueden dividirse en hebras
separadas, lo que facilita el desarrollo y el mantenimiento del software.

Modelos de Hebras

Sistemas Operativos – 7:00 a 8:00


Ángel Gabriel Torres Gallardo Fecha de entrega: 27 de septiembre 2023

Existen dos modelos principales de hebras:


 Hebras a nivel de usuario (ULT - User-Level Threads): En este modelo, la
administración de hebras se realiza en el espacio de usuario, lo que significa que el
sistema operativo no es consciente de las hebras. Esto permite una mayor
flexibilidad y rendimiento, pero también puede llevar a problemas de planificación
y bloqueos.
 Hebras a nivel de kernel (KLT - Kernel-Level Threads): En este modelo, el sistema
operativo es consciente de las hebras y las administra directamente. Esto facilita la
planificación y la sincronización de hebras, pero puede tener un mayor costo en
términos de rendimiento debido a las transiciones entre el espacio de usuario y el
espacio del kernel.

Sincronización y Problemas de Concurrencia


Uno de los desafíos clave en la programación con hebras es la sincronización. Cuando
múltiples hebras acceden y modifican datos compartidos, pueden surgir problemas de
concurrencia, como condiciones de carrera y bloqueos. Para mitigar estos problemas, se
utilizan técnicas como semáforos, mutex (mutual exclusión), monitores y barreras de
sincronización.

Herramientas y Bibliotecas para Programación con Hebras


Para facilitar la programación con hebras, existen bibliotecas y herramientas que
proporcionan abstracciones de alto nivel y facilitan la gestión de hebras. Ejemplos comunes
incluyen POSIX Threads (pthread), Java Threads, y las bibliotecas de hebras en lenguajes
de programación como Python y C#.

Sistemas Operativos – 7:00 a 8:00


Ángel Gabriel Torres Gallardo Fecha de entrega: 27 de septiembre 2023

Bibliografía

 Tanenbaum, A. S., & Bos, H. (2014). Sistemas operativos modernos (4a ed.).
Pearson Education. [Libro de texto]
 Stallings, W. (2018). Sistemas operativos: Internos y principios de diseño (9a ed.).
Pearson. [Libro de texto]
 Silberschatz, A., Galvin, P. B., & Gagne, G. (2018). Conceptos de sistemas
operativos (10a ed.). Wiley. [Libro de texto]
 Comer, D. E. (2014). Diseño de sistemas operativos: El enfoque Xinu (2a ed.). CRC
Press. [Libro]
 Herbert, M. B. (2003). El diseño e implementación del sistema operativo FreeBSD.
Addison-Wesley Professional. [Libro]
 McIlroy, M. D. (1969). Componentes de software producidos en masa. En Técnicas
de Ingeniería de Software (pp. 138-155). [Artículo]
 Liedtke, J. (1996). Sobre la construcción de microkernels. ACM SIGOPS Operating
Systems Review, 30(5), 237-250. [Artículo]
 Heiser, G. (2007). El papel del microkernel L4 en el diseño contemporáneo de
sistemas operativos. ACM SIGOPS Operating Systems Review, 41(3), 63-74.
[Artículo]
 Dijkstra, E. W. (1968). La estructura del sistema de multiprogramación "THE".
Communications of the ACM, 11(5), 341-346. [Artículo]
 Seltzer, M., & Small, C. (1996). Self: El poder de la simplicidad. ACM SIGOPS
Operating Systems Review, 30(5), 95-103. [Artículo]

Sistemas Operativos – 7:00 a 8:00

También podría gustarte