オペレーティングシステム-CPUスケジューリングアルゴリズム(FIFS,SJF,PRO,RR)


FCFS、SJF(非プリエンプト)、優先度スケジューリング(非プリエンプト)、RRの4種類のスケジューリングアルゴリズムを使用して、CPUスケジューリングのプロセスをシミュレートします.(Linux、Windowsでも可)
入力:スケジューリングが必要なジョブ情報を格納job.txtドキュメント
出力:ジョブごとの番号付け、ジョブ開始実行時間、ジョブ終了時間、およびそのスケジューリングアルゴリズムの平均待ち時間
オプション:SJF(プリエンプト)、優先度スケジュール(プリエンプト)
#include
#include
using namespace std;

int h_start=0;
int m_start=0;
int mission;
int time_piece;
int wait_time;
char w;
class process
{
public:
    int index;
    int exe_time;
    int h;
    int m;
    int priority;
    char mark;
    process()
    {
        mark='0';
    }
};

void FCFS(process pro[])
{
    process temp;
    process pro1[5];
    int i=0,j=0;
    int key;
    h_start=8;
    m_start=0;
    wait_time=0;
    for(; i<5; i++)
        pro1[i]=pro[i];
    //        5       
    for(i=0; i<4; i++)
    {
        key=i;
        for(j=i+1; j<5; j++)
            if((pro1[j].h*60+pro1[j].m) < (pro1[key].h*60+pro1[key].m))
                key=j;
        temp=pro1[key];
        pro1[key]=pro1[i];
        pro1[i]=temp;
    }
    cout<=60)
        {
            h_start++;
            m_start-=60;
        }
        cout<60)
        {
            h_start++;
            m_start-=60;
        }
        cout<60)
        {
            h_start++;
            m_start-=60;
        }
        cout<0)
    {
        for(i=0; i<5; i++)
        {
            if(pro1[i].mark=='2')continue;
            pro1[i].mark='1';
            cout<time_piece)
            {
                pro1[i].exe_time-=time_piece;
                m_start+=time_piece;
                if(m_start>=60)
                {
                    h_start++;
                    m_start-=60;
                }
                cout<=60)
                {
                    h_start++;
                    m_start-=60;
                }
                cout<>mission;
    inFile>>time_piece;
    for(int i=0; i<5; i++)
    {
        inFile>>p[i].index;
        inFile>>p[i].h;
        inFile>>w;
        inFile>>p[i].m;
        inFile>>p[i].exe_time;
        inFile>>p[i].priority;
    }
    FCFS(p);
    SJF(p);
    PRO(p);
    RR(p);
    inFile.close();
    return 0;
}