You are on page 1of 98

Sistemas Operativos I

Tema 3

Procesos

Equipo de Sistemas Operativos DISCA / DSIC

UPV
Tema 3: Procesos
? Introducción

Existen varias razones para permitir la ejecución concurrente de procesos:

? Compartir recursos físicos

? Compartir recursos lógicos

? Acelerar los cálculos

? Modularidad

? Comodidad
? Objetivos del tema:
? Profundizar en el concepto de proceso

? Dar a conocer la implementación del modelo de procesos


? Estudiar las diferentes políticas de planificación del procesador

Sistemas Operativos I (00-01) Tema 3: Procesos 2


Tema 3: Procesos
? Índice ? Bibliografía
1.- Concepto de proceso. ? A. Silberschatz, P. Galvin.

2.- Implementación de procesos. Sistemas Operativos. 5ª ed.


?Tema 4
3.- Hilos de ejecución (threads).
? W. Stallings.
4.- Conceptos de planificación.
Sistemas Operativos 2ª ed.
5.- Criterios de planificación. ?Tema 3.
6.- Algoritmos de planificación.
7.- Evaluación de algoritmos.

8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01) Tema 3: Procesos 3


Tema 3: Procesos

? Índice

1.- Concepto de proceso.


2.- Implementación de procesos.
3.- Hilos de ejecución (threads).

4.- Conceptos de planificación.

5.- Criterios de planificación.


6.- Algoritmos de planificación.

7.- Evaluación de Algoritmos.

8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01) Tema 3: Procesos 4


1.- Concepto de proceso
? Concepto de proceso:

Existen diferentes visiones complementarias del concepto de proceso:

? Programa en ejecución.

? Unidad de asignación de recursos.

? Proceso como procesador virtual.

Sistemas Operativos I (00-01) Tema 3: Procesos 5


1.- Concepto de proceso
? Proceso como programa en ejecución:

? Programa: Lista de instrucciones. Ente pasivo.

? Proceso: Programa en ejecución. Ente activo. Pasa por una serie de


estados

? Un programa reside normalmente en un fichero que se encuentra


físicamente en el disco y es cargado en memoria cuando se crea el
proceso para ejecutarlo.

? Puede haber dos o más procesos asociados a la ejecución de un mismo


programa. Es habitual que un proceso genere más procesos durante su
ejecución.

Sistemas Operativos I (00-01) Tema 3: Procesos 6


1.- Concepto de proceso
? Proceso como procesador virtual:

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


máquina. Da la apariencia de que todas ellas se ejecutan sobre
procesadores diferentes en paralelo.

? Ejemplos:

?Procesos de usuario: Un proceso de edición de un sistema de tiempo


compartido. Un trabajo en un sistema por lotes. La compilación 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 límites), “pagedeamon” (es el
encargado de utilizar reemplazo para liberar marcos y pasarlos a la
reserva).

Sistemas Operativos I (00-01) Tema 3: Procesos 7


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 físico.

?Cada procesador virtual ejecuta secuencialmente un único


programa.
?Todos los procesos se ejecutan concurrentemente

Sistemas Operativos I (00-01) Tema 3: Procesos 8


1.- Concepto de proceso
? Ejecución secuencial y ejecución concurrente.
? Ejecución secuencial: La ejecución 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.

? Ejecución concurrente: La ejecución 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 ejecución paralela.

Sistemas Operativos I (00-01) Tema 3: Procesos 9


1.- Concepto de proceso
? Proceso como unidad de asignación 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.

P1
Tiempo
de CPU

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

?Ejecución: El proceso tiene asignada una CPU, las instrucciones se


están 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 finalización de una operación de E/S (una lectura de teclado)
? la comunicación 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
Terminación
Admitido
Elegido Planificador
NUEVO TERMINADO

EN
PREPARADO EJECUCIÓN
Expulsión

Fin E/S Esperar E/S


o o evento
llegada evento
SUSPENDIDO Proceso terminado
por otro proceso

Sistemas Operativos I (00-01) Tema 3: Procesos 12


1.- Concepto de proceso
? Operaciones sobre procesos (1)
? Creación: Supone asignar todos los recursos que el proceso necesita para
su ejecución, 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).
? Terminación: Supone liberar los recursos previamente asignados al
proceso. Esta terminación puede ser:
?Terminación normal: El proceso invoca su propia terminación.
Ejemplo en UNIX: exit()
?Terminación anormal: El proceso termina por iniciativa del sistema
operativo al detectar alguna condición de error (violación de límites,
errores aritméticos) o por iniciativa de algún otro proceso.
Ejemplo en UNIX: kill() y señales.

Sistemas Operativos I (00-01) Tema 3: Procesos 13


