Implementación de programación de prioridad (Non Preferente) algoritmo usando C ++

En este artículo, vamos a aprender sobre algoritmo de programación de prioridad (no preventiva) y la implementación de este algoritmo mediante el programa C ++ .

no preventiva: 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:

El tiempo de espera

  • utilización de la CPU
  • Rendimiento
  • La hora de llegada
  • El tiempo de respuesta
  • 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.

prioridad de programación del algoritmo (no preventiva)

En esta prioridad algoritmo se define por la fabricación del sistema operativo, a veces asumimos número mínimo tiene mayor prioridad o vice-versa.

En mi algoritmo que utilizará el número superior tiene medios de mayor prioridad de proceso que tiene mayor prioridad serán horario en primer lugar.

Programa ++ C Prioridad Algoritmo (no preferente)

//Implementation of Priority(Non-Preeemptive) Using C++
#include <iostream>
#include <algorithm>
using namespace std;
typedef struct proccess
{
int at,bt,pr,ct,ta,wt;
string pro_id;

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

}
bool compare2(process a,process b)
{
return a.pr>b.pr;

}
int main()
{
process pro[10];
int n,i,j;
cout<<"Enter the number of process::";
cin>>n;
cout<<"Enter the process id arrival time burst time and priority :::";
for(i=0;i<n;i++)
{
cin>>pro[i].pro_id;
cin>>pro[i].at;
cin>>pro[i].bt;
cin>>pro[i].pr;
}
sort(pro,pro+n,compare);

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;
i=1;
while(i<n-1)
{
for(j=i;j<n;j++)
{
if(pro[j].at>pro[i-1].ct)
break;
}
sort(pro+i,pro+i+(j-i),compare2);
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;
i++;
}
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++)
{
//desplaying all the values
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<<"t"<<pro[i].pr;
cout<<endl;
}
return 0;
}

salida

Implementation of Priority scheduling (Non Pre-emptive) algorithm using C++ - 4


Deja un comentario

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