You are on page 1of 98

Sistemas Operativos I

Tema 3

Procesos
Equipo de Sistemas Operativos DISCA / DSIC
UPV

Tema 3: Procesos
?

Introduccin
Existen varias razones para permitir la ejecucin concurrente de procesos:

Compartir recursos fsicos

Compartir recursos lgicos

Acelerar los clculos

Modularidad

Comodidad

Objetivos del tema:


?

Profundizar en el concepto de proceso

Dar a conocer la implementacin del modelo de procesos

Estudiar las diferentes polticas de planificacin del procesador

Sistemas Operativos I (00-01)

Tema 3: Procesos

Tema 3: Procesos
?

ndice

Bibliografa
?

1.- Concepto de proceso.

A. Silberschatz, P. Galvin.
Sistemas Operativos. 5 ed.

2.- Implementacin de procesos.

?Tema 4

3.- Hilos de ejecucin (threads).


?

4.- Conceptos de planificacin.

W. Stallings.
Sistemas Operativos 2 ed.

5.- Criterios de planificacin.

?Tema 3.

6.- Algoritmos de planificacin.


7.- Evaluacin de algoritmos.
8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

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.
8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

1.- Concepto de proceso


?

Concepto de proceso:
Existen diferentes visiones complementarias del concepto de proceso:
?

Programa en ejecucin.

Unidad de asignacin de recursos.

Proceso como procesador virtual.

Sistemas Operativos I (00-01)

Tema 3: Procesos

1.- Concepto de proceso


?

Proceso como programa en ejecucin:


?

Programa: Lista de instrucciones. Ente pasivo.

Proceso: Programa en ejecucin. Ente activo. Pasa por una serie de


estados

Un programa reside normalmente en un fichero que se encuentra


fsicamente en el disco y es cargado en memoria cuando se crea el
proceso para ejecutarlo.

Puede haber dos o ms procesos asociados a la ejecucin de un mismo


programa. Es habitual que un proceso genere ms procesos durante su
ejecucin.

Sistemas Operativos I (00-01)

Tema 3: Procesos

1.- Concepto de proceso


?

Proceso como procesador virtual:


?

Proceso: cada una de las actividades paralelas que se ejecutan en la


mquina. Da la apariencia de que todas ellas se ejecutan sobre
procesadores diferentes en paralelo.

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).

Sistemas Operativos I (00-01)

Tema 3: Procesos

1.- Concepto de proceso


?

Proceso como procesador virtual:


?

El sistema operativo simula la existencia de N procesadores virtuales


(procesos) a partir de una CPU o procesador fsico.
?Cada procesador virtual ejecuta
programa.

secuencialmente

un nico

?Todos los procesos se ejecutan concurrentemente

Sistemas Operativos I (00-01)

Tema 3: Procesos

1.- Concepto de proceso


?

Ejecucin secuencial y ejecucin concurrente.


?

Ejecucin secuencial: La ejecucin de un proceso se dice que es


secuencial porque sus operaciones son ejecutadas por la CPU una tras
otra, en el orden que dicte el programa.

Ejecucin concurrente: La ejecucin de dos procesos se dice que es


concurrente porque estos se pueden ejecutar en paralelo.
?Concurrencia real: Si cada proceso se ejecuta sobre una CPU.
?Concurrencia virtual: La CPU reparte su tiempo entre los
procesos para simular su ejecucin paralela.

Sistemas Operativos I (00-01)

Tema 3: Procesos

1.- Concepto de proceso


?

Proceso como unidad de asignacin de recursos:


?

Para ejecutar un programa se necesita un entorno formado por una serie


de recursos: memoria, descriptores de ficheros y otros atributos del
proceso.

Un proceso se puede considerar como la unidad de propiedad de todos


esos recursos.
Tiempo
de CPU

Memoria

P1

Tabla de
descriptores
ficheros

Otros
atributos

Sistemas Operativos I (00-01)

Tema 3: Procesos

10

1.- Concepto de proceso


?

Estados de un proceso

Al ejecutar un proceso ste va cambiando de estado. El estado de un proceso


se define como el comportamiento que presenta en un instante dado:
?

Activo: El proceso se puede ejecutar. No hay impedimentos en asignarle


alguna CPU.
?Ejecucin: El proceso tiene asignada una CPU, las instrucciones se
estn ejecutando.
?Preparado: El proceso puede ser ejecutado pero est esperando que
se le asigne una CPU libre. Puede haber varios procesos en este
estado.

Suspendido: No puede ser ejecutado porque el proceso se encuentra


esperando un evento como:
? la finalizacin de una operacin de E/S (una lectura de teclado)
? la comunicacin con otro proceso, etc.

Sistemas Operativos I (00-01)

Tema 3: Procesos

11

1.- Concepto de proceso


?

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

Sistemas Operativos I (00-01)

Tema 3: Procesos

Proceso terminado
por otro proceso

12

1.- Concepto de proceso


?

Operaciones sobre procesos (1)


?

Creacin: Supone asignar todos los recursos que el proceso necesita para
su ejecucin, como p.e. memoria.

?Ejemplo en UNIX: fork(). La utiliza el proceso init para crear un proceso


que gestione cada terminal y el shell cada vez que recibe una nueva
orden del usuario (si sta es externa).
? Terminacin: Supone liberar los recursos previamente asignados al
proceso. Esta terminacin puede ser:
?Terminacin normal: El proceso invoca su propia terminacin.
Ejemplo en UNIX: exit()
?Terminacin anormal: El proceso termina por iniciativa del sistema
operativo al detectar alguna condicin de error (violacin de lmites,
errores aritmticos) o por iniciativa de algn otro proceso.
Ejemplo en UNIX: kill() y seales.

