没有合适的资源?快使用搜索试试~ 我知道了~
进程调度算法课程设计.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 166 浏览量
2022-05-08
14:14:11
上传
评论
收藏 173KB DOC 举报
温馨提示
试读
19页
进程调度算法课程设计.doc
资源推荐
资源详情
资源评论
信息与计算科学
操作系统原理
课程设计报告
题目: 进程调度算法
班级:
姓名:
专业:
操作系统课程设计
进程调度算法
一、实验目的
通过优先权法与轮转调度算法的模拟加深对进程概念和进程调度过程的理解,
掌握进程状态之间的切换,同时掌握进程调度算法的实现方法和技巧。
二、实验内容
1、用 C 语言或 C++语言来实现对 N 个进程采用优先算法以及轮转算法的
进程调度。
2、每个用来标示进程的进程控制块 PCB 用结果来描述,包括以下字段
( 1 ) 进 程 标 识 ID , 其 中 0 为 闲 逛 进 程 , 用 户 进 程 的 标 识 数 为
1、2、3、、、、、、、。
(2)进程优先级 Priority,闲逛进程(idle)的优先级为 0,用户有进程
的优先级大于 0,且随机产生,标识数越大,优先级越高。
(3)进程占用的 CPU 时间 CPUtime,进程每运一次,累积等于 4.
(4)进程总共需要运行时间 Alltime,利用随机函数产生。
(5)进程状态,0—就绪态,1—运行态,2—阻塞态。
(6)队列指针 next,用来将多个进程控制块 PCB 链接为队列。
3、优先数改变的原则
(1)进程在就绪队列中每呆一个时间片,优先数增加 1.
(2)进程每运行一个时间片,优先数增加 1.
4、在调度前,系统中拥有的进程数 PCB_number 有键盘输入,进初始化
后,所有的进程控制块 PCB 连接成就绪队列。
5、为了清楚的观察诸进程的调度过程,程序应将每个时间片内的进程的
情况显示出来。
三、实验步骤
1、进程管理程序调式好后,运行进程管理程序
2
操作系统课程设计
Y
N
N
Y
Y
N
3
ready-queue 是 否
为空
将 Running 从 ready_queue 中 删 除 , 再 将 running
加 入
block_queueb
输入开始进程数 n
Running<=逐个将 redy_pc 中的 PCB
创建 n 个 PCB 并加入 ready-queue 中
阻塞 Running
Running=idle
Running<=id
操作系统课程设计
N
Y
Y
N
N
Y
2、优先权调度
(1)输入 1 选择优先权调度算法模拟。
(2)输入开始进程个数 n,创建 n 个 PCB 并加入就绪队列 ready_queue
中。
(3)就绪队列 ready_queue 不为空,调度就绪队列中第一个进程运行,
否则,从闲逛队列 idleprocess 中调度闲逛进程运行。
( 4 ) 在 运 行 过 程 中 , 当 遇 到 阻 塞 , 则 该 进 程 插 入 到 阻 塞 队 列
block_queue 中,且将该进程从 ready_queue 中删除。
(5)如果运行时间 CPUtime 大于等于 Alltime,该进程运行完毕,释放
该进程;否则插入到就绪队列中。
(6)更新就绪队列中的优先级数。
(7)随机对阻塞队列 block_queue 中的进程 PCB 询问是否要唤醒,唤
醒,即从唤醒队列中选择第一个进程,且插入就绪队列中;阻塞队列中没有阻
塞进程返回。
(8)重复上述步骤,直到本次调度结束。
4
将其从 blick_queuek 队列是中删除,再将其加入 ready_queuek
随机 对 block_queue 中的进程 PCB 询问是否要唤醒?
创建新进程并加入到 ready_queue 中
处理完了吗
是 否 要 唤
醒
是否创建新 PCB
更新新进程就绪队列进程优先数,优先数加 1
剩余18页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 81
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功