Sunteți pe pagina 1din 26

UNIVERSIDAD NACIONAL TECNOLGICA DE LIMA SUR

FACULTAD DE INGENIERA Y GESTIN

CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS

ALGORITMO DE PLANIFICACIN SRTF

Trabajo presentado en cumplimiento

parcial de la Materia de Sistemas

de Tiempo Real

Por:

Gmez Santos, Pierina

Ormachea Hurtado, Guillermo

Raimundo Ccahuana, Ruth Patricia

Rojas Mamani, Edward

Vega de la Cruz, Alex


Mayo de 2017

2
DEDICATORIA

Dedicamos este trabajo a


nuestros padres y hermanos.

2
TABLA DE CONTENIDO

DEDICATORIA.........................................................................................ii
TABLA DE CONTENIDO.........................................................................iii
LISTA DE FIGURAS................................................................................iv
LISTA DE TABLAS....................................................................................v
INTR DUCCIN.....................................................................................vi
CAPTULO I.............................................................................................1
PROCESOS Y ALGORITMOS DE PLANIFICACIN................................1
1.1 Proceso...........................................................................................1
1.1.1........................................................................................... Modelo de proceso
1
1.1.2................................................................................... Estados de un proceso
2
1.2. Planificacin...................................................................................4
1.2.1................................................................ Comportamiento de un proceso
5
1.2.2..................................................... Tipos de algoritmos de planificacin
6
CAPTULO II............................................................................................7
ALGORITMO DE PLANEACIN SRTF....................................................7
3.1 SRTF...............................................................................................7
2.1.1.................................................................................................... Caractersticas
7
2.1.2................................................................................................. Funcionamiento
7
2.1.3.................................................................................................... Inconvenientes
8
2.2 Ejemplificacin del Algoritmo SRTF..............................................8
CAPITULO III.........................................................................................10
CASO PRCTICO...................................................................................10
3.1 Cdigo..........................................................................................10

3
3.2 Solucin.......................................................................................15
CONCLUSIN.......................................................................................16
BIBLIOGRAFA......................................................................................17

4
LISTA DE FIGURAS

Figura 1. (a) Multiprogramacin de cuatro programas. (b) Modelo


conceptual de cuatro procesos secuenciales independientes. (c) Slo
hay un programa activo a la vez..........................................................1
Figura 2. Un proceso puede encontrarse en estado en ejecucin,
bloqueado o listo. Las transiciones entre estos estados son como
se muestran..........................................................................................2
Figura 3. Estados de un proceso.............................................................4
Figura 4. Las rfagas de uso de la CPU se alternan con los periodos de
espera por la E/S. (a) Un proceso ligado a la CPU. (b) Un proceso
ligado a la E/S......................................................................................5
Figura 5. Representacin de los procesos segn algoritmo SRTF..........8
Figura 6. Diagrama de Gant....................................................................9

5
LISTA DE TABLAS

Tabla 1. Tipos de algoritmos de planificacin.........................................6


Tabla 2. Datos para ejemplo de SRTF.....................................................8
Tabla 3. Tiempos de los criterios del algoritmo SRTF.............................9

6
INTRODUCCIN

En un sistema multiprogramado, hay mltiples procesos de modo


concurrente en la memoria principal. Los procesos pueden estar
usando un procesador o pueden estar esperando el suceso de algn
evento, tal como la finalizacin de una operacin. El procesador o los
procesadores se mantienen ocupados ejecutando un proceso mientras
el resto espera. La clave de la multiprogramacin es la planificacin.

El objetivo de la planificacin de procesos es asignar procesos a ser


ejecutados por el procesador a lo largo del tiempo, de forma que
cumplan los objetivos del sistema tales como el tiempo de respuesta, el
rendimiento y la eficiencia del procesador. Existen dos tipos de
algoritmos de planificacin los apropiativos y no apropiativos. Cada
uno de estos tipos cuenta con diversos algoritmos. En este trabajo se
abordar el algoritmo de planificacin SRTF (Shortest Remaining Time
First) el cual es un algoritmo apropiativo.

7
CAPTULO I

PROCESOS Y ALGORITMOS DE PLANIFICACIN

1.1 Proceso

