Beruflich Dokumente
Kultur Dokumente
Procesos e hilos
2.2 HILOS
• En los sistemas operativos tradicionales, cada proceso tiene un
espacio de direcciones y un solo hilo de control. De hecho, ésa es casi
la definición de un proceso. Sin embargo, con frecuencia hay
situaciones en las que es conveniente tener varios hilos de control en
el mismo espacio de direcciones que se ejecuta en cuasi-paralelo,
como si fueran procesos (casi) separados (excepto por el espacio de
direcciones compartido). En las siguientes secciones hablaremos
sobre estas situaciones y sus implicaciones.
2.2.1 Uso de hilos
• Los hilos son un tipo de proceso dentro de otro proceso. Resulta ser que
hay varias razones de tener estos miniprocesos, conocidos como hilos:
• Lo que agregan los hilos al modelo de procesos es permitir que se lleven a cabo varias
ejecuciones en el mismo entorno del proceso, que son en gran parte independientes
unas de las otras. Tener varios procesos ejecutándose en paralelo en un proceso es algo
similar a tener varios procesos ejecutándose en paralelo en una computadora. En el
primer caso, los hilos comparten un espacio de direcciones y otros recursos; en el
segundo, los procesos comparten la memoria física, los discos, las impresoras y otros
recursos. Como los hilos tienen algunas de las propiedades de los procesos, algunas
veces se les llama procesos ligeros. El término multihilamiento también se utiliza para
describir la situación de permitir varios hilos en el mismo proceso. Algunas CPUs tienen
soporte directo en el hardware para el multihilamiento y permiten que las
conmutaciones de hilos ocurran en una escala de tiempo en nanosegundos.
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 también comparten las mismas
variables globales. Como cada hilo puede acceder a cada dirección de memoria dentro del espacio
de direcciones del proceso, un hilo puede leer, escribir o incluso borrar la pila de otro hilo
2.2.3 Hilos en POSIX
• Para que sea posible escribir programas con hilos portátiles, el IEEE ha definido un estándar para
los hilos conocido como 1003.1c. El paquete de hilos que define se conoce como Pthreads.
• 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 tamaño de la pila, parámetros de planificación y otros
elementos necesarios para utilizar el hilo.
2.2.4 Implementación de hilos en el espacio de usuario