Professional Documents
Culture Documents
Tema 3
Procesos
UPV
Tema 3: Procesos
? Introducción
? Modularidad
? Comodidad
? Objetivos del tema:
? Profundizar en el concepto de proceso
? Índice
? Programa en ejecución.
? Ejemplos:
P1
Tiempo
de CPU
Memoria Tabla de
descriptores
ficheros
Otros
atributos
ACTIVO
Terminación
Admitido
Elegido Planificador
NUEVO TERMINADO
EN
PREPARADO EJECUCIÓN
Expulsión
En ejec.
ESTADOS
(usuario)
ACTIVOS
Fin de Interrupción o
Empieza inicial
interrup. o llamada al sistema wait()
fork()
llamada al sist. exit() zombie
Acaba En ejec.
fork() (núcleo)
Cambios Espera evento
de
contexto
preparado
suspendido
Ocurre evento
SIGCONT SIGSTOP
parado
? Índice
1.- Concepto de proceso.
? Multiplexar la CPU entre los procesos: repartir el tiempo de la CPU entre los
diferentes procesos para simular la ejecución paralela (concurrencia virtual).
? Bloque de control del sistema: es una estructura de datos que el sistema utiliza
para controlar la ejecución de los procesos. Almacena información de todos los
procesos.
? Prioridad de un proceso
P1 contexto
contexto P2 contexto Pn contexto
(3) (2)
(1)
(4) P1 --> P2
PC P2 --> P1
1 procesador SP
CPU
físico
registros
? Utilización de CPU
t
P1 P2 P3 P1
Cambios de contexto
?
?
Para
Para implementar
implementar procesos
procesos es
es conveniente
conveniente pensar
pensar en en un
un
sistema como una colección de recursos y
sistema como una colección de recursos y colas que colas que
representan
representanlos
losprocesos
procesosque
queesperan
esperanpara
parautilizar
utilizarelelrecurso.
recurso.
Proceso
nuevo
Cola de procesos Proceso
esperando ejecución terminado
Cola de procesos
preparados
CPU
?
?
Los
LosPCBs
PCBssesealmacenan
almacenan
en
en colas, cada una
colas, cada una dede
las cuales representa un Expulsión
las cuales representa un
estado
estado particular
particular de
de los
los
procesos.
procesos.
Cola de procesos
E/S esperando E/S
Recursos …
Colas Cola de procesos
Suceso esperando suceso
?
esperando evento i
Estado: SUSP
Vectores de Evento: i
interrupción ... PCB 4 PCB 2
P. siguiente
Tabla de procesos
? Índice
1.- Concepto de proceso.
2.- Implementación de procesos.
Ejemplo:
? Un proceso UNIX
“videojuego” puede tener
un hilo de ejecución para
cada uno de los elementos
móviles de la pantalla.
P1 P2
Hilos de ejecución
? Hilos a nivel de usuario (user-level threads): los hilos se crean a nivel del
proceso de usuario vía un conjunto de procedimientos de biblioteca o vía el soporte
de ejecución del lenguaje de programación.
? El sistema operativo sólo crea un hilo de ejecución en el núcleo por cada espacio
de direcciones (proceso).
? El resto de los hilos son implementados por el run-time del lenguaje.
? Es la aproximación utilizada en sistemas operativos que no soportan hilos.
? Los cambios de contexto entre los hilos a nivel de usuario son rápidos, ya que no
involucran llamadas al sistema.
? La política de planificación de estos hilos no está restringida a la propia del
sistema operativo.
? Cuando este tipo de hilos invocan llamadas al sistema bloqueantes, normalmente
se bloquea todo el proceso.
? No pueden explotar un sistema multiprocesador, ya que el sistema operativo ve un
único proceso.
Un programa, Un programa,
muchos hilos muchos hilos
Soporte en Soporte en
ejecución del ejecución del
lenguaje lenguaje
Núcleo del SO
? Aproximación híbrida: u1 u2
Llamada Descripción
pthread_create(thread_id, attr, func, args) Crea un nuevo hilo de ejecución. El hilo de
ejecución empieza en func y se le pasan los
parámetros args.
pthread_exit (status) El hilo que la invoca finaliza su ejecución.
#include
#include<stddef.h>
<stddef.h>
#include <pthread.h>
#include <pthread.h>
void
void**process(void
process(void**arg){
arg){
printf("%s
printf("%s ", (char *)arg);
", (char *) arg);
fflush(stdout);
fflush(stdout);
pthread_exit(0);
pthread_exit(0);
}}
int
intmain(){
main(){
pthread_t
pthread_tth_a,
th_a,th_b;
th_b;
pthread_create(&th_a,
pthread_create(&th_a,NULL,
NULL,process,
process,"Hello");
"Hello");
pthread_create(&th_b, NULL, process, "World");
pthread_create(&th_b, NULL, process, "World");
sleep(1);
sleep(1);
}}
? Índice
1.- Concepto de proceso.
2.- Implementación de procesos.
Cola de procesos
preparados
CPU
Cola de procesos
intercambiados Expulsión
Planificador a a disco
Planificador a
medio plazo
medio plazo
Cola de procesos
E/S esperando E/S
Recursos
…
Colas
Cola de procesos
Suceso esperando suceso
? Índice
1.- Concepto de proceso.
2.- Implementación de procesos.
? Utilización: Los recursos se han de mantener tan ocupados como sea posible.
?Tiempo_recurso_ocupado / Tiempo_total
? Rendimiento: Maximizar el número de tareas procesadas por unidad de tiempo.
?Número_de_trabajos_terminados / Tiempo_total
? Tiempo de retorno: Tiempo que tarda en ejecutarse un proceso.
? Tiempo de espera:
?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 proporción justa de CPU. Es
decir, que los procesos sean tratados de manera igualitaria. Lo
opuesto a equidad sería inanición.
CPU E/S CPU E/S CPU CPU E/S CPU E/S CPU
CON MULTIPROGRAMACIÓN
Se intercalan ráfagas de CPU con ráfagas de E/S Utilización
UtilizaciónCPU
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
Proceso P0 Este representa un caso extremo.
Este representa un caso extremo.
En
Enelelcaso
casode
deTCPU
TCPU<< <<TTE/S
E/Slala
utilización
utilizaciónde
delalaCPU
CPUsería
sería<<100%
100%
CPU E/S CPU E/S CPU
Proceso P1
? Pequeño número
120
de ráfagas de CPU
de larga duración. 100
80
60
40
20
8 16 24 32
duración de ràfaga (pulsos de reloj)
? Índice
1.- Concepto de proceso.
2.- Implementación de procesos.
? Por prioridades
? Propiedades
? Sin expulsión: 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
? Fácil de implementar
? Inconvenientes
? No optimiza el tiempo de espera: es muy variable en función del orden de llegada
de los procesos y la duración de los intervalos de CPU.
? Efecto convoy: Los trabajos largos retrasan a los cortos (por ejemplo: piense en un
sistema con un único trabajo con largas ráfagas de CPU y muchos trabajos con
ráfagas cortas de CPU).
? No es adecuado para sistemas interactivos: Por ser sin expulsión un trabajo con
una ráfaga de CPU larga puede provocar una espera larga a otros usuarios.
0 7 8 12 16
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
P1
P2
P3
P4
? Ventajas
? SRTF optimiza la media de tiempo de espera.
? Inconvenientes
T n+1 = ? tn + (1 - ? ) T n
? tn: tamaño real del n-ésimo intervalo de CPU
? Tn: Tamaño estimado del n-ésimo intervalo de CPU.
? ? : coeficiente exponencial 0 ? ?? ?? ?
? Caso ? ?= 1, los datos históricos son irrelevantes y sólo tiene importancia la ráfaga más
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.
longitud de ráfaga
6
Ejemplo de promedio 4
exponencial para
2
? = 1/2, y T0= 10
tiempo
Ráfaga de CPU: 6 4 6 4 13 13 13
Predicción: 10 8 6 6 5 9 11
? Ejemplo:
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
P1
P2
P3
P4
? Problema de inanición
Un algoritmo de prioridades es inherentemente poco equitativo. El problema extremo
es:
P1 P2 P3 P1 P3 P1 P3 P1
0 4 7 11 15 19 23 26 30
P1
P2
P3
? Propiedades:
? Equitativo.
?Política de planificación.
?Una prioridad asignada.
? Un proceso puede cambiar de cola de acuerdo con un esquema de
actualización de prioridades:
? Ejemplo
RR [q=16] (prio. 8)
FCFS (prio. 6)
? 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 núcleo (debido a que han efectuado una
llamada al sistema) tienen una prioridad cuyo valor se encuentra comprendido
entre 0 y valor base-1.
61 Prioridad de usuario 1
60 Prioridad de usuario 0
59 Esperando finalización hijo
58 Espera E/S por terminal
57 Esperando buffer de disco Procesos esperando
56 Esperando E/S de disco en modo kernel
.
.
Prioridad .
más alta
?
? Algoritmo del sistema operativo
?
? Round Robin (RR)
P1 t11
?
? Algoritmo
Algoritmo biblioteca
biblioteca threads
?
? Turno
Turno de
de llegada
llegada (FCFS)
(FCFS) t12
0 1 2 3
P2 t20
0 5
t10
t11 t20
t12
P1 P2 t10
t11 t20
t12
P1 P2 t10
t11 t20
t12
P1 P2
Núcleo
_
Núcleo
tn1 _
tn4
tn2
tn3 Núcleo
_
tn1 tn2
Threads a nivel Threads de usuario
de núcleo tn1 tn3 tn2
Threads híbridos
Sistemas Operativos I (00-01) Tema 3: Procesos 88
6.- Algoritmos de planificación
? Planificación de hilos a nivel de núcleo
0 1 3 4 6 7 8 11
Núcleo
t10
t11 t20
t12
t10 I/O
P1 P2
P1 t11
Núcleo
t12 P2 t20 _
0 1 2 3 0 5 tn1 tn4
tn2
tn3
Sistemas Operativos I (00-01) Tema 3: Procesos 89
6.- Algoritmos de planificación
? Planificación de hilos a nivel de usuario
0 1 3 5 7 8 9 10 11
Núcleo
t10
t10 I/O t11 t20
t12
P1 P2
P1 t11
0 1 2 3 0 5
tn1 tn2
0 1 3 5 7 8 9 10 11
Núcleo
t10
t11 t20
t12
t10 I/O
P1 P2
P1 t11
0 1 2 3 0 5
tn1 tn3 tn2
? Índice
1.- Concepto de proceso.
2.- Implementación de procesos.
? Índice
1.- Concepto de proceso.
2.- Implementación de procesos.
SISTEMA Activación
OPERATIVO del proceso
IPC Fin de E/S
Fin de espera Interrupción
Llamada IPC,
Atención de temporal HW
espera E/S Atención de
llamadas interrupciones
Suspensión
Proceso actual
del proceso Fin de quantum
Fallo de página
Excepción Atención de Planificación
excepciones Terminación
Terminación
Instr. ilegal,
del proceso
div. por cero
Guardar parte del contexto de usuario, para realizar cambio de modo de ejecución (usuario->núcleo)
Anotar el
avance del
tiempo
Pasar a preparado
Finalizar el Pasar a
Si tiempo límite al proceso Crear hijo. Resolver la
proceso en suspendido al
excedido: que esperaba el Hijo a llamada al
ejecución proceso en
Proceso en fin de la E/S preparado sistema
ejecución
ejecución
a preparado
Planificador:
Selección del próximo proceso.
Realizar cambio de contexto
Realizar cambio de modo de ejecución (núcleo -> usuario). Recuperar contexto de usuario.