Vous êtes sur la page 1sur 21

CONTENIDO

SISTEMAS OPERATIVOS I

1.

UNIDAD II

2.
3.

INSTITUTO TECNOLGICO
DE MORELIA

PROCESOS Y
SUBPROCESOS

4.

5.

Departamento de Sistemas y
Computacin

Procesos
Subprocesos
Comunicacin entre procesos
Problemas clsicos de comunicacin entre
procesos
Calendarizacin

M.C. Benito Snchez Raya


Disponible en: www.benito.org.mx

sanchezraya@hotmail.com

1. PROCESOS
z
z

1.1. El Modelo de procesos

Pseudoparalelismo
Paralelismo en sistemas multiprocesador

Multiprogramacin conmutacin entre


procesos
Priorizado de procesos
Calendarizacin de procesos

Se crean con:

z
z

a) Multiprogramacin b) Procesos secuenciales independientes


c) Slo un programa activo a la vez

1.2. Creacin de procesos


a)

Al inicializar el sistema
z
z

b)
c)

Comando o aplicacin

Inicio de un trabajo por lotes


z

En llamadas al sistema
Solicitud de usuario para crearlo
z

d)

Win Servicios, Linux Demonios


Ya sea en primer o segundo plano

Ejecucin de trabajos con la creacin de


procesos

Fork + execve
C
CreateProcess
P

Padre e hijo tienen distintos espacios de


memoria
Probablemente compartan el cdigo del
programa

1.3. Terminacin de procesos


a)

Terminacin normal (voluntaria)


z

b)

Terminado por otro proceso (involuntaria)


z

E it Unix,
Exit
U i E
ExitProcess
itP
Win
Wi
z

Terminacin por error (voluntaria)


z

c)

d)

Cuando termina su trabajo

Kill de otro proceso en Unix, TerminateProcess


en Win
Win.
Deben tener autorizacin para hacerlo.

Terminacin por cdigo

Error fatal (involuntaria)


z

Instruccin no permitida, divisin por 0,


referencia a memoria inexistente, etc

1.4. Jerarqua de procesos


z
z

1.5. Estados de procesos

En Win no hay jerarqua de procesos


En Unix:

Se crea una jerarqua de rbol


Los procesos padres no pueden desheredar a los hijos
Ejemplo:

b)
c)

Al iniciar init (imagen de arranque) lee un archivo que le indica


cuantas terminales hay, generando un proceso nuevo por cada
terminal.
Los procesos de las terminales esperan a que alguien inicie
sesin.
Si alguien inicia sesin el shell espera comandos para iniciar
procesos por cada comando, y as sucesivamente.

Estados:
a)

En ejecucin Usando la CPU


Li
Listo
En
E espera que se d
desocupe lla CPU
Bloqueado En espera de que suceda cierto
suceso externo
1.

El proceso se bloquea para esperar


entrada

2.

El calendarizador escoge otro proceso

3.

El calendarizador escoge ste proceso

4.

Ya hay entrada disponible

10

1.6. Implementacin de procesos


Ejemplo:
z El comando cat file1 file2 file3 | grep finanzas

Se concatenan tres archivos y grep selecciona


las entradas que contienen la palabra finanzas
Grep queda bloqueado hasta que cat termina.

El SO mantiene la tabla de procesos,


tambin llamada bloques de control de
procesos la cual contiene:
procesos,
z
z
z
z
z
z

Estado del proceso


Su contador del programa
Apuntador de pila
Asignacin de memoria
Estado de sus archivos abiertos
Informacin de calendarizacin

El calendarizador y los procesos

11

12

Campos de una tabla de procesos:


a)

Administracin de procesos

Registros
Contador de programa
Palabra del estado del
programa
Apuntador de pila
Estado del proceso
Prioridad
Parametros de calendarizacin
ID de proceso

Campos de una tabla de procesos:


b)

Proceso padre
Grupo de procesos
S l
Seales
Hora de inicio del
proceso
Tiempo de CPU
consumido
Tiempo de CPU de
los hijos
Hora de la siguiente
alarma

13

Administracin de memoria

c)

Apuntador a segmento de texto


Apuntador a segmento de datos
Apuntador a segmento de pila

Administracin de archivos

Directorio raz
Directorio de trabajo
Descriptores de archivo
ID de usuario
ID de grupo

14

Vector de interrupcin

Cuando ocurre una interrupcin


z

Contiene la direccin del procedimiento de


servicio de interrupcin de cada dispositivo de
E/S.
Las interrupciones de vaciado de pilas, guardar
registros, lo hace una pequea rutina en
ensamblador

