You are on page 1of 74

Sistemas Operativos

Msia. Daniel Quirumbay Y. dquirumbay@upse.edu.ec


Junio 2015

GESTION DE PROCESOS
1

El Modelo de Procesos
TEMA II
Procesos

Introduccin a los procesos


Comunicacin entre procesos
Estados y transiciones de procesos
Tipos de proceso y modos de ejecucin
Planificacin de procesos.
Bloqueo Mutuo

Objetivos
Tener claro lo que es un proceso dentro de un
Sistema Operativo, sus estados y las diferentes
transiciones que le ocurren.
Identificar el porque un proceso puede llegar a
bloquearse, y como puede aplicarse tcnicas
para evitar el bloqueo del mismo.

Cargado del S.O.


Cualquier programa que requiere ser ejecutado en la
computadora, deber ser transferido desde su lugar de
residencia a la memoria principal
S.O. tiene un programa cargador que se encarga de
transferir desde algn medio de almacenamiento externo
(disco, cinta, etc.) a la memoria principal, los programas
del sistema operativo que tienen como finalidad establecer
el ambiente de trabajo del equipo de cmputo. Existe un
programa especial almacenado en memoria ROM que se
encarga de acceder a este programa cargador. Cuando el
sistema operativo esta cargado en memoria toma el control
absoluto de las operaciones del sistema.

Cargado de Programas

Que es un Proceso

Un programa no es un proceso; un programa es una


entidad pasiva, como el contenido de un archivo que
se almacena en disco, mientras que un proceso es
una entidad activa, con un contador de programa que
especifica la siguiente instruccin que se debe
ejecutar.
No confundir
proceso con
procesador.

Procesos

Procesos
Proceso: programa en ejecucin
El computador puede realizar varios
procesos al mismo tiempo
Por ejemplo, mientras se est ejecutando un
programa del usuario, el computador puede
estar leyendo informacin de un disco, o
enviando datos a una impresora.

Proceso (II)
Los
procesos
pueden
ser
cooperantes
o
independientes, en el primer caso se entiende que los
procesos interactan entre s y pertenecen a una misma
aplicacin. En el caso de procesos independientes en
general se debe a que no interactan y un proceso no
requiere informacin de otros o bien porque son
procesos que pertenecen a distintos usuarios.
Los
sistemas
operativos
modernos
(de
multiprogramacin y paralelos) estn estructurados
alrededor del concepto de proceso.

Procesos (III)
Un solo procesador puede ser compartido entre varios
procesos con algoritmo de planificacin , el cual
determina cundo detener el trabajo en un proceso y
dar servicio a otro distinto
Se organizan en varios procesos secuenciales
Un CPU real, varios CPUs virtuales, uno para cada
proceso
Multiprogramacin: cuando el CPU se alterna de

programa en programa

10

Procesos (IV)

11

Procesos (V)

D
C
B
A
Tiempo
Solo un programa est activo en un momento dado
12

Procesos (VI)
Esto implica que no siempre un proceso
va a durar el mismo tiempo de ejecucin
Programa Vs Proceso
El programa es como una receta de cocina
El proceso es la actividad en la que el
cocinero lee la receta, busca los ingredientes
y cocina el pastel

Los procesos tienen estados

13

Jerarqua de Procesos

Crear y destruir procesos


Procesos padres e hijos
Podran o no ejecutarse en paralelo
Planificador de procesos
Un proceso de sistema operativo
Procesos

..........
Planificador
14

N-2

N-1

Estados de los Procesos


Listo: Es aquel que esta preparando para ejecutarse, lo
nico que espera es tiempo de CPU.
En ejecucin : Tiene que estar en memoria y esta siendo
procesado por le microprocesador
Bloqueado: Esta en espera de otro proceso o evento
externo.(ejemplo, procesos de dispositivos E/S)
Terminado: proceso terminado, obtencin de resultados
(destruccin)
Transicin: es el pasar de un estado a otro
Creacin: cuando el proceso esta siendo creado
La destruccin de un proceso puede o no significar la
destruccin de los procesos hijos, segn el Sistema
Operativo.
15