1.- Concepto de proceso
? Operaciones sobre procesos (2):
? Suspensión: Supone pasar un proceso al estado suspendido para que
espere un evento o E/S.
?Ejemplo en UNIX: read() sobre un tubo vacío.
? Activación: Pasar un proceso al estado activo cuando se produce el
evento que esperaba.

?Ejemplo en UNIX: un proceso efectúa un write() sobre un tubo en el


que había 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)
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

Sistemas Operativos I (00-01) Tema 3: Procesos 15


Tema 3: Procesos

? Índice
1.- Concepto de proceso.

2.- Implementación de procesos.


3.- Hilos de ejecución (threads).

4.- Conceptos de planificación.

5.- Criterios de planificación.


6.- Algoritmos de planificación.

7.- Evaluación de Algoritmos.

8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01) Tema 3: Procesos 16


2.- Implementación 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 físico.

? La implementación de procesos requiere:


? Bloque de control de un proceso PCB (Process Control Block): es una
estructura de datos para administrar el proceso. Almacena información de un
proceso.

? Asignar los recursos necesarios para su ejecución, fundamentalmente la


memoria para almacenar el código, los datos y la pila.

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

Sistemas Operativos I (00-01) Tema 3: Procesos 17


2.- Implementación de procesos
? Bloque de Control de proceso (PCB):
Es una estructura de datos donde se almacenan los atributos de un proceso, es decir,
la información asociada a un proceso. En un sistema de multiprogramación se
requiere un gran cantidad de información de cada proceso para su administración.
Esta información puede agruparse en tres categorías:

? Identificación de Proceso: a cada proceso se le asigna un identificador numérico


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

? Información de estado del procesador (Contexto): Básicamente 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 ejecución
? Información de control del proceso: Información necesaria para que el sistema
operativo controle y coordine los diferentes procesos.

Sistemas Operativos I (00-01) Tema 3: Procesos 18


2.- Implementación de procesos
? Identificación de Procesos. El PCB guarda:
? Identificador de este proceso.

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


? Identificador del usuario.

? Información de estado del procesador


? Registros generales (visibles para el usuario).

? Contador de programa: contiene la dirección de la próxima instrucción a ejecutar.


? Códigos de condición: muestran el resultado de la operación aritmética o lógica más
reciente (signo, cero, acarreo, desbordamiento).

? Información de estado: Indicadores de habilitación e inhabilitación de interrupciones.


? Puntero de Pila: Cada proceso tiene una o más pilas LIFO asociadas, para almacenar
parámetros 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.- Implementación de procesos
? Información de control de proceso.
Información necesaria para que el sistema operativo controle y coordine los diferentes
procesos activos.
? Estado del proceso: preparado, en ejecución, suspendido, etc.

? Prioridad de un proceso

? Información de planificación: depende del algoritmo de planificación, 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 código, memoria de datos y memoria de pila.

Sistemas Operativos I (00-01) Tema 3: Procesos 20


2.- Implementación de procesos
? Implementación de varios procesos: Cambios de contexto

La ejecución aparentemente simultánea 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 ejecución 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 ejecución en su PCB.


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

? Actualizar la información de control de los procesos.

Sistemas Operativos I (00-01) Tema 3: Procesos 21


2.- Implementación de procesos
? Cambio de contexto
n procesadores virtuales

PCB #1 PCB #2 PCB #n

P1 contexto
contexto P2 contexto Pn contexto

(3) (2)
(1)
(4) P1 --> P2

PC P2 --> P1
1 procesador SP
CPU
físico
registros

Sistemas Operativos I (00-01) Tema 3: Procesos 22


2.- Implementación 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 utilización.

? Utilización de CPU
t

P1 P2 P3 P1

Cambios de contexto

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


Utilización de CPU =
T(P1) + T(P2) +T(P3) + 3t

Sistemas Operativos I (00-01) Tema 3: Procesos 23


2.- Implementación de procesos
? Motivos que provocan cambios de contexto:

? Terminación normal del proceso, el proceso en ejecución se acaba.

? El proceso en ejecución es suspendido en espera de una E/S o de un


evento.

? El proceso en ejecución es expulsado bien porque ha agotado la


cantidad de tiempo de CPU asignada bien porque se decide asignarla a
otro proceso más prioritario.

? El sistema se puede representar como un diagrama de colas donde

? Los círculos representan recursos


? Los rectángulos representan colas de procesos que esperan acceder a
los recursos.

Sistemas Operativos I (00-01) Tema 3: Procesos 24


2.- Implementación de procesos
? Implementación de varios procesos: Estructuras de control del sistema

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

Sistemas Operativos I (00-01) Tema 3: Procesos 25


