操作系统实验源代码

操作系统实验源代码

ID:44161293

大小:69.20 KB

页数:7页

时间:2019-10-19

操作系统实验源代码_第1页
操作系统实验源代码_第2页
操作系统实验源代码_第3页
操作系统实验源代码_第4页
操作系统实验源代码_第5页
资源描述:

《操作系统实验源代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、#ineludeHiostream.hHtypedefstruetpeb{charname[10];〃进程名charstate;〃状态w(就绪)r(运行)f(结束)intid;//id号intsuper;〃优先级intntime;//需运行的时间intrtime;//已运行的时间struetpeb*next;}*pcb1;pcb1s,w;voidinit(pcb1&r){r=NULL;}voidprint(){pcb1p;cout«H您现在查看的是就绪队列的信息:H«endl;cout«H进程号”vv“进程名”vv”优先级“vv”状态”vv

2、”已运行吋间”vv”需运行时间H«endl;for(p=s;p!=NULL;p=p->next){cout«p->id«HH«p->name«HH«p->super«nH«p->state«HH«p->rtime«HH«p->ntime«endl;}}voidprints(){pcb1p;cout«"您现在查看的是阻塞队列的信息”;cout«H进程号“VV“进程名“VV%尤先级“VV”状态(W,r,f)“已运行时间“VV”需运行吋间H«endl;for(p=w;p!=NULL;p=p->next){cout«p->id«H"«p->name

3、«HH«p->super«MH«p->state«HH«p->rtime«""«p->ntime«endl;}}intempty(pcb1&r){if(r==NULL)return0;elsereturn1;}intcheck(){pcb1p;P=S;if(p->rtime==p->ntime){p->state=,F,;cout«"进程"«p->id«H已经结束"«endl;return0;}elsereturn1;}voidsort(pcb1&r,pcb1p){pcb1p1,p2;intin=0;if(r==NULL){r=p;}els

4、e{if(p->super>=r->super){p・>next=r;r=p;}else{p仁r;p2=r->next;if(p2==NULL){r->next=p;}else{while(in==0&&p2!=NULL){if(p->super>=p2->super){p・>next=p2;p1->next=p;in=1;}else{p1=p1->next;p2=p2->next;}}}if(in==0)p1->next=p;voidblock(){if(empty(s)){if(s->next==NULL){sort(w,s);s=s-

5、>next;}elsepcb1p1;p1=S;s=s->next;p1->next=NULL;sort(w,p1);}}else!H«endl;}cout«"现在就绪队列已经为空,再没有进程需要阻塞voidwake(){if(empty(w)){pcb1p1;p1=w;w二w・>next;p1->next=NULL;sort(s,p1);}elsevoidruning(){if(empty(s)){pcb1p;P=S;if(check()){s=s->next;p->rtime++;p->super-;p->next=NULL;sort(s

6、.p);}else{s=s->next;}}elsecout«M就绪队列已经为空!H«endl;}voidinput(){pcb1p2;p2二newpcb;coutvv%青输入进程号、进程名、进程优先级、需要运行时间-«endl;cin»p2->id»p2->name>沖2->super>>p2->ntime;p2->rtime=0;,p2->state=W;p2->rtime=0;p2->next=NULL;sort(s,p2);}voidmain(){charch;init(s);init(w);cout«II**★★***★**★**

7、*★★*★*★★★**★★**★★********★*★**★★*★★I*«endl;cout«H***W・>唤醒进程***"«endl;coutvv"r・>运行进程***"«endl;cout«"***z・>阻塞进程★"vvendl;cout«H***q->退出程序***"«endl;cout«n***c・>创建进程***H«endl;cout«"***s・>查看就绪进程***n«endl;coutv先**比***比比*****进程调度模拟程序开始**************u<

8、・>查看阻塞队列***H«e

9、ndl;while(ch!='q,)cout«n请选择功能(w,r,z,q,c,sj:"«endl;cin»ch;switch(ch){caseC:input();break;c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。