Está en la página 1de 13

Tecnológico Nacional de México | Campus Puerto

Vallarta

Ingeniería en Sistemas Computacionales


5to Semestre

Sistemas Operativos
Investigación "Algoritmos de planificación"

Seth Gabriel García Rivera

Andrea Moran Luna

Indira Vanessa Hernandez Topete

Oliver Andres Alvarez Ortiz

JOSE MARTIN VILLALOBOS SALMERON

13/10/2023
INTRODUCCIÓN

La gestión eficiente de los procesos es esencial para el rendimiento óptimo de un


sistema operativo, ya que determina cómo se asigna el tiempo de la CPU a los
distintos procesos en ejecución. En este contexto, existen varios algoritmos de
planificación que desempeñan un papel fundamental en la gestión eficiente de los
recursos del sistema. A continuación, indagaremos cuatro de estos algoritmos clave:
Round Robin, Shortest-Remaining-Time (SRT), FIFO (First-In-First-Out) y
Shortest-Job-First (SJF). Cada uno de estos algoritmos presenta sus propias
características, ventajas y desventajas, y su elección puede tener un impacto
significativo en el rendimiento y la capacidad de respuesta del sistema operativo.

En está investigación, analizaremos en profundidad estos algoritmos, desglosando


cómo funcionan y en qué contextos son más efectivos, brindando así una visión
integral de la planificación de procesos en sistemas informáticos.
Round Robin (RR).
Es un algoritmo de planificación diseñado para sistemas de tiempo compartido. Se
asigna a cada proceso una porción de tiempo equitativa, tratando a todos los
procesos con la misma importancia y prioridad.

El uso de Round Robin ayuda al ordenador seguir las necesidades del usuario y
manejar efectivamente los procesos de las aplicaciones en uso. Se mantienen los
trabajos en progreso mediante el uso de ciclos de tiempo, estos ciclos son
denominados “Quantum” y se estructuran de forma circular.

La organización de la cola es FIFO (First In First Out), el Quantum se implanta


mediante un temporizador que genera un interrupción cuando se agota el Quantum
de tiempo (su ciclo). Si el proceso/tarea se finaliza antes de finalizar el Quantum, se
asigna inmediatamente otro proceso.
Características:

- Reparto de tiempo en el CPU:


Asigna tiempo de CPU a cada proceso de manera justa y equitativa. Cada
proceso recibe el mismo tiempo de CPU en función a su posición en la cola
de procesos y la duración del Quantum.
- Rápida respuesta a las solicitudes de los usuarios:
Dado que cada proceso se ejecuta durante un intervalo de tiempo fijo, los
tiempos de respuesta son rápidos. Los procesos cortos se pueden completar
en un ciclo de tiempo y los procesos largos se completan en varios.

Algoritmo para calcular el tiempo de los procesos totales:


Shortest - Remaining -Time (SRT)

El algoritmo de planificación SRTF (Shortest Remaining Time First) es una variante


del algoritmo SJF. En este caso, el procesador asigna el tiempo de procesamiento al
proceso que tenga la duración más corta, pero se actualiza constantemente para
adaptarse a los cambios en la duración del proceso. Es decir, si un proceso más
corto llega mientras se está ejecutando un proceso largo, el procesador cambiará
inmediatamente al proceso más corto.

La principal ventaja del algoritmo SRTF es que resuelve el problema de la inanición


que puede ocurrir en el algoritmo SJF. Al dar prioridad a los procesos más cortos y
actualizar constantemente la duración restante del proceso, el algoritmo SRTF
asegura que los procesos más largos no se queden esperando indefinidamente.
Además, este algoritmo también lleva a una alta utilización del procesador y una
respuesta rápida del sistema.

Sin embargo, al igual que el algoritmo SJF, el algoritmo SRTF requiere información
precisa sobre la duración de los procesos, lo que puede ser difícil de obtener en un
sistema real. Además, este algoritmo también puede llevar a un problema conocido
como «inestabilidad», en el que los procesos más cortos se ejecutan
continuamente, lo que puede impedir que los procesos más largos se completen.

Características:
- De los procesos que están esperando para usar la CPU,SRTF lleva a ejecución el
proceso al que le reste menos tiempo para terminar.
- Los empates se dirimen mediante FIFO / FCFS

Funcionamiento:
- 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.
Algoritmo FIFO

El algoritmo FIFO (First-In-First-Out), “Primero en entrar, Primero en salir”, sigue una


lógica bastante simple: los procesos se ejecutan en el orden en que llegan a la cola
de planificación. El proceso que llega primero es el primero en ser servido y
ejecutado en la CPU. Es decir, los procesos se despachan de acuerdo con su
tiempo de llegada a la cola de procesos listos. Cuando un proceso tiene la CPU, se
ejecuta hasta terminar.
El esquema FIFO rara vez se usa como esquema principal en los sistemas actuales,
pero a menudo está incorporado en otros sistemas. Por ejemplo, muchos esquemas
de planificación despachan los procesos de acuerdo con la prioridad, pero los
procesos con la misma prioridad se despachan de acuerdo con el esquema FIFO.
Este es un algoritmo que no usa apropiación, y que consiste en atender a los
procesos por estricto orden de llegada a la lista de procesos listos. Cada proceso se
ejecuta hasta que termina, o hasta que hace una llamada bloqueante (de E/S). Se
trata de una política muy simple y sencilla de llevar a la práctica, pero muy pobre en
cuanto a su comportamiento.

