Professional Documents
Culture Documents
SISTEMAS OPERATIVOS
Prof. VICTOR VIERA BALANTA
HILOS
Los hilos son importantes en los sistemas operativos modernos. En los actuales sistemas
operativos se trabajan mltiples hilos, generalmente un hilo es un programa en ejecucin
que utiliza el ambiente de un proceso ( D.M. Dhamdhere,2008), en la definicin de
Andrew Tanenbawn.
comparten los datos, los recursos y el cdigo entre ellos. Ver figura 1.
Figura 1. Hilos y procesos
Ejemplo: crear tres hilos (A,B,C) para que cada uno cuente hasta 100, se debe
mostrar la ejecucin de cada hilo.
Para realizar el ejercicio se debe programar el mtodo run() , en este ejemplo se cada
hilo se duerme por espacio de dos segundos, esto se logra con la instruccin
Sleep(2000). Ver figura 3.
Figura 3. Programa con hilos para mostrar 100 nmeros
La creacin de los hilos se hace con la instruccin new, el hilo se inicia con la
instruccin start()
Figura 3. Creacin de los hilos
EJERCICIOS
Digite el cdigo del mostrado en el presente documento y conteste las
siguientes preguntas.
1. Corra el programa 5 veces y mencione cual hilo se ejecuta primero en cada
corrida?
2. Puede cambiar el orden de ejecucin de los hilos?
3. Realice un programa, con hilos, donde tiene 3 corredores
(corredor1,corredor2 y corredor3). La carrera es muy especial, cada
corredor debe avanzar 100 pasos en cada paso el corredor1 descansa 4
segundos, el corredor2 descansa 6 segundos y el corredor3 descansa 8
segundos. Cree un programa que muestre el avance de cada corredor y su
descanso respectivo. Ver figura 5.
Figura 5. Salida del programa para los corredores
segundos******1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
minutos*****************2
segundos******1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************3
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************4
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************5
minutos*****************0
horas********************************** 1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
minutos*****************1
segundos******1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
minutos*****************2
segundos******1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
minutos*****************3
segundos******1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************4
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
minutos*****************5
minutos*****************0
segundos******1
horas****************************************** 2
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************2
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************3
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************4
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
minutos*****************5
minutos*****************0
segundos******1
horas**************************************** 3
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************2
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************3
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
minutos*****************4
segundos******1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************5
minutos*****************0
segundos******2
horas****************** 4
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************2
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
segundos******1
minutos*****************3
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
minutos*****************4
segundos******1
segundos******2
segundos******3
segundos******4
segundos******5
segundos******0
minutos*****************5
minutos*****************0
segundos******1
horas****************** 5