Implementación de Round Robin CPU Scheduling algoritmo usando C ++

En este artículo, vamos a poner en práctica de Round Robin CPU algoritmo de programación (que es una versión preferente del algoritmo FCFS) usando C ++ programa .

Este algoritmo es la versión preferente del algoritmo de orden de llegada.

preventiva: Si un proceso de mayor prioridad viene a continuación, la primera CPU será asignar al proceso con mayor prioridad en primer lugar.

criterios de programación nos dice que cualquier algoritmo es la cantidad eficiente, se dan los criterios class de programación a continuación:

  • La hora de llegada
  • El tiempo de respuesta
  • El tiempo de espera
  • tiempo Burst
  • Quantum
  • tiempo

* Listo cola es una cola en la que todos los procesos esperan para comenzar el CPU main su ejecución.

hora de llegada: El momento en que el proceso de entrada en cola de listos.

El tiempo de entrega: El intervalo entre los tiempos de presentación de un proceso a la hora de finalización.

Tiempo de espera: La cantidad total del tiempo de un proceso pasa en cola de listos.

tiempo de ráfaga: El tiempo que necesita la CPU para completar su ejecución.

tiempo cuántica: La cantidad del tiempo de una CPU es asignar a ser ejecutado se conoce como el tiempo cuántica independiente del tiempo de rotura real, un proceso conseguirá programado en los valores de las piezas cuántica o podemos decir en trozos cuántica.

Round Robin Algoritmo

Este algoritmo se conoce como versión preferente del orden de llegada como se explicó anteriormente, se ejecuta el proceso sobre la base de orden de llegada, y la única diferencia aquí es que funciona según el principio del tiempo cuántica.

C ++ Programa el Round Robin Programación

//C++ Program to implement Round Robin 
//Scheduling CPU Algorithm
#include <iostream>
#include <vector>

using namespace std;
int main(){
int i,n,time,remain,temps=0,time_quantum;
int wt=0,tat=0;
cout<<"Enter the total number of process="<<endl;
cin>>n;
remain=n;
// assigning the number of process to remain variable
vector<int>at(n);
vector<int>bt(n);
vector<int>rt(n);
//dynamic array declaration using vector method of (STL)
//STL standard template library of C++
cout<<"Enter the Arrival time, Burst time for All the processes"<<endl;
for(i=0;i<n;i++)
{
cin>>at[i];
cin>>bt[i];
rt[i]=bt[i];
}
cout<<"Enter the value of time QUANTUM:"<<endl;
cin>>time_quantum;
cout<<"nnProcesst:Turnaround Time:Waiting Timenn";
for(time=0,i=0;remain!=0;)
{
if(rt[i]<=time_quantum && rt[i]>0)
{
time += rt[i];
//Addition using shorthand operators
rt[i]=0;
temps=1;
}
else if(rt[i]>0)
{
rt[i] -= time_quantum;
//Subtraction using shorthand operators
time += time_quantum;
//Addition using shorthand operators
}
if(rt[i]==0 && temps==1)
{
remain--;
//Desplaying the result of wating, turn around time:
printf("Process{%d}t:t%dt:t%dn",i+1,time-at[i],time-at[i]-bt[i]);
cout<<endl;
wt += time-at[i]-bt[i];
tat += time-at[i];
temps=0;
}
if(i == n-1)
i=0;
else if(at[i+1] <= time)
i++;
else
i=0;
}
cout<<"Average waiting time "<<wt*1.0/n<<endl;
cout<<"Average turn around time "<<tat*1.0/n<<endl;;
return 0;
}

salida

Implementation of Round Robin CPU Scheduling algorithm using C++ - 4


Deja un comentario

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