Aplicación de la más corta de empleo First (SJF) no preferente algoritmo CPU de planificación usando C ++

En este artículo, vamos a aprender sobre implementación de trabajo más corta primero (SJF) algoritmo de planificación no preferente mediante el programa C ++ .

no preferente: No podemos eliminar un proceso hasta que la completa ejecución.

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

  • utilización de la CPU
  • Rendimiento
  • La hora de llegada
  • El tiempo de vuelta
  • espera
  • tiempo

  • tiempo de ejecución
  • tiempo Burst

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

utilización de la CPU: La cantidad de tiempo de CPU está ocupada.

Throughput: El número de proceso calculado por unidad de tiempo.

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

El tiempo de vuelta: El intervalo entre el momento de la 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 ejecución: El momento en que el proceso finaliza su ejecución.

tiempo de ráfaga: El tiempo necesario para que se complete la CPU para su ejecución.

más corta de empleo primer algoritmo

En este algoritmo de planificación del proceso de voladura mínima tener tiempo se ejecutará primero.

C ++ Programa SJF programación

//Implementation fo SHORTEST JOB FIRST Using C++
#include <iostream>
#include <algorithm>
using namespace std;
int ab;
typedef struct schedule
{
string pro_id;
int at,bt,ct,ta,wt;

}schedule;
bool compare(schedule a,schedule b)
{
return a.at < b.at;

}
bool compare2(schedule a,schedule b)
{
return a.bt < b.bt && a.at <= ab;

}
int main()
{
schedule pro[10];
//An array of Processes
int n,i,j;
//n = number of processes, i= iteration variable
cout<<"Enter the number of schedule::";
cin>>n;
cout<<"Enter the schedule id arrival time burst time :::";
for(i=0;i<n;i++)
{
cin>>pro[i].pro_id;
cin>>pro[i].at;
cin>>pro[i].bt;
}

sort(pro,pro+n,compare);
// initial values
pro[0].ct=pro[0].bt+pro[0].at;
pro[0].ta=pro[0].ct-pro[0].at;
pro[0].wt=pro[0].ta-pro[0].bt;
for(i=1;i<n;i++)
{
ab=pro[i-1].ct;
sort(pro+i,pro+n,compare2);
if(pro[i-1].ct<pro[i].at)
{
pro[i].ct=pro[i-1].ct+pro[i].bt+(pro[i].at-pro[i-1].ct);
}
else
{
pro[i].ct=pro[i-1].ct+pro[i].bt;
}
pro[i].ta=pro[i].ct-pro[i].at;
pro[i].wt=pro[i].ta-pro[i].bt;
}
for(i=0;i<n;i++)
{
//before executing make it in one statement
cout<<pro[i].pro_id<<"t"<<pro[i].at<<"t"<<pro[i].bt
<<"t"<<pro[i].ct<<"t"<<pro[i].ta<<"t"<<pro[i].wt;
cout<<endl;
}
return 0;
}

salida

Implementation of Shortest Job First (SJF) Non-Preemptive 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 *