Está en la página 1de 14

UNIVERSIDAD VERACRUZANA

EXPERIENCIA EDUCATIVA:
SISTEMAS OPERATIVOS

TEMA:

THREADS O HILOS

ALUMNOS:

SONIA FRANCISCO ATZIN


ERICK EDUARDO VALENCIA GMEZ

DOCENTE:

CRISTIAN ARMENDARIZ CARRERA

Qu son los threads o hilos?


Un hilo de ejecucin en un sistema operativo es la
caracterstica que permite a una aplicacin realizar varias
tareas a la vez concurrentemente.
Comparten una serie de recursos tales como:
espacio de memoria

los archivos abiertos

situacin de autentificacin

Esta accin permite simplificar el diseo de una aplicacin que


debe llevar a cabo distintas funciones simultneamente.

Qu son los threads o hilos?


Los hilos son bsicamente una tarea que puede ser ejecutada en
paralelo con otra tarea; teniendo en cuenta lo que es propio de
cada hilo es:
El contador de programa
La pila de ejecucin
El estado de la CPU
(incluyendo el valor de los registros).

En muchos de los sistemas operativos que


dan facilidades a los hilos, es ms rpido
cambiar de un hilo a otro dentro del
mismo proceso, que cambiar de un proceso
a otro. Este fenmeno se debe a que los
hilos comparten datos y espacios de
direcciones, mientras que los procesos, al
ser independientes, no lo hacen.

Qu son los threads o hilos?


Los hilos presentan estados, los principales de ellos son:
Ejecucin

Listo

Bloqueado

* No tiene sentido asociar estados de suspensin de hilos ya que es


un concepto de proceso. En todo caso, si un proceso est expulsado
de la memoria principal (RAM), todos sus hilos debern estarlo ya
que todos comparten el espacio de direcciones del proceso.

Qu son los threads o hilos?


Un hilo tendr lo siguiente:
Estado.
Contexto del procesador. Punto en el que estamos ejecutando, la instruccin
concretamente en la que nos hallamos. Es til a la hora de reanudar un hilo
que fue interrumpido con anterioridad, puesto que al guardar el contexto,
guardamos la ultima instruccin que ejecutamos, y as podemos conocer por
donde tenemos que continuar la ejecucin del hilo.
Pila de ejecucin donde se ir metiendo y sacando instrucciones. (Lugar
donde almacenaremos las instrucciones que van a ser ejecutadas).
Espacio de almacenamiento esttico donde almacenar las variables.
Acceso a los recursos de la tarea, que son compartidos por todos los hilos de
la tarea.

Implementaciones
Hilos a nivel de usuario (UTL)
En una aplicacin ULT pura, todo el trabajo de gestin de hilos lo realiza la
aplicacin y el ncleo o kernel no es consciente de la existencia de hilos.
Es posible programar una aplicacin como multihilo mediante una
biblioteca de hilos. La misma contiene el cdigo para:
Crear y destruir hilos.
Intercambiar mensajes y datos entre hilos.
Planificar la ejecucin de hilos.
Salvar y restaurar el contexto de los hilos.

Todas
las
operaciones
descritas se llevan a cabo
en el espacio de usuario de
un mismo proceso.
El
kernel
continua
planificando el proceso
como
una
unidad
y
asignndole
un
nico
estado.

Implementaciones
Ventajas de los ULT
El intercambio de los hilos no necesita los privilegios del modo kernel, porque
todas las estructuras de datos estn en el espacio de direcciones de usuario
de un mismo proceso. Por lo tanto, el proceso no debe cambiar a modo kernel
para gestionar hilos. Se evita la sobrecarga de cambio de modo y con esto el
sobrecoste u overhead.
Se puede realizar una planificacin especfica. Dependiendo de que aplicacin
sea, se puede decidir por una u otra planificacin segn sus ventajas.
Los ULT pueden ejecutar en cualquier sistema operativo. La biblioteca de
hilos es un conjunto compartido.

Implementaciones
Desventajas de los ULT
En la mayora de los sistemas operativos las llamadas al sistema (System calls)
son bloqueantes. Cuando un hilo realiza una llamada al sistema, se bloquea el
mismo y tambin el resto de los hilos del proceso.
En una estrategia ULT pura, una aplicacin multihilo no puede aprovechar las
ventajas de los multiprocesadores. El ncleo asigna un solo proceso a un solo
procesador, ya que como el ncleo no interviene, ve al conjunto de hilos
como un solo proceso.
Una solucin al bloqueo mediante a llamadas al sistema es usando la tcnica
dejacketing, que es convertir una llamada bloqueante en no bloqueante.

Implementaciones
Hilos a nivel de Kernel
En una aplicacin KLT pura, todo el trabajo de gestin de hilos lo realiza el
kernel.
En el rea de la aplicacin no hay cdigo de gestin de hilos, nicamente un
API(interfaz de programas de aplicacin) para la gestin de hilos en el ncleo.
Windows 2000,Linuxy OS/2utilizan este mtodo. Linux utiliza un mtodo muy
particular en que no hace diferencia entre procesos e hilos, para Linux si varios
proceso creados con la llamada al sistema "clone" comparten el mismo espacio
de direcciones virtuales el sistema operativo los trata como hilos y lgicamente
son manejados por el kernel.

1ra razn de tener hilos


Muchas aplicaciones se desarrollan varias actividades a la vez.
Algunas de sas se pueden bloquear de vez en cuando.
Al descomponer una aplicacin en varios hilos secuenciales que
se ejecutan en cuasi-paralelo, el modelo de programacin se
simplifica.

2da razn de tener hilos

Son ms ligeros que los procesos.


Son mas fciles de crear (es decir, rpidos) y destruir.
En muchos sistemas, la creacin de un hilo es de 10 a 100 veces ms rpida
que la de un proceso.

3ra razn de tener hilos


No producen un aumento en el rendimiento cuando todos ellos
estn ligados a la CPU, pero cuando hay una cantidad
considerable de clculos y operaciones de E/S, al tener hilos
estas actividades se pueden traslapar, con lo cual se agiliza la
velocidad de la aplicacin.
Son tiles en los sistemas con varias CPUs, en donde es posible
el verdadero paralelismo.

MULTIHILAMIENTO
Se utiliza para describir la situacin de permitir varios hilos en el
mismo proceso.
Los distintos hilos en un proceso no son tan independientes como
los procesos.
Todos los hilos tienen el mismo espacio de direcciones, lo cual
significa que tambin comparten las mismas variables globales.
Como cada hilo puede acceder a cada direccin de memoria dentro
del espacio de direcciones del proceso, un hilo puede leer, escribir
o incluso borrar la pila de otro hilo.

MULTIHILAMIENTO
El IEEE ha definido un estndar para los hilos conocido como 1003.1c.
El paquete de hilos que define se conoce como Pthreads. La mayora de
los sistemas UNIX aceptan este paquete. El estndar define ms de 60
llamadas a funciones.
Algunas de las llamadas a funciones de Pthreads.
Llamada de hilo

Descripcin

Pthread_create

Crea un nuevo hilo

Pthread_exit

Termina el hilo llamador

Pthread_join

Espera a que un hilo especfico termine

Pthread_yield

Libera la CPU para dejar que otro hilo se ejecute

Pthread_attr_init

Crea e inicializa la estructura de atributos de un hilo

Pthread_attr_destroy

Elimina la estructura de atributos de un hilo

También podría gustarte