z
z
z
z
z
z
z

15

16

2. SUBPROCESOS
z

2.1. El modelo de subprocesos

Antes en los SO un proceso sola tener:

Proceso:

Un espacio de direcciones
U slo
Un
l subproceso
b
d
de control.l

Es un agrupamiento de recursos relacionados, para una


j administracin.
mejor
z

Ahora es comn tener:

17

El hardware mete el contador de programa en la pila, etc.


El hardware carga
g un nuevo contador de programa
g
tomndolo
del vector de interrupcin.
Un procedimiento en ensamblador guarda registros
Un procedimiento en ensamblador crea la nueva pila
Se ejecuta el servicio de interrupcin en C (lee entradas y las
pone en un bfer)
El calendarizador decide que programa ejecutara ahora
Un procedimiento en C regresa al cdigo ensamblador
Un procedimiento en ensamblador arranca el nuevo proceso
actual

Varios subprocesos de control en el mismo


espacio de direcciones, operando en forma
pseudoparalela como si fueran procesos
individuales.

Espacio de direcciones, variables globales, archivos abiertos,


procesos hijos, alarmas pendientes, seales, etc.

Subproceso:

Son las entidades que se calendarizan para ejecutarse en


el CPU
z
z

Tratan de simular paralelismo


Elementos: contador de programa, registros, pila, etc.

18

La proteccin entre subprocesos es muy


difcil llevarla a cabo y no es necesaria.

U proceso crea subprocesos


Un
b
para colaborar,
l b
no
para daarse.
Los subprocesos se usan para colaborar en una
misma tarea en forma paralela.

a) Tres procesos c/u con un subproceso b) Un proceso con tres subprocesos.

19

20

Elementos por proceso que comparten


sus subprocesos:

Elementos privados de cada subproceso:

Espacio de direcciones
Variables globales
Archivos abiertos
Procesos hijos
Alarmas pendientes
Seales y manejadores de seales
Informacin contable

21

Contador de programa
R i
Registros
Pila
Estado

22

Pila del subproceso:


z

z
z

23

Procedimiento en
ejecucin, que todava no
se retorna
Variables locales
Direccin de retorno del
procedimiento

Cada subproceso tiene su propia pila

Procedimientos de biblioteca de
subprocesos:

Thread_create
Th
d
t
Thread_exit
Thread_wait Bloqueado
Thread_yield Cede el CPU al siguiente

24

2.2. Uso de subprocesos


z

Objetivos:

Ejemplos:
1.

Descomponer una aplicacin en mltiples subprocesos


que se ejecuten
j
casi en p
paralelo.
secuenciales q
Son ms fciles de crear y destruir
Mayor desempeo al traslapar actividades
Indispensables en sistemas multiprocesador
En aplicaciones que requieren mucho CPU y que casi no se
bloquean, no se recomiendan subprocesos

Un procesador de textos:
z
z
z
z

2.

Un antivirus:
z

Centinelas en:

(calcular nmero primos, juego de ajedrez, etc)

25

Correccin ortogrfica en segundo plano.


Paginacin en segundo plano
Respaldo automtico cada cierto tiempo
Lectura del teclado

E-mail
Mensajera
Intrusos
Unidades extrables
Actualizaciones (LiveUpdate)
Vigencia licencia contrato

26

3.

Servidor Web

Web Cach
Mantiene en la memoria p
principal
p las p
pginas
g
ms
visitadas del sitio.

Hay dos tipos de subprocesos


Despachador
b) Trabajador
a)

27

28

29

30

Cuando llega una solicitud el subproceso despachador


busca un subproceso trabajador desocupado
(bloqueado) para mandarle la peticin, entrando este a
t d listo
li t para ser calendarizado.
l d i d
estado
Si el subproceso trabajador encuentra la pgina
solicitada en cach la enva.
Si no encuentra la pgina hace una operacin read a
disco y se bloquea, cediendo el CPU al siguiente
subproceso listo.

Despachador

Trabajador

2.3. Implementacin de subprocesos


en espacio de usuario
z
z
z
z
z
z

Inicialmente as trabajaban los SO


Los subprocesos se ejecutan en modo de usuario
Cada proceso requiere su propia tabla de
subprocesos
La conmutacin entre subprocesos no requiere
llamadas al kernel y suele ser ms rpida.
Tienen mayor desempeo
Cada proceso puede tener su propio algoritmo de
calendarizacin

31

z
z

En llamadas bloqueantes podra detener a


todos los dems subprocesos.
Si un subproceso empieza a ejecutarse,
ningn otro subproceso (del mismo proceso)
podr hacerlo a menos que le cedan el CPU.
Si un subproceso hace una llamada al
sistema y se bloquea, es probable que
bloquee a todo el proceso.

32

2.4. Implementacin de subprocesos


en el Kernel
z
z

z
z

El kernel maneja las tablas de procesos y


subprocesos
Cuando un subproceso
p
se bloquea,
q
, el kernel p
puede
ceder el CPU a un subproceso del mismo proceso o
de otro proceso.
Las llamadas al sistemas son ms costosas
Es ms costoso crear y destruir subprocesos en el
kernel.

33

Sistema de subprocesos en el nivel de usuario

Se reciclan o reusan las estructuras de los subprocesos.


No se destruyen, solo se marcan como no ejecutables.

34

2.5. Implementaciones Hbridas

35

Sistema de subprocesos en el kernel

36

Mltiples subprocesos de usuario en un subproceso de kernel

2.6. Activaciones del calendarizador


z
z

Es una implementacin hbrida de ambas


implementaciones.
Trata de usar la funcionalidad de los procesos kernel
pero con el desempeo y flexibilidad de los modo
usuario
Si un subproceso se bloquea con una llamada al
sistema, no debiera bloquearse el proceso, sino
darle el control a un subproceso del mismo proceso.
El kernel asigna cierto nmero de CPUs virtuales a
cada proceso, y el sistema le asigna subprocesos a
los procesadores.

z
z

Consiste en que el kernel informa al proceso


cuando uno de sus subprocesos se ha bloqueado

El demasiado uso de llamadas directas es


una desventaja.

En sistemas multiprocesador seran reales los CPUs.

37

El proceso puede pedir ms CPUs o


devolver los que ya no use.
Llamada directa:

Viola inherencia de los sistemas por capas

38

2.7. Subprocesos emergentes


z

Subproceso emergente:

Subproceso que se encarga del manejo de


mensajes receive para que no quede el proceso
en modo bloqueante.

Ventaja de procesos nuevos:


z
z
z

No tienen historial
Inician desde cero
Esto agiliza su creacin

Se generan en cuanto llega un mensaje


Es mejor que sea creado en el kernel, para
mayor facilidad de acceso a los dispositivos
de E/S. Aunque podra causar ms dao en
kernel que en modo usuario.
Ejemplos:

39

Email, virus, intrusos, etc.

40

2.8. Convertir cdigo de un proceso a


cdigo de mltiples procesos
z

Detalles de implementacin que se deben


analizar para programar subprocesos.
z

41

Creacin de un subproceso cuando llega un mensaje.

a) Antes b) Despus

R i
Revisar
lla Bibli
Bibliografa.
f

42

3. COMUNICACIN ENTRE
PROCESOS
z

Objetivos:

3.1. Condiciones de competencia

Enviar informacin de un proceso a otro


N estorbarse
No
b
llos procesos entre sii
Ordenamiento correcto cuando un proceso
depende de otros

Aplica a procesos y subprocesos

43

Se originan cuando se
comparten recursos
La idea es controlar la
concurrencia
El almacenamiento
compartido puede ser:
memoria principal,
archivos, etc.

Dos procesos que quieren tener acceso a la memoria compartida al mismo tiempo

44

3.2. Regiones crticas


z
z
z

El objetivo es evitar las condiciones de


competencia
Se requiere exclusin mutua
Regin o seccin crtica:

45

Condiciones bsicas para evitar condiciones de


competencia:
1
1.

2.

Parte del programa que tiene acceso a recursos


compartidos (memoria)

3.

La idea es asegurar que dos o ms procesos


nunca estn al mismo tiempo en sus
regiones crticas.

4.

Dos procesos no pueden estar al mismo tiempo dentro de


sus regiones crticas.
No pueden hacer suposiciones sobre las velocidades ni el
nmero de CPUs.
Ningn proceso en ejecucin fuera de su regin crtica
puede bloquear a otros.
Ningn proceso deber tener que esperar de manera
indefinida para entrar en su regin crtica.

46

3.3. Exclusin mutua con espera activa


z

Se analizan diversas propuestas:


1.
2.
3.
4.
5.

Inhabilitacin de interrupciones
V i bl d
Variables
de bl
bloqueo
Alternancia estricta
Solucin de Peterson
La instruccin TSL

Todas las propuestas requieren espera activa


47

48

1.

Inhabilitacin de interrupciones

2. Variables de bloqueo

Un proceso en cuanto entra a su regin critica


inhabilita las interrupciones, para hacer los
cambios deseados sin intromisiones
No es recomendable para procesos modo
usuario.

