algoritmo SRTF
Short Description
Descripción: curso de sistemas a tiempo real...
Description
UNIVERSIDAD NACIONAL TECNOLÓGICA DE LIMA SUR FACULTAD DE INGENIERÍA Y GESTIÓN CARRERA PROFESIONAL DE INGENIERÍA DE SISTEMAS
ALGORITMO DE PLANIFICACIÓN SRTF
Trabajo presentado en cumplimiento parcial de la Materia de Sistemas de Tiempo Real
Por:
Gómez 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
nuestros padres y hermanos.
2
a
TABLA DE CONTENIDO
DEDICATORIA.........................................................................................ii TABLA DE CONTENIDO.........................................................................iii LISTA DE FIGURAS................................................................................iv LISTA DE TABLAS....................................................................................v INTR DUCCIÓN.....................................................................................vi CAPÍTULO I.............................................................................................1 PROCESOS Y ALGORITMOS DE PLANIFICACIÓN................................1 1.1 Proceso...........................................................................................1 1.1.1........................................................................................... Modelo de proceso 1 1.1.2................................................................................... Estados de un proceso 2 1.2. Planificación...................................................................................4 1.2.1................................................................ Comportamiento de un proceso 5 1.2.2..................................................... Tipos de algoritmos de planificación 6 CAPÍTULO II............................................................................................7 ALGORITMO DE PLANEACIÓN SRTF....................................................7 3.1 SRTF...............................................................................................7 2.1.1.................................................................................................... Características 7 2.1.2................................................................................................. Funcionamiento 7 2.1.3.................................................................................................... Inconvenientes 8 2.2 Ejemplificación del Algoritmo SRTF..............................................8 CAPITULO III.........................................................................................10 CASO PRÁCTICO...................................................................................10 3.1 Código..........................................................................................10 3
3.2 Solución.......................................................................................15 CONCLUSIÓN.......................................................................................16 BIBLIOGRAFÍA......................................................................................17
4
LISTA DE FIGURAS Figura 1. (a) Multiprogramación de cuatro programas. (b) Modelo conceptual de cuatro procesos secuenciales independientes. (c) Sólo hay un programa activo a la vez..........................................................1 Figura 2. Un proceso puede encontrarse en estado “en ejecución”, “bloqueado” o “listo”. Las transiciones entre estos estados son como se muestran..........................................................................................2 Figura 3. Estados de un proceso.............................................................4 Figura 4. Las ráfagas 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. Representación de los procesos según algoritmo SRTF..........8 Figura 6. Diagrama de Gant....................................................................9
5
LISTA DE TABLAS Tabla 1. Tipos de algoritmos de planificación.........................................6 Tabla 2. Datos para ejemplo de SRTF.....................................................8 Tabla 3. Tiempos de los criterios del algoritmo SRTF.............................9
6
INTRODUCCIÓN En un sistema multiprogramado, hay múltiples procesos de modo concurrente en la memoria principal. Los procesos pueden estar usando un procesador o pueden estar esperando el suceso de algún evento, tal como la finalización de una operación. El procesador o los procesadores se mantienen ocupados ejecutando un proceso mientras el resto espera. La clave de la multiprogramación es la planificación. El objetivo de la planificación 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 planificación los apropiativos y no apropiativos. Cada uno de estos tipos cuenta con diversos algoritmos. En este trabajo se abordará el algoritmo de planificación SRTF (Shortest Remaining Time First) el cual es un algoritmo apropiativo.
7
CAPÍTULO I PROCESOS Y ALGORITMOS DE PLANIFICACIÓN 1.1 Proceso Un proceso es:(a)un programa en ejecución, (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 ejecución de una secuencia de instrucciones, un estado actual y un conjunto e recursos del sistema asociados. También se puede pensar en un proceso como una entidad que consiste en un número de elementos. Los dos elementos esenciales serían el código del programa y un conjunto de datos asociados a dicho código. [ CITATION Wil \l 10250 ] 1.1.1. Modelo de proceso En
este
modelo,
computadora,
que
todo
el
algunas
software veces
ejecutable
incluye
al
en
la
sistema
operativo, se organiza en varios procesos secuenciales (procesos).[ CITATION And09 \l 10250 ] Un proceso no es más que una instancia de un programa en ejecución, 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 conmutación rápida de un proceso a otro se conoce como multiprogramación. La diferencia
1
entre un proceso y un programa es sutil pero crucial. [ CITATION And09 \l 10250 ] Figura 1. (a) Multiprogramación de cuatro programas. (b) Modelo conceptual de cuatro procesos secuenciales independientes. (c) Sólo 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 planificación para determinar cuándo 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 suspensión está inherente en el problema (no se puede procesar la línea 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 ejecución (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 ejecución”, “bloqueado” o “listo”. Las transiciones entre estos estados son como se muestran.
En sentido lógico, 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
transición
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 canalización o de un archivo especial (como una terminal) y no hay entrada disponible, el proceso se bloquea en forma automática.[ 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 transición 2 ocurre cuando el planificador decide que el proceso en ejecución 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 transición 3 ocurre cuando todos los demás 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 transición 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 ejecución en ese instante, se activa la transición 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 más fácil 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 magnética. Cuando ocurre una interrupción de disco, el sistema toma una decisión para dejar de ejecutar el proceso actual y ejecutar el proceso de disco que está bloqueado esperando esta interrupción. 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 están esperando a que algo ocurra. Cuando se ha leído el disco o se ha escrito el carácter, el proceso que espera se desbloquea y es elegible para continuar ejecutándose.[ CITATION And09 \l 10250 ] Figura 3. Estados de un proceso 1.2.
Planificación Cuando una computadora se multiprograma, con frecuencia tiene varios procesos o hilos que compiten por la CPU al mismo tiempo. Esta situación ocurre cada vez que dos o más de estos procesos se encuentran al mismo tiempo en el estado listo. Si sólo hay una CPU disponible, hay que decidir cuál proceso se va a ejecutar a continuación. La parte del sistema operativo que realiza esa decisión se conoce como planificador de procesos y el algoritmo que utiliza se conoce como algoritmo de planificación.[ CITATION And09 \l 10250 ] 1.2.1. Comportamiento de un proceso Casi todos los procesos alternan ráfagas de cálculos 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, después 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 cálculos de nuevo hasta que necesita más datos o tiene que escribir más datos y así sucesivamente. Hay que 5
tener en cuenta que algunas actividades de E/S cuentan como cálculos. 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 cálculos; a los segundos como limitados a E/S (I/O-bound). Por lo general, los procesos limitados a cálculos tienen ráfagas de CPU largas y en consecuencia, esperas infrecuentes por la E/S, mientras que los procesos limitados a E/S tienen ráfagas de CPU cortas y por ende, esperas frecuentes por la E/S. Observe que el factor clave es la longitud de la ráfaga de CPU, no de la ráfaga de E/S. Los procesos limitados a E/S están limitados a la E/S debido a que no realizan muchos cálculos entre una petición 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 petición 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 ráfagas 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 planificación Entre los tipos contamos con los algoritmos apropiativos en donde el Sistema Operativo puede expulsar del procesador un proceso en ejecución (línea 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 planificación
7
No Apropiativos FCFS (First Come, First Serve)
Apropiativos Round-Robin
SRTF (Shortest Remaining Time First) Prioridades (Estáticas y Prioridades (Estáticas y dinámicas) dinámicas) CAPÍTULO II SJF (Shortest Job First)
ALGORITMO DE PLANEACIÓN SRTF .1
SRTF Una versión apropiativa del algoritmo tipo el trabajo más corto primero es el menor tiempo restante a continuación (SRTF, Shortest
Remaining
Time
First).
Con
este
algoritmo,
el
planificador siempre selecciona el proceso cuyo tiempo restante de ejecución sea el más corto. De nuevo, se debe conocer el tiempo de ejecución 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 ráfagas largas (como en SJF). Un punto débil de este algoritmo se evidencia cuando una ráfaga muy corta suspende a otra un poco más larga, siendo más larga la ejecución en este orden al ser preciso un cambio adicional de proceso y la ejecución del código del planificador.[CITATION Rod17 \l 10250 ] 2.1.1 Características De los procesos que están esperando para usar la CPU, SRTF lleva a ejecución 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 ejecución 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 difícil de predecir. Además existe la posibilidad
de
inanición:
los
trabajos
largos
no
se
ejecutarán mientras hayan trabajos cortos.[ CITATION Rod17 \l 10250 ] 2.2 Ejemplificación del Algoritmo SRTF Tenemos la siguiente lista de procesos. Hallar el tiempo de espera y retorno promedio haciendo uso del algoritmo de planificación SRTF. Tabla 2. Datos para ejemplo de SRTF
Proceso
Tiempo de llegada
Ráfaga de CPU
A B C D
0 1 2 3
8 4 9 5
Solución:
9
Aplicando
el
Proces Ráfag o a
algoritmo Tiempo llegada
de
planificación
SRTF
tenemos
el
Tiempo Tiempo Tiempo de Tiemp de de Espera o de Comien finalizac retorn zo ión 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
C
9
2
17
26
17-2=15
9+15= 24
siguiente diagrama: Figura 5. Representación de los procesos según 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 PRÁCTICO .1
Código 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 número de procesos: "); n = Integer.parseInt(br.readLine()); int proc[ ] [ ]= new int[n + 1][4]; for(int i = 1; i
View more...
Comments