Un proceso es:(a)un programa en ejecucin, (b)una instancia de


un programa ejecutado en un computador, (c) la entidad que se
puede asignar y ejecutar en un procesador y (d)una entidad de
actividad que se caracteriza por la ejecucin de una secuencia de
instrucciones, un estado actual y un conjunto e recursos del
sistema asociados. Tambin se puede pensar en un proceso como
una entidad que consiste en un nmero de elementos. Los dos
elementos esenciales seran el cdigo del programa y un conjunto
de datos asociados a dicho cdigo. [ CITATION Wil \l 10250 ]

1.1.1. Modelo de proceso

En este modelo, todo el software ejecutable en la


computadora, que algunas veces incluye al sistema
operativo, se organiza en varios procesos secuenciales
(procesos).[ CITATION And09 \l 10250 ]

Un proceso no es ms que una instancia de un programa en


ejecucin, incluyendo los valores actuales del contador de
programa, los registros y las variables. Cada proceso tiene
su propia CPU virtual, lo que en la realidad este conmuta de
un proceso a otro. Esta conmutacin rpida de un proceso a
otro se conoce como multiprogramacin. La diferencia

1
entre un proceso y un programa es sutil pero crucial.
[ CITATION And09 \l 10250 ]

Figura 1. (a) Multiprogramacin de cuatro programas. (b)


Modelo conceptual de cuatro procesos secuenciales
independientes. (c) Slo hay un programa activo a la vez.

La idea clave es que un proceso es una actividad de cierto


tipo: Tiene un programa, una entrada, una salida y un
estado. Varios procesos pueden compartir un solo
procesador mediante uso de un algoritmo de planificacin
para determinar cundo se debe detener el trabajo en un
proceso para dar servicio a otro.[ CITATION And09 \l 10250
]

1.1.2. Estados de un proceso

Aunque cada proceso es una entidad independiente, con su


propio contador de programa y estado interno, a menudo
los procesos necesitan interactuar con otros. Un proceso
puede generar cierta salida que otro proceso utiliza como
entrada.[ CITATION And09 \l 10250 ]

Es posible que un proceso, que est listo en concepto y


pueda ejecutarse, se detenga debido a que el sistema
operativo ha decidido asignar la CPU a otro proceso por
cierto tiempo. Estas dos condiciones son completamente
distintas. En el primer caso, la suspensin est inherente en
el problema (no se puede procesar la lnea de comandos del
usuario sino hasta que ste la haya escrito mediante el
teclado). En el segundo caso, es un tecnicismo del sistema
(no hay suficientes CPUs como para otorgar a cada proceso
su propio procesador privado).[ CITATION And09 \l 10250 ]

Aqu se ver un diagrama de estados en los que se puede


encontrar un proceso: (a) en ejecucin (en realidad est
usando la CPU en ese instante), (b) listo (ejecutable, se
2
detuvo temporalmente para dejar que se ejecute otro
proceso) y (c) bloqueado (no puede ejecutarse si no hasta
que ocurra cierto evento externo).

Figura 2. Un proceso puede encontrarse en estado en


ejecucin, bloqueado o listo. Las transiciones entre
estos estados son como se muestran.

En sentido lgico, los dos primeros estados son similares.


En ambos casos el proceso est deseoso de ejecutarse; solo
en el segundo no hay temporalmente una CPU para l. El
tercer estado es distinto de los primeros dos en cuanto a
que el proceso no se puede ejecutar, incluso aunque la CPU
no tenga nada que hacer.[ CITATION And09 \l 10250 ]

Hay cuatro transiciones posibles entre estos tres estados,


como se indica:

La transicin 1 ocurre cuando el sistema operativo


descubre que un proceso no puede continuar justo en ese
momento. En algunos sistemas el proceso puede ejecutar
una llamada al sistema, como pause, para entrar al estado
bloqueado.[ CITATION And09 \l 10250 ]

En otros sistemas, cuando un proceso lee datos de una


canalizacin o de un archivo especial (como una terminal) y
no hay entrada disponible, el proceso se bloquea en forma
automtica.[ CITATION And09 \l 10250 ]

Las transiciones 2 y 3 son producidas por el planificador de


