Professional Documents
Culture Documents
Los hilos son similares a los procesos ya que ambos representan una secuencia simple
de instrucciones ejecutada en paralelo con otras secuencias. Los hilos son una forma de
dividir un programa en dos o ms tareas que corren simultneamente, compitiendo, en
algunos casos, por la CPU. La diferencia ms significativa entre los procesos y los hilos,
es que los primeros son tpicamente independientes, llevan bastante informacin de
estados, e interactan slo a travs de mecanismos de comunicacin dados por el
sistema. Por otra parte, los hilos generalmente comparten la memoria, es decir, acceden
a las mismas variables globales o dinmicas, por lo que no necesitan costosos
mecanismos de comunicacin para sincronizarse. Por ejemplo un hilo podra encarguese
de la interfaz grfica (iconos, botones, ventanas), mientras que otro hace una larga
operacin internamente. De esta manera el programa responde ms gilmente a la
interaccin con el usuario.
En sistemas operativos que proveen facilidades para los hilos, es ms rpido cambiar de
un hilo a otro dentro del mismo proceso, que cambiar de un proceso a otro.
Es posible que los hilos requieran de operaciones atmicas para impedir que los datos
comunes sean cambiados o ledos mientras estn siendo modificados. El descuido de esto
puede generar estancamiento.
La tabla 1 resume algunas diferencias entre procesos e hilos, y la figura 1 muestra una
representacin de los conceptos proceso e hilo. Ntese cmo en la figura 1 se puede
apreciar que los procesos son entidades independientes, mientras que los hilos son
entidades relacionadas por la seccin de datos en el interior del proceso que los contiene.
HILOS (threads)
Los hilos son un concepto relativamente nuevo de los SO. En este contexto, un proceso
recibe el nombre de proceso pesado, mientras que un hilo recibe el nombre de proceso
ligero. El trmino hilo se refiere sintctica y semnticamente a hilos de ejecucin.
2
En un SO con procesos monohilo (un solo hilo de ejecucin por proceso), en el que no
existe el concepto de hilo, la representacin de un proceso incluye su BCP, un espacio de
direcciones del proceso, una pila de proceso y una pila ncleo.
La seccin de cdigo.
La seccin de datos.
Estados de un Hilo
Los principales estados de un hilo son: ejecucin, preparado y bloqueado; y hay cuatro
operaciones bsicas relacionadas con el cambio de estado de los hilos:
Cdigo (instrucciones).
Variables globales.
Contador del programa (cada hilo puede ejecutar una seccin distinta de cdigo).
Registros de CPU.
Pila para las variables locales de los procedimientos a las que se invoca despus
de crear un hilo.
Semejanzas: Los hilos operan, en muchos sentidos, igual que los procesos.
Como todos los hilos pueden acceder a todas las direcciones de la tarea, un hilo
puede leer la pila de cualquier otro hilo o escribir sobre ella. Aunque pueda parecer
lo contrario la proteccin no es necesaria ya que el diseo de una tarea con
mltiples hilos tiene que ser un usuario nico.
Se tarda mucho menos tiempo en crear un nuevo hilo en un proceso existente que
en crear un nuevo proceso.
Se tarda mucho menos tiempo en conmutar entre hilos de un mismo proceso que
entre procesos.
Estructuracin modular de los programas: Los programas que realizan una variedad de
actividades se pueden disear e implementar mediante hilos.
Fuente: http://www.chuidiang.com/clinux/procesos/procesoshilos.php#procesoshilos
Fuente: http://www.infor.uva.es/~fjgonzalez/apuntes/Tema4.pdf
Fuente: http://williamstallings.com/