2.- Implementación de procesos
? Implementación de varios procesos: Estructuras de control del sistema
? Los datos que el sistema utiliza para controlar la ejecución 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 mayoría de casos la siguiente información:
?Tabla de procesos
?Un puntero a la cola de PCBs de los procesos nuevos, que no están
activos y están esperando ejecución.
?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 están esperando a
que se produzca algún 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 comunicación y sincronización
de procesos
?Otras tablas y datos relacionados con la gestión de memoria y ficheros.

Sistemas Operativos I (00-01) Tema 3: Procesos 26


2.- Implementación de procesos
PCB n
ESTRUCTURAS DE
Identificador
CONTROL DEL SISTEMA PCB 3
Contexto

Estado: PREP Estado: EJEC


Proceso en
ejecución Evento: -- Evento: --

Cola de procesos ... PCB 6 PCB 1 Mapa de


preparados memoria
P. siguiente
Cola de procesos ...
nuevos P. Siguiente -
Cola de procesos

?
esperando evento i
Estado: SUSP

Vectores de Evento: i
interrupción ... 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.- Implementación de procesos.

3.- Hilos de ejecución (threads).


4.- Conceptos de planificación.

5.- Criterios de planificación.


6.- Algoritmos de planificación.

7.- Evaluación de Algoritmos.

8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01) Tema 3: Procesos 28


3.- Hilos de ejecución (Threads)
?Concepto de hilo de ejecución (thread).
Hay sistemas operativos donde un proceso puede tener internamente actividades
concurrentes llamadas hilos de ejecución.

Ejemplo:

? Un proceso UNIX
“videojuego” puede tener
un hilo de ejecución para
cada uno de los elementos
móviles de la pantalla.

Sistemas Operativos I (00-01) Tema 3: Procesos 29


3.- Hilos de ejecución (Threads)
?Concepto de hilo de ejecución (thread).

El concepto de proceso que se ha presentado incluye las dos características


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 también se le puede asignar otros recursos
(canales de E/S, dispositivos de E/S y ficheros).

? Unidad de ejecución: Un proceso es un camino de ejecución a través de


un programa. Esta ejecución puede ser intercalada con la de otros
procesos.
Estas dos características 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 ejecución (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 ejecución (proceso ligero): Actividad concurrente dentro de un


proceso (pesado). Todos los hilos de ejecución que pertenecen a un
mismo proceso comparten sus recursos (memoria, descriptores de fichero,
etc). Tiene pocos atributos y se crea rápidamente.

P1 P2

Hilos de ejecución

Sistemas Operativos I (00-01) Tema 3: Procesos 31


3.- Hilos de ejecución (Threads)
? Compartir memoria
? Los procesos UNIX no comparten
memoria (código o datos). Cada
uno tiene su propio espacio de
direcciones.

? Los hilos de ejecución de un


mismo proceso pueden tener
rutinas o variables comunes.
? No obstante, cada hilo tendrá su
propia pila donde se guardarán
las variables locales y
argumentos de invocación.

Sistemas Operativos I (00-01) Tema 3: Procesos 32


3.- Hilos de ejecución (Threads)
Los hilos de ejecución pueden implementarse de tres formas:

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

Sistemas Operativos I (00-01) Tema 3: Procesos 33


3.- Hilos de ejecución (Threads)
•Implementación de hilos
Hilos a nivel de usuario

Un programa, Un programa,
muchos hilos muchos hilos

Soporte en Soporte en
ejecución del ejecución del
lenguaje lenguaje

Núcleo del SO

= Espacio de direcciones = construcción = proceso o hilo del SO


lingüística o hilo
a nivel usuario

Sistemas Operativos I (00-01) Tema 3: Procesos 34


3.- Hilos de ejecución (Threads)
? Implementación de hilos de Hilos a nivel de núcleo
ejecución
? Hilos a nivel del núcleo Un programa, Un programa,
(kernel-level threads): muchos hilos muchos hilos

? El sistema operativo soporta hilos de


ejecución y proporciona un conjunto Soporte en Soporte en
ejecución del ejecución del
de llamadas al sistema para su lenguaje lenguaje
manipulación.
? El sistema crea un hilo de ejecución
por cada hilo a nivel de usuario.
? Son la unidad de planificación del Núcleo del SO
sistema.
= Espacio de direcciones
? El bloqueo y activación de hilos corre
a cargo del núcleo.
= construcción
? Los cambios de contexto son lingüística o hilo
manejados por el kernel y son unas a nivel usuario
10 veces más lentos que en el caso
= proceso o hilo del SO
de los hilos de usuario.

Sistemas Operativos I (00-01) Tema 3: Procesos 35


3.- Hilos de ejecución (Threads)
? Implementación de hilos
de ejecución Un programa, muchos hilos

? Aproximación híbrida: u1 u2

? Se implementan las dos


clases de hilos anteriores. Soporte en ejecución del lenguaje
? El sistema operativo
permite más de un hilo por
proceso.
k1
? El soporte del lenguaje de
programación utiliza un Núcleo del SO
hilo del núcleo para
implementar un grupo de
hilos de usuario. = Espacio de direcciones

? Proporciona flexibilidad y = construcción


el máximo rendimiento lingüística o hilo
potencial al programador a nivel usuario
de aplicaciones. = proceso o hilo del SO

Sistemas Operativos I (00-01) Tema 3: Procesos 36


3.- Hilos de ejecución (threads)
? Utilización de hilos de ejecución

Los hilos de ejecución pueden ser creados y manejados:


? Utilizando un lenguaje de programación convencional y llamadas al
sistema.

?Ejemplo: C y threads en POSIX


? Utilizando construcciones lingüísticas (o clases) de un lenguaje de
programación que admita concurrencia

? Ejemplo: Tareas en Ada95, threads en Java

Sistemas Operativos I (00-01) Tema 3: Procesos 37


3.- Hilos de ejecución (threads)
? Threads en POSIX: llamadas básicas

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.

pthread_join (thread_id) Suspende la ejecución 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 ejecución (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
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);
}}

