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 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. Mode Modelo lo del del Sis Siste tema ma 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. Algori Algoritmo tmo Short Shortest est-Jo -Job-F b-Firs irstt (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
Algoritmos de Planificación Planificación
1 Introducción El objetivo de la multiprogramación 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 de del Sis Sisttema 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. 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 número de ráfaga ráfagas s de CPU cortas cortas y pocas pocas ráfagas ráfagas de CPU larga largas. s. – Ráfagas Ráfagas de CPU CPU cortas: cortas: progra programas mas limita limitados dos por por E/S. – Ráfagas Ráfagas de CPU CPU largas: largas: progra programas mas limita limitados dos por por CPU. CPU.
Algoritmo de Planificación SJF
1
Fundamentos de Sistemas Operativos
Algoritmos de Planificación Planificación
1.1Planificación Expropiada Las decisiones de planificación de CPU se toman según las cuatro situaciones siguientes:
a) b) c) d)
Cuando un proceso pasa del estado en ejecución a en espera Cuando Cuando un proce proceso so pasa pasa del estado estado en en ejecuci ejecución ón a listo. listo. Cuando Cuando un proce proceso so pasa pasa del estado estado en en espera espera al estado estado listo. listo. Cuand Cuando o un proce proceso so term termina ina..
Los Los proc proces esos os a y d corr corres espo pond nden en a una una plan planif ific icac ació ión n no expr exprop opia iada da (obligatoriamente (obligatoriamente se escoge un proceso) Los casos b y c corresponden a una planificación expropiada.
1 Al Algo gori ritm tmos os de Pl Plan anifi ifica caci ción ón Cuand Cuando o más de un proces proceso o es ejecut ejecutab able le desde desde el punto punto de vista vista lógic lógico, o, el sistema operativo debe decidir cuál de ellos debe ejecutarse en primer término. El plani planific ficado adorr es la porció porción n del del sistem sistema a opera operativ tivo o que decid decide e y el algori algoritmo tmo 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
1
Fundamentos de Sistemas Operativos
1
Algoritmos de Planificación Planificación
2 Alg Algori oritmo tmo Sh Short ortest est-Jo -Job-F b-Firs irstt (SJ (SJF) F) 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, ( 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 ( 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 Este algo algori ritm tmo o pued puede e ser ser pree preemp mpti tive ve y nonp nonpre reem empt ptiv ive. e. En el caso caso de preemptive, 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 ejecu ejecució ción n más corto. corto. Un proceso proceso corto corto saltar saltará á a la cabeza cabeza de la cola. 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
Algoritmos de Planificación 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 desal desalojo ojo:: Cuan Cuando do un proces proceso o toma toma la CPU, CPU, ningú ningún n otro otro proces proceso o 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 menor que que lo que que resta resta del proces proceso o que se ejecut ejecuta a en ese momen momento. to. Un algoritmo SJF apropiativo desplazará al proceso que se ejecuta.
1.1Ventajas y Desventajas Es probablemente Riesgo quede minimiza inanición óptimo, el de tiempo los ya que procesos reduce de finalización de el tiempo larga de espera. Desventajas Ventajas Planificación por Prioridad al más corto duración. promedio promedio de cada job(SJF, Short Job First ). El SJF SJF da el mínimo no no es tiempo implementable de espera promedio se pueden para ). un conjunto las duraciones las de procesos de los procesos, según su estimar historia Entra enreciente. CPU el proceso con la ráfaga de CPU más La dificultad breve. en el algoritmo SJF es conocer la longitud la próxima ráfaga de CPU de un medio. Minimiza de el tiempo de espera proceso
Algoritmo de Planificación SJF
1
Fundamentos de Sistemas Operativos
1
Algoritmos de Planificación 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, 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 procesos listos está inicialm inicialmente ente 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.
Estand Estando o en ejecuc ejecución ión el proces proceso o 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 desa desalo loja jado do y P2 toma toma la CPU. CPU. En este 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 Planificación Lueg Luego o lleg llega a el proc proces eso o P3 a la cola cola de listos y se le calcula el CCPU (CCPU = 1). Por Por lo que suce sucede de igual ual que que el caso 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 rein reinco corp rpor orad ado o a la cola cola de listo listos s porq porque ue no ha term termin inad ado o su ejec ejecuc ució ión 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). Lueg Luego o P3 term termin ina a su ejec ejecuc ució ión n para 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 Algori tmo 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 espera medio = (0 + 6 + 3 + 7)/4 7)/4 = 4
2 Conclusiones ➢
Debemo Debemos s tomar tomar en consid considera eració ción n que este este algor algoritm itmo o SJF no se puede 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
Algoritmos de Planificación 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. desempatarles.
➢
El algoritmo SJF se puede comportar de dos maneras, en la una cuando ingres ingresas as proce procesos sos mas mas cortos cortos al que que se esta esta ejecut ejecutand ando, o, lo suspen suspende de y realiza el que entro, este es un problema, ya que puede provocar inanición. 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 manej maneja a el compo comporta rtamie miento nto con desal desalojo ojo,, los los proces procesos os largo largos s no se ejecutarían.
1 Webgrafía ➢ ➢ ➢ ➢ ➢ ➢
http://www.slideshare.net/search/sli http://www.slideshare.net/search/slideshow? deshow? searchfrom=header&q=algoritmo+sjf http://es.wikiversity.org/wiki/Sistemas_ http://es.wikiversity.org/wiki/Sistemas_operativos#C operativos#Curso_de_Sistem urso_de_Sistemas_Opera as_Opera tivos: http://www.slideshare.net/joss19 http://www.slideshare.net/joss1991/planificacin 91/planificacin-de-la-cpu/down -de-la-cpu/download load http://www.slideshare.net/stefanosal http://www.slideshare.net/stefanosalvatori/planifica vatori/planificacion-procesos-g cion-procesos-gral ral http://literaturafyr.blogspot.com/ http://bloglibros.com/categoria/juveniles/
Algoritmo de Planificación SJF
2