z
z

z
z

Por el riesgo de las interrupciones

Podra ya no habilitar las interrupciones


En equipos multiprocesador solo inhabilitara su CPU y
el resto podran acceder a la memoria compartida.

49

Qu pasa si dos procesos la leen casi al mismo


tiempo?

50

3. Alternancia estricta

z
z
z

4. Solucin de Peterson

Se usa una variable que va cambiando de acuerdo al


nmero de procesos
Proceso:
z

Se inicia en 0
Slo puede entrar a la regin critica el proceso 0
Al finalizar la incrementa a 1, dndole el turno al proceso 1.
Este al finalizar la incrementa a 2 y as sucesivamente.

z
z

Puede tocarle el turno a un proceso que no esta en la regin


critica.

Se emplea el algoritmo de Peterson


Usa variables globales (compartidas)
z

Desventaja:
z

51

Un proceso la pone en 1 y entra a su regin critica.


Al finalizar la pone nuevamente en 0.

Desventaja:
z

Desventaja:
z

Uso de una variable global con valores de 0 y 1.


Si tiene
i
0
0:

Habra desperdicio en el uso del recurso compartido, y


Podra bloquear al resto de los procesos

N Nmero de procesos
Turno A quien le toca?
Interesado [N] Todos los que quieren entrar. Inicialmente
todos en 0 (FALSO).

Si dos tratan de entrar al mismo tiempo, se sobrescriben los


valores
El while es el que permite entrar a la regin critica.

52

5. La instruccin TSL (Test and Set Lock)

Probar y establecer bloqueo


Es una instruccin en hardware de algunas computadoras
multiprocesador
TSL RX, BLOQUEO

Proceso:
z
z
z
z
z

53

BLOQUEO=0 Disponible, BLOQUEO<>0 Bloqueado


Lee el contenido de la palabra de memoria BLOQUEO, y lo
coloca en el registro RX.
Despus guarda un valor distinto de cero en la palabra
BLOQUEO.
TSL cierra el bus de memoria para impedir que otros CPUs
accedan a la memoria.
Compara el registro

54

3.4. Activar y desactivar

Cuando BLOQUEO ES 0, cualquier proceso la puede poner en 1 con


TSL y hacer uso de la memoria compartida, al terminar la deja
nuevamente en 0.
Con el manejo del registro se garantiza que las operaciones son
indivisibles

55

z
z

Los mtodos anteriores requeran espera


activa
Estos mtodos se bloquean en lugar de
esperar de manera activa.

56

Productor-Consumidor
z
z
z
z

Dos procesos comparten un buffer de


tamao fijo.
El productor coloca informacin.
El consumidor la extrae.
Pueden ser m productores y n
consumidores.

57

Premisas:

Cuando el productor quiere colocar informacin y


el buffer esta lleno se debe bloquear
bloquear. Y
desbloquearse hasta que el consumidor extraiga
un valor.
Cuando el consumidor quiere extraer y el buffer
esta vaco, se bloquea hasta que el productor
coloca algn valor.

58

59

Se requiere una variable global que lleve la


cuenta de cuantos elementos hay en el buffer
(cuenta).
Cada proceso determina si el otro debe activarse
o no, de ser as lo activa.

60

10

Inconvenientes:

Podan quedarse ambos suspendidos:


z
z

z
z
z

Solucin:

Cuando el consumidor lea cuenta y antes de sleep


p sale de
ejecucin, cuenta =0.
Entonces el productor coloca un valor, cuenta =1, y despierta
a consumidor, pero como no esta bloqueado se pierde esta
llamada.
Al tomar el control el consumidor se bloquea porque se qued
con un valor de 0.
Entonces el productor llena el buffer y se bloquea tambin.
El problema fue la seal de activar que se perdi.

61

Aadir un bit de espera para activar.


z
z
z

C
Cuando
d se iintenta
t t activar
ti
un proceso que esta
t activo,
ti
se activa el bit.
Cuando el proceso quiere desactivarse se apaga el bit y
el proceso sebe seguir activo.
No sirve para ms de dos procesos.

62

3.5. Semforos

Es una variable con valores de 0 hasta n.


Soluciona la prdida del despertar.
Si el semforo = 0

Si es un valor mayor de 0

z
z

Down
z

No hay llamadas Wakeup

Hay llamadas wakeup pendientes de ejecutarse.

Si el valor es mayor
y de 0,, decrementa el semforo.
Si es igual a 0, se bloquea (desactiva).

Verificar valor, modificarlo y desactivarse se realiza en