Sistemas Operativos I (00-01) Tema 3: Procesos 39


3.- Threads en Ada: Declaración

? Ada permite la programación de


task
tasktype
typeNiño;
Niño;
actividades concurrentes.
? La facilidad Ada que permite task
taskbody
bodyNiño
Niño
programar estas actividades es el tipo isis
Sueño:
Sueño:Boolean;
Boolean;
de datos task.
Edad:
Edad: Natural;
Natural;
? El tipo tarea debe ser especificado en begin
begin
primer lugar y posteriormente loop
loop
implementado. Dormir;
Dormir;
loop
loop
? Las tareas Ada comparten memoria y Comer;
Comer;
se comunican y sincronizan mediante Jugar_O_Incordiar;
Jugar_O_Incordiar;
citas y/o objetos protegidos. exit
exitwhen
whenSueño
Sueño
end
endloop;
loop;
? Pueden declararse objetos tarea exit
exitwhen
whenEdad
Edad>>...
...
directamente omitiendo type. En este end
endloop;
loop;
caso no pueden definirse variables. end Niño;
end Niño;
? Cada tarea dispone de una copia de Victor,Santiago,Gabriela:
Victor,Santiago,Gabriela:Niño;
Niño;
las variables locales declaradas.

Sistemas Operativos I (00-01) Tema 3: Procesos 40


3.Threads en Ada: activación y finalización

? Cuando un programa Ada procedure


procedureGuarderia
Guarderiaisis
comienza, se crea la tarea principal,
la cual ejecuta el subprograma task
tasktype
typeNiño;
Niño;
principal.
task
taskbody
bodyNiño
Niño
? Cuando se declara una variable del isis
tipo task, el soporte en tiempo de ------
------
ejecución del lenguaje Ada crea un end
endNiño;
Niño;
hilo de ejecución (proceso ligero) Victor,
Victor,
dentro del proceso que está Santiago,
Santiago,
ejecutando el programa. Gabriela:
Gabriela:Niño;
Niño; Inician
Inician
? Una tarea comienza su ejecución Guarderia
Guarderiayy
cuando comienza la ejecución de la begin los
lostres
tresniños
begin niños
unidad (maestra) donde se declara.
Guarderia
Guarderia
? La unidad de ejecución maestra
----unidad
unidadmaestra;
maestra; espera
esperalala
sólo finaliza cuando finalizan todas terminación
terminación
las tareas que dependen de ella. de
delos
lostres
tres
end
endGuarderia;
Guarderia; niños
niños
Sistemas Operativos I (00-01) Tema 3: Procesos 41
Tema 3: Procesos

? Índice
1.- Concepto de proceso.
2.- Implementación de procesos.

3.- Hilos de ejecución (threads).

4.- Conceptos de planificación.


5.- Criterios de planificación.
6.- Algoritmos de planificación.

7.- Evaluación de Algoritmos.

8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01) Tema 3: Procesos 42


4.- Concepto de planificación
? Recursos reutilizables en serie

? Escasez de recursos: el número de recursos es inferior al número de


procesos que compiten por ellos.

? Recursos reutilizables en serie: aquellos que sólo pueden estar


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

? Planificación de recursos: Con recursos reutilizables en serie el s.o.


tiene que aplicar una política para asignar recursos a los procesos.

Sistemas Operativos I (00-01) Tema 3: Procesos 43


4.- Concepto de planificación
P1
1 P2
Salvar contexto en PCB #1
Ejecución
Interrup. o PLANIFICADOR:
-- Tratamiento
llamada al sist escoger nuevo proceso
Ejecución