Para entender su funcionamiento, veamos el siguiente ejemplo:


Supongamos que hay tres clientes en una fila:
● Cliente A llega primero a la caja.
● Luego, llega el Cliente B.
● Finalmente, llega el Cliente C.

En este caso, se aplica el principio FIFO, y el cajero atenderá a los clientes en el


mismo orden en el que llegaron:
● El Cliente A será el primero en ser atendido y pagará sus productos.
● Luego, el Cliente B será atendido después de que el Cliente A haya
terminado.
● Finalmente, el Cliente C será el próximo en la cola y será atendido después
de que el Cliente B haya terminado.
Este proceso de cola en un supermercado es un ejemplo práctico de cómo se aplica
el principio de FIFO en la vida cotidiana para garantizar un trato justo y ordenado a
las personas que llegan a un lugar de servicio.
Características:
● No es apropiativa
● Justa en el sentido formal, aunque injusta en el sentido de que: los trabajos
largos hacen esperar a los cortos y los trabajos sin importancia hacen
esperar a los importantes.
● Es predecible, pero no garantiza buenos tiempos de respuesta y por ello se
emplea como esquema secundario.
● El tiempo promedio de servicio es muy variable ya que está en función del
número de procesos y la duración promedio que tenga.

La ventaja de este algoritmo es su fácil implementación, sin embargo, no es válido


para entornos interactivos ya que un proceso de mucho cálculo de CPU hace
aumentar el tiempo de espera de los demás procesos . Para implementar el
algoritmo, sólo se necesita mantener una cola con los procesos listos ordenada por
tiempo de llegada. Cuando un proceso pasa de bloqueado a listo se sitúa el último
de la cola.
La desventaja de este algoritmo es que el tiempo medio de espera en este algoritmo
es a menudo muy largo.
Efecto Convoy: Cuando un proceso tarda mucho los demás deben esperar en cola
hasta que termine, por lo tanto no es válido para entornos interactivos

En resumen, el algoritmo FIFO es fácil de implementar y entender, pero puede no


ser la opción más eficiente en términos de rendimiento. Puede dar lugar a
problemas de inanición (procesos que nunca se ejecutan) si un proceso largo llega
primero y bloquea la CPU durante un período prolongado, lo que puede afectar
negativamente al rendimiento general del sistema. Sin embargo, en algunos
contextos específicos, como entornos de tiempo real o aplicaciones de control, el
uso de FIFO puede ser apropiado y predecible.
Shortest - Job First (SJF)

Shortest Job First (SJF), que se traduce como "El trabajo más corto primero", es un
algoritmo de planificación de procesos utilizado en sistemas operativos y entornos
de procesamiento de tareas para determinar el orden de ejecución de procesos. La
característica principal de SJF es que se ejecutan primero los procesos con la
menor duración estimada (el tiempo que se espera que el proceso necesite para
completarse).
Llegada de procesos: Cuando llegan procesos al sistema o están listos para
ejecutarse, el planificador comparar sus tiempos de ráfaga (la cantidad de tiempo
que necesitan para completarse) y selecciona el proceso con el tiempo de ráfaga
más corto.

● Ejecución del proceso más corto: El proceso seleccionado se ejecuta en la


CPU hasta que se complete o se bloquee por alguna operación de
entrada/salida (E/S).
● Selección continua: Una vez que el proceso actual se completa o se bloquea,
el planificador vuelve a seleccionar el siguiente proceso más corto de la cola
de procesos listos para ejecución.
● Repetición del ciclo: Este ciclo de selección y ejecución de procesos más
cortos se repite hasta que todos los procesos hayan sido ejecutados.
● Existen dos variantes principales del algoritmo SJF:
● SJF no preemptivo: En esta variante, una vez que un proceso comienza su
ejecución, no se interrumpe hasta que se complete. El planificador solo
selecciona el siguiente proceso más corto cuando el proceso en ejecución
termina.
● SJF preemptivo: En esta variante, el planificador puede interrumpir un
proceso en ejecución si llega un proceso con un tiempo de ráfaga más corto.
Esto puede resultar en cambios de contexto más frecuentes.
● SJF se utiliza para minimizar el tiempo de espera

Vista gráfica de cómo funciona


Ventajas del SJF:

● Minimización del tiempo de espera: SJF tiende a minimizar el tiempo de


espera promedio, lo que significa que los procesos terminan más
rápidamente y los usuarios experimentan menos retrasos en la ejecución de
sus tareas.

