Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EXPERIENCIA EDUCATIVA:
SISTEMAS OPERATIVOS
TEMA:
THREADS O HILOS
ALUMNOS:
DOCENTE:
situacin de autentificacin
Listo
Bloqueado
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.
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
Pthread_exit
Pthread_join
Pthread_yield
Pthread_attr_init
Pthread_attr_destroy