Cargar contexto desde PCB #2 Interrup. o


2
llamada al
sistema

Salvar contexto en PCB #2


3
PLANIFICADOR:
P3 -- Tratamiento
escoger nuevo proceso
4

Cargar contexto desde PCB #3


Ejecución
Sistema operativo

Sistemas Operativos I (00-01) Tema 3: Procesos 44


4.- Concepto de planificación
? 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 política.

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
Proceso largo plazo
nuevo Planificador a
Cola de procesos corto plazo Proceso
esperando ejecución terminado

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

Sistemas Operativos I (00-01) Tema 3: Procesos 46


4.- Concepto de planificación
? Planificador a largo plazo

? En un sistema de procesos por lotes, los procesos recién 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 multiprogramación.
?Cuál va a ser el siguiente proceso a admitir: algoritmo FCFS (firts_come, first-
served), tener en cuenta prioridades, tiempos de ejecución esperados,
exigencias E/S.
? Controla el grado de multiprogramación: conjunto de procesos que
residen simultáneamente en memoria y se ejecutan concurrentemente.
? Selecciona procesos de la cola de procesos que están esperando ser
ejecutados y los carga en memoria.

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


la creación de nuevos procesos en el sistema.
Sistemas Operativos I (00-01) Tema 3: Procesos 47
4.- Concepto de planificación
? 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 multiprogramación 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 más tarde. El proceso continuará su ejecución a partir del punto
donde se había quedado.

? A este esquema comúnmente se le denomina “swapping”.

Sistemas Operativos I (00-01) Tema 3: Procesos 48


4.- Concepto de planificación
? Planificador a corto plazo

? Selecciona un proceso de la cola de procesos preparados para ejecución


y le asigna la CPU.

? Se ejecuta con mucha frecuencia. El proceso seleccionado quizás se


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

? Se ejecuta cuando ocurre un evento que conduce a la interrupción del


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

Sistemas Operativos I (00-01) Tema 3: Procesos 49


4.- Concepto de planificación
? 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 cálculos 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 más tiempo en realizar


E/S que en efectuar cálculos.
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.- Implementación de procesos.

3.- Hilos de ejecución (threads).


4.- Conceptos de planificación.

5.- Criterios de planificación.


6.- Algoritmos de planificación.

7.- Evaluación de Algoritmos.


8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01) Tema 3: Procesos 51


5.- Criterios de planificación
? Criterios de planificación
Algunos de los criterios y características que un planificador debe conseguir son:

? 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 salida - Tiempo de entrada = ? TCPU + ? TE/S + ? TColas

Sistemas Operativos I (00-01) Tema 3: Procesos 52


5.- Criterios de planificación
? Criterios de planificación (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 proporción justa de CPU. Es
decir, que los procesos sean tratados de manera igualitaria. Lo
opuesto a equidad sería inanición.

Sistemas Operativos I (00-01) Tema 3: Procesos 53


5.- Criterios de planificación
? Optimización de los criterios de planificación.

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 utilización 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 multiprogramación en sí misma supone una mejora de muchos de los


criterios anteriores respecto a la ejecución secuencial.
? Los algoritmos de planificación también tienen como objetivo mejorar
algunos de los criterios mencionados.

Sistemas Operativos I (00-01) Tema 3: Procesos 54


5.- Criterios de planificación
?Ejemplo: SIN MULTIPROGRAMACIÓN Utilización
UtilizaciónCPU
CPU==6/10
6/10==60
60
Productividad
Productividad = 2 trabajos/10==0.2
= 2 trabajos/10 0.2
Tiempo
Tiempode deretorno
retorno==(5+10)/2
(5+10)/2==7.5
7.5
Proceso P0 Proceso P1

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

CPU E/S CPU E/S CPU

Sistemas Operativos I (00-01) Tema 3: Procesos 55


5.- Criterios de planificación
? Histograma de intervalos de tiempo de CPU
frecuencia
? Gran número de
160
ráfagas de CPU de
corta duración 140

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

Sistemas Operativos I (00-01) Tema 3: Procesos 56


5.- Criterios de planificación
? Para mejorar la utilización de la CPU se podría:

? Aumentar el grado de multiprogramación (mientras la memoria lo permita).


? Adoptar un algoritmo de planificación adecuado que optimice el orden de
ejecución de los procesos.

? Para conseguir un algoritmo de planificación óptimo se podría:


? Determinar qué parámetros 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.- Implementación de procesos.

3.- Hilos de ejecución (threads).


4.- Conceptos de planificación.

5.- Criterios de planificación.

6.- Algoritmos de planificación.


7.- Evaluación de Algoritmos.
8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01) Tema 3: Procesos 58


6.- Algoritmos de planificación
? Objetivo

Decidir a cuál de los procesos que están en la cola de procesos listos se le