Estados de los Procesos II

Los
procesos
pueden
ser
independientes o interactuar uno con
otro
En ejecucin
2

1
3
Bloqueado

Listo
4
16

Anatoma de un Procesos
En el contexto de varios Sistemas Operativos como Unix, un proceso
consiste de varios segmentos:
Texto (cdigo ejecutable).
Datos.
Pila o Stack.
Libreras compartidas.
Segmentos de Memoria Compartida.
Estos segmentos son una ilusin creada por el Kernel y dependiente
del hardware.
Desde el punto de vista del Kernel, la esencia de un proceso est
contenida en una o dos estructuras de datos:
Linux (task_struct).
Solaris (proc structure y user structure o u_area).
Windows (Un proceso es un Objeto, con atributos y servicios).
Conocidos genricamente como PCB (Process Control Block).
17

Implantacin de Procesos
Implica:
Administracin de procesos
Administracin de memoria
Administracin del sistema de archivos

A cada dispositivo de I/O se le asocia una


localidad cerca de la parte inferior de la
memoria, llamada vector de interrupcin

18

Espacios de Direcciones de un proceso


(S.O. Linux)
0xffffffff
Cdigo y datos del kernel
%fp
stack
%sp

address space

Bibliotecas compartidas
(shared librarires)

brk ptr
heap (via malloc)
Datos no inicializados (.bss)
Datos inicializados (.data)
cdigo (.text)
0

Zona prohibida
19

Mtodo FIFO (First In, First Out)


Tambin llamado procesamiento por "tren", por "lote" o
"batch".
Los procesos acceden al procesador, cada uno a su
turno, segn el orden de llegada, y monopolizan el
procesador hasta su finalizacin.

20

Mtodo del torniquete (Round Robin)


Los procesos acceden al procesador, cada uno a su turno, por un
tiempo predeterminado (el quantum).
Un proceso en espera de un dispositivo entrada - salida ser
colocado en una fila de procesos bloqueados.
Tambin conocido como swap

21

Mtodo del torniquete multinivel


Antes de acceder al procesador, los procesos son acomodados en
las filas correspondientes a su nivel de prioridad. Un proceso slo
puede acceder al procesador cuando no existen ms procesos en
las filas de mayor prioridad.

filas de
prioridades

22

Sistema por el Swap mejorado


Un proceso puede estar colocado (swapped) en el disco
o en un medio de almacenamiento, si permanece mucho
tiempo en la fila de los bloqueados.

23

almacenados en
memoria

Comunicacin entre Procesos


Condiciones de competencia
Las condiciones de competencia se dan cuando dos o
ms procesos intentan acceder a un mismo recurso.
Comparticin de recursos: memoria, archivos, etc
Dos procesos pueden leer o escribir en ciertos datos
compartidos, y el resultado final depende de quin
ejecuta qu y en qu momento
Pueden surgir problemas

24

Condiciones de competencia
Ej. Un directorio spooler de impresin
.
.
abc

4
5
Proceso A

prog c

out = 4
out almacena el
prximo archivo
a imprimir

prog n

in = 7

Proceso B
25

.
.

in almacena la
siguiente entrada
libre

Condiciones de competencia

Cola de Impresin
Lista.txt
rol.xls
imagen.jpg
carta.doc

IN: Casillero Disponible


OUT: ultimo archivo impreso. Responsable el sistema operativo
26

Comunicacin entre Procesos


Que es la Seccin Critica
Es un conjunto de instrucciones del programa
que hace uso del recurso compartido. Es decir si
un proceso esta en seccin critica el otro no
podr hacer uso del recurso compartido.
Solucin con exclusin mutua
Para solucionar las condiciones de competencia
se implement un modelo para prohibir que dos
procesos accedan al mismo recurso. El modelo
en cuestin se denomina exclusin mutua.
27

Comunicacin entre procesos (II)


