Sei sulla pagina 1di 8

INTRODUCCIN

Los hilos son miniprocesos que forman parte de un proceso, estos no pueden
ejecutarse solo porque necesitan de la supervisin de un proceso padre para
poder correr. Por ende son conocidos como procesos ligeros por que ayudan a
los procesos a mejorar su rendimiento. Los hilos poseen una estructura para su
funcionamiento poseen una contador de programa, registro, una pila, y un
estado. Al igual que los procesos con la diferencia de que estos poseen
espacios de direcciones, archivos abierto, variables globales, alarmas
pendientes, manejadores de seales incluso procesos hijos que son los hilos.
Los hilos pueden ser implementados a nivel de usuario y a nivel de kernel, a
nivel de usuario son implementados por el usuario en una librera son tiles en
sistemas operativos que no aceptan hilos aqu el kernel de los hilos
implementados por el usuario. Y en cuanto al kernel concierne esta
administrado por un solo hilo, aqu el sistema operativo es quien crea, planifica
y gestiona los hilos y reconoce tanto hilos haya creado, por ende cuando un
hilo desea crear un nuevo hilo o destruirlo realiza llamadas al kernel que los
lleva a cabo mediante la actualizacin de la tabla de hilos de kernel. El uso de
los hilos es muy importante porque permite realizar varias tareas a la vez,
mejora el rendimiento de un proceso, y son tiles en sistemas con varios CPU
donde existe el verdadero paralelismo.

1. HILOS
Un hilo o proceso ligero como la unidad ms pequea que un proceso que
puede planificarse y ejecutarse. Al usar esta tcnica, el proceso pesado, que es
propietario de los recursos, se vuelve un elemento ms pasivo, mientras un hilo
se

convierte en el elemento que usa la CPU y es planificada para su

ejecucin. La manipulacin de hilos consume menos tiempo que la


manipulacin de proceso que son ms complicados. Algunos sistemas
operativos atienden procesos multiples en un solo hilo, mientras que otros los
hacen con multihilo. (McHoes A, y Flynn I. ,2010).

En los sistemas operativos tradicionales, cada proceso tiene un espacio de


direcciones y un solo hilo de control. De hecho, sa es casi la definicin de un
proceso (Tanenbaum, 2009).
Flujo independiente de instrucciones que puede programarse para ser
ejecutado por el sistema operativo. Unidad mnima de procesamiento cuya
ejecucin puede ser programada por un sistema operativo, tambin se le llama
proceso ligero (Mondragn ,2012).

1.1.

DIFERENCIA ENTRE HILOS Y PROCESOS

La diferencia tpica es que los hilos se ejecutan en un espacio de memoria


compartido, mientras que los procesos no. Los hilos comparten el espacio de
direcciones del proceso que los cre. Cada proceso tiene su propio espacio de
direcciones.

Otra

diferencia

es que

generalmente

los procesos son

independientes entre s, mientras que los hilos se consideran un subconjunto


de un proceso. Es necesario comprender que tanto los hilos como los procesos
son secuencias independientes de ejecucin.

Un mismo proceso puede tener varios hilos ejecutando diferentes


funciones de dicho proceso.

Un hilo no contiene un proceso.


El estndar POSIX ve a los hilos como un conjunto de hilos iguales, no
existe una jerarqua como tal, mientras que los procesos s la tienen bien

1.2.

definida.
Los procesadores ejecutan hilos, no procesos(Mondragn , 2012)

USO DE HILOS

Por qu alguien querra tener un tipo de proceso dentro de otro proceso?


Resulta ser que hay varias razones de tener estos miniprocesos, conocidos
como hilos. La principal razn de tener hilos es que en muchas aplicaciones se
desarrollan varias actividades a la vez. Un segundo argumento para tener hilo
es que son ms ligeros que los procesos, son ms fciles de crear y de
destruir. Una tercera razn est relacionada con el rendimiento y una ltima
razn los hilos son tiles en los sistemas con varios CPU en donde es posible
el verdadero paralelismo. (Tanenbaum, 2009).

1.2.1. ESTADOS DE UN HILO