asignará la CPU.

? Clasificación de algoritmos de planificación:


? Por orden de llegada (FCFS).

? Circular (RR, round-robin)

? Por prioridades

?Sin expulsión (“Non preemptive”) / Con expulsión (“Preemptive”)


?Estáticos / Dinámicos
? Combinación de algoritmos: Clases de prioridades.

Sistemas Operativos I (00-01) Tema 3: Procesos 59


6.- Algoritmos de planificación
? 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 T. llegada T. CPU


P1 0 24
P2 0 3
P3 0 3

Caso 1) Orden de llegada


P1, P2, P3
P1 P2 P3
T. de espera medio:
(0 + 24 + 27) / 3 = 17 0 24 27 30

Caso 2) Orden de llegada


P2, P3, P1
P2 P3 P1
T. de espera medio: 0 3 6 30
(6 + 0 + 3) / 3 = 3

Sistemas Operativos I (00-01) Tema 3: Procesos 60


6.- Algoritmos de planificación
? Servicio por orden de llegada (FCFS : “first-come, first-served”)

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

Sistemas Operativos I (00-01) Tema 3: Procesos 61


6.- Algoritmos de planificación
? Prioridad al trabajo más 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 expulsión: 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 planificación
? Ejemplo: Prioridad al trabajo más breve (SJF).

Procesos Instante de llegada Duración


P1 0 7
P2 2 4
P3 4 1
P4 5 4
SJF (sin expulsión)

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


P1 P3 P2 P4

0 7 8 12 16

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

Sistemas Operativos I (00-01) Tema 3: Procesos 63


6.- Algoritmos de planificación
? Variante con expulsión 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 ráfaga de CPU en curso.

? Variante con expulsión de SJF: Si llega un proceso con un intervalo de


CPU inferior al tiempo que le falta al proceso en ejecución 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 planificación
? Ejemplo del SRTF. Procesos T. Llegada Duración
P1 0 7
P2 2 4
P3 4 1
Diagrama de Gantt P4 5 4

P1 P2 P3 P2 P4 P1

0 2 4 5 7 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 planificación
? SRTF: Shortest Remaining Time First

? Ventajas
? SRTF optimiza la media de tiempo de espera.

? Inconvenientes

? El tiempo del siguiente intervalo de CPU es difícil de predecir. Esto lo


hace difícil de implementar para un planificador a corto plazo.(En los
sistemas por lotes el usuario puede aportar información).

? Posibilidad de inanición: los trabajos largos no se ejecutarán mientras


haya trabajos cortos.

Sistemas Operativos I (00-01) Tema 3: Procesos 66


6.- Algoritmos de planificación
? Planificación SJF/SRTF
Aunque no se conoce la longitud de la siguiente ráfaga se puede predecir su valor
esperando que sea de longitud similar a las anteriores.

? Estimación del siguiente intervalo de CPU


Se utiliza la media exponencial:

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.

Sistemas Operativos I (00-01) Tema 3: Procesos 67


6.- Algoritmos de planificación
? Planificación SJF/SRTF
? Estimación del siguiente intervalo de CPU

Desarrollando la fórmula y sustituyendo T n+1 por tn llegamos a:

T n+1 = ? 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 término 12
sucesivo tiene menos peso que el anterior.
10

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

Sistemas Operativos I (00-01) Tema 3: Procesos 68


6.- Algoritmos de planificación
? Planificación por prioridades

? Se asocia a cada proceso un número (entero), llamado prioridad de


acuerdo con algún criterio.

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


número).

? 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 planificación
? Ejemplo: Procesos T. Llegada Duración Prioridad
P1 0 7 5
? Planificación prioridades
P2 2 4 10
P3 4 1 15
P4 5 4 10
Diagrama de Gantt

P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16

Cronograma por procesos

P1
P2
P3
P4

Sistemas Operativos I (00-01) Tema 3: Procesos 70


6.- Algoritmos de planificación
? Planificación por Prioridades: Variantes

? Algoritmos con expulsión/sin expulsión.


? Prioridades estáticas/dinámicas.

?Prioridades estáticas: La prioridad se asigna antes de la ejecución y


no cambia.
?Prioridades dinámicas: La prioridad cambia con el tiempo.

Sistemas Operativos I (00-01) Tema 3: Procesos 71


6.- Algoritmos de planificación
? Planificación por prioridades

? Problema de inanición
Un algoritmo de prioridades es inherentemente poco equitativo. El problema extremo
es:

? Inanición: Los procesos con baja prioridad no se ejecutan nunca.


? Solución:

? Actualización de prioridades: Esquema de prioridades dinámicas, donde la


prioridad de un proceso aumenta con el tiempo de espera.

Sistemas Operativos I (00-01) Tema 3: Procesos 72


