Вы находитесь на странице: 1из 26

HEBRAS

SISTEMAS OPERATIVOS
JAIRO CORREA ORTIZ

HEBRAS, HILOS (threads)
Multihilo: capacidad de un SO para
mantener varios hilos de ejecucin
dentro del mismo proceso.
Un HILO de
ejecucin, hebra o subproceso
es la unidad de procesamiento
ms pequea que puede ser
planificada por un sistema
operativo.
El proceso WinWord.exe que es
uno solo, tiene la capacidad de
mantener varios hilos de ejecucin
dentro del mismo proceso
Capacidad de respuesta.
Comparticin de Recursos.
Economa.
Utilizacin sobre arquitecturas
multiprocesador.
Modelos Multihebra
Modelo muchos-a-uno
En este modelo se asignan
mltiples hebras de nivel
de usuario a una hebra del
Kernel.
Modelo Uno-a-uno
Se asigna cada hebra
de usuario a una hebra
del Kernel.

Proporciona mayor
concurrencia que el
anterior.
Ncleo o kernel (de la raz germnica Kern, ncleo, hueso)
es un software que constituye la parte ms importante del
sistema operativo. Principal responsable de facilitar a los
distintos programas acceso seguro al hardware. Es el
encargado de gestionar recursos, a travs de servicios de
llamada al sistema.
Modelo Muchos-a-muchos
Combina muchas
hebras de usuario
sobre un ncleo
menor o igual de
hebras de Kernel.
Biblioteca de Hebras
Proporciona al programador una API
(Interfaz de Programacin de Aplicaciones) para crear y
gestionar hebras.
Dos Formas para implementar una
biblioteca de Hebras
Tres Principales Bibliotecas
Se basa en el estndar
POSIX que define una
Interfaz de Programacin
de Aplicaciones para la
creacin y sincronizacin
de hebras. Especifica el
comportamiento de las
hebras ms no la
implementacin de las
mismas.
Hebras de WIN32
Hebras Java
Una hebra es una corriente individual e
independiente que se ejecuta dentro de un
programa. Java es un lenguaje de
programacin multihebra, por lo que
dentro de la mquina virtual Java puede
haber en ejecucin varias hebras a la vez.
Las hebras Java ofrecen a los programas
Java una manera de llevar a cabo varias
tareas a la vez

Hebras a travs del clase Thread

Hebras a travs de la interfaz Runnable
Hebras a travs del clase Thread
Hebras a travs de la interfaz Runnable
Consideraciones sobre las hebras
Las llamadas al sistema fork() y exec().
fork() : Lo que hace la llamada al sistema
fork, es clonar (duplicar) hebras.
exec() : Si una hebra lo invoca, el proceso se reemplazar
por un programa completamente nuevo, adems
reemplazar a todas las hebras relacionadas.
Cancelacin de una Hebra
Finalizar un Thread antes de que haya acabado,
en otras palabras, tenemos un proceso corriendo
en una maquina y de pronto por cualquier
circunstancia, tanto interna como externa,
cancelamos el proceso.
- Asincrnicos - Inmediato
- Diferidos - Pausado
Datos especficos de una hebra.
Identificador o (TID) que permite de manera
nica e inequvoca referirse a una hebra en
particular.
Estado, que permite saber que sucede con la hebra,
ya que esta puede estar ejecutndose, lista para ser
asignada a un procesador, o en espera de algn
evento (ej: evento de I/O).
Puntero de instruccin, que nos permite ir
avanzando secuencialmente por las
instrucciones de la hebra y no perder el
hilo de ejecucin (instruccin en la que me
encuentro) cuando la hebra pasa a un
estado de bloqueo.
Prioridad, ya que indiferente de la
prioridad que tenga el proceso, cada hebra
tiene su propia prioridad.
Afinidad, que si bien no siempre se
encuentra en las hebras, resulta
sumamente til para mejorar rendimiento,
ya que liga a una hebra con el procesador
donde se estaba ejecutando.

Вам также может понравиться