欢迎来到天天文库
浏览记录
ID:18725912
大小:706.27 KB
页数:25页
时间:2018-09-20
《武汉大学信息安全操作系统实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一二三四五六七八九十总评成绩武汉大学计算机学院课程实验(设计)报告专业(班):计算机学院信息安全X班学号:姓名:XX课程名称:操作系统实验2013年5月30日实习一处理器调度一、实习内容选择一个调度算法,实现处理器调度。二、实习目的本实习模拟在单处理器环境下的处理器调度,加深了解处理器调度的工作。三、实习题目设计一个按优先数调度算法实现处理器调度的程序。四、实习内容1.设计思想(1)假定系统有5个进程,每个进程用一个PCB来代表。PCB的结构为:·进程名——如P1~P5。·指针——按优先数的大小把5个进程
2、连成队列,用指针指出下一个进程PCB的首地址。·要求运行时间——假设进程需要运行的单位时间数。·优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。·状态——假设两种状态:就绪和结束,用R表示就绪,用E表示结束。初始状态都为就绪状态。(2)开始运行之前,为每个进程确定它的“优先数”和“要求运行时间”。通过键盘输入这些参数。(3)处理器总是选择队首进程运行。采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1。(4)进程运行一次后,若要求运行时间不等于0,则将它加入就绪队列,否则,
3、将状态改为“结束”,退出就绪队列。(5)若就绪队列为空,结束,否则转到(3)重复。要求能接受键盘输入的进程优先数及要求运行时间,能显示每次进程调度的情况,如哪个进程在运行,哪些进程就绪,就绪进程的排列情况。2.上机代码#include#include#definenum5//5个进程structPCB//进程控制块{charID;//进程名intruntime;//进程运行时间intpri;//进程优先级charstate;//进程状态};structPCBpcblist
4、[num];//进程控制块数组intfnum=0;//已运行完成的进程structPCBtemp;//在冒泡排序时用于替换的PCBvoidchushihua()//初始化程序{inti;for(i=0;i5、tchar();}}voidshow()//显示当前进程状况程序{inti;printf("IDpriruntimestate");for(i=0;i6、行总时间for(j=0;jpcblist[j+1].pri){temp=pcblist[j];pcblist[j]=pcbl7、ist[j+1];pcblist[j+1]=temp;}for(j=num-1;j>=0;j--)//在排好序的进程中找到为就绪的最大优先级的进程{if(pcblist[j].state=='R')break;}if(pcblist[0].state=='R')//修改当前运行的进程的各项参数{pcblist[j].pri=pcblist[j].pri-1;pcblist[j].runtime=pcblist[j].runtime-1;printf("%s",&pcblist[j].ID);if(pcblis8、t[j].runtime==0){pcblist[j].state='F';fnum++;}}show();}}intmain()//主函数{chushihua();show();run();return0;}五、上机实验所用平台及相关软件上机平台:Windows7+DEV-C++六、运行结果Q1—Q5分别是12345,经运行的顺序为Q2Q2Q2Q3Q3Q1Q1Q4Q1Q5Q5Q1Q1Q5Q5测试结
5、tchar();}}voidshow()//显示当前进程状况程序{inti;printf("IDpriruntimestate");for(i=0;i6、行总时间for(j=0;jpcblist[j+1].pri){temp=pcblist[j];pcblist[j]=pcbl7、ist[j+1];pcblist[j+1]=temp;}for(j=num-1;j>=0;j--)//在排好序的进程中找到为就绪的最大优先级的进程{if(pcblist[j].state=='R')break;}if(pcblist[0].state=='R')//修改当前运行的进程的各项参数{pcblist[j].pri=pcblist[j].pri-1;pcblist[j].runtime=pcblist[j].runtime-1;printf("%s",&pcblist[j].ID);if(pcblis8、t[j].runtime==0){pcblist[j].state='F';fnum++;}}show();}}intmain()//主函数{chushihua();show();run();return0;}五、上机实验所用平台及相关软件上机平台:Windows7+DEV-C++六、运行结果Q1—Q5分别是12345,经运行的顺序为Q2Q2Q2Q3Q3Q1Q1Q4Q1Q5Q5Q1Q1Q5Q5测试结
6、行总时间for(j=0;jpcblist[j+1].pri){temp=pcblist[j];pcblist[j]=pcbl
7、ist[j+1];pcblist[j+1]=temp;}for(j=num-1;j>=0;j--)//在排好序的进程中找到为就绪的最大优先级的进程{if(pcblist[j].state=='R')break;}if(pcblist[0].state=='R')//修改当前运行的进程的各项参数{pcblist[j].pri=pcblist[j].pri-1;pcblist[j].runtime=pcblist[j].runtime-1;printf("%s",&pcblist[j].ID);if(pcblis
8、t[j].runtime==0){pcblist[j].state='F';fnum++;}}show();}}intmain()//主函数{chushihua();show();run();return0;}五、上机实验所用平台及相关软件上机平台:Windows7+DEV-C++六、运行结果Q1—Q5分别是12345,经运行的顺序为Q2Q2Q2Q3Q3Q1Q1Q4Q1Q5Q5Q1Q1Q5Q5测试结
此文档下载收益归作者所有