欢迎来到天天文库
浏览记录
ID:47110583
大小:128.50 KB
页数:24页
时间:2019-08-05
《操作系统-实验-包括(处理机调度,页面置换,驱动调度,银行家)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#include#include#include#include#defineFalse0#defineTrue1#defineL20//页面走向长度最大为20#defineMAX100usingnamespacestd;intMax[100][100]={0};//各进程所需各类资源的最大需求intAvaliable[100]={0};//系统可用资源charname[100]={0};//资源的名称intAllocation[100][100]=
2、{0};//系统已分配资源intNeed[100][100]={0};//还需要资源intRequest[100]={0};//请求资源向量inttemp[100]={0};//存放安全序列intWork[100]={0};//存放系统可提供资源intM=100;//进程的最大数为intN=100;//资源的最大数为intMemory;//内存块structPro//定义一个结构体(页面置换){intnum,time;};//处理器调度部分代码structpcb{charname[20];pcb*next;intarrivetime,runtime;charstate;//状态intpri
3、ority;//优先级pcb(){next=NULL;}};enumKind{_EMPTY,_FCFS,_ROUNDROBIN,_PRIORITY};classprocess{pcb*head;intnumber;Kindkind;public:process();~process();voidClear();//清空进程序列voidInputProcess();//输入进程序列voidRunProcess();//运行进程序列voidFCFS();//先来先服务算法voidRoundRobin(inttime=1);//按时间片轮转法voidPriority(inttime=1);//优
4、先级调度算法};process::process(){head=NULL;number=0;kind=_EMPTY;}process::~process(){Clear();}voidprocess::Clear(){pcb*p1,*p2;for(p1=head;p1;p1=p2){p2=p1->next;deletep1;}head=NULL;number=0;kind=_EMPTY;}voidprocess::InputProcess(){if(head!=NULL)Clear();intk;cout<<"----------------------------------------
5、-------"<>k;switch(k){case1:kind=_FCFS;break;case2:kind=_ROUNDROBIN;break;case3:kind=_PRIORITY;break;}cout<<"输入进程数:";cin>>number;pcb*rear,*p;for(i
6、nti=0;i>p->name>>p->arrivetime>>p->runtime>>p->priority;}else{cout<<"输入第"<>p->name>>p->arrivetime>>p->runtime;}if(head==NULL){head=rear=p;}else{rear->next=p;rear=p;}}}voidprocess::RunP
7、rocess(){switch(kind){case_FCFS:FCFS();break;case_ROUNDROBIN:RoundRobin();break;case_PRIORITY:Priority();break;default:cout<<"进程序列未创建!"<
此文档下载收益归作者所有