una accin atmica.

Up
z

Sleep = down
Wakeup = up
63

Determina:

Incrementa el valor del semforo. No bloquea a ningn


proceso.

64

Si uno o ms procesos estaban inactivos, se


escoge uno al azar para que pueda continuar.
Ver ejemplo del Productor-Consumidor con
semforos.

sleep = down
wakeup
p = up
p

Down:
Decrementa semforo
0 se bloquea
Up:
Incrementa semforo

65

66

11

3.6. Mutexes
z
z
z

Mutex = Exclusin mutua


Es una variable que puede estar slo en dos
estados: Bloqueado y Desbloqueado
Desbloqueado.
Slo se requiere de un bit para representarlo

0 = Desbloqueado, !0 = Bloqueado
z

Procedimientos:

mutex_lock

mutex_lock
Mutex_unlock

67

Si ya esta bloqueado, el proceso invocador se


bloquea
Si no esta bloqueado, la llamada procede y se
accede a la regin critica.

Todos los SO ofrecen un rea de memoria


compartida a todos los procesos o pueden
usar archivos. Incluso puede ser un rea del
kernel.

68

3.7. Monitores
z
z
z
z

Evita los detalles de implementacin de los


semforos
Ver caso pgina 115
Se propone una primitiva de sincronizacin a
ms alto nivel, llamada monitor.
Monitor:

69

70

71

Coleccin de procedimientos, variables y


estructuras de datos que se agrupan en un
mdulo especial.

Los procesos pueden invocar a los


procedimientos de un monitor, pero no acceden a
sus datos ni estructuras.
La exclusin mutua la controlan manteniendo
slo un proceso activo a la vez en un monitor
El compilador trata distinto a los procedimientos
de monitores que al resto de ellos.
Cuando un proceso llama a un procedimientos de
monitor, sus primeras lneas del procedimiento
verifican si hay otro proceso dentro del monitor,
de ser as el proceso invocador se bloquea, de lo
contrario puede entrar.

72

12

Basta con convertir las regiones criticas en


monitores y el compilador se encarga.
Se puede combinar con variables de condicin:
z
z

Wait = Bloquear
Signal = Habilita a otro proceso

Para evitar dos procesos en ejecucin que


habilite signal saldr del monitor.

73

Productor consumidor con monitores

74

Java maneja monitores: synchronized.


C no tiene monitores.
Los semforos se programan
programan, los monitores no
no.

Figura siguiente:
z

75

Productor consumidor con Java

76

3.8. Transferencia de mensajes


z

Se emplean dos primitivas:

z
z
z
z

77

Send(destino, &mensaje)
Receive(origen, &mensaje)

Son llamadas al sistema, igual que monitores y


semforos.
Pueden ser bloqueantes y no bloqueantes
En una red se pueden perder los mensajes.
Implementan acuses, nmero de mensaje, timers,
etc.

78

13

Otro problema es la autentificacin


En procesos de una sola mquina, son mensajes
pequeos para el uso de registros.
registros

En la figura siguiente:
Problema productor-consumidor con N mensajes.

79

80

3.9. Barreras

Para la figura anterior:


z
z
z
z
z
z
z

Todos los mensajes tiene el mismo tamao


El SO tiene un buffer para colocar los mensajes enviados y
que no se han recibido.
Intercambian el productor-consumidor (uno vaco por uno
lleno)
La cantidad de mensajes son constantes (por lo anterior)
Emisor/receptor si uno es ms rpido que el otro, con el
intercambio de paquees se regula el trfico.
Los obliga a operar en sincrona.
MPI: Ejemplo de transferencia de mensajes.

81

z
z

Mecanismo de sincronizacin pensado para


grupos de procesos.
Cuando un proceso llega a la barrera se
bloquea, hasta que todos los procesos
hayan llegado a ella.
Ver figura 2.30.
Ejemplos: Multiplicacin de matrices
enormes, hamming para rfagas, etc.

82

4. PROBLEMAS CLSICOS DE
COMUNICACIN ENTRE PROCESOS
z

Revisar los tres problemas:


Ambos son problemas de sincronizacin
S l i
Solucionan
problemas
bl
di
distintos
i
a)
b)
c)

83

a) Procesos que se aproximan b) Se bloquean hasta que llegue el ltimo


c) Hasta que llega el ltimo se dejen pasar a todos.

Cena de los filsofos


Lectores Escritores
Barbero dormiln

84

14

4.1. Cena de los filsofos

Modela procesos que compiten para tener acceso