Sistemas Operativos I (00-01)

Tema 3: Procesos

13

1.- Concepto de proceso


?

Operaciones sobre procesos (2):


?

Suspensin: Supone pasar un proceso al estado suspendido para que


espere un evento o E/S.
?Ejemplo en UNIX: read() sobre un tubo vaco.

Activacin: Pasar un proceso al estado activo cuando se produce el


evento que esperaba.
?Ejemplo en UNIX: un proceso efecta un write() sobre un tubo en el
que haba un lector esperando. El lector se reactiva.

Sistemas Operativos I (00-01)

Tema 3: Procesos

14

1.- Concepto de proceso


?

Estados de un proceso en UNIX


En ejec.

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

Sistemas Operativos I (00-01)

Tema 3: Procesos

15

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.
8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

16

2.- Implementacin de procesos


Para implementar procesos es conveniente pensar en un proceso como un procesador
virtual que ejecuta un programa y que se implementa a partir de un procesador fsico.
?

La implementacin de procesos requiere:


?

Bloque de control de un proceso PCB (Process Control Block): es una


estructura de datos para administrar el proceso. Almacena informacin de un
proceso.

Asignar los recursos necesarios para su ejecucin, fundamentalmente la


memoria para almacenar el cdigo, los datos y la pila.

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.

Sistemas Operativos I (00-01)

Tema 3: Procesos

17

2.- Implementacin de procesos


?

Bloque de Control de proceso (PCB):


Es una estructura de datos donde se almacenan los atributos de un proceso, es decir,
la informacin asociada a un proceso. En un sistema de multiprogramacin se
requiere un gran cantidad de informacin de cada proceso para su administracin.
Esta informacin puede agruparse en tres categoras:
?

Identificacin de Proceso: a cada proceso se le asigna un identificador numrico


nico (puede ser tan simple como un ndice en la tabla de procesos).

Informacin de estado del procesador (Contexto): Bsicamente est formada


por el contenido de los registros del procesador. Cuando se interrumpe un
proceso, el contenido de los registros del procesador debe salvarse de forma que
pueda restaurarse cuando el proceso reanude su ejecucin

Informacin de control del proceso: Informacin necesaria para que el sistema


operativo controle y coordine los diferentes procesos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

18

2.- Implementacin de procesos


?

Identificacin de Procesos. El PCB guarda:


?

Identificador de este proceso.

Identificador del proceso que cre a este proceso (proceso padre).

Identificador del usuario.

Informacin de estado del procesador


?

Registros generales (visibles para el usuario).

Contador de programa: contiene la direccin de la prxima instruccin a ejecutar.

Cdigos de condicin: muestran el resultado de la operacin aritmtica o lgica ms


reciente (signo, cero, acarreo, desbordamiento).

Informacin de estado: Indicadores de habilitacin e inhabilitacin de interrupciones.

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.

Sistemas Operativos I (00-01)

Tema 3: Procesos

19

2.- Implementacin de procesos


?

Informacin de control de proceso.


Informacin necesaria para que el sistema operativo controle y coordine los diferentes
procesos activos.
?

Estado del proceso: preparado, en ejecucin, suspendido, etc.

Prioridad de un proceso

Informacin de planificacin: depende del algoritmo de planificacin, por


ejemplo la cantidad de tiempo que el proceso ha estado esperando y que se
ejecut la ltima vez.

Suceso (evento): identidad del suceso que el proceso est esperando antes de
poder reanudarse (solicitudes de E/S pendientes).

Mapa de memoria: memoria de cdigo, memoria de datos y memoria de pila.

Sistemas Operativos I (00-01)

Tema 3: Procesos

20

2.- Implementacin de procesos


?

Implementacin de varios procesos: Cambios de contexto


La ejecucin aparentemente simultnea de varios procesos en un mismo sistema,
requiere repartir el tiempo de CPU entre los procesos a ejecutar.

Ello implica desasignar la CPU al proceso en ejecucin y asignarla a un proceso


preparado. Esta actividad se conoce con el nombre de cambios de contexto.
Realizar un cambio de contexto lleva consigo:
?

Salvar el contexto del proceso en ejecucin en su PCB.

Poner en la CPU el contexto del nuevo proceso (nuevo contador de programa).

Actualizar la informacin de control de los procesos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

21

2.- Implementacin de procesos


? Cambio de contexto
n procesadores virtuales
PCB #1

P1

PCB #2

contexto
contexto

P2

(1)

PCB #n

contexto

Pn

(3)

(2)

P1 --> P2

(4)
1 procesador
fsico

Sistemas Operativos I (00-01)

contexto

CPU

PC
SP

P2 --> P1

registros

Tema 3: Procesos

22

2.- Implementacin de procesos


?

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 =

T(P1) + T(P2) +T(P3)


T(P1) + T(P2) +T(P3) + 3t

Sistemas Operativos I (00-01)

Tema 3: Procesos

23

2.- Implementacin de procesos


?

Motivos que provocan cambios de contexto:


?

Terminacin normal del proceso, el proceso en ejecucin se acaba.

El proceso en ejecucin es suspendido en espera de una E/S o de un


evento.

El proceso en ejecucin es expulsado bien porque ha agotado la


cantidad de tiempo de CPU asignada bien porque se decide asignarla a
otro proceso ms prioritario.

El sistema se puede representar como un diagrama de colas donde


?

Los crculos representan recursos

Los rectngulos representan colas de procesos que esperan acceder a


los recursos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

24

2.- Implementacin de procesos


?

Implementacin de varios procesos: Estructuras de control del sistema


?
?

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

Sistemas Operativos I (00-01)

