- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、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;//在冒泡排序时用于替换的PCB
void 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].runt
您可能关注的文档
- 期货交易风险控制及资金管理策略.ppt
- 期货教程套期保值培训课件.ppt
- 期货市场论文期货交易论文浅析股指期货的推出对我国股票市场的影响.doc
- 期货与期权市场 (李国华)股票价格第十章 外汇期货.ppt
- 期货与期权习题.doc
- 期末《基础会计学》复习重点.doc
- 期权的二叉树定价模型[恢复].ppt
- 期权交易基础知识教学PPT期货与期权.ppt
- 棋院管理规程.doc
- 欠发达地区的村庄规划——以云南省罗平县明格村规划为例.doc
- DB44_T+2767-2025河口海湾总氮、总磷水质评价指南.docx
- 中医药科技成果转化评价技术规范.docx
- DB44_T+2750-2025农村供水工程数字化建设技术导则.docx
- DB44_T+2769-2025金属矿山生态修复技术规范.docx
- 镁合金航天航空零部件长效防护微弧氧化膜层工艺规范.docx
- 《甘青青兰中绿原酸和胡麻苷含量的测定 高效液相色谱法》发布稿.pdf
- DB44_T+753-2025声环境质量自动监测技术规范.docx
- 信息技术 智算服务 异构算力虚拟化及池化系统要求.docx
- DB44_T+2759-2025黄荆栽培技术规程.docx
- 废生物制药溶媒再生乙腈.docx
最近下载
- 全景图像拼接技术研究与实现.docx VIP
- 全国统一安装工程预算定额.pdf VIP
- 明伟NES系列改可调方案(参考).pdf VIP
- 呼出气一氧化氮(FeNO)测定临床应用规范.docx
- 亚低温冬眠治疗PPT参考幻灯片.ppt VIP
- 仁爱科普版(2024)七年级英语上册课件 Unit 6 第7课时 Reading for Writing.pptx VIP
- 安徽医学高等专科学校《人体解剖学》2025 学年第一学期期末试卷(B).pdf VIP
- 现代机器人培训资料.pptx VIP
- YD5003-2023通信建筑工程设计规范.docx VIP
- 上交所发行上市审核动态(2024年第5期).pdf VIP
原创力文档


文档评论(0)