Exclusin mutua con espera ocupada
Las soluciones con espera ocupada funcionan de la
siguiente manera, cuando un proceso intenta ingresar a su
regin crtica, verifica si esta permitida la entrada. Si no, el
proceso se queda esperando hasta obtener el permiso.
Recursos Compartidos
Es un recurso que se va a utilizar. La seccin critica No es lo
mismo que recurso compartido
Tomar en cuenta:
Desactivacin de interrupciones
Variables de cerradura
Alternancia estricta
Solucin de Peterson
La instruccin TSL
28

Comunicacin entre procesos (III)


Desactivacin de interrupciones
Desactivar las interrupciones del CPU, para que no haga cambio
de procesos antes de entrar a las secciones crticas

Variables de cerradura
Uso de una variable que indique si algn proceso se encuentra
o no en la regin crtica

Alternancia estricta
Esta solucin requiere que los dos procesos alternen en
forma estricta su entrada a las regiones crticas
respectivas

29

Solucin de Peterson
Cada proceso antes de entrar a su regin crtica
(uso de variables compartidas), llama al
procedimiento enter_region con su propio
nmero de proceso (0 1)
Despus de terminar la regin crtica se llama al
procedimiento leave_region
Casos:
Un solo proceso est interesado
Dos procesos estn interesados

30

Solucin de Peterson

# include prototypes.h
# define FALSE
0
# define TRUE
1
# define N
2
int turn;
int interested [N];

void enter_region (int process) {


int other;
other = 1 process;
interested [process] = TRUE;
turn = process:
while (turn == process && interested [ other ] == TRUE ) ;
}

void leave_region (int process) {


interested [ process ] = FALSE;
}
31

Solucin con Instruccin TSL


Instruccin TSL
Esta solucin requiere ayuda del hardware y es debido a
que en general las computadoras diseadas para tener
ms de un procesador tienen una instruccin TEST AND
SET LOCK
Uso de la variable flag, la cual coordina el acceso a la
memoria compartida.
Usado por computadores, en especial que tienen varios
procesadores
Primitivos: ciertos tipos de llamadas al sistema, llamadas
bsicas
Sleep: no tiene parmetros, bloquea al proceso que origina la
llamada
Wake up: su parmetro es un proceso que se va a despertar
32

Ejemplo con Instruccin TSL


Imagnese dos procesos:
H: proceso de alta prioridad
L: procesos de baja prioridad

En cierto momento L est en su regin crtica y


H est listo para su ejecucin. H comienza una
espera ocupada, pero como L nunca es
planificada cuando H est en ejecucin, L nunca
tiene la oportunidad de salir de su regin crtica,
por lo que H hace un ciclo infinito

33

Tipos de procesos
Procesos daemon (Disks And Extensions Monitor )
Un demonio es un tipo especial de programa que se
ejecuta en segundo plano en vez de ser controlado
directamente por el usuario (es un proceso no interactivo).
Este tipo de programas se ejecutan de forma continua
(infinita) , vale decir, que funciona sin tener relacin con
una terminal o consola y, consecuentemente, sin
interactuar con un humano.

Procesos del usuario


Programas del usuario en ejecucin
Ley Morphy
si algo puede salir mal , saldr mal (problemas
informticos)
34

Bifurcacin (fork)
El mecanismo por el cual un proceso crea otro
proceso se denomina bifurcacin .
El fork, se aplica en el contexto de un lenguaje de
programacin o un sistema operativo, hace referencia a
que un programa crea una copia de s mismo, que
entonces acta como un "proceso hijo" del proceso
originario, ahora llamado "padre". Los procesos
resultantes son idnticos, salvo que tienen distinto
nmero de proceso (PID) y la llamada devuelve el PID
del proceso hijo al padre y un 0 al hijo
En los sistemas operativos multihilo es posible crear
tanto hilos como procesos. La diferencia estriba en que
un proceso solamente puede crear hilos para s mismo y
en que dichos hilos comparten toda la memoria
reservada para el proceso.
35

Contexto de los Procesos

36

