ejecutor de comando
CASO DE PROGRAMACIÓN
Gestión de Procesos
1
PROCESOS (Visión abstracta)
¿Qué es un proceso? ⇒ P
Q é
?
Programa en ejecución
j
ió
¿Qué lo caracteriza?
⇒Contexto del proceso
Evoluciona
¿Número fijo de
procesos o variable?
P1
P2
P3
P4
P6
Gestión de Procesos
P5
P7
• Vector de estado
Registros (PC, SP, .....)
Memoria (Estática,Dinámica)
Archivos en uso
• Código
Fijo
• Identificador
¿Quién es P1?
El Padre de todos (primer proceso del
sistema). En sistemas tipo Unix, es el
proceso init
init.
2
PROCESOS (Visiónabstracta)
Dos relaciones típicas entre proceso Padre y proceso Hijo:
1.
1 Procesos independientes: La “shell” crea un proceso para ejecutar
shell
un programa de usuario “ls”
a. Debe cargarse elejecutable en
memoria
H
b. Dotarle de registros, pila, etc.
shell
ls
P
ls.exe
2. Procesos cooperantes: Un servidor Web crea un proceso para
atender una petición de un cliente
P
a. Elcódigo ya está en memoria
Parecido a
H
web
b
b. Dotarle de registros, pila, etc.
Threads
Gestión de Procesos
3
PROCESOS (Visión abstracta)
Además de crear procesos (independientes ocooperantes), parece
razonable que además se pueda:
•
•
•
•
Saber qué proceso soy
Esperar a que pase un tiempo concreto de segundos, milisegundos
E
ti
t d
d
ili
d
Terminar de ejecutarme¿Semántica?
Esperar a que uno de mis hijos termine
Padre
P d
Hijo
Padre espera a que termine el Hijo
El Hijo termina y el Nieto sigue vivo
El Padre ¿continuará o esperará a que
termine el Nieto?Nieto
Gestión de Procesos
4
PRIMITIVAS Y SU APROXIMACIÓN EN UNIX
CREAR
int
fork ( )
CARGAR
int
execl (char *programa, 0)
QUIEN_SOY
int
getpid ( )
DORMIRSE
voidsleep (int segundos)
SUCIDARSE
void
exit (int estado)
ESPERAR_SUICIDIO
int
wait (int *estado)
Gestión de Procesos
5
forkWait.c
CREAR UN PROGRAMA
Q
QUE GENERE LA...
Regístrate para leer el documento completo.