fso - algoritmos de planificación - algoritmo sjf(shortest job first)

12
ESCUELA SUPERIOR POLITÁCNICA DE CHIMBORAZO FACULTAD DE INFORMÁTICA Y ELECTRÓNICA ESCUELA DE INGENIERÍA ELECTRÓNICA INGENIERÍA ELECTRÓNICA, TELECOMUNICACIONES Y REDES FUNDAMENTOS DE SISTEMAS OPERATIVOS FUNDAMENTOS DE SISTEMAS OPERATIVOS ALGORITMOS DE PLANIFICACIÓN ALGORITMOS DE PLANIFICACIÓN “ALGORITMO SHORTEST-JOB-FIRST (SJF)” “ALGORITMO SHORTEST-JOB-FIRST (SJF)” DOCENTE: Ing. Katy Cabezas INTEGRANTES: Cevallos Sánchez Liseth Parreño Ocaña Alexandra Quishpe Yambay Génova Santamaría Tapia Evelyn RIOBAMBA

Upload: genova

Post on 26-Jun-2015

7.948 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FSO - Algoritmos de Planificación - Algoritmo SJF(Shortest Job First)

ESCUELA SUPERIOR POLITÁCNICA DE CHIMBORAZO

FACULTAD DE INFORMÁTICA Y ELECTRÓNICA

ESCUELA DE INGENIERÍA ELECTRÓNICA

INGENIERÍA ELECTRÓNICA, TELECOMUNICACIONES Y REDES

FUNDAMENTOS DE SISTEMAS OPERATIVOSFUNDAMENTOS DE SISTEMAS OPERATIVOS

ALGORITMOS DE PLANIFICACIÓNALGORITMOS DE PLANIFICACIÓN

“ALGORITMO SHORTEST-JOB-FIRST (SJF)”“ALGORITMO SHORTEST-JOB-FIRST (SJF)”

DOCENTE: Ing. Katy Cabezas

INTEGRANTES:

Cevallos Sánchez Liseth

Parreño Ocaña Alexandra

Quishpe Yambay Génova

Santamaría Tapia Evelyn

RIOBAMBA 2010 – 2011

Page 2: FSO - Algoritmos de Planificación - Algoritmo SJF(Shortest Job First)

INDICE

1.1. Introducción………………………………………………………………………...1

2.2. Modelo del Sistema

2.1.Ciclo de Ráfagas de CPU y E/S…………………………………………….1

2.2.Planificación Expropiada……………………………………………………..2

3.3. Algoritmos de Planificación……………………………………………………….2

4.4. Algoritmo Shortest-Job-First (SJF)

4.1.Características………………………………………………………………...3

4.2.Comportamiento………………………………………………………………4

4.3.Ventajas y Desventajas………………………………………………...........4

4.4.Ejemplos……………………………………………………………………….5

5.5. Conclusiones……………………………………………………………………….7

6.6. Webgrafía…………………………………………………………………………..7

Page 3: FSO - Algoritmos de Planificación - Algoritmo SJF(Shortest Job First)

Algoritmo de Planificación SJF

Fundamentos de Sistemas OperativosAlgoritmos de Planificación

1

1 Introducción

El objetivo de la multiprogramación es tener un proceso en ejecución en todo momento para un mayor aprovechamiento de la CPU.

En un sistema monoprocesador nunca habrá más de un proceso en ejecución. Si hay más procesos, tendrán que esperar a que la CPU quede libre para reasignarse.

Para un mayor aprovechamiento, se mantiene varios procesos en memoria a la vez. Cuando un proceso necesita esperar, el sistema operativo le asigna e procesador a otro proceso.

Casi todos los recursos del computador se planifican antes de usarse, la planificación es fundamental en el diseño del SO.

2 Modelo del Sistema

2.1 Ciclo de Ráfagas de CPU y E/S

La ejecución de un proceso consiste en un ciclo de ejecución alternado de manera sucesiva:

Ráfagas de CPU: (Que inicia el proceso), durante las cuales el proceso ejecuta instrucciones.

Ráfagas de E/S: Durante las cuales el proceso utiliza o espera por la E/S.

Las ráfagas del CPU varia considerablemente de un proceso a otro y de un procesador a otro, sin embargo tienden a tener una curva de frecuencia bien tipificada.

Histograma de tiempos de ráfaga de CPU

Se observa:

- Gran número de ráfagas de CPU cortas y pocas ráfagas de CPU largas.- Ráfagas de CPU cortas: programas limitados por E/S.- Ráfagas de CPU largas: programas limitados por CPU.

Page 4: FSO - Algoritmos de Planificación - Algoritmo SJF(Shortest Job First)

Algoritmo de Planificación SJF

Fundamentos de Sistemas OperativosAlgoritmos de Planificación

2

2.2 Planificación Expropiada

Las decisiones de planificación de CPU se toman según las cuatro situaciones siguientes:

a) Cuando un proceso pasa del estado en ejecución a en esperab) Cuando un proceso pasa del estado en ejecución a listo.c) Cuando un proceso pasa del estado en espera al estado listo.d) Cuando un proceso termina.