exclusivo a un nmero limitado de recursos
Cinco filsofos
filsofos, sentados alrededor de una mesa
circular.
Cada uno tiene un plato de espagueti
Se requieren de dos tenedores para comerlo
Entre cada plato slo hay un tenedor.
Slo comen y piensan.

85

Trata de tomar los tenedores (izq y der) uno a la vez en


q
orden.
cualquier

Si logra comer, suelta los tenedores y sigue


pensando.
Primera solucin:
z
z

Tomar tenedor izquierdo y despus el derecho, o


esperar a que se desocupe el derecho.
Podra llevar a un BI, si todos toman el izquierdo.

86

Segunda solucin:
z

Al tomar el tenedor izquierdo, verificar si el tenedor


derecho esta libre, si no lo est debe dejar el izquierdo,
i t tiempo
ti
y repetir
ti ell proceso.
esperar cierto
Esto podra causar inanicin, podran coincidir al volver
a tomarlo.

Proteger con un semforo binario.


Antes de comenzar a tomar tenedores, el filosofo
ejecuta down en mutex; al regresar los tenedores hara
un up a mutex.
Inconveniente: Slo un filosofo podra comer.

87

Cuarta solucin:
z

Tercera solucin:
z

Se usa un arreglo de estados para registrar el estatus


p
de cada filosfo en todo momento ((comiendo, pensando
y hambriento).
Un filsofo comer solo cuando ninguno de sus vecinos
lo este haciendo.
Se emplea un semforo para cada filsofo.

88

4.2. Lectores - Escritores

89

Al tener hambre:

4.3. Barbero dormiln

Modela el acceso a una base de datos


Podra haber varios lectores al mismo tiempo.
Pero si un escritor esta en la base de datos, ningn
g otro
proceso (escritor o lector) podr ingresar.
Los escritores requieren acceso exclusivo a la BD.
Si un lector esta usando la BD y llega otro u otros lectores,
estos podran ingresar.
Si un lector esta en la BD y llega un escritor este se
suspende hasta que salga el ltimo lector. Si llega otro
lector se formara atrs del escritor. Esto merma la
concurrencia.

Modela el manejo de colas, con un mostrador de atencin,


y un nmero de clientes limitado.
Es una barbera (peluquera)
El establecimiento tiene un barbero, una silla para atencin,
y varias sillas para clientes en espera.
Si no hay clientes presentes, el barbero se sienta y se
duerme.
Al llegar un cliente debe despertar al barbero.
Si llegan clientes mientras atiende a alguno de ellos, estos
se sentarn en una silla vaca (si las hay) o abandonarn el
establecimiento.

90

15

Utiliza tres semforos:


z
z
z

91

Clientes. Clientes en espera.


Barberos. Nmero de peluqueros (0 y 1).
Mutex. Controla la exclusin mutua.

Usa una variable (espera) para tener una copia


de clientes (no hay manera de leer el valor actual
de un semforo).
Una vez terminado el corte, el cliente sale, no hay
ciclo como los problemas anteriores (excepto el
barbero).

92

5.1. Introduccin a la Calendarizacin


z

En procesamiento por lotes:

En sistemas de tiempo compartido:

Con las PCs:

5. CALENDARIZACIN

93

No hay calendarizacin o es muy simple.


Requiere algoritmos complejos
Hay pocos procesos candidatos (pocas
aplicaciones)
Las CPUs son rpidas, ya no es recurso escaso.

94

Hay procesos devoradores de CPUs en PC:

En estaciones de trabajo y servidores:

z
z

Generacin de video NTSC o PAL.


Varios procesos compiten por CPU
Objetivos:

Prioridad de procesos
Eficientar el uso de la CPU
z La carga/descarga de procesos es costosa.

Rfagas de CPU alternadas con periodos de espera de E/S.


a) Proceso dedicado a la CPU b) Proceso dedicado a E/S

95

96

16

Hay procesos que se la pasan computando, mientras


otros dedican ms a E/S.
Cundo calendarizar?
1.

4.

Antes de agotar su tiempo. Se debe escoger otro listo o un


inactivo (virtual)

b)

Debe decidir cual sacar/meter una vez terminada la interrupcin

97

L d
Le
da un ti
tiempo a cada
d proceso, sii agota
t ell ti
tiempo y
no acaba se suspende, y se toma otro listo.
Requiere interrupciones de reloj.

No expropiativa

Al bloquearse un proceso
Al recibir una interrupcin
z

Expropiativa

Decidir si entra el padre o el hijo

Al terminar un proceso
z

3.

Tipos de calendarizacin
a)

Al crear un proceso
z

2.

