- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一处理器调度
一、实验内容
选择一个调度算法,实现处理器调度。
二、实验目的
在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就 绪状态进程
个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。 本实验模拟在单处理器情况下处理器调度,帮助学生加深了解处理器调度的工 作。
三、实验题目
设计一个按优先数调度算法实现处理器调度的程序 提示:
假定系统有五个进程,每一个进程用一个进程控制块PCB 来代表。进程控制块的格
式为:
进程名
进程名
时间
要求求运行时
间
优先数
状态
其中,进程名 作为进程的标识,假设五个进程的进程名分别是P1,P2,P3,P4,
P5。
指针 按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控
制块
首地址,最后一个进程中的指针为“0”。
要求运行时间 假设进程需要运行的单位时间数。
优先数 赋予进程的优先数,调度时总是选取优先数大的进程先执行。
状态 可假设有两种状态,“就绪”状态和“结束“状态,五个进程的初始状
态都为 “就绪“状态,用“R”表示,当一个进程运行结束后,它的状态变为“结束”, 用“E”表示。
在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优 先数”
和“要求运行时间”。
为了调度方便,把五个进程按给定的优先数从大到小连成队列,用一单元 指出队首
进程,用指针指出队列的连接情况。例: 队首标志
处理器调度总是选队首进程运行。采用动态改变优先数的办法,进程每运 行一次优
先数就减“1”。由于本实验是模拟处理器调度,所以,对被选中的进程并不实际 的
启动运行,而是执行:
优先数-1
要求运行时间-1
来模拟进程的一次运行。
提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现 场,
它占有处理器运行,直到出现等待事件或运行结束。在这里省去了这些工作。
进程运行一次后,若要求运行时间≠0,则再将它加入队列(按优先数大小 插入,且
置队首标志);若要求运行时间=0,则把它的状态修改为“结束”(),且退出 队列。
若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直 到所有进
程都成为“结束”状态。
在所设计的称序中应有显示或打印语句,能显示或打印每次被选中进程的 进程名以
及运行一次后进称对列的变化。
为五个进程任意确定一组“优先数”和“要求运行时间”,启动所设计的 处理器调度
程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。
四、程序中使用的数据结构及符号说明:
#define num
开 始
开 始
开
调用初始化子程 定义 i
调用运行子程
i=0
结
束
inu
输出操作提
输
入
state=’R
getchar(
i=i+1
结束
5
开始
开始
定
义
i=0
inum
pcblist[i].sta
return
maxpcblist[i].
max=pcblist[i].pri
i=i+1
pcblist[key].s
return -1
return
结 束
开始
开始
定义 i
输 出 提
i=0
inu
输出 pcblist[i]的
提示按键继
i=i+1
结 束
开始
开始
定
义
j=0
jnum
t+=pcblist[j].
j=j+1
输 出 提
show()
getchar()
j=0
jt
max_pri_process
pcblist[max_pri_process
i=0
i=0
inum
pcblist[i].
pcblist[i].pri-=1
pcblist[i].run
pcblist[i].
pcblist[i].
show()
getchar()
i=i+1
j=j+1
结 束
程序清
单
D,pcblist[i].pri,pcblist[i].runtime);
pcblist[i].state=R;tate==r)ripcblist[i].state==R)ri;tate==F)
D,pcblist[i].pri,pcblist[i].runtime,pcblist[i].state);
}
printf( press any key to continue...\n);
}
void run()untime;}tate=r;tate==r)
{ pcblist[i].pri-=1;untime--;untime==0) pcblist[i].state=F;tate=R;//未运行完将其状态置为就绪
}
show();//显示每次运行后各 PCB 的情况getchar(
您可能关注的文档
最近下载
- 中文TakenateD-120NforPETfilmv4(3FCL).pdf VIP
- 30万吨年硫铁矿制酸设备资料.doc VIP
- 《汽轮机原理》习题及答案.doc VIP
- NB/T 20308-2024 核电厂核安全相关厂房地基基础设计规范.pdf VIP
- 二建继续教育考试题及答案.doc VIP
- 中西医结合妇产科学知识点.docx VIP
- 被执行人生活费申请书范文.docx VIP
- 2025年二级建造师继续教育考试模拟题库及解析答案.docx VIP
- 住院医师规范化培训结业考核临床实践能力考核规程(骨科)全套资料.pdf VIP
- 2025年重庆市政府采购评审专家考试试题及答案.docx VIP
原创力文档


文档评论(0)