procesos, una parte del sistema operativo, sin que el
proceso sepa siquiera acerca de ellas. La transicin 2
ocurre cuando el planificador decide que el proceso en
ejecucin se ha ejecutado el tiempo suficiente y es

3
momento de dejar que otro proceso tenga una parte del
tiempo de la CPU. [ CITATION And09 \l 10250 ]

La transicin 3 ocurre cuando todos los dems procesos


han tenido su parte del tiempo de la CPU y es momento de
que el primer proceso obtenga la CPU para ejecutarse de
nuevo.[ CITATION And09 \l 10250 ]

Se han ideado muchos algoritmos para tratar de balancear


las contrastantes demandas de eficiencia para el sistema
como un todo y de equidad para los procesos individuales.
[ CITATION And09 \l 10250 ]

La transicin 4 ocurre cuando se produce el evento externo


por el que un proceso estaba esperando (como la llegada de
ciertos datos de entrada). Si no hay otro proceso en
ejecucin en ese instante, se activa la transicin 3 y el
proceso empieza a ejecutarse. En caso contrario, tal vez
tenga que esperar en el estado listo por unos instantes,
hasta que la CPU est disponible y sea su turno de
utilizarla.[ CITATION And09 \l 10250 ]

Si utilizamos el modelo de los procesos, es mucho ms fcil


pensar en lo que est ocurriendo dentro del sistema.
Algunos de los procesos ejecutan programas que llevan a
cabo los comandos que escribe un usuario; otros son parte
del sistema y se encargan de tareas como cumplir con las
peticiones de los servicios de archivos o administrar los

4
detalles de ejecutar una unidad de disco o de cinta
magntica. Cuando ocurre una interrupcin de disco, el
sistema toma una decisin para dejar de ejecutar el proceso
actual y ejecutar el proceso de disco que est bloqueado
esperando esta interrupcin. As, en vez de pensar en las
interrupciones, podemos pensar en los procesos de usuario,
procesos de disco, procesos de terminal, etc., que se
bloquean cuando estn esperando a que algo ocurra.
Cuando se ha ledo el disco o se ha escrito el carcter, el
proceso que espera se desbloquea y es elegible para
continuar ejecutndose.[ CITATION And09 \l 10250 ]

Figura 3. Estados de un proceso

1.2. Planificacin

Cuando una computadora se multiprograma, con frecuencia tiene


varios procesos o hilos que compiten por la CPU al mismo tiempo.
Esta situacin ocurre cada vez que dos o ms de estos procesos
se encuentran al mismo tiempo en el estado listo. Si slo hay una
CPU disponible, hay que decidir cul proceso se va a ejecutar a
continuacin. La parte del sistema operativo que realiza esa
decisin se conoce como planificador de procesos y el algoritmo
que utiliza se conoce como algoritmo de planificacin.[ CITATION
And09 \l 10250 ]

1.2.1. Comportamiento de un proceso

Casi todos los procesos alternan rfagas de clculos con


peticiones de E/S (de disco), como se muestra en la
siguiente figura. Por lo general la CPU opera durante cierto
tiempo sin detenerse, despus se realiza una llamada al
sistema para leer datos de un archivo o escribirlos en el
mismo. Cuando se completa la llamada al sistema, la CPU
realiza clculos de nuevo hasta que necesita ms datos o
tiene que escribir ms datos y as sucesivamente. Hay que

5
tener en cuenta que algunas actividades de E/S cuentan
como clculos. Por ejemplo, cuando la CPU copia bits a una
RAM de video para actualizar la pantalla, est calculando y
no realizando operaciones de E/S, ya que la CPU est en
uso. En este sentido, la E/S es cuando un proceso entra al
estado bloqueado en espera de que un dispositivo externo
complete su trabajo.[ CITATION And09 \l 10250 ]

A los primeros se les conoce como limitados a clculos; a


los segundos como limitados a E/S (I/O-bound). Por lo
general, los procesos limitados a clculos tienen rfagas de
CPU largas y en consecuencia, esperas infrecuentes por la
E/S, mientras que los procesos limitados a E/S tienen
rfagas de CPU cortas y por ende, esperas frecuentes por la
E/S. Observe que el factor clave es la longitud de la rfaga
de CPU, no de la rfaga de E/S. Los procesos limitados a
E/S estn limitados a la E/S debido a que no realizan
muchos clculos entre una peticin de E/S y otra, no debido