CPU

Suceso

Cola de procesos
esperando suceso

Tema 3: Procesos

25

2.- Implementacin de procesos


?

Implementacin de varios procesos: Estructuras de control del sistema


?

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).

El SCB contiene en la gran mayora de casos la siguiente informacin:


?Tabla de procesos
?Un puntero a la cola de PCBs de los procesos nuevos, que no estn
activos y estn esperando ejecucin.
?Un puntero al PCB del proceso que est haciendo uso de la CPU
?Un puntero a la cola de PCBs de los procesos preparados
?Un puntero a la cola de PCBs de los procesos que estn esperando a
que se produzca algn evento, para poder volver a ejecutarse, no
pudiendo hacerlo hasta que tenga lugar el evento esperado.
?Los identificadores de las rutinas necesarias para tratar las
interrupciones producidas por el hardware, software o errores
indeseados.
?Estructuras de datos relacionadas con la comunicacin y sincronizacin
de procesos
?Otras tablas y datos relacionados con la gestin de memoria y ficheros.

Sistemas Operativos I (00-01)

Tema 3: Procesos

26

2.- Implementacin de procesos


PCB n

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.

3.- Hilos de ejecucin (threads).


4.- Conceptos de planificacin.
5.- Criterios de planificacin.
6.- Algoritmos de planificacin.
7.- Evaluacin de Algoritmos.
8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

28

3.- Hilos de ejecucin (Threads)


Concepto de hilo de ejecucin (thread).

Hay sistemas operativos donde un proceso puede tener internamente actividades


concurrentes llamadas hilos de ejecucin.
Ejemplo:
?

Un proceso UNIX
videojuego puede tener
un hilo de ejecucin para
cada uno de los elementos
mviles de la pantalla.

Sistemas Operativos I (00-01)

Tema 3: Procesos

29

3.- Hilos de ejecucin (Threads)


Concepto de hilo de ejecucin (thread).

El concepto de proceso que se ha presentado incluye las dos caractersticas


siguientes:
?

Unidad de propiedad de recursos: A cada proceso se le asigna un


espacio de direcciones virtuales para albergar a la imagen del proceso y,
de cuando en cuando tambin se le puede asignar otros recursos
(canales de E/S, dispositivos de E/S y ficheros).

Unidad de ejecucin: Un proceso es un camino de ejecucin a travs de


un programa. Esta ejecucin puede ser intercalada con la de otros
procesos.

Estas dos caractersticas son la esencia del proceso, pero pueden ser tratadas
de manera independiente por el s.o.

Sistemas Operativos I (00-01)

Tema 3: Procesos

30

3.- Hilos de ejecucin (Threads)


?

Se puede diferenciar entre:


?

Proceso (proceso pesado): Unidad de propiedad de los recursos


(memoria, descriptores de ficheros, etc). Tiene muchos atributos y es lento
de crear.

Hilo de ejecucin (proceso ligero): Actividad concurrente dentro de un


proceso (pesado). Todos los hilos de ejecucin que pertenecen a un
mismo proceso comparten sus recursos (memoria, descriptores de fichero,
etc). Tiene pocos atributos y se crea rpidamente.
P2

P1
Hilos de ejecucin

Sistemas Operativos I (00-01)

Tema 3: Procesos

31

3.- Hilos de ejecucin (Threads)


?

Compartir memoria
?

Los procesos UNIX no comparten


memoria (cdigo o datos). Cada
uno tiene su propio espacio de
direcciones.

Los hilos de ejecucin de un


mismo proceso pueden tener
rutinas o variables comunes.

No obstante, cada hilo tendr su


propia pila donde se guardarn
las
variables
locales
y
argumentos de invocacin.

Sistemas Operativos I (00-01)

Tema 3: Procesos

32

3.- Hilos de ejecucin (Threads)


Los hilos de ejecucin pueden implementarse de tres formas:
?

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).

El resto de los hilos son implementados por el run-time del lenguaje.

Es la aproximacin utilizada en sistemas operativos que no soportan hilos.

Los cambios de contexto entre los hilos a nivel de usuario son rpidos, ya que no
involucran llamadas al sistema.

La poltica de planificacin 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.

Sistemas Operativos I (00-01)

Tema 3: Procesos

33

3.- Hilos de ejecucin (Threads)


Implementacin de hilos
Hilos a nivel de usuario
Un programa,
muchos hilos

Un programa,
muchos hilos

Soporte en
ejecucin del
lenguaje

Soporte en
ejecucin del
lenguaje

Ncleo del SO

= Espacio de direcciones

Sistemas Operativos I (00-01)

= construccin
lingstica o hilo
a nivel usuario

Tema 3: Procesos

= proceso o hilo del SO

34

3.- Hilos de ejecucin (Threads)


?

Implementacin
ejecucin

Hilos
a
nivel
del
ncleo
(kernel-level threads):

Un programa,
muchos hilos

Un programa,
muchos hilos

El sistema operativo soporta hilos de


ejecucin y proporciona un conjunto
de llamadas al sistema para su
manipulacin.

Soporte en
ejecucin del
lenguaje

Soporte en
ejecucin del
lenguaje

El sistema crea un hilo de ejecucin


por cada hilo a nivel de usuario.

Son la unidad de planificacin del


sistema.

El bloqueo y activacin de hilos corre


a cargo del ncleo.

Los cambios de contexto son


manejados por el kernel y son unas
10 veces ms lentos que en el caso
de los hilos de usuario.

Sistemas Operativos I (00-01)

de

hilos

de

Tema 3: Procesos

Hilos a nivel de ncleo

Ncleo del SO
= Espacio de direcciones
= construccin
lingstica o hilo
a nivel usuario
= proceso o hilo del SO