El proceso acapara el CPU hasta que se bloquea,


acaba o lo ceda voluntariamente.
No requiere interrupciones de reloj.

98

Categoras de algoritmos de calendarizacin


1.

2.

3.

z
z

Se requiere la expropiativa, para que no acaparen el CPU (ni


procesos maliciosos lo hagan)

z
z

Casi no se requiere la expropiacin, porque son procesos


que actan sobre una sola aplicacin, y pueden tardar
mucho algunos procesos.

Rendimiento procesar el mximo de trabajos por hora.


Tiempo de retorno reducir al mnimo el lapso entre la presentacin y la
terminacin de un trabajo.
Utilizacin de CPU mantener ocupada todo el tiempo a la CPU.

Sistemas interactivos

Sistemas en tiempo real

z
z
z
z

99

Equidad dar a cada proceso una porcin equitativa del tiempo de CPU.
Cumplimiento de polticas Que se ponga en prctica la poltica establecida.
Equilibrio mantener ocupadas todas las partes del sistema, CPU y E/S.

Sistemas por lotes


z

Tiempo real

Todos los sistemas


z

Se recomienda la calendarizacin no expropiativa


p p

Interactivos

Metas de los algoritmos:

Por lotes

Tiempo de respuesta responder rpido a las solicitudes.


Proporcionalidad satisfacer las expectativas de los usuarios en tiempo.
Cumplir los plazos evitar la prdida de datos.
Predecibilidad evitar la degradacin de la calidad en sistemas multimedia.

100

5.2. Calendarizacin en sistemas por


Lotes
1.
2.
3.
4.

FIFO
Trabajo ms corto primero
Tiempo restante ms corto primero
Calendarizacin de tres niveles

1.

FIFO
z
z
z
z
z

101

FIFO: Primero en llegar primero en ser atendido


E no expropiativo
Es
i i
Hay una sola de cola de listos
Es equitativo
No recomendable para procesos muy
heterogneos en tiempo de CPU requerido.

102

17

2.

Trabajo ms corto primero


z
z
z

No expropiativo
R
Requiere
i
saber
b llos tiempos
i
d
de ejecucin
j
i por
anticipacin
Slo funciona si estn todos los trabajos
disponibles.
Tiempos de retorno:
A=8, B=12, C=16 y D=20
Promedio: 14

103

Tiempo restante ms corto primero

4.

Calendarizacin de tres niveles

Requiere conocer con anticipacin los tiempos


de ejecucin
ejecucin.
Es la versin expropiativa del mtodo anterior.
Trabajos cortos reciben buen servicio.
Ejemplo: Caja rpida de un banco.

105

106

a)

Calendarizador de admisin

b)

c)

Decide que trabajos admitir

Calendarizador de CPU

Podra ser equilibrada de trabajos a CPU y a E/S.


Podra ser los trabajos ms cortos primero.
Etc

Calendarizador de memoria

107

a) Ejecucin de orden original b) Ejecucin trabajo ms corto primero

104

3.

Tiempos de retorno:
A=4, B=8, C=12 y D=20
Promedio: 11

Cuando no caben los procesos en memoria principal se


llevan a disco.
Decide que procesos se quedan en memoria principal y
cuales se van a disco.
Determina el grado de multiprogramacin (cuantos procesos
en memoria)
Ejemplo: Si un proceso consume el 20% de CPU se podran
tener 5.

Determina cual de los procesos que estn en memoria


principal
p
p se ejecutar.
j
Aqu se puede emplear cualquier algoritmo de
calendarizacin.

108

18

5.3. Calendarizacin en sistemas


interactivos
1.
2.
3.
4.
5.
6.
7.

Calendarizacin por turno circular


Calendarizacin por prioridades
Mltiples colas
Proceso ms corto primero
Calendarizacin garantizada
Calendarizacin por lotera
Calendarizacin por porcin equitativa

109

1.

Calendarizacin por turno circular

Ejemplo:

La conmutacin de paquetes requiere un gasto


administrativo

En cuantos grandes podra haber mucha espera.


Cuanto aceptable sera entre 20 a 50 ms.

Calendarizacin por prioridades

2.

Cuanto de 4 ms
Gasto administrativo de 1 ms
Estara consumiendo el 20% en gastos administrativos.

a) Lista de procesos ejecutables b) Lista de procesos despus de que B gasta su cuanto

A cada proceso se le da una prioridad


De los listos
listos, el de mayor prioridad se ejecuta
primero.
A cada proceso se le da un cuanto mximo
Al estarse ejecutando su prioridad debe ir
decrementandose.
Comando nice de Unix, baja la prioridad de un
proceso.