1. Listo.- El hilo ya puede ser ejecutado, pero est esperando a un procesador.
2. Ejecutndose/Corriendo.- El hilo se est ejecutando; en sistemas
multiprocesador pueden estar ejecutndose varios de forma simultnea.
3. Bloqueado.- El hilo no puede ejecutarse porque est esperando algo, por
ejemplo variables de condicin o una operacin de E/S para completarse.
4. Terminado.- El hilo termina cuando se llam a la funcin pthread_exit1 o fue
cancelado (Mondragn, 2012).

1.3.

EL MODELO CLSICO DE HILO

El modelo de procesos se basa en dos conceptos independientes:


agrupamiento de recursos y ejecucin. Algunas veces es til separarlos; aqu
es donde entran los hilos.

Una manera de ver a un proceso es como si fuera una forma de agrupar


recursos relacionados. Un proceso tiene un espacio de direcciones que
contiene texto y datos del programa, as como otros recursos. Estos pueden
incluir archivos abiertos, procesos hijos, alarmas pendientes, manejadores de
seales, informacin contable y mucho ms. Al reunirlos en forma de un
proceso, pueden administrarse con ms facilidad.
El otro concepto que tiene un proceso es un hilo de ejecucin, al que por lo
general slo se le llama hilo. El hilo tiene un contador de programa que lleva el
registro de cul instruccin se va a ejecutar a continuacin. Tiene registros que
contienen sus variables de trabajo actuales. Tiene una pila, que contiene el
historial de ejecucin, con un conjunto de valores para cada procedimiento al
que se haya llamado, pero del cual no se haya devuelto todava. Aunque un
hilo se debe ejecutar en cierto proceso, el hilo y su proceso son conceptos
distintos y pueden tratarse por separado (Tanenbaum, 2009).

1.4.

HILOS EN POSIX

POSIX es el acrnimo de Portable Operating System Interface; la X viene de


UNIX como sea de identidad de la API (Application Programming Interface,
interfaz de programacin de aplicaciones). Son una familia de estndares de
llamadas al sistema operativo definidos por el IEEE (Institute of Electrical and
Electronics Engineers, Instituto de Ingenieros Elctricos y Electrnicos) y
especificados formalmente en el IEEE 1003. Persiguen generalizar las
interfaces de los sistemas operativos para que una misma aplicacin pueda
ejecutarse en distintas plataformas (Snchez, 2012).
Para que sea posible escribir programas con hilos porttiles, el IEEE ha
definido un estndar para los hilos conocido como 1003. 1c. El paquete de hilos
que define se conoce como Pthreads con 60 funciones. Todos los hilos
Pthreads tienen ciertas propiedades. Cada uno tiene un identificador, un
conjunto de registros (incluyendo el contador de programa) y un conjunto de
atributos, que se almacenan en una estructura. Los atributos incluyen el
tamao de la pila, parmetros de planificacin y otros elementos necesarios
para utilizar el hilo (Tanenbaum, 2009).

1.5.

IMPLEMENTACIN DE HILOS EN EL ESPACIO DE


USUARIO

Hay dos formas principales de implementar un paquete de hilos: en espacio de


usuario y en el kernel. La eleccin es un poco controversial y tambin es
posible una implementacin hbrida. Cuando los hilos se administran en
espacio de usuario, cada proceso necesita su propia tabla de hilos privada para
llevar la cuenta de los hilos en ese proceso. En este nivel el kernel sabe nada
de los hilos (Tanenbaum, 2009).

1.6.

IMPLEMENTACIN DE HILOS EN EL KERNEL

En lo que al kernel concierne esta administrado proceso con un solo hilo. No


se necesita un sistema en tiempo de ejecucin para ninguna de las dos
acciones. Adems, no hay tabla de hilos en cada proceso. En vez de ello, el
kernel tiene una tabla de hilos que lleva la cuenta de todos los hilos en el
sistema. Cuando un hilo desea crear un nuevo hilo o destruir uno existente,
realiza una llamada al kernel, la cual se encarga de la creacin o destruccin
mediante una actualizacin en la tabla de hilos del kernel (Tanenbaum, 2009).