Los procesos a y d corresponden a una planificación no expropiada (obligatoriamente se escoge un proceso)

Los casos b y c corresponden a una planificación expropiada.

3 Algoritmos de Planificación

Cuando más de un proceso es ejecutable desde el punto de vista lógico, el sistema operativo debe decidir cuál de ellos debe ejecutarse en primer término. El planificador es la porción del sistema operativo que decide y el algoritmo de planificación es el utilizado.

Existen dos categorías:

Apropiativos

El Sistema Operativo puede expulsar del procesador un proceso en ejecución (línea punteada.)

No Apropiativos

Estos procesos, no pueden ser expulsados por el Sistema Operativo.

Page 5: FSO - Algoritmos de Planificación - Algoritmo SJF(Shortest Job First)

Algoritmo de Planificación SJF

Fundamentos de Sistemas OperativosAlgoritmos de Planificación

3

4 Algoritmo Shortest-Job-First (SJF)

4.1 CaracterísticasLa palabra shortest (el más corto) se refiere al proceso que tenga el el próximo ciclo de CPU mas corto. La idea es escoger entre todos los procesos listos el que tenga su próximo ciclo de CPU más pequeño.

El algoritmo de primero el trabajo más corto (SJF, shortest job first), que asocia a cada proceso la longitud de la siguiente ráfaga de CPU de ese proceso. Cuando la CPU queda disponible, asigna al proceso cuya siguiente ráfaga de CPU sea más corta. Si hay dos procesos cuyas siguientes ráfagas de CPU tienen la misma duración, se emplea planificación FCFS (first come, first served) para romper el empate. El problema está en conocer dichos valores, pero podemos predecirlos usando la información de los ciclos anteriores ejecutados.

Puede comprobarse que el algoritmo SJF es óptimo, ya que ofrece el menor tiempo promedio para un conjunto de procesos dados. El problema principal del algoritmo es el conocimiento de la longitud de la siguiente ráfaga de CPU por tanto no puede implantarse a nivel de la planificación de la CPU, aunque se utilizan aproximaciones. Aunque no se conocen los valores de las siguientes ráfagas de la CPU podemos predecir su valor esperando que sea más o menos del mismo tamaño que las anteriores (Por ello se elige el proceso con ráfaga previa de CPU más breve)

El algoritmo “primero el trabajo más corto” (shortest – job - first). Establece para la planificación una relación entre proceso y ráfaga de la CPU. Es decir, al liberarse la CPU ingresará el proceso con la menor ráfaga de tiempo, el más pequeño primero, y si existiera más de un proceso con igual valor, pues se aplicaría dentro de este el algoritmo anterior (FCFS). Este algoritmo presenta una gran ventaja, pues el tiempo de espera será mucho menor, pues mientras los procesos de tiempo inferior terminan y ocupan tiempo en operaciones de E/S, el CPU se ocupa de resolver el proceso con mayor tiempo, un algoritmo muy óptimo.

Este algoritmo puede ser preemptive y nonpreemptive. En el caso de preemptive, cuando un proceso llega a la cola de procesos listos, su prioridad es comparada con la prioridad del proceso que está corriendo. Si la prioridad del

nuevo proceso es mayor, entonces se atiende al nuevo proceso.

En resumen, este algoritmo selecciona al proceso con el próximo tiempo de ejecución más corto. Un proceso corto saltará a la cabeza de la cola. La ejecución de un proceso consiste en ciclos de ejecución de CPU y ciclos de espera por E/S. El algoritmo selecciona aquel proceso cuyo próximo ciclo de ejecución de CPU sea menor. El problema está en conocer dichos valores, pero podemos predecirlos usando la información de los ciclos anteriores ejecutados.

Page 6: FSO - Algoritmos de Planificación - Algoritmo SJF(Shortest Job First)

Algoritmo de Planificación SJF

Planificación por Prioridad al más corto (SJF, Short Job First).

Es probablemente óptimo, ya que reduce el tiempo de espera.

promedio de cada job

Ventajas Desventajas

Es que minimiza el tiempo de finalización promedioSJF da el mínimo tiempo de espera promedio para un conjunto de procesosEntra en CPU el proceso con la ráfaga de CPU más breve.Minimiza el tiempo de espera medio.

Riesgo de inanición de los procesos de larga duración.El SJF no es implementable se pueden estimarlas duraciones de los procesos, según su historia reciente.La dificultad en el algoritmo SJF es conocer la longitud de la próxima ráfaga de CPU de un proceso

Fundamentos de Sistemas OperativosAlgoritmos de Planificación

4

4.2 ComportamientoEl SJF se puede comportar de dos formas:

Con Desalojo: Si se incorpora un nuevo proceso a la cola de listos y este tiene un ciclo de CPU menor que el ciclo de CPU del proceso que se está ejecutando, entonces dicho proceso es desalojado y el nuevo proceso toma la CPU.

