Você está na página 1de 28

1 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr.

Juan Jos Aranda Aboy


Sistemas Operativos I
Unidad 2:
Procesos e Hilos (Threads)
2 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Contenidos
Conceptos de proceso. Estados de un proceso. Modelo de cinco
estados de procesos.
Control de procesos. Modos de ejecucin. Creacin de
procesos.
Administracin de procesos en Unix/Linux.
Procesos e hilos.
Creacin y ejecucin de procesos. Propuesta de proyecto anual.
Control 1.
Comunicacin entre procesos:
Concurrencia.
Exclusin mutua.
Semforos.
Mensajes.
Taller 2: Comunicacin entre procesos. Control 2.
Clase de recapitulacin.
Clase de recapitulacin.
Prueba de Ctedra 1.
3 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Introduccin
En las clases anteriores, se ha presentado el
concepto de proceso incluyendo las dos
caractersticas siguientes:
Unidad de propiedad de los recursos: A cada proceso se le
asigna un espacio de direcciones virtuales para albergar a
la imagen del proceso.
Al proceso se le puede asignar memoria virtual y otros
recursos, tales como canales de E/S, dispositivos de E/S y
archivos.
Unidad de expedicin: Un proceso es un camino de
ejecucin (traza) a travs de uno o ms programas.
Esta ejecucin puede ser intercalada con la de otros
procesos.
De este modo, un proceso tiene un estado de ejecucin
(Listo, Bloqueado, etc.) y una prioridad de expedicin.
La unidad planificada y expedida por el sistema operativo
es el proceso.
4 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Procesos e hilos
En la mayora de los sistemas operativos, estas dos
caractersticas son, de hecho, la esencia de un
proceso.
Sin embargo, algunos argumentos pueden
convencer de que estas dos caractersticas son
independientes y que deben ser tratadas de manera
independiente por el sistema operativo.
Esto se hace as en una serie de sistemas
operativos, en particular en algunos sistemas
operativos de desarrollo reciente.
Para distinguir estas dos caractersticas, la unidad
de expedicin se conoce como hilo (thread) o
proceso ligero (lightweight process), mientras que a
la unidad de propiedad de los recursos se le suele
llamar proceso o tarea.
5 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Procesos con uno y con
mltiples hilos
6 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Caractersticas de los hilos
En una tarea pueden haber uno o ms hilos, cada
uno con:
Estado de ejecucin del hilo: Ejecucin, Listo, etc.
Contexto del procesador, que se salva cuando no
est ejecutando; una forma de contemplar al hilo
es con un contador de programa independiente
operando dentro de una tarea.
Pila de ejecucin.
Almacenamiento esttico para las variables locales.
Acceso a la memoria y a los recursos de la tarea,
que se comparten con todos los otros hilos de la
tarea.
7 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Mltiples hilos en un nico
procesador
8 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Beneficios de los hilos
Se tarda mucho menos tiempo en crear un nuevo hilo en
un proceso existente que en crear una nueva tarea,
Menos tiempo para terminar un hilo y
Menos tiempo para cambiar entre dos hilos de un mismo
proceso.
Dado que los hilos dentro de un mismo proceso
comparten memoria y archivos, pueden comunicarse
unos con otros sin necesidad de acceder al ncleo.