a que tengan peticiones de E/S en especial largas. Se


requiere el mismo tiempo para emitir la peticin de
hardware para leer un bloque de disco, sin importar qu
tanto (o qu tan poco) tiempo se requiera para procesar los
datos, una vez que lleguen.[ CITATION And09 \l 10250 ]

Figura 4. Las rfagas de uso de la CPU se alternan con los


periodos de espera por la E/S. (a) Un proceso ligado a la
CPU. (b) Un proceso ligado a la E/S.
6
1.2.2. Tipos de algoritmos de planificacin

Entre los tipos contamos con los algoritmos apropiativos en


donde el Sistema Operativo puede expulsar del procesador
un proceso en ejecucin (lnea punteada.); y los no
apropiativos donde estos procesos, no pueden ser
expulsados por el Sistema Operativo.[ CITATION Dan17 \l
10250 ]

Tabla 1. Tipos de algoritmos de planificacin

7
No Apropiativos Apropiativos
FCFS (First Come, First
Round-Robin
Serve)
SRTF (Shortest Remaining
SJF (Shortest Job First)
Time First)
Prioridades (Estticas y Prioridades (Estticas y
dinmicas) dinmicas)
CAPTULO II

ALGORITMO DE PLANEACIN SRTF

.1 SRTF

Una versin apropiativa del algoritmo tipo el trabajo ms corto


primero es el menor tiempo restante a continuacin (SRTF,
Shortest Remaining Time First). Con este algoritmo, el
planificador siempre selecciona el proceso cuyo tiempo restante
de ejecucin sea el ms corto. De nuevo, se debe conocer el
tiempo de ejecucin de antemano. Cuando llega un nuevo trabajo,
su tiempo total se compara con el tiempo restante del proceso
actual. Si el nuevo trabajo necesita menos tiempo para terminar
que el proceso actual, ste se suspende y el nuevo trabajo se
inicia. Ese esquema permite que los trabajos cortos nuevos
obtengan un buen servicio.[ CITATION And09 \l 10250 ].

En SRTF se penaliza a las rfagas largas (como en SJF). Un punto


dbil de este algoritmo se evidencia cuando una rfaga muy corta
suspende a otra un poco ms larga, siendo ms larga la ejecucin
en este orden al ser preciso un cambio adicional de proceso y la
ejecucin del cdigo del planificador.[CITATION Rod17 \l 10250 ]

2.1.1 Caractersticas

De los procesos que estn esperando para usar la CPU,


SRTF lleva a ejecucin el proceso al que le reste menos
tiempo para terminar. Los empates se dirimen mediante
FIFO / FCFS.[CITATION Rod17 \l 10250 ]

8
2.1.2 Funcionamiento

Los procesos llegan a la cola y solicitan un intervalo de


CPU. Si dicho intervalo es inferior al que le falta al proceso
en ejecucin para abandonar la CPU, el nuevo proceso pasa
a la CPU y el que se ejecutaba a la cola de preparados.
[CITATION Rod17 \l 10250 ]

2.1.3 Inconvenientes

El intervalo de CPU es difcil de predecir. Adems existe la


posibilidad de inanicin: los trabajos largos no se
ejecutarn mientras hayan trabajos cortos.[ CITATION
Rod17 \l 10250 ]

2.2 Ejemplificacin del Algoritmo SRTF

Tenemos la siguiente lista de procesos. Hallar el tiempo de


espera y retorno promedio haciendo uso del algoritmo de
planificacin SRTF.

Tabla 2. Datos para ejemplo de SRTF

Proceso Tiempo de llegada Rfaga de CPU

A 0 8
B 1 4
C 2 9
D 3 5

Solucin:

9
Aplicando el algoritmo de planificacin SRTF tenemos el

Proces Rfag Tiempo Tiempo Tiempo Tiempo de Tiemp


o a llegada de de Espera o de
Comien finalizac retorn
zo in o