35

3.- Hilos de ejecucin (Threads)


?

Implementacin de hilos
de ejecucin
Aproximacin hbrida:
?

Se implementan las dos


clases de hilos anteriores.
El
sistema
operativo
permite ms de un hilo por
proceso.

Un programa, muchos hilos

u1

u2

Soporte en ejecucin del lenguaje

k1

El soporte del lenguaje de


programacin utiliza un
hilo del ncleo para
implementar un grupo de
hilos de usuario.

Ncleo del SO

= Espacio de direcciones

Proporciona flexibilidad y
el mximo rendimiento
potencial al programador
de aplicaciones.

Sistemas Operativos I (00-01)

= construccin
lingstica o hilo
a nivel usuario
= proceso o hilo del SO
Tema 3: Procesos

36

3.- Hilos de ejecucin (threads)


?

Utilizacin de hilos de ejecucin


Los hilos de ejecucin pueden ser creados y manejados:
?

Utilizando un lenguaje de programacin convencional y llamadas al


sistema.
?Ejemplo: C y threads en POSIX

Utilizando construcciones lingsticas (o clases) de un lenguaje de


programacin que admita concurrencia
? Ejemplo: Tareas en Ada95, threads en Java

Sistemas Operativos I (00-01)

Tema 3: Procesos

37

3.- Hilos de ejecucin (threads)


?

Threads en POSIX: llamadas bsicas

Llamada

Descripcin

pthread_create(thread_id, attr, func, args)

Crea un nuevo hilo de ejecucin. El hilo de


ejecucin empieza en func y se le pasan los
parmetros args.

pthread_exit (status)

El hilo que la invoca finaliza su ejecucin.

pthread_join (thread_id)

Suspende la ejecucin del hilo que invoca


esta llamada, hasta que el thread_id acabe.

pthread_t pthread_self()

Devuelve el identificador del thread que la


invoca.

Sistemas Operativos I (00-01)

Tema 3: Procesos

38

3.- Hilos de ejecucin (threads)


?

Threads en POSIX: un ejemplo


#include
#include<stddef.h>
<stddef.h>
#include
<pthread.h>
#include <pthread.h>
void
void**process(void
process(void**arg){
arg){
printf("%s
",
(char
*)
printf("%s ", (char *)arg);
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);

}}

Sistemas Operativos I (00-01)

Tema 3: Procesos

39

3.- Threads en Ada: Declaracin


?
?

Ada permite la programacin de


actividades concurrentes.
La facilidad Ada que permite
programar estas actividades es el tipo
de datos task.
El tipo tarea debe ser especificado en
primer lugar y posteriormente
implementado.
Las tareas Ada comparten memoria y
se comunican y sincronizan mediante
citas y/o objetos protegidos.
Pueden declararse objetos tarea
directamente omitiendo type. En este
caso no pueden definirse variables.
Cada tarea dispone de una copia de
las variables locales declaradas.

Sistemas Operativos I (00-01)

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

3.Threads en Ada: activacin y finalizacin


?

Cuando un programa Ada


procedure
procedureGuarderia
Guarderiaisis
comienza, se crea la tarea principal,
task
la cual ejecuta el subprograma
tasktype
typeNio;
Nio;
principal.
task
taskbody
bodyNio
Nio
Cuando se declara una variable del
isis
-----tipo task, el soporte en tiempo de
-----end
endNio;
Nio;
ejecucin del lenguaje Ada crea un
hilo de ejecucin (proceso ligero)
Victor,
Victor,
dentro del proceso que est
Santiago,
Santiago,
Gabriela:
ejecutando el programa.
Gabriela:Nio;
Nio;
Una tarea comienza su ejecucin
cuando comienza la ejecucin de la begin
begin
unidad (maestra) donde se declara.
La unidad de ejecucin maestra
----unidad
unidadmaestra;
maestra;
slo finaliza cuando finalizan todas
las tareas que dependen de ella.
end
endGuarderia;
Guarderia;

Sistemas Operativos I (00-01)

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).

4.- Conceptos de planificacin.


5.- Criterios de planificacin.
6.- Algoritmos de planificacin.
7.- Evaluacin de Algoritmos.
8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

42

4.- Concepto de planificacin


?

Recursos reutilizables en serie


?

Escasez de recursos: el nmero de recursos es inferior al nmero de


procesos que compiten por ellos.

Recursos reutilizables en serie: aquellos que slo pueden estar


asignados a un proceso en un instante de tiempo dado. Ejemplos:
Impresoras, CPU.

Planificacin de recursos: Con recursos reutilizables en serie el s.o.


tiene que aplicar una poltica para asignar recursos a los procesos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

43

4.- Concepto de planificacin


P1
1
Ejecucin

P2

Salvar contexto en PCB #1

PLANIFICADOR:
-- Tratamiento
escoger
nuevo proceso

Interrup. o
llamada al sist

Cargar contexto desde PCB #2

Salvar contexto en PCB #2

Ejecucin
2

Interrup. o
llamada al
sistema

PLANIFICADOR:
-- Tratamiento
escoger nuevo proceso

P3
4
Ejecucin

Cargar contexto desde PCB #3

Sistema operativo
Sistemas Operativos I (00-01)

Tema 3: Procesos

44

4.- Concepto de planificacin


?

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.

En el caso de que el recurso a asignar sea la CPU se distinguen entre tres


planificadores:
?

Planificador a largo plazo.

Planificador a medio plazo

Planificador a corto plazo.

Sistemas Operativos I (00-01)

Tema 3: Procesos

45

Diagrama de colas del sistema


Planificador a
largo plazo

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