1.7.

IMPLEMENTACIONES HBRIDAS

Se han investigado varias formas de tratar de combinar las ventajas de los hilos
de nivel usuario con los hilos de nivel kernel. Una de esas formas es utilizar
hilos de nivel kernel y despus multiplexar los hilos de nivel usuario con alguno
o con todos los hilos de nivel kernel. Cuando se utiliza este mtodo, el
programador puede determinar cuntos hilos de kernel va a utilizar y cuntos
hilos de nivel usuario va a multiplexar en cada uno. Este modelo proporciona lo
ltimo en flexibilidad (Tanenbaum, 2009).

1.8.

ACTIVACIONES DEL PLANIFICADOR

Los objetivos del trabajo de una activacin del planificador son imitar la
funcionalidad de los hilos de kernel, pero con el mejor rendimiento y la mayor

flexibilidad que por lo general se asocian con los paquetes de hilos


implementados en espacio de usuario. La eficiencia se obtiene evitando
transiciones innecesarias entre los espacios de usuario y de kernel
(Tanenbaum, 2009).

1.9.

HILOS EMERGENTES

Los hilos se utilizan con frecuencia en los sistemas distribuidos. Un importante


ejemplo es la forma en que se manejan los mensajes entrantes (por ejemplo,
las peticiones de servicio). El mtodo tradicional es hacer que un proceso o
hilo, que est bloqueado en una llamada al sistema receive, espere un mensaje
entrante. Cuando llega un mensaje, lo acepta, lo desempaqueta, examina su
contenido y lo procesa. Sin embargo, tambin es posible utilizar un mtodo
completamente distinto, en el cual la llegada de un mensaje hace que el
sistema cree un nuevo hilo para manejar el mensaje. A dicho hilo se le conoce
como hilo emergente (Tanenbaum, 2009).

1.10.

CONVERSIN DE CDIGO DE HILADO SIMPLE A


MULTIHILADO

Muchos programas existentes se escribieron para procesos con un solo hilo. Es


mucho ms difcil convertir estos programas para que utilicen multihilamiento
de lo que podra parecer en un principio.
Para empezar, el cdigo de un hilo normalmente consiste de varios
procedimientos, al igual que un proceso. stos pueden tener variables locales,
variables globales y parmetros. Las variables y parmetros locales no
ocasionan problemas, pero las variables que son globales a un hilo, pero no
globales para todo el programa, son un problema (Tanenbaum, 2009).

CONCLUSIN
Con la investigacin realizada

se finaliza enfatizando en que un hilo es

simplemente un miniproceso que permite a una aplicacin realizar varias tareas


a la vez, comparten una serie de recursos tales como el espacio de memoria,
los archivos abiertos, entre otros. Esta tcnica permite simplificar el diseo de
una aplicacin que debe llevar a cabo distintas funciones simultneamente. La
comunicacin entre varios hilos se lleva a cabo a travs de recursos del
proceso usuario, no a travs de los recursos del kernel. Los hilos aumentan la
eficiencia de la comunicacin entre programas en ejecucin, es ms eficiente
hacerlo con una coleccin de hilos que con una coleccin de procesos
separados.

BIBLIOGRAFA

McHoes A, Flynn I. 2010. Sistemas operativos. 6 ed. CENGAGE

learning.

Mxico. P 24.
Mondragn A. 2012. Hilos POSIX. Diferencia entre hilos y procesos.
Universidad Nacional Autnoma de Mxico Facultad de Ingeniera
Laboratorio

INTEL

para

la

Academia.

4-6.

Disponible

en

http://lcomp89.fib.unam.mx/licad/assets/ProgramacionConMultitareas/PracticaHilosPOSIX
.pdf
Snchez J. 2012. Programacin POSIX. (En lnea).consultado el 15 de Nov, de
2016.
Formato
pdf.
Disponible
en
http://www.uco.es/~i02samoj/docencia/pas/practica-POSIX.pdf
Tanenbaum, A. 2009. Sistemas Operativos Modernos. 3 ed. Ed PearsonPrentice Hall. Mxico. P 95-114.

Potrebbero piacerti anche