A 8 0 0-10 1-17 10-1=9 8+9=1


7

B 4 1 1 5 1-1=0 4+0=4

D 5 3 5 10 5-3=2 5+2=7

9+15=
C 9 2 17 26 17-2=15
24

siguiente diagrama:

Figura 5. Representacin de los procesos segn algoritmo SRTF

Tabla 3. Tiempos de los criterios del algoritmo SRTF

Entonces el tiempo de espera promedio es: (9+0+2+15)/4=6.5 u.t.

Entonces el tiempo de retorno promedio es: (17+4+7+24)/4=13.0 u.t

Figura 6. Diagrama de Gant

10
CAPITULO III
CASO PRCTICO

.1 Cdigo

package javaapplication2;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class SRTF {

public static void main(String args[ ]) throws IOException

BufferedReader br = new BufferedReader(new


InputStreamReader(System.in));

int n;

System.out.println("Por favor ingrese el nmero de procesos: ");

n = Integer.parseInt(br.readLine());

int proc[ ] [ ]= new int[n + 1][4];

for(int i = 1; i <= n; i++)

System.out.println("Por favor ingrese el tiempo de llegada para el


proceso " + i + ": ");

proc[i][0] = Integer.parseInt(br.readLine());
11
System.out.println("Ingrese el tiempo de rfaga para el proceso " +
i + ":");

proc[i][1] = Integer.parseInt(br.readLine());

System.out.println();

int total_time = 0;

for(int i = 1; i <= n; i++)

total_time += proc[i][1];

int time_chart[ ] = new int[total_time];

for(int i = 0; i < total_time; i++)

int sel_proc = 0;

int min = 99999;

for(int j = 1; j <= n; j++)

if(proc[j][0] <= i)

if(proc[j][1] < min && proc[j][1] != 0)

min = proc[j][1];
12
sel_proc = j;

time_chart[i] = sel_proc;

proc[sel_proc][1]--;

for(int j = 1; j <= n; j++)

if(proc[j][0] <= i)

if(proc[j][1] != 0)

proc[j][3]++;

if(j != sel_proc)

proc[j][2]++;

else if(j == sel_proc)

proc[j][3]++;

if(i != 0)

13
{

if(sel_proc != time_chart[i - 1])

System.out.print("--" + i + "--P" + sel_proc);

else

System.out.print(i + "--P" + sel_proc);

if(i == total_time - 1)

System.out.print("--" + (i + 1));

System.out.println();

System.out.println();

System.out.println("P\t TE \t TT ");

for(int i = 1; i <= n; i++)

System.out.printf("%d\t%2dms\t%2dms",i,proc[i][2],proc[i][3]);

System.out.println();

System.out.println();

float TE = 0,TR = 0;

14
for(int i = 1; i <= n; i++)

TE += proc[i][2];

TR += proc[i][3];

TE /= n;

TR /= n;

System.out.println("El promedio del TIEMPO DE ESPERA es: " +


TE + "u.t");

System.out.println("El promedio del TIEMPO DE RETORNO es: " +


TR + "u.t");

15
3.2 Solucin

Figura 7.Ejercicio en Java Netbeans

16
CONCLUSIN

Este algoritmo es el tipo apropiativo del algoritmo de planificacin SJF.


Con el algoritmo de planificacin SRTF, el intervalo de CPU es difcil de
predecir adems se tiene la posibilidad de inanicin; es decir, los
trabajos largos no se ejecutarn mientras hayan trabajos cortos.

17
BIBLIOGRAFA

1. Rodriguez, R. (22 de Mayo de 2017). Algoritmos de Planificacin.


Obtenido de
SRTF:http://algoritmosplanificacion.blogspot.pe/2012/08/srtf-short-
remaining-time-first.html

2. Rojas, D. (24 de Mayo de 2017). Sistemas Operativos. Obtenido de


Algoritmos de Planificacion: www.sistemasoperativos.com

3. Stallings, W. (2005). Sistemas Operativos: Aspectos internos y


principios de diseo. Madrid: Pearson Prentice Hall.

4. Tanenbaum, A. S. (2009). Sistemas Operativos Modernos.


Amsterdan: Pearson Prentice Hall.

18