Algoritmos de Planificacion FCFS, SJF, SRTF, Round Robind

Emilio Sedano Gijon PSP Actividad.

Programación de Servicios y Procesos

Introducción

Aquí vamos a centrarnos en analizar los distintos tipos de algoritmos de planificación.  Estos algoritmos surgen debido a la necesidad de poder organizar los procesos de una manera eficiente para el procesador.

Los algoritmos de planificación se encargan de asegurar que un proceso no monopoliza el procesador. Un proceso es un programa que está en ejecución. Este proceso puede estar en 3 estados distintos  “Listo” “Bloqueado” y “En Ejecución”. Los procesos son almacenados en una lista  junto con la información que indica en qué estado está el proceso, el tiempo que ha usado el CPU, etc.

1

Ahora vamos a ver los diferentes algoritmos de Planificación que estamos estudiando:

FCFS “Firts-Come, First-Served”

 En esta política de planificación, el procesador ejecuta cada proceso hasta que termina, por tanto, los procesos que en cola de procesos preparados permanecerán encolados en el orden en que lleguen hasta que les toque su ejecución. Este método se conoce también como FIFO (fist input, first output, Primero en llegar primero en salir). 
    Se trata de una política muy simple y sencilla de llevar a la práctica, pero muy pobre en cuanto a su comportamiento. 
    La cantidad de tiempo de espera de cada proceso depende del número de procesos que se encuentren en la cola en el momento de su petición de ejecución y del tiempo que cada uno de ellos tenga en uso al procesador, y es independiente de las necesidades del propio proceso. 
Sus características son: 
– No apropiativa. 
– Es justa, aunque los procesos largos hacen esperar mucho a los cortos. 
– Predecible. 
– El tiempo medio de servicio es muy variable en función del número de procesos y su duración.

Ejemplo :

Proceso A → Tiempo ejecución → Tiempo llegada → Tiempo finaliza → Tiempo retorno → Tiempo espera .

2

 

En el caso de que los procesos de mayor tiempo de duración llegasen los primeros, el tiempo medio de espera sería mucho mayor. Podemos llegar a la conclusión de que este no es un algoritmo eficiente.

Conclusión:

Este algoritmo esta bien lo único que que los procesos largos hacen esperar mucho a los cortos.

Predecible. 
-El tiempo medio de servicio es muy variable en función del número de procesos y su duración.

Bibliografía

http://pachel.tripod.com/materias/material3sis.htm

SJF “Shortest  Job First”

En este algoritmo , da bastante prioridad a los procesos más cortos a la hora de ejecución  y los coloca en la cola.

Ejemplo:

Una cola de personas en Mercadona delante de la caja , la persona que menos compra lleva esa pasa primero.

3

Conclusión

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

Bibliografía

http://es.scribd.com/doc/44358964/FSO-Algoritmos-de-Planificacion-Algoritmo-SJF-Shortest-Job-First

SRTF “Short Remaining Time First”

Es similar al SJF, con la diferencia de 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 decremento con el tiempo que ha estado ejecutándose.

 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.

4

Conclusión:

 El intervalo de CPU es difícil de predecir
– Posibilidad de inanición: los trabajos largos no se ejecutarán mientras hayan trabajos cortos.

Bibliografía:

http://algoritmosplanificacion.blogspot.com.es/2012/08/srtf-short-remaining-time-first.html

Round Robin

Es un método para seleccionar todos los elementos en un grupo de manera equitativa y en un orden racional, normalmente comenzando por el primer elemento de la lista hasta llegar al último y empezando de nuevo desde el primer elemento.

Round Robin es uno de los algoritmos de planificación de procesos más complejos y difíciles, dentro de un sistema operativo asigna a cada proceso una porción de tiempo equitativa y ordenada, tratando a todos los procesos con la misma prioridad.
Se define un intervalo de tiempo denominado cuanto, cuya duración varía según el sistema. La cola de procesos se estructura como una cola circular. El planificado la recorre asignando un cuanto de tiempo a cada proceso. La organización de la cola es FIFO.

5

Conclusión:

Cada proceso tiene asignado un intervalo de tiempo de ejecución, llamado cuantum o cuanto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum también se alterna el uso de la CPU. El round robín es muy fácil de implementar. Todo lo que necesita el planificado es mantener una lista de los procesos listos.

Bibliografía:

http://es.wikipedia.org/wiki/Planificaci%C3%B3n_Round-robin

Conclusión personal

En mi opinión el algoritmo de Round Robbin es el mas fiable ya que cada proceso se le asigna un tiempo de ejecución si se agota elige otro proceso .

Tambien el algotrismo SJF esta bien ya que prioriza según las necesidades de la CPU.

Anuncios

Publicado el 16 septiembre, 2014 en Programacion de Servicios. Añade a favoritos el enlace permanente. 2 comentarios.

  1. Excelente post, me ha servido mucho 🙂

  1. Pingback: Algoritmos de planificación – Ejemplos – ITgeek

A %d blogueros les gusta esto: