Sie sind auf Seite 1von 35

PROCESOS E HILOS

PROCESOS
Todas las computadoras modernas ofrecen varias cosas
al mismo tiempo.
Consideremos una PC de usuario. Cuando se arranca el
sistema se inician muchos procesos en forma secreta,
lo que a menudo el usuario desconoce. Por ejemplo, se
podra iniciar un proceso para esperar el correo
electrnico entrante; otro que permite al antivirus
comprobar peridicamente la disponibilidad de nuevas
definiciones de virus; algunos procesos de usuario
explcitos, por ejemplo, imprimir archivos y quemar un
CD-ROM, y todo esto mientras el usuario navega por la
Web. Toda esta actividad se tiene que administrar, y en
este caso un sistema de multiprogramacin con soporte
para mltiples procesos es muy til.

PROCESOS
El software ejecutable en la computadora, incluye al
sistema operativo, se organiza en varios procesos
secuenciales. Un proceso no es ms que una
instancia de un programa en ejecucin, incluyendo
los valores actuales del contador de programa, los
registros y las variables.
La CPU real conmuta de un proceso a otro, pero
para entender el sistema es mucho ms fcil pensar en
una coleccin de procesos que se ejecutan en (pseudo)
paralelo, en vez de tratar de llevar la cuenta de cmo la
CPU conmuta de programa en programa. Esta
conmutacin rpida de un proceso a otro se
conoce como multiprogramacin.

PROCESOS
EL MODELO DE PROCESO
Un contador de programa

C
D

Procesos

A
B

Cuatro contadores de programa


Cambio de
proceso

D
C
B
A
Tiempo

(a)

a.
b.
c.

(b)

(c)

Multiprogramacin de 4 programas
Modelo conceptual de 4 procesos secuenciales independientes
Solo un proceso activo en cada instante

PROGRAMA Y PROCESO
La idea clave es que un proceso es una actividad de cierto
tipo: tiene un programa, una entrada, una salida y un
estado.
Varios procesos pueden compartir un solo procesador
mediante el uso de un algoritmo de planificacin para
determinar cundo se debe detener el trabajo en un
proceso para dar servicio a otro.

PROCESOS
CREACIN/TERMINACIN DE PROCESOS
Principales eventos
que causan la
creacin de
procesos
1.
2.
3.
4.

Inicializacin del sistema


Ejecucin de la llamada
al sistema para crear
procesos.
El usuario solicita un
nuevo proceso
(comando)
Inicio de un trabajo por
lotes

Condiciones que
terminan un proceso
1. Normal exit
(voluntario)
2. Error exit (voluntario)
3. Fatal error
(involuntario)
4. Asesinado por otro
proceso (involuntario,
seal) o suicidado
(voluntario, seal)

CREACIN DE UN PROCESO
Hay cuatro eventos principales que provocan la
creacin de procesos:
1. El arranque del sistema.
2. La ejecucin, desde un proceso, de una
llamada al sistema para creacin de procesos.
3. Una peticin de usuario para crear un proceso.
4. El inicio de un trabajo por lotes.

TERMINACION DE UN PROCESO

Cuando termina un proceso:


1. Salida normal (voluntaria).
2. Salida por error (voluntaria).
3. Error fatal (involuntaria).
4. Eliminado por otro proceso (involuntaria).

ESTADOS DE LOS PROCESOS


1. En ejecucin (en realidad est usando la CPU
en ese instante).
2. Listo (ejecutable; se detuvo temporalmente
para dejar que se ejecute otro proceso).
3. Bloqueado (no puede ejecutarse sino hasta que
ocurra cierto evento externo).

PROCESOS
ESTADOS DE PROCESOS

planificador

exit
Ejecutando
1

2
3

Bloqueado

Listo

1. El proceso se bloquea esperando datos de


entrada.
2. El planificador selecciona otro proceso.
3. El planificador selecciona este proceso.
4. Los datos de entrada estn disponibles.

fork()
Posibles estados de un procesos
Ejecutndose
Bloqueado
Listo o Preparado

PROCESOS
IMPLEMENTAR EL MODELO DE PROCESOS
Gestin de procesos
Registros
Contador de programa
Palabra de estado del programa
Puntero de pila
Estado del proceso
Prioridad
Parmetros de planificacin
Identificador de proceso
Proceso padre
Grupo del proceso
Seales
Tiempo de inicio del programa
Tiempo de CPU consumido
Tiempo de CPU de los hijos
Hora para la siguiente alarma

Gestin de Memoria
Puntero al segmento
de cdigo
Puntero al segmento
de datos
Puntero al segmento
de pila

Gestin de Archivos
Directorio raz
Directorio de trabajo
Descripciones de
archivos
Identificador de usuario
Identificador de grupo

Campos en una entrada a la tabla de procesos o PCB

INTERRUPCIONES
Vector de interrupciones, Con cada clase de E/S hay una
ubicacin asociada (parte final de la memoria), a la cual se le
llama vector de interrupcin. Esta ubicacin contiene la
direccin del procedimiento del servicio de
interrupciones.
Una interrupcin es una suspensin temporal de la
ejecucin de unproceso, para pasar a ejecutar una
subrutina de servicio de interrupcin, la cual, por lo
general, no forma parte del programa, sino que pertenece
alsistema
operativo.
Una
vez
finalizada
dicha
subrutina, se reanuda la ejecucin del programa. Las
interrupciones surgen de la necesidad que tienen
losdispositivos perifricosdesean enviar informacin
al procesador principal de un sistema informtico.