Sin desalojo: Cuando un proceso toma la CPU, ningún otro proceso podrá apropiarse de ella hasta que que el proceso que la posee termine de ejecutarse.

El algoritmo SJF puede ser apropiativo (SRT) o no apropiativo. La alternativa se plantea cuando un nuevo proceso llega a la cola de procesos listos mientras se esta ejecutando otro proceso. El nuevo proceso puede tener una ráfaga de CPU menor que lo que resta del proceso que se ejecuta en ese momento. Un algoritmo SJF apropiativo desplazará al proceso que se ejecuta.

4.3 Ventajas y Desventajas

4.4 Ejemplos

Page 7: FSO - Algoritmos de Planificación - Algoritmo SJF(Shortest Job First)

Algoritmo de Planificación SJF

Fundamentos de Sistemas OperativosAlgoritmos de Planificación

5

Algoritmo SJF con Desalojo

Para el siguiente ejemplo se tienen 4 procesos (P1, P2,P3 y P4). A medida que estos se van incorporando a la cola de listos, se les calcula su próximo ciclo de CPU. Para calcular el próximo ciclo de CPU se pueden emplear: métodos estadísticos, cálculos probabilísticos, entre otros.

Proceso Tiempo de llegadaP1 0P2 2P3 4P4 5

En el ejemplo se toma como criterio que la cola de procesos listos está inicialmente vacía.En la figura se representa la llegada de P1 a la cola de listos con un tiempo de llegada (0,0). Luego a P1 se le calcula su CCPU (CCPU = 7) y en ese instante se comienza a ejecutar.

Estando en ejecución el proceso P1, se incorpora a la cola de listos P2, al cual se le calcula su CCPU (CCPU = 4).Pero como el CCPU de P2 es menor que el CCPU de P1, entonces P1 es desalojado y P2 toma la CPU. En este caso P1 se reincorpora a la cola de listos porque no ha terminado su ejecución, y en ese instante se le vuelve a calcular el valor del CCPU (CCPU = 6).

Luego llega el proceso P3 a la cola de listos y se le calcula el CCPU (CCPU = 1).Por lo que sucede igual que el caso anterior, el CCPU de P3 es menor que el CCPU de P2, por lo que se desaloja P2 para cederle la CPU a P3.P2 es reincorporado a la cola de listos porque no ha terminado su ejecución CCPU y se le vuelve a calcular su CCPU (CCPU = 3).

Page 8: FSO - Algoritmos de Planificación - Algoritmo SJF(Shortest Job First)

Algoritmo de Planificación SJF

Fundamentos de Sistemas OperativosAlgoritmos de Planificación

6

El proceso P4 se incorpora a la cola de listos y se le calcula su CCPU (CCPU = 4).Luego P3 termina su ejecución para cederle la CPU al próximo proceso que le corresponda según el criterio que establece el algoritmo.Para el ejemplo le corresponde el turno a P2, luego a P4 y finalmente a P1.

Algoritmo SJF sin Desalojo

Proceso Tiempo de llegada Ráfaga CPU (ms)P1 0 7P2 2 4P3 4 1P4 5 4

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

5 Conclusiones

Debemos tomar en consideración que este algoritmo SJF no se puede implementar en cualquier Sistema Operativo, sólo en aquellos que funcionan por lotes. En la actualidad no son muy utilizados ya que existen algoritmos mucho más eficientes y fáciles de implementar en cualquier sistema operativo para un mejor rendimiento del CPU

Es importante tomar en cuenta que, por defecto, se realiza el primer proceso en entrar, y a continuación los siguientes aplicando los criterios del algoritmo SJF. Además cuanto existe un empate en las ráfagas de dos procesos, se necesita de otro algoritmo, normalmente FIFO, para desempatarles.

P1 P3 P2

73 160

P4

8 12

Page 9: FSO - Algoritmos de Planificación - Algoritmo SJF(Shortest Job First)

Algoritmo de Planificación SJF

Fundamentos de Sistemas OperativosAlgoritmos de Planificación

7

El algoritmo SJF se puede comportar de dos maneras, en la una cuando ingresas procesos mas cortos al que se esta ejecutando, lo suspende y realiza el que entro, este es un problema, ya que puede provocar inanición.

El algoritmo SJF nos da el mínimo tiempo de espera, por lo que en un sistema por lotes es muy óptimo. Pero los procesos sufren riesgo de inanición ya que los procesos lagos se mantienen mucho tiempo en tiempos muertos, además si se maneja el comportamiento con desalojo, los procesos largos no se ejecutarían.

6 Webgrafía http://www.slideshare.net/search/slideshow?

searchfrom=header&q=algoritmo+sjf http://es.wikiversity.org/wiki/

Sistemas_operativos#Curso_de_Sistemas_Operativos: http://www.slideshare.net/joss1991/planificacin-de-la-cpu/download http://www.slideshare.net/stefanosalvatori/planificacion-procesos-gral http://literaturafyr.blogspot.com/ http://bloglibros.com/categoria/juveniles/