武汉大学信息安全的操作系统实验报告.docxVIP

武汉大学信息安全的操作系统实验报告.docx

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一二三四五六七八九十总评成绩武汉大学计算机学院课程实验(设计)报告专业(班):计算机学院信息安全X班学号:姓名:XX课程名称:操作系统实验2013年 5月30日实习一处理器调度一、实习内容选择一个调度算法,实现处理器调度。二、实习目的本实习模拟在单处理器环境下的处理器调度,加深了解处理器调度的工作。三、实习题目设计一个按优先数调度算法实现处理器调度的程序。四、实习内容1.设计思想(1)假定系统有5个进程,每个进程用一个PCB来代表。PCB的结构为:·进程名——如P1~P5。·指针——按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。·要求运行时间——假设进程需要运行的单位时间数。·优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。·状态——假设两种状态:就绪和结束,用R表示就绪,用E表示结束。初始状态都为就绪状态。(2) 开始运行之前,为每个进程确定它的“优先数”和“要求运行时间”。通过键盘输入这些参数。(3) 处理器总是选择队首进程运行。采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1。(4) 进程运行一次后,若要求运行时间不等于0,则将它加入就绪队列,否则,将状态改为“结束”,退出就绪队列。(5) 若就绪队列为空,结束,否则转到(3)重复。要求能接受键盘输入的进程优先数及要求运行时间,能显示每次进程调度的情况,如哪个进程在运行,哪些进程就绪,就绪进程的排列情况。2.上机代码#include stdio.h#include string.h#define num 5//5个进程struct PCB//进程控制块{ char ID;//进程名 int runtime;//进程运行时间 int pri;//进程优先级 char state; //进程状态};struct PCB pcblist[num];//进程控制块数组int fnum=0;//已运行完成的进程struct PCB temp;//在冒泡排序时用于替换的PCBvoid chushihua()//初始化程序{ int i; for(i=0;inum;i++) { printf(PCB[%d]:ID pri runtime \n,i+1); scanf(%s%d%d,pcblist[i].ID,pcblist[i].pri,pcblist[i].runtime); pcblist[i].state=R;//将所有进程的状态初始化为就绪状态 getchar(); }}void show()//显示当前进程状况程序{ int i; printf(\nID pri runtime state\n); for(i=0;inum;i++){printf(%s%6d%9d %s\n,pcblist[i].ID,pcblist[i].pri,pcblist[i].runtime,pcblist[i].state);}getchar();}void run()//主体执行部分程序,含将优先级进行冒泡排序及运行最高优先级的进程{ int i,j,k; int t=0;//所有程序运行总时间 for(j=0;jnum;j++)//计算所有进程总的运行时间 { if(pcblist[j].runtime==0) pcblist[j].state=F; t+=pcblist[j].runtime; }for(j=0;kt;j++){for(i=0;inum-fnum;i++)//将状态为就绪的进程进行冒泡排序for(j=0;jnum-i-1-fnum;j++)if(pcblist[j].pripcblist[j+1].pri){temp=pcblist[j];pcblist[j]=pcblist[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(pcblist[j].runtime==0){pcblist[j].state=F;fnum++;}}show();}}int main()//主函数{chushihua();show();run();return 0; }五、上机实验所用平台及相关软件上机平台:

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档