← Blog

Quiz 1 - Threads (Hilos)

Conceptos sobre hilos (threads) en sistemas operativos: modelo multihilo, ventajas, casos de uso en procesadores de texto, hojas de cálculo y servidores web.

Teoría

Un hilo (thread) es una unidad de ejecución dentro del mismo espacio de direcciones de un proceso. Mientras que los procesos tradicionales tienen un solo hilo de control, los sistemas modernos permiten múltiples hilos dentro de un mismo proceso, compartiendo memoria y datos.

La principal diferencia entre hilos y procesos es que los hilos comparten el mismo espacio de direcciones, mientras que los procesos tienen espacios separados. Esto los hace ideales para tareas cooperativas donde varios flujos de trabajo necesitan acceder a los mismos datos. Además, los hilos son más ligeros: crear un hilo es de 10 a 100 veces más rápido que crear un proceso.

Los hilos son especialmente útiles en aplicaciones que combinan cómputo intensivo con operaciones de E/S (I/O). Ejemplos prácticos incluyen:

  • Procesadores de texto: un hilo maneja la interacción con el usuario, otro reformatea el texto en segundo plano, y un tercero realiza respaldos automáticos en disco.
  • Hojas de cálculo: un hilo acepta cambios del usuario mientras otro recalcula las celdas y un tercero hace copias de seguridad.
  • Servidores web: un hilo despachador recibe solicitudes y las asigna a hilos trabajadores, que verifican la caché o leen del disco. Esto evita que el servidor quede inactivo esperando operaciones de disco.

Para que el modelo multihilo funcione correctamente, las llamadas al sistema deben bloquear solo el hilo que las ejecuta, no todo el proceso.


Quiz

¿En los sistemas operativos tradicionales, cuántos hilos de control tiene un proceso?
Uno solo.

¿Qué es un hilo (thread) dentro de un proceso?
Una unidad de ejecución dentro del mismo espacio de direcciones del proceso.

¿Por qué es útil tener múltiples hilos en una misma aplicación?
Porque permite dividir actividades concurrentes que pueden bloquearse, simplificando el modelo de programación.

¿Qué diferencia a los hilos de los procesos tradicionales en cuanto a espacio de direcciones?
Los hilos comparten el mismo espacio de direcciones, los procesos no.

¿Por qué los hilos se consideran más ligeros que los procesos?
Porque son más rápidos de crear y destruir.

¿Cuánto más rápido puede ser crear un hilo en comparación a crear un proceso?
De 10 a 100 veces más rápido.

¿En qué tipo de tareas los hilos permiten un mejor rendimiento?
Cuando hay combinación de cómputo intensivo y operaciones de E/S (I/O).

¿En qué tipo de sistemas los hilos pueden ejecutarse en paralelo real?
En sistemas con múltiples CPUs.

Modelo de hilos en procesador de texto ¿Para qué se usan hilos en un procesador de texto?
Para dividir tareas como interacción con el usuario, reformatación del texto y respaldo en disco.

¿Qué ventaja ofrece un hilo dedicado a la reformatación del texto en segundo plano?
Permite que el usuario siga trabajando mientras se procesa el documento.

¿Qué problema se evitaría si un hilo interactivo continúa funcionando mientras otro hilo reformatea el texto?
Retrasos percibidos por el usuario al esperar la reformatación.

¿Qué función cumple un tercer hilo en un procesador de texto multitarea?
Guardar automáticamente el archivo en disco.

¿Qué ventaja tiene un modelo de múltiples hilos frente a uno con interrupciones?
El modelo con hilos es más simple de programar.

¿Qué pasaría si el procesador de texto fuera monohilo y se hiciera un respaldo en disco?
El teclado y el ratón serían ignorados durante la operación de respaldo.

¿Por qué no funcionaría usar tres procesos en lugar de tres hilos para editar un documento?
Porque no compartirían la memoria y no podrían trabajar sobre el mismo documento.

¿Qué comparten los hilos dentro de un mismo proceso que los hace ideales para tareas cooperativas?
El mismo espacio de direcciones y los datos.

¿Qué pasa con el rendimiento cuando todos los hilos son intensivos en CPU?
No hay mejora de rendimiento.

¿Cuál es un ejemplo práctico de uso simultáneo de hilos en un programa común?
Un procesador de texto con hilos para entrada del usuario, reformatación y respaldo automático.

¿Por qué dividir un libro en muchos archivos puede ser problemático en la edición?
Porque dificulta realizar cambios globales rápidamente.

¿Qué ventaja tiene mantener un documento largo como un solo archivo?
Permite búsquedas y sustituciones globales más fácilmente.

¿Qué ventaja ofrece un hilo en segundo plano en una hoja de cálculo compleja?
Permite recalcular las celdas mientras el hilo interactivo sigue aceptando cambios del usuario.

¿Cuál es la función de un tercer hilo en una hoja de cálculo con múltiples hilos?
Realizar copias de seguridad periódicas en disco.

Modelo multihilo en servidor web ¿Para qué sirve una caché en un servidor web?
Para almacenar páginas accedidas frecuentemente en memoria y evitar acceder al disco.

¿Qué tipo de páginas se almacenan generalmente en la caché de un servidor web?
Páginas muy solicitadas como la página principal.

¿Cómo se llama el hilo encargado de recibir las solicitudes en un servidor web multihilo?
Hilo despachador (dispatcher thread).

¿Qué hace el hilo despachador cuando recibe una solicitud de trabajo?
Selecciona un hilo trabajador inactivo y le asigna la solicitud.

¿Qué transición realiza el hilo despachador al asignar trabajo a un hilo trabajador?
Lo pasa de estado bloqueado a estado listo.

¿Qué hace un hilo trabajador al despertar tras recibir una solicitud?
Verifica si la página solicitada está en caché.

¿Qué pasa si la página solicitada no está en la caché del servidor web?
El hilo trabajador la lee del disco y la retorna al cliente.

¿Cómo es la estructura del programa del hilo despachador en un servidor multihilo?
Un bucle infinito que recibe solicitudes y las delega a trabajadores.

¿Cómo es la estructura del programa de un hilo trabajador en un servidor multihilo?
Un bucle infinito que procesa solicitudes, busca en caché o accede al disco.

¿Qué ocurre si un servidor web se implementa como un solo hilo?
Queda inactivo esperando el disco y no atiende nuevas solicitudes.

¿Cuál es el impacto en el rendimiento de un servidor web monohilo?
Procesa muchas menos solicitudes por segundo.

¿Qué solución ofrecen los hilos para mejorar el rendimiento en procesamiento de datos?
Permiten superponer entrada, procesamiento y salida simultáneamente.

¿Cómo se estructura un proceso que maneja grandes volúmenes de datos con hilos?
Con un hilo de entrada, uno de procesamiento y uno de salida.

¿Qué hace el hilo de entrada en un modelo de procesamiento de datos multihilo?
Lee los datos y los coloca en un búfer de entrada.

¿Qué hace el hilo de procesamiento en este modelo?
Toma los datos del búfer de entrada, los procesa y los envía al de salida.

¿Qué hace el hilo de salida en este modelo?
Escribe los resultados procesados en el disco.

¿Qué condición debe cumplirse para que el modelo multihilo funcione correctamente?
Que las llamadas al sistema bloqueen solo el hilo que las ejecuta, no todo el proceso.