6.- Algoritmos de planificación
? Planificación circular ( RR: Round Robin )

? A cada proceso se le asigna una pequeña 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 añadido 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 máximo.

Sistemas Operativos I (00-01) Tema 3: Procesos 73


6.- Algoritmos de planificación
? Ejemplo: Procesos T. Llegada Duración
? Planificación circular P1 0 16
P2 0 3
Quantum q=4
P3 0 11
Diagrama de Gantt

P1 P2 P3 P1 P3 P1 P3 P1

0 4 7 11 15 19 23 26 30

Cronograma por procesos

P1
P2
P3

Sistemas Operativos I (00-01) Tema 3: Procesos 74


6.- Algoritmos de planificación
? Planificación circular

? Valor del “quantum” de tiempo


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

? Para q pequeños: q ha de ser grande respecto al tiempo necesario para


el cambio de contexto, sino la sobrecarga introducida es muy alta.

Regla práctica: 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 planificación
? Planificación circular

? Propiedades:
? Equitativo.

? El tiempo de espera máximo está limitado por (n -1)q, antes de recibir su


siguiente cuanto de tiempo.

? El tiempo de retorno medio varía 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 planificación
? Planificación con múltiples colas

Los procesos se pueden clasificar fácilmente 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 planificación.

? Ha de haber un algoritmo de planificación entre colas.

Sistemas Operativos I (00-01) Tema 3: Procesos 77


6.- Algoritmos de planificación
? Ejemplo de algoritmo de
planificación entre colas:
? Prioridades estáticas: Los
procesos en cola con menor Procesos
FCFS (prio. 10)
prioridad no se ejecutan Sistema
mientras haya procesos en
Usuarios
cola con mayor prioridad. PRIO (prio. 8)
privilegiados
Posibilidad de inanición.
Procesos
? Cuotas de tiempo: Cada Interactivos
RR (prio. 6)
cola está asignada a un
porcentaje del tiempo de Procesos
SJF (prio. 4)
CPU. Ejemplo: el 80% a Por Lotes
trabajos interactivos y el 20%
a trabajos por lotes. Colas de procesos preparados

Sistemas Operativos I (00-01) Tema 3: Procesos 78


6.- Algoritmos de planificación
? Planificación con múltiples colas realimentadas.

? Existen diferentes colas de procesos preparados.

? Cada cola posee:

?Política de planificación.
?Una prioridad asignada.
? Un proceso puede cambiar de cola de acuerdo con un esquema de
actualización 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 utilización de la CPU elevado son
degradados a una cola con prioridad inferior.

Sistemas Operativos I (00-01) Tema 3: Procesos 79


6.- Algoritmos de planificación
? Planificación con múltiples 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 planificación
? Múltiples colas realimentadas

? Parámetros de las colas realimentadas:


? Número de colas.

? Prioridad de cada cola.

? Método de promoción de un proceso.

? Método de degradación de un proceso.

? Método para determinar la cola de entrada de un proceso.

Sistemas Operativos I (00-01) Tema 3: Procesos 81


6.- Algoritmos de planificación
Planificación en UNIX SVR2
? Algoritmo de colas multinivel realimentadas.
? La prioridad es mayor cuanto menor sea el número 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 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.

Sistemas Operativos I (00-01) Tema 3: Procesos 82


6.- Algoritmos de planificación
Planificación en UNIX SVR2
? Las colas tienen un algoritmo RR con quantum de 1seg.
? Asignación dinámica de prioridades, de acuerdo con:
? El proceso en ejecución 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 planificación
Planificación en UNIX SVR2
? Cambios entre modo usuario y núcleo.

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


a menos que deba suspenderse.

? Cuando un proceso es suspendido en el núcleo adquiere una prioridad


de núcleo (< 60) que únicamente depende de la razón que le ha llevado a
suspenderse y no de su prioridad de usuario.
?Ejemplo: (A>>B, significa que A es más prioritario que B, y por tanto A tiene
menor número de prioridad que B)
?Espera de operación en disco >> Espera de entrada de teclado >> Espera de
finalización de escritura en pantalla >> Espera de terminación de proceso hijo
(ver figura transparencia 85).
? Cuando un proceso finaliza una llamada al sistema, recupera la prioridad
que tenía antes de suspenderse dentro del núcleo.

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


mientras se ejecute dentro del núcleo.
Sistemas Operativos I (00-01) Tema 3: Procesos 84
6.- Algoritmos de planificación
Planificación en UNIX
Prioridad
.
más baja .
.

63 Prioridad de usuario 3 Procesos esperando


62 Prioridad de usuario 2 en modo usuario

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

Sistemas Operativos I (00-01) Tema 3: Procesos 85