4.- Concepto de planificacin


?

Planificador a largo plazo


?

En un sistema de procesos por lotes, los procesos recin incorporados


permanecen detenidos en una cola de procesamiento por lotes, en el
disco. El planificador a largo plazo crear procesos a partir de la cola
cuando sea posible.

Dos son las decisiones que toma el planificador a largo plazo:


?Cuando crear un nuevo proceso: controla el grado de multiprogramacin.
?Cul va a ser el siguiente proceso a admitir: algoritmo FCFS (firts_come, firstserved), tener en cuenta prioridades, tiempos de ejecucin esperados,
exigencias E/S.

Controla el grado de multiprogramacin: conjunto de procesos que


residen simultneamente en memoria y se ejecutan concurrentemente.

Selecciona procesos de la cola de procesos que estn esperando ser


ejecutados y los carga en memoria.

Se ejecuta con poca frecuencia, ya que pueden transcurrir minutos entre


la creacin de nuevos procesos en el sistema.

Sistemas Operativos I (00-01)

Tema 3: Procesos

47

4.- Concepto de planificacin


?

Planificador a medio plazo


?

Cuando un usuario se conecta al sistema, se genera una solicitud de


crear un proceso, los usuarios de tiempo compartido no pueden ser
puestos en una cola y esperar a que el sistema pueda aceptarlos.

En ocasiones es interesante sacar procesos de memoria para reducir el


grado de multiprogramacin o para mejorar la mezcla de procesos
(orientados a CPU o E/S).

Se encarga de controlar qu procesos, de entre todos los iniciados deben


estar en memoria y qu otros deben estar en el espacio de intercambio.

El planificador a medio plazo se encarga de sacar el proceso y volverlo a


introducir ms tarde. El proceso continuar su ejecucin a partir del punto
donde se haba quedado.

A este esquema comnmente se le denomina swapping.

Sistemas Operativos I (00-01)

Tema 3: Procesos

48

4.- Concepto de planificacin


?

Planificador a corto plazo


?

Selecciona un proceso de la cola de procesos preparados para ejecucin


y le asigna la CPU.

Se ejecuta con mucha frecuencia. El proceso seleccionado quizs se


ejecute nicamente durante unos milisegundos antes de iniciar una
solicitud de E/S.

Se ejecuta cuando ocurre un evento que conduce a la interrupcin del


proceso actual, expulsando el proceso a favor de otro. Ejemplos de
eventos:
?Interrupciones de reloj.
?Interrupciones de E/S.
?Llamadas al sistema operativo.
?Seales.

Sistemas Operativos I (00-01)

Tema 3: Procesos

49

4.- Concepto de planificacin


?

Procesos orientados a CPU u orientados a E/S


?

Un proceso orientado a CPU es aquel que invierte la mayor parte de su


tiempo en efectuar clculos y genera solicitudes de E/S con poca
frecuencia.

Proceso orientado a CPU


CPU

E/S

CPU

E/S

CPU

Un proceso orientado a E/S es aquel que emplea ms tiempo en realizar


E/S que en efectuar clculos.

Proceso orientado a E/S


CPU

E/S

CPU

E/S

CPU

El planificador a largo plazo debe seleccionar una mezcla adecuada de


procesos orientados a CPU y orientados a E/S.
Sistemas Operativos I (00-01)

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.

5.- Criterios de planificacin.


6.- Algoritmos de planificacin.
7.- Evaluacin de Algoritmos.
8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

51

5.- Criterios de planificacin


?

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
?

Rendimiento: Maximizar el nmero de tareas procesadas por unidad de tiempo.

?Nmero_de_trabajos_terminados / Tiempo_total
?

Tiempo de retorno: Tiempo que tarda en ejecutarse un proceso.

?Tiempo de salida - Tiempo de entrada = ? TCPU + ? TE/S + ? TColas

Sistemas Operativos I (00-01)

Tema 3: Procesos

52

5.- Criterios de planificacin


?

Criterios de planificacin (2):


?

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.

Sistemas Operativos I (00-01)

Tema 3: Procesos

53

5.- Criterios de planificacin


?

Optimizacin de los criterios de planificacin.


No se pueden optimizar todos los criterios a la vez porque algunos de ellos
son contrapuestos. Cada tipo de sistema tiene sus prioridades:
?

Sistema por lotes: Maximizar utilizacin y rendimiento y minimizar el


tiempo de retorno y de espera.

Sistemas interactivos: Proporcionar equidad y hacer el tiempo de


respuesta razonable y predecible.

La multiprogramacin en s misma supone una mejora de muchos de los


criterios anteriores respecto a la ejecucin secuencial.

Los algoritmos de planificacin tambin tienen como objetivo mejorar


algunos de los criterios mencionados.

Sistemas Operativos I (00-01)

Tema 3: Procesos

54

5.- Criterios de planificacin


Ejemplo:

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

Sistemas Operativos I (00-01)

CPU

E/S

CPU

Tema 3: Procesos

55

5.- Criterios de planificacin


?

Histograma de intervalos de tiempo de CPU


frecuencia
?

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

duracin de rfaga (pulsos de reloj)

Sistemas Operativos I (00-01)

Tema 3: Procesos

56

5.- Criterios de planificacin


?

Para mejorar la utilizacin de la CPU se podra:


?

Aumentar el grado de multiprogramacin (mientras la memoria lo permita).

Adoptar un algoritmo de planificacin adecuado que optimice el orden de


ejecucin de los procesos.

Para conseguir un algoritmo de planificacin ptimo se podra:


?

Determinar qu parmetros se quiere optimizar.

Conocer el tipo de comportamiento de los procesos.