Problemas Clsicos de la
Comunicacin de Procesos
El problema del productor y el consumidor
El problema del productor y el consumidor describe el hecho
de que cuando hay dos o ms procesos interactuando a
travs de un buffer comn habiendo procesos que ponen
informacin o datos y otros que los sacan se pueden llegar a
dar condiciones en las cuales los procesos que ingresan los
datos no puedan hacerlo debido a que el buffer ya se
encuentra lleno y para el caso de los que sacan los datos del
buffer intenten sacar datos cuando ya no hay nada que sacar.
Para evitar estas condiciones se desarrollaron mtodos de
comunicacin/sincronizacin entre procesos en los cuales
se impide que esto suceda haciendo que el proceso
productor "duerma" si el buffer est lleno y una vez que
exista espacio el proceso "consumidor" despierte al
productor para que siga generando o viceversa.

37

El problema del productor y el


consumidor

38

El problema del productor y el consumidor


# include prototypes.h
# define N
100
int count = 0;
void consumer (void)
{
int item;
while (TRUE) {
if (count == 0) sleep ();
remove_item (&item);
count = count - 1;
if (count == N-1) wakeup
(producer);
consume_item (item);
}
}

void producer (void)


{
int item;
while (TRUE) {
produce_item (&item);
if (count == N) sleep ();
enter_item (item);
count = count + 1;
if (count == 1) wakeup
(consumer);
}
}
39

Semforos
Un semforo es una variable especial protegida (o tipo
abstracto de datos) que constituye el mtodo clsico
para restringir o permitir el acceso a recursos
compartidos
(por
ejemplo,
un
recurso
de
almacenamiento) en un entorno de multiprocesamiento.
Fueron inventados por Edsger Dijkstra (1965) y se
usaron por primera vez en el sistema operativo THEOS.

Los semforos se emplean para permitir el acceso a


diferentes partes de programas (llamados
secciones crticas) donde se manipulan variables
o recursos que deben ser accedidos de forma
especial.
40

Uso de los Semforos


Los semforos pueden ser usados para diferentes
propsitos, entre ellos:
Implementar cierres de exclusin mutua o locks
Barreras
Permitir a un mximo de N threads acceder a un
recurso, inicializando el semforo en N
Notificacin. Inicializando el semforo en 0 puede
usarse para comunicacin entre threads sobre la
disponibilidad de un recurso

41

Uso de 3 Semforos
Full : cuenta el nmero de entradas
ocupadas, asegura que el productor detenga
su ejecucin cuando el buffer est lleno
Empty : cuenta el nmero de entradas vacas,
asegura que el consumidor detenga su
ejecucin cuando el buffer est vaco
Mutex : para garantizar que los procesos
productor consumidor no tengan acceso
simultneo al buffer (semforo binario)

42

Monitores
Un monitor es una coleccin de procedimientos,
variables y estructuras de datos que se agrupan
en cierto tipo particular de mdulo o paquete.
Los
procesos
pueden
llamar
a
los
procedimientos de un monitor cuando deseen
pero no tienen acceso directo a las estructuras
de datos internos del monitor.
El compilador tiene la tarea de la exclusin
mutua sobre los datos del monitor liberando de
esta tarea al programador
43

Investigacin- Exposicin
Comunicacin entre procesos (funcionamiento)
Algoritmo de Dekker
Algoritmo de Peterson
Algoritmo del Banquero de Dijkstra

Problemas clsicos de sincronizacin y comunicacin


El problema de la cena de los Filsofos
El problema de lectores y escritores
El Barbero Dormiln
44

Investigacin- Exposicin

45

Thread
Un Thread es:
Una imagen de los registros del hardware.
Un contador de programa (PC) y una pila.
Todos los dems recursos son compartidos
por todos los threads de ese proceso. Esto
incluye:
Archivos abiertos.
Espacio de direcciones virtuales.
Procesos hijos.
46

Modelo Multithread

47

Uno a Uno

Cada thread de usuario se enlaza a un thread del kernel.


