资源简介

目的: 在进程控制、请求分页存储器管理、设备管理基础上 实现按先来先服务 FCFS 、短作业优先 SJF 以及时间片 轮转算法调度进程的模拟过程 。 内容 1.在第 1 3 部分基础上扩展; 2.支持 FCFS 、短 作业优先以及时间片调度算法。 3.能够较方便地查看调度过程及平均周转时间、平均带权周转时 间。 4.支持优先权调度算法与其它算法相结合的调度模式。 5.调度时应适当输出调度过程中各进程状态队列的变化情况以及进程的已执行时 间、还需服务时间(针对时间片轮转算法)。 6.完成银行家算法的实现。

资源截图

代码片段和文件信息

#include “OS5.h“
#include 

using namespace std;
/***
              operation system5.0
     The size of the whole inside memory is 4G.
                                                 ***/
void menu()
{
    cout<<“\n\n\n\t\t\t>>>operation system5.0<<<\n\n“;
    cout<<“\t\t\t1.refresh data\n\n“;
    cout<<“\t\t\t***scheduling algorithm***\n“;
    cout<<“\t\t\t2.FCFS algorithm\n“;
    cout<<“\t\t\t3.SJF algorithm\n“;
    cout<<“\t\t\t4.Times out\n“;
    cout<<“\t\t\t5.priority\n“;
    cout<<“\t\t\t6.multilevel feedback\n\n“;
    cout<<“\t\t\t***Avoid deadlock***\n“;
    cout<<“\t\t\t7.Banker algorithm\n\n“;
    cout<<“\t\t\t0.exit\n“<    cout<<“\n\n>>“;
}

void solve(Process& p)
{
    p.process.clear();
    //p.ordered_process.clear();
    /*  F:\\OS\\os5\\  */
    string filename file = ““ ;///测试样例所在文件夹的绝对路径;
    cout<<“Please input the input filename:“;
    cin>>filename;
    filename = file + filename;
    cout<    fstream in(filename);
    int num;
    //cout<<“Please input the number of data:“;
    in>>num;
    for(int i=0;i    //cout<<“Please input the work source number:“;
    int nx; in>>n;
    for(int i=0;i>x p.Work.push_back(x);
    p.ave_time = p.ave_value = 0;
}

int main() {
    Process process;
    int choice;
    while(1)
    {
       menu();
       cin>>choice;
       switch(choice)
       {
           case 1:
               solve(process);
               cout<<“Initial data is as follow:“<               process.process_show();
               break;
           case 2:
               system(“cls“);
               process.process_FCFS();
               cout<<“Press any key to continue......“<               getchar();
               break;
           case 3:
               system(“cls“);
               process.process_SJF();
               cout<<“Press any key to continue......“<               getchar();
               break;
           case 4:
               system(“cls“);
               int T;
               cout<<“Please input the times:“;
               cin>>T;
               cout<<“Press any key to continue......“<               getchar();
               process.Time_turn(T);
               cout<<“Press any key to continue......“<               getchar();
               break;
           case 5:
               system(“cls“);
               cout<<“\n\n\n\t\t\t    >>>priority<<<\n\n“;
               cout<<“\t\t\t1.static and not grap\n“;
               cout<<“\t\t\t2.static and grap\n“;
               cout<<“\t\t\t3.dynamic and not grap\n“;
               cout<<“\t\t\t4.dynamic and grap\n“;
               cout<<“\t\t\t0.back\n“;
               int n;cin>>n;
               if(n==1) process.process_priority_static_notgrap();
               else if(n==2) process.process_priority_static_grap();
               else if(n==3) process.process_priority_dynamic_notgrap(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         163  2018-11-19 17:24  OS5\1.txt
     文件         182  2018-11-19 17:08  OS5\bank.txt
     文件         182  2018-11-19 17:08  OS5\mf.txt
     文件        3863  2018-11-23 18:41  OS5\OS5.cpp
     文件     1112765  2018-11-25 12:22  OS5\OS5.exe
     文件       28709  2018-11-22 13:14  OS5\OS5.h
     文件      221451  2018-11-25 12:22  OS5\OS5.o
     文件         125  2018-11-19 15:20  OS5\pri.txt
     文件         163  2018-11-25 12:22  OS5\test.txt

评论

共有 条评论