112

3.

Se debe garantizar que la clase ms baja no


muera de inanicin.

Mltiples colas

Se establecen clases de prioridad


Los de la clase ms alta se ejecutan durante un cuanto,
los de la siguiente clase en 2 cuantos
cuantos, los de la siguiente
clase en 4 cuantos, etc.
Cada que un proceso se agota sus cuantos pasan a la
clase inferior.
Ejemplo:
z
z
z

113

Cuanto = Intervalo de tiempo

Es una lista simple de procesos en ejecucin


Al agotrsele el cuanto pasan al final de la lista
Aqu el detalle es el tamao del cuanto:

110

111

Llamado Round-Robin
A cada proceso se le asigna un cuanto

Proceso que requiere un total de 100 cuantos.


Se ejecuta: 1, 2, 4, 8, 16, 32, 64 (37), usa 7 intercambios.
Al ir avanzando de clase, hara intercambios con menor
frecuencia.

114

19

4.

5.

Proceso ms corto primero

Si hay n usuarios en sesin cada uno debe recibir 1/n la


capacidad del CPU.
Si hay n procesos cada uno debe recibir 1/n uso de CPU.
Se requiere saber cuanto tiempo CPU ha recibido.
TD=TC/n TR=Tcon/TD
TD=Tiempo que tiene derecho
TC=Tiempo desde su creacin
TR=Tiempo recibido
TCon=Tiempo consumido

Tcnica que consiste en estimar el siguiente valor de una


serie, calculando la media ponderada del ltimo valor medio
y el estimado anterior

El algoritmo consiste en ejecutar el proceso cuyo cociente es


ms bajo(TR), hasta que rebase al de su competidor mas
cercano.

Requiere anlisis matemtico.

115

TR=0.5 ha recibido la mitad de tiempo que le corresponde.


TR=2.0 ha recibido el doble de tiempo que le corresponde.

116

6.

Calendarizacin por lotera

7.

Entrega a los procesos billetes de lotera para


los distintos recursos del sistema.
Al calendarizar, se escoge un billete al azar, y
quien lo obtiene entra a usar el recurso.
A los de mayor prioridad se les dan ms billetes.
Al llegar un nuevo proceso se le dan sus
billetes, por lo que inmediatamente concursa.
Se pueden pasar billetes entre procesos
cooperativos.

117

Calendarizacin por porcin equitativa

Se reparte el tiempo entre los usuarios, en lugar


de los procesos
procesos.

118

5.4. Calendarizacin en sistemas en


tiempo real
z

Deben reaccionar en cierto tiempo


z
z

b)
a)
b)

Poltica

Mecanismo

Los calendarizadores deberan tomar


informacin de los procesos para tomar la
decisin ptima.

Por falta de tiempo no se pueden realizar

Hay sistemas en tiempo real:


a)

Lectora de CDs de audio


Equipos en hospitales,
hospitales industrias,
industrias aeropuertos,
aeropuertos robots
robots, etc
etc.

Puede haber sucesos no calendarizables

5.5. Poltica Vs Mecanismo

Sistemas en tiempo real

119

Calendarizacin garantizada

Es difcil saber que proceso es el ms corto


Se pueden estimar tiempos en base a comportamientos
anteriores.
Se ejecuta primero el proceso con tiempo estimado
menor.
Se emplea el envejecimiento

Estrictos
No estrictos
Peridicos
No peridicos

Usuario o proceso
En el kernel del SO

120

20

5.6. Calendarizacin de subprocesos


z

Si estn en modo usuario

El kernel no sabe de su existencia.


L calendarizacin
La
l d i
i lla lllleva a cabo
b ell proceso
No se cuenta con un reloj calendarizador
Aqu podran aplicar las polticas de los usuarios,
en lugar del mecanismo del kernel.
Si un subproceso se bloquea, bloquear al
proceso.

121

Si estn en modo Kernel

Se calendarizan los subprocesos sin importar a


que proceso pertenece
pertenece.
Es ms costosa la carga de subprocesos en
kernel.

122

Calendarizacin
de subprocesos
en nivel usuario
usuario,
con cuanto=50
ms, se ejecutan
durante 5 ms en
cada rfaga de
CPU.

123

Calendarizacin
de subprocesos
en modo kernel
kernel,
con cuanto=50
ms, se ejecutan
durante 5 ms en
cada rfaga de
CPU.

124

REFERENCIA:
z

Sistemas Operativos Modernos, Segunda


Edicin
TANENBAUM
Prentice Hall

125

21