Ejemplos: Windows NT/2000, OS/2 y Linux.

48

Uno a Varios
Si un thread se
bloquea, tambin
el proceso se
bloquea.

49

Muchos a muchos
Ejemplos:

Solaris 2
IRIX
HP-UX
Tru64 UNIX
Windows
NT/2000 con
el ThreadFiber
package.
Windows XP

50

Interrupciones
Es una seal que se origina en un dispositivo hardware
(por ejemplo, un perifrico), para indicar al procesador
que algo requiere su atencin inmediata; se solicita al
procesador que suspenda lo que est haciendo para
atender la peticin.
Las interrupciones juegan un papel fundamental, en
especial en la operacin de dispositivos E/S, ya que les
permite enviar estas peticiones al CPU. Sin ellas el
sistema debera chequear constantemente los
dispositivos para comprobar su actividad, pero las
interrupciones permiten que los dispositivos puedan
permanecer en silencio hasta el momento que requieren
atencin del procesador.
51

Tipos de Interrupciones

SVC (llamada al supervisor): es una peticin generada por el


usuario para un servicio particular del sistema, por ejemplo,
realizacin de Entrada / Salida u obtencin de ms memoria.
Entrada / Salida: son iniciadas por el hardware de Entrada /
Salida, indicando a la cpu que ha cambiado el estado de un canal o
dispositivo, por ejemplo, finalizacin de Entrada / Salida u
ocurrencia de un error.
De reinicio: ocurren al presionar la tecla de reinicio o cuando
llega una instruccin de reinicio de otro procesador en un sistema
multiprocesador.
De verificacin de programa: son causadas por errores
producidos durante la ejecucin de procesos, por ejemplo:
Un intento de dividir por cero.
Un intento de un proceso de usuario de ejecutar una instruccin
privilegiada.
Un intento de ejecutar un cdigo de operacin invlido.
De verificacin de mquina: son ocasionadas por un mal
funcionamiento del hardware.
52

Interrupcin de Hardware (Asncronas)

Permite que el controlador del perifrico llame la atencin del


procesador. Cuando ocurre desva la posicin de ejecucin del
programa para una rutina que atiende las interrupciones llamada de
Tratador de Interrupciones
Cada dispositivo que desea comunicarse con el procesador por
interrupciones debe tener asignada una lnea nica capaz de avisar
a ste de que le requiere para una operacin. Esta lnea es la
llamada IRQ ("Interrupt ReQuest", peticin de interrupcin).

53

Interrupcin Software (Sincronas)


Las interrupciones causadas por software mediante una
instruccin en cdigo ensamblador. A este tipo de
interrupciones se llaman tambin traps o excepciones,
para distinguirlas de las interrupciones hardware.
Este tipo de interrupciones son de prioridad ms alta que
las de hardware (enmascarables y no enmascarables), de
forma que si se recibe una interrupcin hardware mientras
que se ejecuta una software, esta ltima tiene prioridad.
Este tipo de interrupciones son utilizadas tanto por el
Sistema Operativo como por los programas de usuario
que pueden instalar las suyas particulares. Trabaja con
255 peticiones
54

Interrupcin no enmascarable
(NMI)
Es un tipo especial de interrupcin usada en la mayora
de los microordenadores como el IBM PC y el Apple II.
Una interrupcin no emascarable causa que la CPU deje
lo que esta haciendo, cambie el puntero de instruccin
para que apunte a una direccin particular y contine
ejecutando el cdigo de esa direccin. Se diferencia de
los otros tipos de interrupcin en que los programadores
no pueden hacer que la CPU las ignore, aunque algunos
ordenadores pueden por medios externos bloquear esa
seal, dando un efecto similar al resto de las
interrupciones.

55

Excepciones del procesador


Durante el funcionamiento del procesador pueden
ocurrir circunstancias excepcionales; es usual citar como
ejemplo el caso de una divisin por cero. En estos
casos, el procesador genera una excepcin, que es
tratada como si fuese una interrupcin software, con la
diferencia de que el nmero de interrupcin asociado
depende del tipo de excepcin.
En el caso de la divisin por cero el nmero asociado es
cero. Este era el nico tipo de excepcin de procesador
prevista en el 8088, pero en los modelos sucesivos de la
saga x86 y Pentium esta posibilidad fue amplindose
paulatinamente.

56

Tabla de IRQ Bsicos


Nombre

Int
(hex)

XT: Descripcin

AT: Descripcin

---

Paridad*

Paridad*

08

Temporizador*

Temporizador*

09

Teclado*

Teclado*

IRQ2

0A

Reservado

Interrupciones 8 a 15 (PIC#2)

IRQ3

0B

Puertos serie COM2/COM4

Puerto serie COM2/COM4

IRQ4

0C

Puertos serie COM1/COM3

Puerto serie COM1/COM3

IRQ5

0D

Disco duro

Impresora secundaria LPT2

IRQ6

0E

Disquete

Disquete

IRQ7

0F

Impresora primaria LPT1

Impresora primaria LPT1 [8]

70

No aplicable

Reloj de tiempo real*

71

No aplicable

Redirigido a IRQ2*

IRQ10

72

No aplicable

no asignado

IRQ11

73

No aplicable

no asignado

IRQ12

74

No aplicable

Ratn PS2

13

75

No aplicable

Coprocesador 80287*

IRQ14

76

No aplicable

Contr. disco IDE primario

IRQ15

77

No aplicable

57

Contr. disco IDE secundari

La Planificacin de Procesos

La planificacin es el proceso por el cual el sistema


operativo selecciona que proceso ejecutar.
Cuando ms de un proceso est listo para ejecutarse, el
Sistema Operativo debe decidir cul de ellos debe
ejecutarse primero.
Garantizar que ningn proceso se ejecute un tiempo
excesivo
Trabaja con el Algoritmo de planificacin
Uso de un cronmetro electrnico / reloj
Frecuencias usadas 50 o 60 Hertz
58

Planificacin de Procesos
Trabajo ms corto primero (SJF: Shortest Job First)
Algoritmo no expropiativo que al conocer a priori los tiempos de
ejecucin de los procesos, los ordena de acuerdo a su duracin

Este mtodo acorta los tiempos promedio de ejecucin


considerablemente, pero solo si se tienen disponibles todos los procesos
simultneamente. De lo contrario no tiene efecto y su comportamiento se
asemeja a FIFO.
59

Objetivos de la Planificacin
Los objetivos de la planificacin de proceso son:
Equidad, todos los procesos deben poder ejecutarse.
Eficacia, mantener ocupada la CPU un 100% del
tiempo.
Tiempo de respuesta, minimizar el tiempo de respuesta
al usuario.
Tiempo de regreso, minimizar el tiempo que deben
esperar los usuarios por lotes para obtener sus
resultados.
Rendimiento, maximizar el nmero de tareas
procesadas por hora.
60

Quantum de Tiempo
Es un pequeo intervalo de tiempo que se asigna a un
proceso para que ejecute sus instrucciones. El cuanto
(Quantum) es determinado por el planificador de procesos
utilizando algn algoritmo de planificacin
Cuando el quantum de tiempo es muy grande, cada
proceso tendr el tiempo necesario para terminar, de manera
que el esquema de planificacin por turno rotatorio degenera
en mtodo FIFO. Si el quantum es muy pequeo, el gasto
extra por cambio de proceso se convierte en el factor
dominante y el rendimiento del sistema se degradar hasta el
punto en que la mayor parte del tiempo se invierte en la
conmutacin del procesador, con muy poco o ningn tiempo
para ejecutar los programas de los usuarios.

61

Quantum de Tiempo

62

Planificacin de Procesos
Los algoritmos de planificacin son los que
definen que poltica se va a seguir para que un
proceso pase al estado de ejecucin.
Tipos de planificacin:
Round Robin
Por prioridad
Colas mltiples
Primero el trabajo ms corto
De dos niveles
63

Round Robin
Cada proceso tiene asignado un intervalo de tiempo
de ejecucin, llamado quantum
Todos los procesos tienen la misma importancia
Se mantiene una lista de procesos ejecutables
La alternancia entre un proceso y otro necesita de
cierta cantidad de tiempo para administracin
(alternancia de contexto)
La administracin implica resguardo y carga de
registros y mapas de memoria, actualizacin de
varias tablas y listas, etc
64

Round Robin
Cul debera ser la longitud del quantum?
Duracin de 5 mseg para administracin por
intercambio de procesos
Si el proceso tiene un quantum de 20 mseg, significa
que el 20 % del tiempo del CPU se desperdicia en el
costo administrativo
Se el quantum es de 500 mseg, el tiempo
desperdiciado sera de un 1%, pero los ltimos
procesos debern esperar mucho tiempo
Un quantum de 100 mseg es razonable

65

Round Robin
Proceso
activo

Siguiente
proceso

Proceso
activo

Siguiente
proceso

G
66

Planificacin por prioridad


Procesos tienen una prioridad en base factores externos
El planificador podra disminuir o aumentar la prioridad de
un proceso
Prioridades estticas y dinmicas
Depende de los recursos que se necesiten, por ejemplo, si
un proceso necesita de recursos de E/S y poco de CPU,
con baja prioridad, estara ocupando memoria por un
tiempo innecesario
Se puede determinar la prioridad dependiendo de cunto
tiempo el proceso usa de su quantum . Si apenas se usa 2
mseg de un quantum se tendr una mayor prioridad

67

Planificacin por prioridad


Procesos ejecutables

Mxima prioridad

Prioridad 4
Prioridad 3
Prioridad 2
Prioridad 1

Mnima prioridad

68

Colas mltiples
Establecimiento de clases de prioridad
Los procesos en la clase de mayor prioridad se
ejecutan en un quantum. Los procesos de la
siguiente clase se ejecutan en dos quantum, los de la
siguiente clase en 4 quantum, etc
Cuando un proceso consumiera todos los quantum
asignados a l, se le mova a la siguiente clase
Si un proceso necesita hacer clculos en 100
quantums, bajo el modelo de Round Robin habran
100 intercambios, pero con colas mltiples se le
aplicara primero 1 quantum, luego 2, 4, 8, 16, 32 y
finalmente 64 (de este solo usa 37), haciendo
solamente 7 intercambios
69

Primero el trabajo ms corto


Apropiado para las tareas por lotes, en los
cuales los tiempos de ejecucin se conocen
de antemano
Usado en procesos interactivos haciendo
estimaciones de comportamiento
(predicciones). Tcnica conocida como
maduracin (aging)
8
A

4
B

4
C

4
D

4
B
70

4
C

4
D

8
A

Planificacin de 2 niveles
Si no se dispone de suficiente memoria principal,
habrn procesos que se almacenarn temporalmente
en disco
Tiempo de alternancia entre procesos que estn en
disco es considerable
Primero se carga en memoria cierto subconjunto de
procesos ejecutables. El planificador se restringe
entonces a ese subconjunto durante cierto tiempo.
Luego el planificador toma otro subconjunto de
procesos que han esperado algn tiempo en el disco

71

Planificacin de 2 niveles

a, b,
c, d

e, f,
g, h

b, c,
f, g

Procesos en la
Memoria principal

e, f,
g, h

a, b,
c, d

a, d,
e, h

Procesos en disco

72

Round Robin
Algoritmo de Planificacin Round Robin (RR q=3)
Proceso

Tiempo de
llegada

Tiempo de
Servicio

C
D

Tiempo de
Comienzo

Tiempo de
Finalizacin

Turnaround

0, 12, 21

3, 15, 23

23

15

3, 15

6, 16

16-1=15

11

6, 16, 23

9, 19, 26

26-2=24

15

9, 19

12,21

21-3=18

13

20

13.5

Promedio

73

Tiempo de
Espera

Muchas Gracias

74

You might also like