Académique Documents
Professionnel Documents
Culture Documents
2.1 Procesos
2.2 Threads
2.3 Planificacin de Procesos
2.4 Comunicacin entre procesos
1
Procesos (1)
El Modelo de Proceso
Un contador de programa
Procesos
C
C B
A B C D
D A
Tiempo
(a) (b) (c)
a. Multiprogramacin de 4 programas
b. Modelo conceptual de 4 procesos secuenciales independientes
c. Solo un proceso activo en cada instante
2
Procesos (2)
Creacin/Terminacin de procesos
3
Procesos (3)
Grupos de procesos
4
Procesos (4)
Grupos de procesos
5
Procesos (5)
Estados de procesos
exit planificador
Ejecutando 1. El proceso se bloquea esperando datos de
entrada.
1 2 2. El planificador selecciona otro proceso.
3 3. El planificador selecciona este proceso.
Bloqueado Preparado 4. Los datos de entrada estn disponibles.
4
fork()
6
Procesos (6)
Implementacin de procesos
Gestin de procesos Gestin de Memoria Gestin de Ficheros
Registros Directorio raz
Contador de programa Puntero al segmento
de cdigo Directorio de trabajo
Palabra de estado del programa Descriptores de ficheros
Puntero de pila Puntero al segmento
UID
Estado del proceso de datos
Prioridad GID
Puntero al segmento
Parmetros de planificacin
Identificar de proceso de pila
Proceso padre
Grupo del proceso
Seales
Tiempo de inicio del programa
Tiempo de CPU consumido
Tiempo de CPU de los hijos
Tiempo para la siguiente alarma
7
Procesos (7)
Implementacin de procesos
8
Threads (1)
El modelo de thread
Espacio
de
Usuario
Thread Thread
Espacio
del Kernel Kernel
Kernel
9
Threads (2)
El modelo de thread
Operaciones sobre threads
- Crear un thread
int pthread_create (pthread_t *identThread, const pthread_att_t *atributos,
void *(*funcion, void*), void *argumento)
pthread_create (&tA, NULL, escribir, &a)
siendo:
pthread_t tA;
void *escribir (void *letra) {}
10
Threads (3)
El modelo de thread
11
Threads (4)
Uso de threads
Proceso de Servidor
Web
Thread
Dispatcher
Thread trabajador
Espacio
de
Usuario Cach de la
pgina web
Espacio
del Kernel
Kernel
Conexin de red
12
Threads (5)
Uso de threads
Dispatcher (a)
Cmo sin threads?
Worker (b)
13
Threads (6)
Implementacin de threads en espacio de kernel
Proceso Thread
Espacio
de
Usuario
Espacio
del Kernel
Kernel
14
Threads (7)
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 (reciclar threads).
- El cambio de contexto de threads tambin es ms caro
15
Threads (8)
Implementacin de threads en espacio de usuario
Proceso Thread
Espacio
de
Usuario
Espacio
del Kernel
Kernel
pthread_create
pthread_join Tabla de threads Tabla de procesos
pthread_exit
pthread_self Run-time system
pthread_yield
16
Threads (9)
Implementacin de threads en espacio de usuario
Ventajas:
- Se puede tener threads en sistemas operativos que no los
soportan.
- El switching es mucho ms rpido que si hay que comunicarlo
al kernel.
- Cada proceso puede tener su propio algoritmo de planificacin
threads.
Desventajas:
- Cmo se implementan las llamadas al sistema bloqueantes?
- Un thread provoca una falta de pgina: bloquea al proceso
- los threads tienden a monopolizar la CPU
17
Planificacin de procesos (1)
Tiempo
Planificar cuando: proceso creado, muerto o bloqueado, int. reloj o fin de E/S
18
Planificacin de procesos (2)
Criterios:
Justicia (Fairness)
A trabajos parecidos, asignacin parecida de CPU (todos)
Eficiencia
% de CPU (y dispositivos de E/S) ocupada (todos)
Tiempo de retorno (turnaround)
Tiempo medio desde que entra un trabajo hasta que sale (batch)
Tiempo de respuesta (response time)
Tiempo entre que se da un comando y se obtiene la respuesta (interactive)
Tiempo de espera
Tiempo que pasa en la cola de preparados
Rendimiento (throughput)
Nmero de trabajos completados por unidad de tiempo (batch)
19
Planificacin de procesos (3)
Balanceos:
20
Planificacin de procesos (4)
Sistemas Batch
No expulsores o expulsores con un quantum grande
Reducen cambios de contexto y mejoran el rendimiento
FCFS, SJF, SRTN, por niveles
Sistemas interactivos
Expulsores: evita la monopolizacin de la CPU
Round-Robin, prioridades, mltiples colas, SPN (envejecimiento)
Sistemas de tiempo real
Monotnico en frecuencia
Deadline ms prximo el siguiente
21
Planificacin de procesos (5)
Sistemas Batch
22
Planificacin de procesos (6)
Sistemas Batch
C(1)
A(2) D(1)
B(4) E(1)
0 1 2 3 4 5 6 7
24
Planificacin de procesos (8)
Sistemas Batch
0 1 2 3 4 5 6 7
25
Planificacin de procesos (9)
Sistemas Batch
CPU
Planificador
CPU
Nuevo
trabajo
Cola de entrada
Memoria Disco
Principal
Planificador
de admisin Planificador
Memoria
26
Planificacin de procesos (10)
Sistemas Interactivos
Round-Robin Robo de ciclo
Todos los procesos tienen la misma importancia.
A cada proceso se le asigna un quantum (rodaja) de
tiempo.
B F D G A F D G A B
Por prioridades
Interactivo (expulsor?)
Cada proceso tiene asignada una prioridad
Seleccionar el proceso ms prioritario
Posible inanicin de los procesos menos prioritarios.
Solucin:
Decrementar la prioridad del proceso ejecutndose cada tick
Round-robin entre procesos de la misma prioridad
Asignacin de prioridades: esttica o dinmica
Esttica: por pago, por clases de usuarios
Dinmica:
1/f, /* f = fraccin consumida del ltimo quantum */
Clases de prioridad
28
Planificacin de procesos (12)
Sistemas Interactivos
Prioridad 3
Prioridad 2
Prioridad 1
(Mnima prioridad)
29
Planificacin de procesos (13)
Sistemas Interactivos
Mltiples colas
30
Planificacin de procesos (14)
Sistemas Interactivos
31
Planificacin de procesos (15)
Planificacin de threads
Orden en que se Proceso A Proceso B
ejecutan los threads
2. El run-time
system 1 2 3
selecciona un
thread
32
Planificacin de procesos (16)
Planificacin de threads
Proceso A Proceso B
1 3 2
Espacio
de
Usuario
Espacio
del 1. El Kernel selecciona un thread
Kernel
Posible: A1, A2, A3, A1, A2, A3
Tambin posible: A1, B1, A2, B2, A3, B3
Posible planificacin de threads en espacio de kernel
Quantum por proceso de 50-msec
Cada threads ejecuta 5 msec/CPU burst
33
Comunicacin entre procesos (1)
34
Comunicacin entre procesos (2)
Exclusin mutua con espera activa
PERO:
pueden perderse interrupciones
se impide que otros procesos ajenos puedan continuar
no vale si hay ms de una CPU
Es peligroso darle al usuario la facultad de inhibir
interrupciones
35
Comunicacin entre procesos (3)
Exclusin mutua con espera activa
36
Comunicacin entre procesos (4)
Exclusin mutua con espera activa
37
Comunicacin entre procesos (5)
Exclusin mutua con espera activa
38
Comunicacin entre procesos (6)
Semforos
Package Semaforos is
type SEMAFOROS is private;
end Semaforos;
39
Comunicacin entre procesos (7)
Semforos
Program Cuenta_Eventos;
Contador : INTEGER; begin
S : SEMAFOROS; Inicializar (S, 1);
Observador;
process Observador; Reportero;
repeat end Cuenta_Eventos;
Esperar_Evento;
Bajar (S);
Contador := Contador + 1;
Subir (S);
forever;
end Observador;
process Reportero;
repeat
Bajar (S);
Imprimir (Contador);
Contador := 0;
Subir (S);
forever;
end Reportero;
40
Comunicacin entre procesos (8)
Semforos
41
Comunicacin entre procesos (9)
Semforos
procedure Bajar (S : SEMAFOROS) is
begin
if S.Contador < 1 then
Encolar (Este_Proceso, S.Cola);
Suspender; -- Implica llamada al Planificador
else
S.Contador := S.Contador - 1;
endif;
end Bajar;
42
Comunicacin entre procesos (10)
Paso de mensajes
Comunicacin
entre Procesos
43
Comunicacin entre procesos (11)
Paso de mensajes
Proceso P1 Proceso P2
send (P2, &mensaje1) receive (P1, &destino1)
receive (ANY, &destino2) send (P1, &mensaje2)
44
Comunicacin entre procesos (12)
Paso de mensajes
Proc. Proc.
1 2
45
Comunicacin entre procesos (13)
Paso de mensajes
Modelos comunicacin. Comunicacin indirecta
Los Buzones Son Compartidos
Los mensajes se envan y reciben a/de buzones, no a procesos.
Obs.
1 Buzn_1
Enviar (Buzn_1, Mensaje) Recibir (Buzn_1, Mensaje);
Obs. Rep.
2 Buzn_2
1
Enviar (Buzn_1, Mensaje) Recibir (Buzn_2, Mensaje);
Enviar (Buzn_2, Mensaje)
Obs. Rep.
3 2
Enviar (Buzn_2, Mensaje) Recibir (Buzn_2, Mensaje);
46
Comunicacin entre procesos (14)
Paso de mensajes
Tamao del buzn
Capacidad Limitada (n mensajes)
Si hay espacio El emisor contina la ejecucin
despus del envo
Capacidad Ilimitada
El emisor nunca se bloquea en el envo de mensajes
Capacidad Nula (rendez-vous) Sncrono
El emisor queda bloqueado hasta que el receptor est
listo para recibir el mensaje.
47