Hilos

Sistemas Operativos

Unidad 2  (parte 3)

Concurrencia dentro de un mismo proceso

Un proceso: navegador web

Dentro de un navegador deben ocurrir varias actividades a la vez:

  • dibujar y mantener responsiva la interfaz
  • cargar una página desde la red
  • ejecutar código de una página
  • reproducir audio o video
  • guardar datos temporales o caché

Sistemas Operativos

Hilo:

una linea de ejecucion dentro de un proceso

  • un proceso puede tener uno o varios hilos
  • los hilos permiten que distintas actividades avancen dentro del mismo proceso
  • cada hilo ejecuta instrucciones y tiene su propio avance
  • todo proceso en ejecución tiene al menos un hilo

Sistemas Operativos

Proceso y hilo no cumplen el mismo papel

  • el proceso organiza recursos e identidad
  • el hilo representa una ejecucion concreta

Proceso:

  • contenedor de recursos

Hilo:

  • unidad de ejecución

Sistemas Operativos

¿Que comparten los hilos?

  • memoria del proceso
  • archivos abiertos
  • recursos asociados al proceso
  • permisos e identidad general del proceso

Los hilos viven en el mismo "mundo" del proceso al que pertenecen

Sistemas Operativos

¿Que no comparten los hilos?

  • program counter
  • registros
  • stack
  • estado de ejecucion del hilo

si varios hilos avanzan, cada uno necesita su propio contexto de ejecucion

Sistemas Operativos

¿Por que usar hilos?

  • modularidad
  • mejor respuesta de la aplicacion
  • concurrencia interna
  • mejor aprovechamiento de varios procesadores

Pero

compartir recursos tambien trae nuevos problemas

Sistemas Operativos

Ventajas y costo

Ventajas

  • crear hilos suele ser mas liviano que crear procesos
  • comunicarse entre hilos del mismo proceso es mas natural
  • una aplicacion puede dividir mejor su trabajo

Costo

al compartir memoria, los hilos pueden interferirse entre si

Sistemas Operativos

Implementaciones de hilos

¿quién administra los hilos?

  • bibliotecas de usuario
  • kernel
  • combinaciones de ambos

Sistemas Operativos

Hilos de usuario

  • el kernel no necesariamente ve cada hilo
  • la aplicacion o una biblioteca los administra
  • suelen tener menor sobrecarga

Limite importante

si una operacion bloquea, puede afectar al conjunto

Sistemas Operativos

Hilos de kernel

  • el sistema operativo administra directamente los hilos
  • puede planificarlos de forma explicita
  • un hilo bloqueado no necesariamente detiene a los demas

Costo

la administracion suele tener mas sobrecarga

Sistemas Operativos

Modelos mixtos

  • algunos sistemas combinan hilos de usuario y de kernel
  • buscan aprovechar ventajas de ambos enfoques

Para recordar:

hay distintas formas de implementar hilos, pero la idea de hilo sigue siendo la misma

Sistemas Operativos

Sintesis de hilos

  • un hilo es una linea de ejecucion dentro de un proceso
  • varios hilos pueden compartir recursos del mismo proceso
  • cada hilo necesita su propio contexto de ejecucion
  • los hilos facilitan concurrencia dentro de una aplicacion

Sistemas Operativos

Webasignatura: U2 Procesos 05: Observar hilos de un proceso

Entonces ¿qué sigue?

Si varios hilos comparten memoria y recursos, ¿como evitamos que se interfieran entre si?

  • acceso concurrente
  • orden de ejecucion
  • coordinacion

Proximo Paso:

sincronizacion y comunicacion

Sistemas Operativos

Hilos (parte 3)

By Rodolfo Pilas

Hilos (parte 3)

  • 59