Planificación en UNIX
Tiempo Proceso A Proceso B Proceso C ? SUPUESTOS:
Prioridad t. CPU Prioridad t. CPU Prioridad t. CPU
0 60 0 60 0 60 0 ? A, B, C se crean simult.
1 Los procesos no hacen
. llamadas al sistema
60
1 75 30 60 0 60 0 ? Prioridad inicial =
1 Prioridad base = 60
.
60 ? El menor valor para la
2 67 15 75 30 60 0 prioridad de usuario es
1 el valor base (60), que a
. su vez indica la clase de
60 mayor prioridad.
3 63 7 67 15 75 30
8 ? El reloj interrumpe al
. sistema 60 veces/seg.
67 ? Cada segundo calcula:
4 76 33 63 7 67 15
8 t.CPU= t.CPU/2
.
67 prioridad= (t.CPU/2) + 60
5 68 16 76 33 63 7

Sistemas Operativos I (00-01) Tema 3: Procesos 86


6.- Algoritmos de planificación
? Un ejemplo: Planificación de hilos

?
? Algoritmo del sistema operativo

?
? Round Robin (RR)

cuanto = 2 t10 I/O

P1 t11
?
? Algoritmo
Algoritmo biblioteca
biblioteca threads
?
? Turno
Turno de
de llegada
llegada (FCFS)
(FCFS) t12

0 1 2 3

P2 t20

0 5

Sistemas Operativos I (00-01) Tema 3: Procesos 87


6.- Algoritmos de planificación
? Un ejemplo: Planificación de hilos

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

t10 t11 t12 t20 t10 t11 t20


Usuario

0 1 3 4 6 7 8 11

Núcleo

tn1 tn2 tn3 tn4 tn1 tn2 tn4

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

t10 t20 t11 t20 t11 t12 t20 t10


Usuario

0 1 3 5 7 8 9 10 11

Núcleo

tn1 tn2 tn1 tn2 tn1 tn2 tn1

t10
t10 I/O t11 t20
t12
P1 P2

P1 t11

t12 P2 t20 Núcleo


_

0 1 2 3 0 5
tn1 tn2

Sistemas Operativos I (00-01) Tema 3: Procesos 90


6.- Algoritmos de planificación
? Planificación de hilos en la aproximación híbrida

t10 t20 t11 t12 t10 t20 t11 t20


Usuario

0 1 3 5 7 8 9 10 11

Núcleo

tn1 tn2 tn3 tn1 tn2 tn3 tn2

t10
t11 t20
t12
t10 I/O
P1 P2

P1 t11

t12 P2 t20 Núcleo


_

0 1 2 3 0 5
tn1 tn3 tn2

Sistemas Operativos I (00-01) Tema 3: Procesos 91


Tema 3: Procesos

? Índice
1.- Concepto de proceso.
2.- Implementación de procesos.

3.- Hilos de ejecución (threads).


4.- Conceptos de planificación.

5.- Criterios de planificación.

6.- Algoritmos de planificación.

7.- Evaluación de Algoritmos.


8.- S.O. dirigido por eventos.

Sistemas Operativos I (00-01) Tema 3: Procesos 92


7.- Evaluación de algoritmos
? Procesos en la selección de un algoritmo:

? (1) Selección de criterios (utilización CPU, t. respuesta, etc.).

? (2) Estudiar la adaptación de cada algoritmo a esos criterios.

Es necesario evaluar para cada sistema cual es el algoritmo de planificación


más adecuado.

Sistemas Operativos I (00-01) Tema 3: Procesos 93


7.- Evaluación de algoritmos
? Existen diferentes métodos para llevar a cabo dicha evaluación:

? Evaluación analítica: Dada la carga de trabajos producir una fórmula


matemática del rendimiento para cada algoritmo de planificación.

?Modelo determinista: Evaluar el rendimiento para cada caso


particular de carga.
?Modelos de colas: Caracterizar la carga con una distribución
estadística (distribución exponencial).
– Caracterizar la tasa de llegada de trabajos.
– Caracterizar el tiempo de servicio de un recurso.
– Hacer análisis estadístico de las redes de colas.
Ejemplo: Fórmula de Little n=? *E
n: tamaño 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.- Implementación de procesos.

3.- Hilos de ejecución (threads).


4.- Conceptos de planificación.

5.- Criterios de planificación.

6.- Algoritmos de planificación.


7.- Evaluación 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 interrupción de un dispositivo de E/S.


? Una interrupción de reloj.

? Una excepción provocada por el código 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 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

Sistemas Operativos I (00-01) Tema 3: Procesos 97


Flujo de control del S.O.
Interrupción de Excepción del Llamada al
Reloj
periférico Procesador Sistema
Activación del
Sistema Operativo

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.

Sistemas Operativos I (00-01) Tema 3: Procesos 98

You might also like