Sunteți pe pagina 1din 9

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

ALGORITMOS DE PLANIFICACIÓN

“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
INDICE

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

2. Modelo del Sistema

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

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

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

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. Conclusiones……………………………………………………………………….7

6. Webgrafía…………………………………………………………………………..7
Fundamentos de Sistemas Operativos 1
Algoritmos de Planificación

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.1Ciclo 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.

Algoritmo de Planificación SJF


Fundamentos de Sistemas Operativos 1
Algoritmos de Planificación

1.1Planificació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 espera


b) 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.

1 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.

Algoritmo de Planificación SJF


Fundamentos de Sistemas Operativos 1
Algoritmos de Planificación

2 Algoritmo Shortest-Job-First (SJF)


2.1Características
La 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.

Algoritmo de Planificación SJF


Fundamentos de Sistemas Operativos 1
Algoritmos de Planificación

2.2Comportamiento
El 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.

1.1Ventajas y Desventajas
Riesgo
Es probablemente
quede minimiza
inanición
óptimo,
Desventajas
Ventajas el
de tiempo
los
ya que
procesos
reduce
de finalización
de
el tiempo
larga de espera.
promedio
duración.
Planificación por Prioridad al más corto
promedio
SJFSJF
El da el no
de
mínimo
cada
es tiempo
job (SJF,
implementable Short Job
de espera promedio
se puedenFirst).
para
un conjuntoduraciones
estimarlas de procesos de los procesos, según su
Entra enreciente.
historia CPU el proceso con la ráfaga de CPU
másdificultad
La breve. en el algoritmo SJF es conocer la
longitud
Minimiza de de espera
la próxima
el tiempo ráfagamedio.
de CPU de un
proceso

Algoritmo de Planificación SJF


Fundamentos de Sistemas Operativos 1
Algoritmos de Planificación

1.1Ejemplos

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 llegada

P1 0

P2 2

P3 4

P4 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).

Algoritmo de Planificación SJF


Fundamentos de Sistemas Operativos 1
Algoritmos de Planificación

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).

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 7
P2 2 4
P3 4 1
P4 5 4

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

2 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
Algoritmo de Planificación SJF
Fundamentos de Sistemas Operativos 2
Algoritmos de Planificación

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.

➢ 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.

1 Webgrafía
➢ http://www.slideshare.net/search/slideshow?
searchfrom=header&q=algoritmo+sjf
➢ http://es.wikiversity.org/wiki/Sistemas_operativos#Curso_de_Sistemas_Opera
tivos:
➢ 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/

Algoritmo de Planificación SJF