Programación egoísta de CPU Round Robin

Requisito previo: programa para la programación de Round Robin 

En el algoritmo de programación tradicional Round Robin, todos los procesos se trataban por igual para el procesamiento. El objetivo del Selfish Round Robin es dar un mejor servicio a los procesos que se han estado ejecutando durante un tiempo que a los recién llegados. Es una implementación más lógica y superior en comparación con el algoritmo Round Robin normal. 

Implementación:- 
 

  • Los procesos en la lista lista se dividen en dos listas: NUEVO y ACEPTADO.
  • Los nuevos procesos esperan mientras los procesos aceptados son atendidos por Round Robin.
  • La prioridad de un nuevo proceso aumenta a la tasa ‘a’ mientras que la prioridad de un proceso aceptado aumenta a la tasa ‘b’.
  • Cuando la prioridad de un nuevo proceso alcanza la prioridad de un proceso aceptado, ese nuevo proceso pasa a ser aceptado.
  • Si todos los procesos aceptados finalizan, se acepta el nuevo proceso de mayor prioridad.

Tracemos el funcionamiento general de este algoritmo: – 

PASO 1: Suponga que inicialmente no hay procesos listos, cuando llega el primero, A. Tiene prioridad 0, para empezar. Como no hay otros procesos aceptados, A se acepta inmediatamente. 
PASO 2: Después de un tiempo, llega otro proceso, B. Siempre que b / a < 1, la prioridad de B finalmente alcanzará a la de A, por lo que se acepta; ahora tanto A como B tienen la misma prioridad. 
PASO 3: Todos los procesos aceptados comparten una prioridad común (que aumenta en la tasa b); eso hace que esta política sea fácil de implementar, es decir, la prioridad de cualquier proceso nuevo está destinada a ser aceptada en algún momento. Así que ningún proceso tiene que experimentar inanición. 
PASO 4: Incluso si b / a > 1, A eventualmente terminará y luego B podrá ser aceptado. 

Adjusting the parameters a and b : 
          -> If b / a >= 1, a new process is not accepted 
                 until all the accepted processes have finished, so SRR becomes FCFS. 
          -> If b / a = 0, all processes are accepted immediately, so SRR becomes RR. 
          -> If 0 < b / a < 1, accepted processes are selfish, but not completely.

Ejemplo de egoísta Round Robin – 

1

Solución (donde a = 2 y b = 1) – 

2

Explicación – 

El proceso A se acepta tan pronto como llega en el momento t = 0. Por lo tanto, su prioridad aumenta solo en ‘b’, es decir, ‘1’ después de cada segundo. B entra en el tiempo t = 1 y va a la cola de espera. Entonces, su prioridad aumenta en ‘a’, es decir, ‘2’ en el momento t = 2. En este punto, prioridad de A = prioridad de B = 2. 

Así que ahora ambos procesos A y B están en la cola aceptada y se ejecutan de forma rotativa. En el momento t = 3, el proceso C entra en la cola de espera. En el momento t = 6, la prioridad del proceso C alcanza la prioridad del proceso B y luego comienzan a ejecutarse en forma de Round Robin. Cuando B finaliza la ejecución en el momento t = 10, D se promueve automáticamente a la cola aceptada. 

De manera similar, cuando D finaliza la ejecución en el momento t = 15, E se promueve automáticamente a la cola aceptada.
 

Publicación traducida automáticamente

Artículo escrito por Siddhant-Bajaj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *