Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Los algoritmos de planificación de procesos es la forma que usa el sistema operativo a través del
gestor de procesos para determinar que proceso le entrego al CPU de un conjunto de procesos
que me están solicitando entrar al CPU. Esta decisión va a variar de un sistema operativo a otro,
pero esas decisiones se toman como base usando los algoritmos de planificación, los cuales se
mencionan a continuación:
FIFO (First IN – First Out) : Este algoritmo es como la cola de un banco, supermercado entre
otros. Donde el primero en ser atendido es el primero en entrar. Son atendidos en el mismo orden
que llegan.
L A B C D
U 0 1 2 3 4 5 6 7 8 9 10
E A A A B B B B B C C
L E
U 11 12 13 14 15 16 17 18 19 20
E D D D D D E E E E E
L Tiempo de Llegada
U Unidad de Tiempo
E Tiempo en que se ejecutan
P=T/t
Dependiendo del algoritmo lo que se piensa hacer es una corrida en frio, en la cual vamos a
determinar el orden en que esos procesos van a pasar a ejecución emulando lo que hace el
sistema operativo en la vida Real.
Como se puede observar en este algoritmo todos los procesos fueron atendidos en el momento en
que llegaron, no es el más eficiente, pero si es equitativo. Si analizamos “A” tiene a su izquierda el
tiempo de arranque (0), pero lo que me interesa son los tiempos de finalización que sería el
número que está a la derecha de la ultima A (3), B (5), C (10), D (15), E (20).
Nota: El tiempo perfecto de “P” es de 1,0 y su promedio nos indica que tarda 1,75 en ejecutarse
por lo tanto debemos compararlo con otro algoritmo para determinar si los tiempos de ejecución
son los mejores.
FIFO casi siempre da peores resultados, la pregunta es ¿porque se utiliza? Bueno precisamente porque hay
escenarios donde si resulta conveniente usar FIFO, pero casi nunca arroja buenos resultados ya que FIFO
busca ser equitativo, no busca ser optimo, no busca optimizar el numero de procesos que entran al CPU, ni
reducir los tiempos de respuesta, solo busca ser equitativo, tal como lo es en la vida real, cuando busco
equidad estoy buscando ser justo.
En este algoritmo el sistema da prioridad a los procesos mas pequeños, quiere decir que si en la
configuración tengo 5 procesos que llegan yo daré mas importancia a los procesos pequeños y
dejar los grandes de ultimo (no busca ser equitativo sino mejorar los tiempos de respuesta.)
L A B C D
U 0 1 2 3 4 5 6 7 8 9 10
E A A A C C B B B B B
L E
U 11 12 13 14 15 16 17 18 19 20
E D D D D D E E E E E
Este algoritmo es una variación del anterior (SJF) con la diferencia de que si es apropiativo, lo que significa que yo entrego
a ese proceso al CPU pero no espero a que ese proceso termine, sino que en un momento dado si llega otro proceso cuyo
tiempo restante es mas corto, sea menor que el ya esta procesando, dejo de procesar el que tengo y empiezo a procesar el
que acaba de llegar.
Por Ejemplo:
Bomba 1: 00:45 Dejo el proceso
Bomba 2: 00:15 Me cambio antes de que explote la bomba 😊
L A B C D E
U 0 1 2 3 4 5 6 7 8 9 10
E A A B C C B B B B D
L
U 11 12 13 14 15 16 17 18 19 20
E E E D D D
Nota: Nos arroja datos menores, sin embargo, no podemos compararlo con los anteriores dos porque usamos datos
distintos, sin embargo, si fueran los mismos datos y diera menos que los anteriores 2, seria el mejor algoritmo.
4- Prioridades: En los sistemas operativos no todos los procesos tienen el mismo nivel de prioridad o importancia, y yo
debo de atender primero el más urgente. El algoritmo de prioridades básicamente es un numero asignado a un proceso, a
menor valor de número, mayor es su prioridad. Si tengo dos procesos A y B, donde A tiene como prioridad 6 y B – 3,
entonces el proceso que atenderé primero será B.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ejemplo Prioridad
L A B C D
U 0 1 2 3 4 5 6 7 8 9 10
E A B B C C B B B A A
L E
U 11 12 13 14 15 16 17 18 19 20
E D D D D D E E E E E
Round Robbin se debe a que doy una especie de vuelta atendiendo peticiones en un instante de tiempo, este sistema es apropiativo (por ejemplo, te presto el CPU por tiempos que se miden en segundos). Anteriormente era por prioridades, ahora te
quito el CPU porque se te acaba el tiempo. En sistemas compartidos a mayor cantidad de usuarios conectados, menor cantidad de tiempo o Quantun.
Q=1
L A B C D
U 0 1 2 3 4 5 6 7 8 9 10
E A B A B C A B C B D
L E
U 11 12 13 14 15 16 17 18 19 20
E B D E D E D E D E E
Nota: Se recomienda llevar un registro de la cola, por lo que se puede ir dibujando, ya que la interactividad es muy alta este
algoritmo es el más complejo hasta ahora.
Cola A B C A B C
Ejecución A B A B C A B
Resuelto
Cola A B C A B C B D B D E D E D E D E
Ejecución B A B C A B C B D B D E D E D E D E E
L A B C D
U 0 1 2 3 4 5 6 7 8 9 10
E A B A B C A B C B D
L E
U 11 12 13 14 15 16 17 18 19 20
E B D E D E D E D E E