Documente Academic
Documente Profesional
Documente Cultură
Tema 3
Procesos
Equipo de Sistemas Operativos DISCA / DSIC
UPV
Tema 3: Procesos
?
Introduccin
Existen varias razones para permitir la ejecucin concurrente de procesos:
Modularidad
Comodidad
Tema 3: Procesos
Tema 3: Procesos
?
ndice
Bibliografa
?
A. Silberschatz, P. Galvin.
Sistemas Operativos. 5 ed.
?Tema 4
W. Stallings.
Sistemas Operativos 2 ed.
?Tema 3.
Tema 3: Procesos
Tema 3: Procesos
?
ndice
Tema 3: Procesos
Concepto de proceso:
Existen diferentes visiones complementarias del concepto de proceso:
?
Programa en ejecucin.
Tema 3: Procesos
Tema 3: Procesos
Ejemplos:
?Procesos de usuario: Un proceso de edicin de un sistema de tiempo
compartido. Un trabajo en un sistema por lotes. La compilacin de un
programa fuente en Pascal: el programa que ejecuta el proceso es el
propio compilador.
?Procesos del sistema: swapper (que decide qu procesos hay que
extraer de la memoria o introducir en ella cuando la cantidad de
memoria libre no llega o supera ciertos lmites), pagedeamon (es el
encargado de utilizar reemplazo para liberar marcos y pasarlos a la
reserva).
Tema 3: Procesos
secuencialmente
un nico
Tema 3: Procesos
Tema 3: Procesos
Memoria
P1
Tabla de
descriptores
ficheros
Otros
atributos
Tema 3: Procesos
10
Estados de un proceso
Tema 3: Procesos
11
Estados de un proceso:
Proceso terminado
por otro proceso
ACTIVO
Admitido
Terminacin
Elegido Planificador
TERMINADO
NUEVO
PREPARADO
Expulsin
EN
EJECUCIN
Esperar E/S
o evento
Fin E/S
o
llegada evento
SUSPENDIDO
Tema 3: Procesos
Proceso terminado
por otro proceso
12
Creacin: Supone asignar todos los recursos que el proceso necesita para
su ejecucin, como p.e. memoria.
Tema 3: Procesos
13
Tema 3: Procesos
14
ESTADOS
(usuario)
Empieza
inicial
fork()
ACTIVOS
Fin de
Interrupcin o
interrup. o
llamada al sistema
llamada al sist.
Acaba
exit()
zombie
En ejec.
fork()
Cambios
de
contexto
(ncleo)
Espera evento
preparado
Ocurre evento
SIGCONT
wait()
suspendido
SIGSTOP
parado
Tema 3: Procesos
15
Tema 3: Procesos
?
ndice
1.- Concepto de proceso.
Tema 3: Procesos
16
Multiplexar la CPU entre los procesos: repartir el tiempo de la CPU entre los
diferentes procesos para simular la ejecucin paralela (concurrencia virtual).
Bloque de control del sistema: es una estructura de datos que el sistema utiliza
para controlar la ejecucin de los procesos. Almacena informacin de todos los
procesos.
Tema 3: Procesos
17
Tema 3: Procesos
18
Puntero de Pila: Cada proceso tiene una o ms pilas LIFO asociadas, para almacenar
parmetros y direcciones de retorno de procedimientos y de las llamadas al sistema.
El puntero de pila siempre apunta a la cima de la pila.
Tema 3: Procesos
19
Prioridad de un proceso
Suceso (evento): identidad del suceso que el proceso est esperando antes de
poder reanudarse (solicitudes de E/S pendientes).
Tema 3: Procesos
20
Tema 3: Procesos
21
P1
PCB #2
contexto
contexto
P2
(1)
PCB #n
contexto
Pn
(3)
(2)
P1 --> P2
(4)
1 procesador
fsico
contexto
CPU
PC
SP
P2 --> P1
registros
Tema 3: Procesos
22
Cambio de contexto.
Los cambios de contexto no son trabajo til e implican una sobrecarga
importante si se hacen con frecuencia: reducen la utilizacin.
Utilizacin de CPU
P1
P2
P3
P1
Cambios de contexto
Utilizacin de CPU =
Tema 3: Procesos
23
Tema 3: Procesos
24
Proceso
nuevo
Para
Para implementar
implementar procesos
procesos es
es conveniente
conveniente pensar
pensar en
en un
un
sistema
como
una
coleccin
de
recursos
y
colas
que
sistema como una coleccin de recursos y colas que
representan
representanlos
losprocesos
procesosque
queesperan
esperanpara
parautilizar
utilizarelelrecurso.
recurso.
Proceso
terminado
Cola de procesos
esperando ejecucin
Cola de procesos
preparados
?
?
Los
LosPCBs
PCBsse
sealmacenan
almacenan
en
colas,
cada
en colas, cada una
una de
de
las
cuales
representa
un
las cuales representa un
estado
estado particular
particular de
de los
los
procesos.
procesos.
Expulsin
Cola de procesos
esperando E/S
E/S
Recursos
Colas
CPU
Suceso
Cola de procesos
esperando suceso
Tema 3: Procesos
25
Los datos que el sistema utiliza para controlar la ejecucin de los procesos, se
pueden considerar reunidos en una estructura que se suele conocer con el
nombre de Bloque de Control del Sistema (SCB).
Tema 3: Procesos
26
ESTRUCTURAS DE
CONTROL DEL SISTEMA
Identificador
PCB 3
Contexto
Proceso en
ejecucin
Estado: PREP
Estado: EJEC
Evento: --
Evento: --
Cola de procesos
preparados
...
Cola de procesos
nuevos
PCB 6
P. siguiente
Mapa de
memoria
...
P. Siguiente -
Cola de procesos
esperando evento i
Estado: SUSP
Vectores de
interrupcin
PCB 1
Evento: i
PCB 4
...
PCB 2
P. siguiente
Tabla de procesos
Sistemas Operativos I (00-01)
Tema 3: Procesos
27
Tema 3: Procesos
?
ndice
1.- Concepto de proceso.
2.- Implementacin de procesos.
Tema 3: Procesos
28
Un proceso UNIX
videojuego puede tener
un hilo de ejecucin para
cada uno de los elementos
mviles de la pantalla.
Tema 3: Procesos
29
Estas dos caractersticas son la esencia del proceso, pero pueden ser tratadas
de manera independiente por el s.o.
Tema 3: Procesos
30
P1
Hilos de ejecucin
Tema 3: Procesos
31
Compartir memoria
?
Tema 3: Procesos
32
Hilos a nivel de usuario (user-level threads): los hilos se crean a nivel del
proceso de usuario va un conjunto de procedimientos de biblioteca o va el soporte
de ejecucin del lenguaje de programacin.
?
El sistema operativo slo crea un hilo de ejecucin en el ncleo por cada espacio
de direcciones (proceso).
Los cambios de contexto entre los hilos a nivel de usuario son rpidos, ya que no
involucran llamadas al sistema.
Tema 3: Procesos
33
Un programa,
muchos hilos
Soporte en
ejecucin del
lenguaje
Soporte en
ejecucin del
lenguaje
Ncleo del SO
= Espacio de direcciones
= construccin
lingstica o hilo
a nivel usuario
Tema 3: Procesos
34
Implementacin
ejecucin
Hilos
a
nivel
del
ncleo
(kernel-level threads):
Un programa,
muchos hilos
Un programa,
muchos hilos
Soporte en
ejecucin del
lenguaje
Soporte en
ejecucin del
lenguaje
de
hilos
de
Tema 3: Procesos
Ncleo del SO
= Espacio de direcciones
= construccin
lingstica o hilo
a nivel usuario
= proceso o hilo del SO
35
Implementacin de hilos
de ejecucin
Aproximacin hbrida:
?
u1
u2
k1
Ncleo del SO
= Espacio de direcciones
Proporciona flexibilidad y
el mximo rendimiento
potencial al programador
de aplicaciones.
= construccin
lingstica o hilo
a nivel usuario
= proceso o hilo del SO
Tema 3: Procesos
36
Tema 3: Procesos
37
Llamada
Descripcin
pthread_exit (status)
pthread_join (thread_id)
pthread_t pthread_self()
Tema 3: Procesos
38
}}
Tema 3: Procesos
39
Tema 3: Procesos
task
tasktype
typeNio;
Nio;
task
taskbody
bodyNio
Nio
isis
Sueo:
Sueo:Boolean;
Boolean;
Edad:
Edad: Natural;
Natural;
begin
begin
loop
loop
Dormir;
Dormir;
loop
loop
Comer;
Comer;
Jugar_O_Incordiar;
Jugar_O_Incordiar;
exit
exitwhen
whenSueo
Sueo
end
endloop;
loop;
exit
exitwhen
whenEdad
Edad>>...
...
end
endloop;
loop;
end
Nio;
end Nio;
Victor,Santiago,Gabriela:
Victor,Santiago,Gabriela:Nio;
Nio;
40
Tema 3: Procesos
Inician
Inician
Guarderia
Guarderiayy
los
lostres
tresnios
nios
Guarderia
Guarderia
espera
esperala
la
terminacin
terminacin
de
delos
lostres
tres
nios
nios
41
Tema 3: Procesos
?
ndice
1.- Concepto de proceso.
2.- Implementacin de procesos.
3.- Hilos de ejecucin (threads).
Tema 3: Procesos
42
Tema 3: Procesos
43
P2
PLANIFICADOR:
-- Tratamiento
escoger
nuevo proceso
Interrup. o
llamada al sist
Ejecucin
2
Interrup. o
llamada al
sistema
PLANIFICADOR:
-- Tratamiento
escoger nuevo proceso
P3
4
Ejecucin
Sistema operativo
Sistemas Operativos I (00-01)
Tema 3: Procesos
44
Planificador
Elemento del sistema operativo que determina a qu proceso se le asigna un
determinado recurso (p. e. CPU) en cada instante de tiempo, de acuerdo con
alguna poltica.
Tema 3: Procesos
45
Proceso
nuevo
Planificador a
corto plazo
Cola de procesos
esperando ejecucin
Cola de procesos
preparados
Planificador a
medio plazo
Recursos
Expulsin
Planificador a
medio plazo
Cola de procesos
esperando E/S
Colas
Suceso
Sistemas Operativos I (00-01)
CPU
Cola de procesos
intercambiados
a disco
E/S
Proceso
terminado
Tema 3: Procesos
Cola de procesos
esperando suceso
46
Tema 3: Procesos
47
Tema 3: Procesos
48
Tema 3: Procesos
49
E/S
CPU
E/S
CPU
E/S
CPU
E/S
CPU
Tema 3: Procesos
50
Tema 3: Procesos
?
ndice
1.- Concepto de proceso.
2.- Implementacin de procesos.
3.- Hilos de ejecucin (threads).
4.- Conceptos de planificacin.
Tema 3: Procesos
51
Criterios de planificacin
Algunos de los criterios y caractersticas que un planificador debe conseguir son:
?
Utilizacin: Los recursos se han de mantener tan ocupados como sea posible.
?Tiempo_recurso_ocupado / Tiempo_total
?
?Nmero_de_trabajos_terminados / Tiempo_total
?
Tema 3: Procesos
52
Tiempo de espera:
?Tiempo que un proceso est en la cola de procesos preparados.
Tiempo de respuesta:
?Tiempo que transcurre desde que se presenta una solicitud hasta que
el sistema comienza a contestar (en procesos interactivos).
Equidad:
?Garantizar que cada proceso obtiene la proporcin justa de CPU. Es
decir, que los procesos sean tratados de manera igualitaria. Lo
opuesto a equidad sera inanicin.
Tema 3: Procesos
53
Tema 3: Procesos
54
Proceso P0
CPU
E/S
Utilizacin
UtilizacinCPU
CPU==6/10
6/10==60
60
Productividad
=
2
trabajos/10
Productividad = 2 trabajos/10==0.2
0.2
Tiempo
Tiempode
deretorno
retorno==(5+10)/2
(5+10)/2==7.5
7.5
SIN MULTIPROGRAMACIN
Proceso P1
CPU
E/S
CPU
CPU
E/S
CPU
E/S
CPU
CON MULTIPROGRAMACIN
Se intercalan rfagas de CPU con rfagas de E/S
Proceso P0
CPU
E/S
CPU
E/S
CPU
Utilizacin
UtilizacinCPU
CPU==100%
100%
Productividad
Productividad==22trabajos
trabajos/6/6==0.33
0.33
Tiempo
Tiempode
deretorno
retorno==(5
(5++6)/2
6)/2==5.5
5.5
Este
representa
un
caso
extremo.
Este representa un caso extremo.
En
Enelelcaso
casode
deTCPU
TCPU<<
<<TTE/S
E/Slala
utilizacin
utilizacinde
delalaCPU
CPUsera
sera<<100%
100%
Proceso P1
CPU
E/S
CPU
E/S
CPU
Tema 3: Procesos
55
Gran nmero de
rfagas de CPU de
corta duracin
Pequeo nmero
de rfagas de CPU
de larga duracin.
160
140
120
100
80
60
40
20
8
16
24
32
Tema 3: Procesos
56
Tema 3: Procesos
57
Tema 3: Procesos
?
ndice
1.- Concepto de proceso.
2.- Implementacin de procesos.
3.- Hilos de ejecucin (threads).
4.- Conceptos de planificacin.
5.- Criterios de planificacin.
Tema 3: Procesos
58
Objetivo
Decidir a cul de los procesos que estn en la cola de procesos listos se le
asignar la CPU.
Por prioridades
?Sin expulsin (Non preemptive) / Con expulsin (Preemptive)
?Estticos / Dinmicos
Tema 3: Procesos
59
Proceso
P1
P2
P3
T. llegada
0
0
0
T. CPU
24
3
3
T. de espera medio:
(0 + 24 + 27) / 3 = 17
P1
24
T. de espera medio:
(6 + 0 + 3) / 3 = 3
P2
P2
0
P3
3
P3
27
30
P1
6
Tema 3: Procesos
30
60
Propiedades
?
Sin expulsin: Cuando un proceso tiene asignada la CPU, la conserva hasta que
desee liberarla, bien sea porque finaliza o por solicitud de una E/S.
Ventajas
?
Fcil de implementar
Inconvenientes
?
Efecto convoy: Los trabajos largos retrasan a los cortos (por ejemplo: piense en un
sistema con un nico trabajo con largas rfagas de CPU y muchos trabajos con
rfagas cortas de CPU).
No es adecuado para sistemas interactivos: Por ser sin expulsin un trabajo con
una rfaga de CPU larga puede provocar una espera larga a otros usuarios.
Tema 3: Procesos
61
Tema 3: Procesos
62
Instante de llegada
0
2
4
5
Duracin
7
4
1
4
12
16
Tema 3: Procesos
63
Variante con expulsin del SJF ( SRTF: Shortest Remaining Time First )
Prioridad al que le resta menos tiempo (para finalizar).
?
Tema 3: Procesos
64
Procesos
P1
P2
P3
P4
Diagrama de Gantt
P1
0
P2
2
P3
4
P2
5
T. Llegada
0
2
4
5
P4
7
Duracin
7
4
1
4
P1
11
16
Tema 3: Procesos
65
Inconvenientes
?
Tema 3: Procesos
66
Planificacin SJF/SRTF
Aunque no se conoce la longitud de la siguiente rfaga se puede predecir su valor
esperando que sea de longitud similar a las anteriores.
? : coeficiente exponencial 0 ? ?? ?? ?
Caso ? ?= 1, los datos histricos son irrelevantes y slo tiene importancia la rfaga ms
reciente de CPU. T n+1 = tn
Caso ? = 0, la historia reciente no tienen efecto, se supone que las condiciones actuales
son transitorias. T n+1 = Tn
Es habitual que ? = 1/2, por lo que la historia reciente y antigua se ponderan de igual
manera.
Tema 3: Procesos
67
Planificacin SJF/SRTF
n+1
n+1
por tn llegamos a:
10
longitud de rfaga
Ejemplo de promedio
exponencial para
? = 1/2, y T0= 10
12
8
6
4
2
tiempo
Rfaga de CPU:
Prediccin:
Sistemas Operativos I (00-01)
6
10
Tema 3: Procesos
4
8
6
6
4
6
13
5
13
9
13
11
68
Ejemplo:
?SJF es un caso particular de prioridades en el que la prioridad es 1/T.
Tema 3: Procesos
69
Ejemplo:
Planificacin prioridades
Procesos
T. Llegada
Duracin
Prioridad
P1
P2
10
P3
15
P4
10
Diagrama de Gantt
P2
P1
0
P3
4
P2
5
P4
7
P1
11
16
Tema 3: Procesos
70
Prioridades estticas/dinmicas.
Tema 3: Procesos
71
Problema de inanicin
Un algoritmo de prioridades es inherentemente poco equitativo. El problema extremo
es:
?
Solucin:
?
Tema 3: Procesos
72
Tema 3: Procesos
73
Ejemplo:
Planificacin circular
Procesos
P1
P2
P3
Quantum q=4
T. Llegada
0
0
0
Duracin
16
3
11
Diagrama de Gantt
P2
P1
0
P3
7
P1
11
P3
15
P1
19
P3
23
P1
26
30
Tema 3: Procesos
74
Planificacin circular
Tema 3: Procesos
75
Planificacin circular
Propiedades:
?
Equitativo.
Tema 3: Procesos
76
Tema 3: Procesos
77
Ejemplo de algoritmo de
planificacin entre colas:
?
Procesos
Sistema
Usuarios
privilegiados
PRIO (prio. 8)
Procesos
Interactivos
RR
(prio. 6)
Procesos
Por Lotes
SJF
(prio. 4)
Tema 3: Procesos
78
Tema 3: Procesos
79
Ejemplo
RR [q=16] (prio. 8)
FCFS
(prio. 6)
Tema 3: Procesos
80
Nmero de colas.
Tema 3: Procesos
81
Los procesos que se ejecutan a nivel de usuario tienen prioridades por encima del
valor base (base = 60 en UNIX SVR2).
Los procesos que se ejecutan en el ncleo (debido a que han efectuado una
llamada al sistema) tienen una prioridad cuyo valor se encuentra comprendido
entre 0 y valor base-1.
Tema 3: Procesos
82
Tema 3: Procesos
83
Tema 3: Procesos
84
.
.
.
63 Prioridad de usuario 3
62 Prioridad de usuario 2
Procesos esperando
en modo usuario
61 Prioridad de usuario 1
60 Prioridad de usuario 0
59 Esperando finalizacin hijo
58 Espera E/S por terminal
57 Esperando buffer de disco
56 Esperando E/S de disco
Prioridad
ms alta
Sistemas Operativos I (00-01)
Procesos esperando
en modo kernel
.
.
.
Tema 3: Procesos
85
Planificacin en UNIX
Tiempo
Proceso A
Prioridad t. CPU
60
75
0
1
.
60
30
Proceso B
Prioridad t. CPU
Proceso C
Prioridad t. CPU
60
A, B, C se crean simult.
Los procesos no hacen
llamadas al sistema
60
60
Prioridad
inicial
Prioridad base = 60
El reloj interrumpe al
sistema 60 veces/seg.
67
15
75
63
67
15
75
76
7
8
.
67
33
0
1
.
60
30
63
7
8
.
67
33
67
15
68
16
SUPUESTOS:
60
0
1
.
60
30
76
60
t.CPU= t.CPU/2
prioridad= (t.CPU/2) + 60
63
Tema 3: Procesos
86
?
?
?
?
Algoritmo
Algoritmo biblioteca
biblioteca threads
?
?
I/O
t10
cuanto = 2
P1
Turno
Turno de
de llegada
llegada (FCFS)
(FCFS)
t11
t12
0
P2
t20
0
Tema 3: Procesos
5
87
P1
t20
t10
t11
t12
P2
P1
t20
P2
t10
t11
t12
P1
Ncleo
t20
P2
tn1
tn2
tn3
Ncleo
_
tn4
Threads a nivel
de ncleo
tn1
tn2
Threads de usuario
Ncleo
_
tn1 tn3
tn2
Threads hbridos
Sistemas Operativos I (00-01)
Tema 3: Procesos
88
t11
t12
t20
t10 t11
t20
Usuario
0
11
Ncleo
tn1
tn2
tn3
tn4
tn1
tn2
tn4
t10
I/O
t10
P1
t11
t20
t12
P1
P2
t11
t12
P2
0
Ncleo
t20
Tema 3: Procesos
tn1
tn2
tn4
tn3
89
t20
t11
t20
Usuario
0
10
11
Ncleo
tn1
tn2
tn1
tn2
tn1
t10
t11
t12
I/O
t10
tn2
P1
P1
tn1
t20
P2
t11
t12
P2
0
Ncleo
t20
Tema 3: Procesos
tn1
tn2
90
t20
t11
t12 t10
t20
t11 t20
Usuario
0
10
11
Ncleo
tn1
tn3
tn1
tn2
tn3
t10
t11
t12
I/O
t10
P1
tn2
P1
tn2
t20
P2
t11
t12
P2
0
Ncleo
t20
Tema 3: Procesos
tn1 tn3
tn2
91
Tema 3: Procesos
?
ndice
1.- Concepto de proceso.
2.- Implementacin de procesos.
3.- Hilos de ejecucin (threads).
4.- Conceptos de planificacin.
5.- Criterios de planificacin.
6.- Algoritmos de planificacin.
Tema 3: Procesos
92
Tema 3: Procesos
93
n=? *E
Tema 3: Procesos
94
Tema 3: Procesos
?
ndice
1.- Concepto de proceso.
2.- Implementacin de procesos.
3.- Hilos de ejecucin (threads).
4.- Conceptos de planificacin.
5.- Criterios de planificacin.
6.- Algoritmos de planificacin.
7.- Evaluacin de Algoritmos.
Tema 3: Procesos
95
El S.O. puede verse como un programa que atiende y sirve los eventos
producidos por los procesos y los dispositivos.
Tema 3: Procesos
96
Activacin
del proceso
IPC
Llamada
Atencin de
llamadas
Fin de E/S
IPC,
espera E/S
Fin de espera
temporal
Suspensin
del proceso
Proceso actual
Atencin de
interrupciones
Interrupcin
HW
Fin de quantum
Fallo de pgina
Excepcin
Atencin de
excepciones
Terminacin
Instr. ilegal,
div. por cero
Planificacin
Terminacin
del proceso
Tema 3: Procesos
97
Interrupcin de
perifrico
Excepcin del
Procesador
Llamada al
Sistema
Activacin del
Sistema Operativo
Guardar parte del contexto de usuario, para realizar cambio de modo de ejecucin (usuario->ncleo)
Anotar el
avance del
tiempo
Si tiempo lmite
excedido:
Proceso en
ejecucin
a preparado
Pasar a preparado
al proceso
que esperaba el
fin de la E/S
Finalizar el
proceso en
ejecucin
Pasar a
suspendido al
proceso en
ejecucin
Crear hijo.
Hijo a
preparado
Resolver la
llamada al
sistema
Planificador:
Seleccin del prximo proceso.
Realizar cambio de contexto
Realizar cambio de modo de ejecucin (ncleo -> usuario). Recuperar contexto de usuario.
Tema 3: Procesos
98