Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmo de Planificacion de Procesos
Algoritmo de Planificacion de Procesos
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 e3n primer término.
DESCRIPCIÓN CRITERIO
Equidad Garantiza que cada proceso obtenido su proporción justa de la CPU
Eficacia Mantener ocupada la CPU por cierto tiempo
Tiempo de respuesta Minimizar el tiempo de respuesta para los usuarios interactivos
Tiempo de regreso Minimizar el tiempo que deben esperar los usuarios por lotes (Bath)
Para obtener sus resultados
Rendimiento Maximizar el número de tareas por hora
• Tiempo de retorno
Es el intervalo de tiempo desde que el proceso se ofrece hasta el momento que termina,
es decir, la suma de los periodos de tiempo transcurridos esperando entrar en la
memoria, esperando en la cola de procesos listos, ejecutando en el procesador y
efectuando alguna solicitud de E/S. en resumen, es el tiempo que tarda en ejecutarse el
proceso.
• Tiempo de respuesta
Es el tiempo transcurrido desde la presentación de una solicitud hasta que se produce
la primera respuesta. Este criterio es la cantidad de tiempo para comenzar a responder,
pero no el tiempo necesario para mostrar la respuesta. Este tiempo es independiente
del dispositivo de salida, mientras que el tiempo de retorno depende del dispositivo de
salida.
• Tiempo de espera
Es la cantidad de tiempo que un proceso espera en la cola de procesos listos.
• Tiempo de retorno normalizado
Es la razón el entre el tiempo de retorno y el tiempo de servicio. Este valor indica el
retardo relativo que ha experimentado un proceso. Este valor es más interesante que el
tiempo de retardo, ya que es valor indispensable a la duración del proceso.
• Utilización del procesador
Es el porcentaje de tiempo que el procesador está ocupado.
• Productividad
Es una medida del número de procesos que se completan por unidad de tiempo.
FISTR-COME, FIRST SERVED (FCFS)
Este algoritmo también llamado FCFS (First-Come, First-served), es el algoritmo más sencillo de
implementar. Con este esquema, el proceso que primero solicita el procesador es el primero al
que se le asigna. Esta política se implementa muy fácilmente con una cola FIFO. Cuando un
proceso entra en la cola de procesos listos su PCB se enlaza con el proceso que esta al final de
la cola. Cuando el procesador esta libre se le asigna el proceso, se lo coloca al inicio de la cola de
procesos listos, seleccionando el proceso más antiguo de la cola.
FCFS tiene un mejor rendimiento en cómputo global con procesos largos que con proseos cortos,
ya que si por ejemplo de retorno normalizado para dicho proceso corto será considerablemente
mayor que el del proceso largo.
Otro problema que representa este algoritmo, es que tiene a favorecer a los proceso con carga
de procesador frente a los procesos con carga de E/S, ya que cuando un procesos con carga de
procesador se están ejecutando, todo los procesos con carga de E/S debe esperar (se han
finalizado la correspondiente ráfaga de E/S) la siguiente ráfaga de procesador, mientras que los
dispositivos de E/S estarán ociosos. Así pues, FCFS puede dar como un resultado un uso eficiente
tanto del procesador como de los dispositivos de E/S.
Ejemplo:
Solución 2:
Algoritmo FCFS con procesos ordenados por tiempo de servicio
Proceso Tiempo Tiempo Tiempo Tiempo de Turnaroad Tiempo de
de de de Finalización Espera
llegada servicio Comienzo
B 0 100 0 100 100 0
D 1 100 100 200 199 100-1=99
A 2 1 200 201 201-2=199 200-2=198
C 3 1 201 202 20-3=198 201-3=198
PORMEDIO 174.25 123.50
El tiempo promedio de espera bajo una política FCFS generalmente no es mínimo y puede variar
sustancialmente si hay mucha diferencia entre las duraciones de ciclo de los procesos.
En el segundo ejemplo, se presenta un efecto convoy donde los procesos esperan a que un
proceso grande cortó. Un proceso corto saltará a la cabeza de la cola. La ejecución de un proceso
consiste en ciclos de ejecución de la 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 esta en conocer dichos
valores, pero podemos predecirlos usando la información de los ciclos anteriores ejecutadnos.
Se puede comprobar que el algoritmo SJF es óptimo, ya que ofrece el mínimo tiempo de
promedio de espera para un conjunto de procesos dado. La comprobación muestra que
poniendo un proceso breve antes de un largo reduce el tiempo de espera del proceso corto más
de lo que aumenta el tiempo de espera del proceso largo, por lo tanto se reduce el tiempo de
espera promedio.
Ejemplo:
Solución 1:
Algoritmo SJF
Solución 2:
Algoritmo FCFS
Proceso Tiempo Tiempo Tiempo Tiempo de Turnaroad Tiempo
de de de Finalización de
llegada servicio Comienzo Espera
A 0 8 0 8 8 0
B 1 4 8 12 12-1=11 8-1=7
C 2 9 12 21 21-2=19 12-2=10
D 3 5 21 26 26-3=23 21-3=18
PORMEDIO 15.25 8.75
El problema real de este algoritmo es conocer por lo menos estimular el tiempo de ejecución
para cada proceso. Para procesos de lotes, el sistema puede solicitar al usuario que estime el
valor de la ejecución de dicho proceso y de esta forma podérselo pasar al sistema operativo, sin
embargo en la planificación a corto plazo esta política no se puede emplear ya que no se sabe a
prioridad la duración de un proceso, ano ser que podamos predecir la duración de cada proceso
mediante técnicas estadísticas.
La política de menor tiempo restante, también llamada SRT (Shortest Remaining Time) es una
versión apropiativa del SJF, en la que el planificador siempre elige al proceso que le queda menos
tiempo esperado de ejecución. La idea es la siguiente, cuando un proceso es añadido a la cola de
listos, puede quedarle un tiempo esperado de ejecución menor que al proceso que está
ejecutándose en ese momento en el procesador, por consiguiente el planificador puede
apropiarse del procesador para desalojar al proceso en ejecución y asignárselo al nuevo proceso,
que tendrá un menor tiempo restante de ejecución. Al igual que el algoritmo SJF, el planificador
debe disponer de una estimación de tiempo para cada proceso con el fin de poder llevar a cabo la
función de seleccionar el siguiente proceso, existiendo igualmente que en el SJF peligro de
inanición para los procesos largos. Ambos algoritmos, el SJF y el SRT, no presentan un sesgo
favorable a los procesos largos como ocurre con el FCFS y tampoco se generan interrupciones
adicionales como en el Round-Robín, por el contrario se deben llevar una cuenta de los tiempos
de servicio transcurridos con el fin de que la función estadística estime de la forma más veraz los
tiempos de ejecución para cada proceso. El algoritmo SRT produce unos tiempos de retorno
mejores que el SJF, ya que los trabajos cortos reciben atención inmediata y preferente a los
procesos largos.
PRIORIDAD
En muchos sistemas, los procesos tienen prioridades asignadas, y el planificador escogerá aquel
proceso con mayor prioridad. Cuando un proceso debe ser seleccionado, el planificador por
prioridades seleccionará aquel proceso que tenga mayor prioridad. Si hay más de un proceso
entonces se deberá seguir alguna política de selección. Un problema que presenta un esquema de
planificación por prioridades puro es que los procesos con la prioridad más baja pueden sufrir de
inanición o bloqueo indefinido. Un proceso que está listo para correr pero espera porque siempre
hay procesos con prioridad más alta. Para evitar este problema, se puede ir incrementando
gradualmente la prioridad de los procesos (envejecimiento). SJF es un caso especial de
planificación por prioridad, donde la prioridad es el inverso del valor estimado del próximo ciclo
de CPU (a menor ciclo, mayor prioridad).
Ejemplo:
• Sea la siguiente descripción de carga:
Solución:
Algoritmo por prioridades
Este algoritmo puede ser apropiado y no apropiado. En el caso de apropiado, cuando un proceso
llaga a la cola de procesos listos, su prioridad es compartida con la prioridad del proceso que
está corriendo. Si la prioridad del nuevo proceso es mayor, entonces se atiende al nuevo
proceso.
ALGORITMO SRTF
En el algoritmo SRT, Shortest Remaining Time o Primero el menor tiempo restante, es la versión
expulsiva del algoritmo SJF conocido como “trabajo mas corto primero” que maneja los trabajos
con base en duración de su ciclo del CPU.
Se diferencia del SJF en que si un nuevo proceso pasa a listo se activa el dispatcher para ver si es
más corto que lo que queda por ejecutar del proceso en ejecución. Si es así el proceso en
ejecución pasa a listo y su tiempo de estimación se decreta con el tiempo que ha estado
ejecutándose. Este algoritmo tiene mayor ventaja del SJF ya que es óptimo para las ráfagas que
llegan indistintamente ya que prefiere los procesos cortos y tiene la opción de suspende el que
se está ejecutando para dar paso al nuevo.
En este caso se usa Quantum, que es un tiempo determinado en el que pasa un proceso por el
CPU que no puede ser modificado por el usuario.
Ejemplo:
Solución:
NOTA: Cuando termina una corrida se vuelve a buscar desde arriba los más coros excepto los
que ya terminaron.
Ejemplo:
En un cierto instante se tiene los siguientes procesos:
Solución:
Algoritmo Round Robin