Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cap2-Procesos - 1
Cap2-Procesos - 1
Procesos y Threads
2.1 Procesos
2.2 Threads
2.3 Comunicación entre procesos
2.4 Problemas IPC clásicos
2.5 Planificación
Un contador de programa
Procesos
C
C B
A B C D
D A
Tiempo
(a) (b) (c)
a. Multiprogramación de 4 programas
b. Modelo conceptual de 4 procesos secuenciales independientes
c. Solo un proceso activo en cada instante
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 están disponibles.
4
fork()
• Posibles estados de un procesos
– Ejecutándose
– Bloqueado
– Preparado
Espacio
de
Usuario
Thread Thread
Espacio
del Kernel Kernel
Kernel
Proceso de Servidor
Web
Thread
Dispatcher
Thread trabajador
Espacio
de
Usuario Caché de la
página web
Espacio
del Kernel
Kernel
Conexión de red
(a) (b)
• Dispatcher (a)
¿Cómo sin threads?
• Worker (b)
Proceso Thread
Espacio
de
Usuario
Espacio
del Kernel
Kernel
Ventajas:
- El bloqueo de un thread no bloquea todos los threads del
proceso que lo contiene.
Desventajas:
- La creación/destrucción de threads es más cara en el kernel que
en espacio de usuario (reciclar threads).
- El cambio de contexto de threads también es más caro
Espacio
de
Usuario
Espacio
del Kernel
Kernel
pthread_create
pthread_join Tabla de Tabla de procesos
pthread_exit threads
pthread_self Run-time system
pthread_yield
Ventajas:
- Se puede tener threads en sistemas operativos que no los
soportan.
- El switching es mucho más rápido que si hay que comunicarlo
al kernel.
- Cada proceso puede tener su propio algoritmo de planificación
threads.
Desventajas:
- ¿Cómo se implementan las llamadas al sistema bloqueantes?
- Un thread provoca una falta de página: bloquea al proceso
- los threads tienden a monopolizar la CPU
PERO:
• pueden perderse interrupciones
• se impide que otros procesos ajenos puedan continuar
• no vale si hay más de una CPU
• Es peligroso darle al usuario la facultad de inhibir
interrupciones
Package Semaforos is
type SEMAFOROS is private;
end Semaforos;
process Reportero;
repeat
Bajar (S);
Imprimir (Contador);
Contador := 0;
Subir (S);
forever;
end Reportero;
D.I.A. Sistemas Operativos I @ (ITIS)
24
Comunicación entre procesos (8)
Semáforos
Proceso P1 Proceso P2
… …
send (P2, &mensaje1) receive (P1, &destino1)
… …
receive (ANY, &destino2) send (P1, &mensaje2)
Proc. Proc.
1 2
Obs.
1 Buzón_1
Enviar (Buzón_1, Mensaje)
Recibir (Buzón_1, Mensaje);
Obs. Rep.
2 Buzón_2
1
Enviar (Buzón_1, Mensaje)
Recibir (Buzón_2, Mensaje);
Enviar (Buzón_2, Mensaje)
Obs. Rep.
3 2
Enviar (Buzón_2, Mensaje) Recibir (Buzón_2, Mensaje);
• Capacidad Ilimitada
El emisor nunca se bloquea en el envío de mensajes
• Capacidad Nula (rendez-vous) Síncrono
El emisor queda bloqueado hasta que el receptor está
listo para recibir el mensaje.
Tiempo
Planificar cuando: proceso creado, muerto o bloqueado, int. reloj o fin de E/S
D.I.A. Sistemas Operativos I @ (ITIS)
32
Planificación de procesos (2)
Criterios:
• Justicia (Fairness)
– A trabajos parecidos, asignación 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)
– Número de trabajos completados por unidad de tiempo (batch)
Balanceos:
• 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 monopolización de la CPU
– Round-Robin, prioridades, múltiples colas, SPN (envejecimiento)
• Sistemas de tiempo real
– Monotónico en frecuencia
– Deadline más próximo el siguiente
Contraejemplo
C(1)
A(2) D(1)
B(4) E(1)
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
CPU
Planificador
CPU
Nuevo
trabajo
Cola de entrada
Memoria
Principal Disco
Planificador
de admisión Planificador
Memoria
D.I.A. Sistemas Operativos I @ (ITIS)
40
Planificación 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 más prioritario
• Posible inanición de los procesos menos prioritarios.
Solución:
– Decrementar la prioridad del proceso ejecutándose cada tick
– Round-robin entre procesos de la misma prioridad
• Asignación de prioridades: estática o dinámica
– Estática: por pago, por clases de usuarios
– Dinámica:
• 1/f, /* f = fracción consumida del último quantum */
• Clases de prioridad
D.I.A. Sistemas Operativos I @ (ITIS)
42
Planificación de procesos (12)
Sistemas Interactivos
Prioridad 3
Prioridad 2
Prioridad 1
(Mínima prioridad)
Múltiples colas
2. El run-time
system 1 2 3
selecciona un
thread
1 3 2
Espacio
de
Usuario
Espacio
del 1. El Kernel selecciona un thread
Kernel
Posible: A1, A2, A3, A1, A2, A3
También posible: A1, B1, A2, B2, A3, B3