Sistemas Operativos I (00-01)

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.

6.- Algoritmos de planificacin.


7.- Evaluacin de Algoritmos.
8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

58

6.- Algoritmos de planificacin


?

Objetivo
Decidir a cul de los procesos que estn en la cola de procesos listos se le
asignar la CPU.

Clasificacin de algoritmos de planificacin:


?

Por orden de llegada (FCFS).

Circular (RR, round-robin)

Por prioridades
?Sin expulsin (Non preemptive) / Con expulsin (Preemptive)
?Estticos / Dinmicos

Combinacin de algoritmos: Clases de prioridades.

Sistemas Operativos I (00-01)

Tema 3: Procesos

59

6.- Algoritmos de planificacin


?

Servicio por orden de llegada (FCFS : first-come, first-served)


La CPU es asignada a todos los procesos en el mismo orden que lo solicitan.

Proceso
P1
P2
P3

T. llegada
0
0
0

T. CPU
24
3
3

Caso 1) Orden de llegada


P1, P2, P3

T. de espera medio:
(0 + 24 + 27) / 3 = 17

P1

Sistemas Operativos I (00-01)

24

Caso 2) Orden de llegada


P2, P3, P1

T. de espera medio:
(6 + 0 + 3) / 3 = 3

P2

P2
0

P3
3

P3
27

30

P1
6

Tema 3: Procesos

30

60

6.- Algoritmos de planificacin


?
?

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
?

Servicio por orden de llegada (FCFS : first-come, first-served)

Fcil de implementar

Inconvenientes
?

No optimiza el tiempo de espera: es muy variable en funcin del orden de llegada


de los procesos y la duracin 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 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.

Sistemas Operativos I (00-01)

Tema 3: Procesos

61

6.- Algoritmos de planificacin


?

Prioridad al trabajo ms breve ( SJF: shortest job first )


?

Se asocia a cada trabajo (proceso) el tiempo del siguiente intervalo de


CPU.

Se asigna la CPU al trabajo con menor tiempo asociado.

Sin expulsin: cuando un proceso tiene asignada la CPU, la conserva


hasta que desee liberarla.

Sistemas Operativos I (00-01)

Tema 3: Procesos

62

6.- Algoritmos de planificacin


?

Ejemplo: Prioridad al trabajo ms breve (SJF).


Procesos
P1
P2
P3
P4

Instante de llegada
0
2
4
5

Duracin
7
4
1
4

SJF (sin expulsin)

Media del tiempo de espera: (0 + 6 + 3 + 7) / 4 = 4


P1
P3
P2
P4
0

12

16

Tiempo de espera medio: (0 + 6 + 3 + 7) / 4 = 4

Sistemas Operativos I (00-01)

Tema 3: Procesos

63

6.- Algoritmos de planificacin


?

Variante con expulsin del SJF ( SRTF: Shortest Remaining Time First )
Prioridad al que le resta menos tiempo (para finalizar).
?

La CPU es asignada al proceso que le queda menos tiempo para acabar


la rfaga de CPU en curso.

Variante con expulsin de SJF: Si llega un proceso con un intervalo de


CPU inferior al tiempo que le falta al proceso en ejecucin para
abandonar la CPU, entonces el nuevo proceso se hace con la CPU.

Sistemas Operativos I (00-01)

Tema 3: Procesos

64

6.- Algoritmos de planificacin


?

Procesos
P1
P2
P3
P4

Ejemplo del SRTF.

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

Cronograma por procesos


P1
P2
P3
P4

Media del tiempo de espera: (9 + 1 + 0 + 2 ) / 4 = 3


Sistemas Operativos I (00-01)

Tema 3: Procesos

65

6.- Algoritmos de planificacin


?
?

SRTF: Shortest Remaining Time First


Ventajas
?

SRTF optimiza la media de tiempo de espera.

Inconvenientes
?

El tiempo del siguiente intervalo de CPU es difcil de predecir. Esto lo


hace difcil de implementar para un planificador a corto plazo.(En los
sistemas por lotes el usuario puede aportar informacin).

Posibilidad de inanicin: los trabajos largos no se ejecutarn mientras


haya trabajos cortos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

66

6.- Algoritmos de planificacin


?

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.

Estimacin del siguiente intervalo de CPU


Se utiliza la media exponencial:
T n+1 = ? tn + (1 - ? ) T n
?

tn: tamao real del n-simo intervalo de CPU

Tn: Tamao estimado del n-simo intervalo de CPU.

? : 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.

Sistemas Operativos I (00-01)

Tema 3: Procesos

67

6.- Algoritmos de planificacin


?

Planificacin SJF/SRTF

Estimacin del siguiente intervalo de CPU


Desarrollando la frmula y sustituyendo T
T

n+1

n+1

por tn llegamos a:

= ? tn + (1 - ? ) ? tn-1 + + (1 - ? )j ? tn-j + + (1 - ? )n+1 T 0

Puesto que tanto (1 - ? ) como ? son


menores o iguales que 1 cada trmino
sucesivo tiene menos peso que el anterior.

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

6.- Algoritmos de planificacin


?

Planificacin por prioridades


?

Se asocia a cada proceso un nmero (entero), llamado prioridad de


acuerdo con algn criterio.

Se asigna la CPU al trabajo con mayor prioridad (normalmente, mayor


nmero).

Ejemplo:
?SJF es un caso particular de prioridades en el que la prioridad es 1/T.

Sistemas Operativos I (00-01)

Tema 3: Procesos

69

6.- Algoritmos de planificacin


?

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

Cronograma por procesos


P1
P2
P3
P4
Sistemas Operativos I (00-01)

Tema 3: Procesos

70