PROCESOS
IMPLEMENTACIN DE PROCESOS
1. El hardware coloca el contador de programa en la pila.
2. El hardware carga el nuevo contador de programa desde el vector de
interrupcin.
3. Un procedimiento en ensamblador guarda los registros.
4. Un procedimiento en ensamblador establece una nueva pila.
5. Se ejecuta un servicio de interrupcin en C (normalmente lee y guarda en
un buffer la entrada).
6. El planificador elige qu proceso se va a ejecutar a continuacin.
7. Un procedimiento en C regresa al cdigo en ensamblador.
8. El procedimiento en ensamblador inicia el nuevo proceso actual.
Esqueleto de lo que hace el SO cuando llega una
interrupcin.
Cuando el proceso termina el SSOO muestra un carcter
indicador y espera un nuevo comando.
Cuando recibe el comando carga un nuevo programa en
memoria sobrescribiendo el anterior.

PROCESAMIENTO DE UNA INTERRUPCIN


Terminar la ejecucin de lainstruccin mquinaen curso.
Salvar el estado del procesador (valores de registros y flags)
y el valor delcontador de programa, IP, en la pila, de manera
que en la CPU, al terminar el proceso de interrupcin, pueda
seguir ejecutando el programa a partir de la ltima instruccin.
La CPU salta a la direccin donde est almacenada la
rutina de servicio de interrupcin (Interrupt Service
Routine, o abreviado ISR) y ejecuta esa rutina que tiene como
objetivo atender al dispositivo que gener la interrupcin.
Una vez que la rutina de la interrupcin termina, el
procesador restaura el estado que haba guardado en la pila
en el paso 2 y retorna al programa que se estaba usando
anteriormente.

PROCESAMIENTO DE UNA INTERRUPCIN

HILOS
Por qu alguien querra tener un tipo de proceso dentro
de otro proceso? Resulta ser que hay varias razones de tener
estos miniprocesos, conocidos como hilos.
El primer hilo
interacta slo con el
usuario, el segundo
vuelve a dar formato
al documento cuando
se le indica y el
tercero escribe el
contenido de la RAM
al disco en forma
peridica.

Procesador
de palabras
con tres hilos

CONCEPTO DE MUTIHILO

MODELO DE PROCESO
CON UN NICO HILO Y MUTIHILO

IMPLEMENTACIN DE HILOS
Dos categoras
Hilos a nivel de usuario
Hilos a nivel de ncleo o Kernel

THREADS
IMPLEMENTACIN DE THREADS EN ESPACIO DE KERNEL
Proceso

Thread

Espacio
de
Usuario

Espacio
del
Kernel

Kernel
Tabla de procesos

Tabla de threads

THREADS
IMPLEMENTACIN DE THREADS EN ESPACIO DE KERNEL

Ventajas:
- El bloqueo de un thread no bloquea todos los threads del
proceso que lo contiene.
Desventajas:
- La creacin/destruccin de threads es ms cara en el kernel que
en espacio de usuario.
- El cambio de contexto de threads tambin es ms caro

THREADS
IMPLEMENTACIN DE THREADS EN ESPACIO DE USUARIO
Proceso

Thread

Espacio
de
Usuario

Espacio
del
Kernel

Kernel

Tabla de threads

Tabla de procesos

THREADS
IMPLEMENTACIN DE THREADS EN ESPACIO DE USUARIO

Ventajas:
- Se puede tener threads en sistemas operativos que no los
soportan.
- El cambio de contexto es mucho ms rpido que si hay que
comunicarlo al kernel.
- Cada proceso puede tener su propio algoritmo de planificacin
threads.
Desventajas:
- Un thread provoca una falta de pgina: bloquea al proceso
- los threads tienden a monopolizar la CPU

HILOS DE NIVEL USUARIO Y NUCLEO

ESTADOS DE LOS HILOS

En ejecucin
Listo
Bloqueado
Finalizado
Las operaciones relacionadas al cambio de estado
de los hilos son:

Creacin
Bloqueo
Desbloqueo
Finalizacin
W. STALLINGS

ESTADOS DE UN HILO EN WINDOWS

W. STALLINGS

ESTADOS DE LOS HILOS A NIVEL DE


USUARIO EN SOLARIS

W. STALLINGS

ESTADOS DE PROCESOS E HILOS EN


LINUX

W. STALLINGS

ALGORITMOS PARA PLANIFICAR LOS


PROCESOS
FIFO, Primero en llegar primero en ser atendido.
(FCFS), First Come First Serve.
Cada proceso se ejecuta en orden de llegada.
Los procesos cortos pueden esperar mucho tiempo.

SJF, el primero en ejecutarse es aquel mas corto,


aquel que requiere menos tiempo de uso del CPU.
Por prioridad, se ejecuta el proceso que tiene
mayor prioridad, se toma al menor valor como
aquel proceso que tiene mayor prioridad.
ROUND ROBIN, por turnos, se establece un
quantum, periodo de uso del CPU predeterminado.

VARIABLES
Tiempo de respuesta (T); tiempo total que
toma el trabajo, incluye el tiempo que paso
inactivo, tambin se le conoce como tiempo de
retorno.
Tiempo de Espera (E); de T, cuanto tiempo esta
esperando ejecutar

EJEMPLO FIFO

EJERCICIO
PROCESO

TIEMPO
REQUERIDO

TIEMPO DE
LLEGADA

SOLUCION

Das könnte Ihnen auch gefallen