● Eficiencia en la utilización de recursos: Al ejecutar procesos más cortos


primero, se maximiza la eficiencia en el uso de la CPU. Esto puede llevar a
una mayor productividad del sistema en general.

● Óptimo en ciertos casos: Cuando se conocen con precisión los tiempos de


ráfaga de los procesos, SJF puede ser el algoritmo óptimo para minimizar el
tiempo promedio de espera.

● Bajo desperdicio de CPU: Al priorizar procesos cortos, SJF reduce el


desperdicio de recursos de CPU en la ejecución de procesos largos que
pueden no ser tan urgentes.

Desventajas del SJF:

● Dificultad en la predicción de los tiempos de ráfaga: En la mayoría de los


entornos, es difícil conocer con precisión los tiempos de ráfaga de los
procesos. Esto puede hacer que la implementación del SJF sea complicada
en situaciones de la vida real.

● Posible inanición: Los procesos largos pueden quedarse esperando


indefinidamente si llegan constantemente procesos más cortos. Esto se
conoce como inanición y puede afectar negativamente a algunos procesos.

● Complejidad de implementación: El SJF puede requerir una planificación y


una gestión de cola muy precisas para funcionar correctamente. En sistemas
de tiempo compartido o entornos donde los procesos llegan y salen de
manera impredecible, la implementación puede ser desafiante.

● Puede ser no preemptivo: La versión no preemptiva del SJF puede hacer que
algunos procesos esperen mucho tiempo si un proceso largo se ejecuta antes
y no se bloquea por E/S o alguna otra razón.
Algunas características son:

● Minimización del tiempo de espera: El principal objetivo del SJF es minimizar


el tiempo de espera de los procesos. Al ejecutar los procesos más cortos
primero, se reduce la cantidad de tiempo que otros procesos deben esperar
para ejecutarse.

● Selección basada en la duración estimada: El SJF selecciona el próximo


proceso a ejecutar en función de su tiempo de ráfaga o duración estimada.
Esto significa que se considera cuánto tiempo se espera que tome cada
proceso para completarse.

● No es adecuado para entornos de tiempo compartido: SJF funciona bien en


situaciones donde se conocen con precisión los tiempos de ráfaga de todos
los procesos. Sin embargo, en sistemas de tiempo compartido donde los
usuarios interactúan y solicitan procesos de manera impredecible, puede ser
difícil predecir los tiempos de ráfaga con precisión.

● Puede ser no preemptivo o preemptivo: El SJF puede implementarse de dos


maneras: no preemptivo y preemptivo.

● SJF no preemptivo: En esta variante, un proceso que comienza su ejecución


no se interrumpe hasta que se complete. El planificador selecciona el
siguiente proceso más corto solo cuando el proceso en ejecución actual
termina.

● SJF preemptivo: En esta variante, el planificador puede interrumpir un


proceso en ejecución si llega un proceso con un tiempo de ráfaga más corto.
Esto puede resultar en cambios de contexto más frecuentes.

● Puede causar inanición: Siempre que haya procesos con tiempos de ráfaga
más largos esperando en la cola, pueden experimentar inanición, es decir,
pueden quedarse esperando indefinidamente si procesos más cortos siguen
llegando y ejecutándose continuamente.

● Requiere conocimiento preciso de los tiempos de ráfaga: Para que el SJF


funcione de manera efectiva, se necesita conocer con precisión el tiempo de
ráfaga de cada proceso. En la práctica, esto puede ser un desafío, ya que los
tiempos de ráfaga pueden variar y ser difíciles de predecir con precisión.

● Óptimo para minimizar el tiempo promedio de espera: En situaciones donde


se conocen con precisión los tiempos de ráfaga y se pueden prever con alta
precisión, el SJF puede ser el algoritmo óptimo para minimizar el tiempo
promedio de espera de los procesos.
REFERENCIAS
https://ordenadores-y-portatiles.com/round-robin/
https://webplusvalencia.es/algoritmos-de-planificacion-fcfs-sjf-srtf-round-robind/
https://lsi.vc.ehu.eus/pablogn/docencia/manuales/SO/TemasSOuJaen/PLANIFICACI
ONDEPROCESOS/6AlgoritmosdePlanificacionI.htm
http://algoritmosplanificacion.blogspot.com/2012/08/srtf-short-remaining-time-first.ht
ml
https://lsi.vc.ehu.eus/pablogn/docencia/manuales/SO/TemasSOuJaen/PLANIFICACI
ONDEPROCESOS/6AlgoritmosdePlanificacionI.htm
http://jmoral.es/blog/planificacion-procesos
https://josecarreres.wordpress.com/2015/10/05/planificacion-y-procesos-en-windows
-y-linux/
https://prezi.com/hqa5h-lyr0dn/algoritmo-de-planificacion-fifo/
https://sistemasoperativos.angelfire.com/html/2.6.1.html

https://www.diloentutospc.com/sjfshortest-job-first-algoritmo-primero-el-trabajo-mas-
corto/

También podría gustarte