6.- Algoritmos de planificacin


?

Planificacin por Prioridades: Variantes


?

Algoritmos con expulsin/sin expulsin.

Prioridades estticas/dinmicas.

?Prioridades estticas: La prioridad se asigna antes de la ejecucin y


no cambia.
?Prioridades dinmicas: La prioridad cambia con el tiempo.

Sistemas Operativos I (00-01)

Tema 3: Procesos

71

6.- Algoritmos de planificacin


?

Planificacin por prioridades

Problema de inanicin
Un algoritmo de prioridades es inherentemente poco equitativo. El problema extremo
es:
?

Inanicin: Los procesos con baja prioridad no se ejecutan nunca.

Solucin:
?

Actualizacin de prioridades: Esquema de prioridades dinmicas, donde la


prioridad de un proceso aumenta con el tiempo de espera.

Sistemas Operativos I (00-01)

Tema 3: Procesos

72

6.- Algoritmos de planificacin


?

Planificacin circular ( RR: Round Robin )


?

A cada proceso se le asigna una pequea cantidad de tiempo de CPU,


llamada quantum de tiempo, normalmente 10-100mseg.
Si el proceso tiene un intervalo de CPU mayor que el quantum, entonces
es expulsado de la CPU y aadido a la cola de procesos listos.

Si hay n procesos, cada uno obtiene 1/n del tiempo de la CPU en


intervalos de q unidades, como mximo.

Sistemas Operativos I (00-01)

Tema 3: Procesos

73

6.- Algoritmos de planificacin


?

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

Cronograma por procesos


P1
P2
P3

Sistemas Operativos I (00-01)

Tema 3: Procesos

74

6.- Algoritmos de planificacin


?

Planificacin circular

Valor del quantum de tiempo


?

Para q grandes: el algoritmo degenera en un algoritmo FCFS.

Para q pequeos: q ha de ser grande respecto al tiempo necesario para


el cambio de contexto, sino la sobrecarga introducida es muy alta.
Regla prctica: El 80% de los intervalos de CPU han de ser inferiores al
quantum de tiempo.

Sistemas Operativos I (00-01)

Tema 3: Procesos

75

6.- Algoritmos de planificacin


?

Planificacin circular

Propiedades:
?

Equitativo.

El tiempo de espera mximo est limitado por (n -1)q, antes de recibir su


siguiente cuanto de tiempo.

El tiempo de retorno medio vara con el cuanto de tiempo.

En general es peor que el del algoritmo SRTF. Mejora si un porcentaje alto


de trabajos acaban antes de que acabe el cuanto de tiempo.

Sistemas Operativos I (00-01)

Tema 3: Procesos

76

6.- Algoritmos de planificacin


?

Planificacin con mltiples colas


Los procesos se pueden clasificar fcilmente en distintos grupos (interactivos,
por lotes, etc.). La cola de procesos preparados consiste en realidad en
diversas colas
?

Cada cola ha de tener su propio algoritmo de planificacin.

Ha de haber un algoritmo de planificacin entre colas.

Sistemas Operativos I (00-01)

Tema 3: Procesos

77

6.- Algoritmos de planificacin


?

Ejemplo de algoritmo de
planificacin entre colas:
?

Prioridades estticas: Los


procesos en cola con menor
prioridad no se ejecutan
mientras haya procesos en
cola con mayor prioridad.
Posibilidad de inanicin.
Cuotas de tiempo: Cada
cola est asignada a un
porcentaje del tiempo de
CPU. Ejemplo: el 80% a
trabajos interactivos y el 20%
a trabajos por lotes.

Sistemas Operativos I (00-01)

Procesos
Sistema

FCFS (prio. 10)

Usuarios
privilegiados

PRIO (prio. 8)

Procesos
Interactivos

RR

(prio. 6)

Procesos
Por Lotes

SJF

(prio. 4)

Colas de procesos preparados

Tema 3: Procesos

78

6.- Algoritmos de planificacin


?

Planificacin con mltiples colas realimentadas.


?

Existen diferentes colas de procesos preparados.

Cada cola posee:


?Poltica de planificacin.
?Una prioridad asignada.

Un proceso puede cambiar de cola de acuerdo con un esquema de


actualizacin de prioridades:
?Los procesos con un tiempo de espera acumulado elevado son
promocionados a una cola con prioridad superior.
?Los procesos con un tiempo de utilizacin de la CPU elevado son
degradados a una cola con prioridad inferior.

Sistemas Operativos I (00-01)

Tema 3: Procesos

79

6.- Algoritmos de planificacin


?

Planificacin con mltiples colas realimentadas.

Ejemplo

RR [q=8] (prio. 10)

RR [q=16] (prio. 8)

FCFS

(prio. 6)

Colas de procesos preparados

Sistemas Operativos I (00-01)

Tema 3: Procesos

80

6.- Algoritmos de planificacin


?

Mltiples colas realimentadas

Parmetros de las colas realimentadas:


?

Nmero de colas.

Prioridad de cada cola.

Mtodo de promocin de un proceso.

Mtodo de degradacin de un proceso.

Mtodo para determinar la cola de entrada de un proceso.

Sistemas Operativos I (00-01)

Tema 3: Procesos

81

6.- Algoritmos de planificacin


Planificacin en UNIX SVR2
?

Algoritmo de colas multinivel realimentadas.


?

La prioridad es mayor cuanto menor sea el nmero asignado.

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.

Sistemas Operativos I (00-01)

Tema 3: Procesos

82

6.- Algoritmos de planificacin


Planificacin en UNIX SVR2
?

Las colas tienen un algoritmo RR con quantum de 1seg.

Asignacin dinmica de prioridades, de acuerdo con:


?

El proceso en ejecucin incrementa su uso de CPU en una unidad, cada pulso de


reloj (60 veces por segundo).

Cada segundo se divide el uso de CPU por 2 y se recalcula la nueva prioridad


con:
?Uso CPU= uso CPU/2
?Nueva prioridad = valor base + uso CPU /2
?La base puede empeorarse con la llamada nice

Sistemas Operativos I (00-01)

Tema 3: Procesos

83

6.- Algoritmos de planificacin


Planificacin en UNIX SVR2
?

Cambios entre modo usuario y ncleo.


?

Cuando un proceso realiza una llamada al sistema, no altera su prioridad


a menos que deba suspenderse.

Cuando un proceso es suspendido en el ncleo adquiere una prioridad


de ncleo (< 60) que nicamente depende de la razn que le ha llevado a
suspenderse y no de su prioridad de usuario.
?Ejemplo: (A>>B, significa que A es ms prioritario que B, y por tanto A tiene
menor nmero de prioridad que B)
?Espera de operacin en disco >> Espera de entrada de teclado >> Espera de
finalizacin de escritura en pantalla >> Espera de terminacin de proceso hijo
(ver figura transparencia 85).

Cuando un proceso finaliza una llamada al sistema, recupera la prioridad


que tena antes de suspenderse dentro del ncleo.

Aunque el planificador sea expulsivo, un proceso no puede ser expulsado


mientras se ejecute dentro del ncleo.

Sistemas Operativos I (00-01)

Tema 3: Procesos

84

6.- Algoritmos de planificacin


Planificacin en UNIX
Prioridad
ms baja

.
.
.
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 menor valor para la


prioridad de usuario es
el valor base (60), que a
su vez indica la clase de
mayor prioridad.

El reloj interrumpe al
sistema 60 veces/seg.

Cada segundo calcula:

67

15

75

63

67

15

75

76

7
8
.
67
33

0
1
.
60
30

63

7
8
.
67
33

67

15

68

Sistemas Operativos I (00-01)

16

SUPUESTOS:

60

0
1
.
60
30

76

60

t.CPU= t.CPU/2
prioridad= (t.CPU/2) + 60
63

Tema 3: Procesos

86

6.- Algoritmos de planificacin


?

Un ejemplo: Planificacin de hilos

?
?

Algoritmo del sistema operativo


?
?

Round Robin (RR)

?
?

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

Sistemas Operativos I (00-01)

Tema 3: Procesos

5
87

6.- Algoritmos de planificacin


?

Un ejemplo: Planificacin de hilos


t10
t11
t12

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

6.- Algoritmos de planificacin


?

Planificacin de hilos a nivel de ncleo


t10

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

Sistemas Operativos I (00-01)

Ncleo

t20

Tema 3: Procesos

tn1
tn2

tn4
tn3
89

6.- Algoritmos de planificacin


?

Planificacin de hilos a nivel de usuario


t10

t20

t11

t20

t11 t12 t20 t10

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

Sistemas Operativos I (00-01)

Ncleo

t20

Tema 3: Procesos

tn1

tn2

90

6.- Algoritmos de planificacin


?

Planificacin de hilos en la aproximacin hbrida


t10

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

Sistemas Operativos I (00-01)

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.

7.- Evaluacin de Algoritmos.


8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

92

7.- Evaluacin de algoritmos


?

Procesos en la seleccin de un algoritmo:


?

(1) Seleccin de criterios (utilizacin CPU, t. respuesta, etc.).

(2) Estudiar la adaptacin de cada algoritmo a esos criterios.

Es necesario evaluar para cada sistema cual es el algoritmo de planificacin


ms adecuado.

Sistemas Operativos I (00-01)

Tema 3: Procesos

93

7.- Evaluacin de algoritmos


?

Existen diferentes mtodos para llevar a cabo dicha evaluacin:


?

Evaluacin analtica: Dada la carga de trabajos producir una frmula


matemtica del rendimiento para cada algoritmo de planificacin.
?Modelo determinista: Evaluar el rendimiento para cada caso
particular de carga.
?Modelos de colas: Caracterizar la carga con una distribucin
estadstica (distribucin exponencial).
Caracterizar la tasa de llegada de trabajos.
Caracterizar el tiempo de servicio de un recurso.
Hacer anlisis estadstico de las redes de colas.
Ejemplo: Frmula de Little

n=? *E

n: tamao medio de la cola, ? tasa media de llegada, E: tiempo medio de


espera en la cola.
?

Simulaciones: Hacer un modelo, programarlo y ejecutarlo.

Sistemas Operativos I (00-01)

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.

8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01)

Tema 3: Procesos

95

8.- S.O. dirigido por eventos


?

El S.O. puede verse como un programa que atiende y sirve los eventos
producidos por los procesos y los dispositivos.

Cuando se da alguno de estos eventos cambia el estado de alguno de


los procesos existentes en el sistema o el propio estado del sistema
operativo.

Qu podemos considerar un evento de este tipo ?


?

Una llamada al sistema.

Una interrupcin de un dispositivo de E/S.

Una interrupcin de reloj.

Una excepcin provocada por el cdigo de un proceso (Instrucciones


ilegales, acceso a memoria no asignada, divisiones por cero, ...).

Sistemas Operativos I (00-01)

Tema 3: Procesos

96

8.- S.O. dirigido por eventos


SISTEMA
OPERATIVO

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

Sistemas Operativos I (00-01)

Planificacin

Terminacin
del proceso

Tema 3: Procesos

97

Flujo de control del S.O.


Reloj

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.

Sistemas Operativos I (00-01)

Tema 3: Procesos

98

You might also like