Por tanto, si hay una aplicacin o una funcin que pueda
implementarse como un conjunto de unidades de
ejecucin relacionadas, es ms eficiente hacerlo con una
coleccin de hilos que con una coleccin de tareas
separadas.
9 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Ejemplos de uso
Un servidor de archivos de una red de rea local: Cada vez que
llega una solicitud de un nuevo archivo, se genera un nuevo hilo
para el programa de gestin de archivos. Puesto que el servidor
debe manejar muchas solicitudes, se crearn y destruirn
muchos hilos en un corto periodo de tiempo. Si el servidor es un
multiprocesador, se pueden ejecutar varios hilos de una misma
tarea simultneamente y en diferentes procesadores. Los hilos
son tambin tiles en los monoprocesadores para simplificar la
estructura de los programas que lleven a cabo diversas
funciones.
Otro ejemplo de uso efectivo de los hilos est en las
aplicaciones de proceso de comunicaciones y en los
supervisores de transacciones.
Otra forma en la que los hilos aportan eficiencia es en la
comunicacin entre diferentes programas en ejecucin. En la
mayora de los sistemas operativos, la comunicacin entre
procesos independientes requiere la intervencin del ncleo
para ofrecer proteccin y para proporcionar los mecanismos
necesarios para la comunicacin. Sin embargo, puesto que los
hilos de una misma tarea comparten memoria y archivos,
pueden comunicarse entre si sin invocar al ncleo.
10 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Ejemplos de uso de los hilos en un
sistema de multitarea
Trabajo interactivo y de fondo: Esto se produce en el sentido de la
interaccin directa con el usuario, no en el de sesiones interactivas y de
fondo. Por ejemplo, en un programa de hoja de clculo, un hilo puede
estar visualizando los mens y leyendo la entrada del usuario mientras
que otro hilo ejecuta las rdenes y actualiza la hoja de clculo. Esta
medida suele aumentar la velocidad que se percibe de la aplicacin,
permitiendo que el programa pida la orden siguiente antes de terminar
la anterior.
Proceso asncrono: Los elementos asncronos del programa se
pueden implementar como hilos. Por ejemplo, para protegerse de un
corte de alimentacin, se puede disear un procesador de textos que
escriba su buffer de la RAM al disco una vez por minuto. Se puede crear
un hilo cuya nica tarea sea hacer estas copias de respaldo peridicas y
que se planifique directamente con el sistema operativo; no hay
necesidad de ningn cdigo superfluo en el programa principal que
haga la comprobacin de tiempo o que coordine la entrada y la salida.
Aceleracin de la ejecucin: Un proceso con mltiples hilos puede
computar un lote de datos mientras lee el lote siguiente de un
dispositivo. En un sistema con multiproceso, varios hilos de un mismo
proceso podrn ejecutarse realmente a la vez.
Organizacin de los programas: Los programas que suponen una
variedad de actividades o varios orgenes y destinos de entrada y salida
pueden hacerse ms fciles de disear e implementar mediante hilos.
11 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Servidor Web con mltiples hilos
(a) Hilo despachador
(Dispatcher thread)
(b) Hilo trabajador
(Worker thread)
12 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Estados de los hilos
La suspensin de los procesos engloba suspender
todos los hilos de dicho proceso, dado que todos
estos hilos comparten el mismo espacio de
direcciones.
Al terminar el proceso, terminan todos los hilos
incluidos en l.
Los estados asociados con un cambio en el estado
del hilo son:
Carga y ejecucin (Spawn)
Se carga y ejecuta otro hilo.
Bloqueado (Block)
Desbloqueado (Unblock)
Finzalizado (Finish)
Se devuelve el contexto de registros y pilas.
13 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Relacin entre Hilos y
Procesos
14 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Modelos de hilos
a) Tres procesos, cada uno con un hilo.
b) Un proceso con tres hilos.
15 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Elementos compartidos por todos los hilos de un
proceso:
Espacio de direcciones
Variables globales
Archivos abiertos
Procesos hijos
Alarmas pendientes
Seales y manipuladores de seales
Informacin de contabilidad
Elementos privados para cada hilo:
Contador de programa
Registros
Pila
Estado
Modelos (2)
16 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Hilos a nivel usuario
Todo el manejo de los hilos lo realiza la aplicacin.
El ncleo no tiene conciencia de la existencia de los hilos.
Ejemplos: Norma POSIX. IEEE 1003.1c, comn en sistemas
UNIX, establece una interfaz del programador de aplicacin
(API) para creacin y sincronizacin de hilos.
17 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Relacin entre hilos a nivel usuario
y estados de los procesos
18 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Hilos a nivel del ncleo
El ncleo mantiene la informacin de
contexto sobre los procesos y los hilos
La planificacin se realiza en base a hilos.
Ejemplos: Windows, BeOS, Linux.
19 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Enfoques combinados hbridos
La creacin de hilos se realiza en el espacio del
usuario.
El grueso de la planificacin y sincronizacin de los
hilos reside dentro de la aplicacin.
Solaris es ejemplo de este enfoque.
20 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Activaciones del planificador
Objetivo: Imitar la funcionalidad de los hilos del
ncleo.
Gana desempeo de los hilos en el espacio del
usuario.
Evita transiciones innecesarias entre el usuario y el
ncleo.
El ncleo asigna procesadores virtuales a cada
proceso, lo que permite al sistema asignar hilos a
procesadores durante el tiempo de ejecucin.
Problema: Confianza esencial en el ncleo (capa
inferior) llamando a procedimientos en el espacio
de usuario (capa superior)
21 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Hilos como respuesta (pop-up)
Creacin del nuevo hilo cuando se recibe un
mensaje:
(a) antes de recibir el mensaje.
(b) despus de recibido el mensaje.
22 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Conversin de cdigo con nico hilo en cdigo
con mltiples hilos
Pueden generarse conflictos entre los hilos al
utilizar alguna variable global.
23 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Variables privadas del hilo
Los hilos pueden tener sus variables globales
privadas.
24 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Llamada a procedimientos remotos
(Remote Procedure Call RPC)
Ejemplo de RPC con un hilo
Ejemplo de RPC con mltiples hilos
25 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Fuentes de informacin
Tanenbaum A., Sistemas Operativos
Modernos, Prentice Hall, 1994
Tanenbaum A., Sistemas Operativos:
diseo e implementacin Prentice-Hall,
1998
Tanenbaum A., Sistemas Operativos
Distribuidos, Prentice Hall, 2003
Carretero, J. Garca, F. Prez, F. Sistemas
Operativos: Una visin aplicada Mc Graw
Hill. 2001.
Stallings W., Sistemas Operativos, 5ta.
Edicin. Prentice-Hall. 2004
26 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Textos en biblioteca de la sede
Documento No. Ao Ttulo Autor
11486 2001 Sistemas operativos. Stallings, William.
9137 2003 Sistemas operativos modernos. Tanenbaum, Andrew S.
8443 1998 Sistemas operativos: Diseo e
implementacin.
Tanenbaum, Andrew S.
6980 1998 Sistemas operativos: Diseo e
implementacin.
Tanenbaum, Andrew S.

4684 1996 Sistemas operativos distribuidos. Tanenbaum, Andrew S.
3137 1993 Sistemas operativos modernos. Tanenbaum, Andrew S.
27 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Referencias en Internet
David Luis la Red Martnez SISTEMAS
OPERATIVOS
Domingo Mery Sistemas Operativos
Jorge Alfonso Briones Garca Sistemas
Operativos Distribuidos (material adicional)
Sistemas operativos (SIMULACIONES Y
ANIMACIONES)

28 2007 Universidad de Las Amricas - Escuela de Ingeniera - Sistemas Operativos I - Dr. Juan Jos Aranda Aboy
Textos en Internet (ingls)
Andrew S. Tanenbaum Modern Operating
Systems
Andrew S. Tanenbaum Distributed
Systems: Principles and Paradigms
George Coulouris, Jean Dollimore and Tim
Kindberg Distributed Systems: Concepts
and Design, 3ra edicin (4ta edicin 2005)
Avi Silberschatz, Peter Baer Galvin & Greg
Gagne Operating System Concepts
Minix 3 Operating System

Você também pode gostar