欢迎来到天天文库
浏览记录
ID:61499615
大小:123.50 KB
页数:16页
时间:2021-02-07
《操作系统 进程调度算法课程设计报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、操作系统原理课程设计报告题目:进程调度算法课程名称:操作系统姓名:柴婉宁学号:专业:计算机科学与技术学校:辽宁科技大学指导老师:张静日期:2014.3.1目录一.设计要求--------------------------------------3二.设计思想流程--------------------------------3三.数据结构--------------------------------------5四.程序清单--------------------------------------6五.运行结
2、果--------------------------------------9六.实验体会--------------------------------------11七.设计心得--------------------------------------12八.参考文献--------------------------------------12进程调度算法一.设计要求1.编写一个进程调度程序,允许多个进程并行执行。2.每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达
3、时间、需要运行时间、已用CPU时间、进程状态等等。3.进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为输入进程的时间。二.设计思想流程1.优先权调度模拟流程图开始输入开始进程数n创建n个PCB并加入ready-queue中ready-queue是否为空YNRunning<=idRunning<=逐个将redy_pc中的PCB阻塞RunningNYRunning=idleYN将Running从ready_queue中删除,再将running加入block_queueb更新新进程就
4、绪队列进程优先数,优先数加1是否创建新PCBNY创建新进程并加入到ready_queue中随机对block_queue中的进程PCB询问是否要唤醒?处理完了吗YN是否要唤醒NY将其从blick_queuek队列是中删除,再将其加入ready_queuek优先权调度模拟流程图2.按时间片轮转调度模拟流程图开始输入开始进程数n创建n个PCB并加入ready-queue中ready-queue是否为空YNRunning<=idRunning<=逐个将redy_pc中的PCB阻塞RunningNYRunning=idleY
5、N将Running从ready_queue中删除,再将running加入block_queueb是否创建新PCBNY创建新进程并加入到ready_queue中随机对block_queue中的进程PCB询问是否要唤醒?处理完了吗YN是否要唤醒NY将其从blick_queuek队列是中删除,再将其加入ready_queuekY时间片轮转调度模拟流程图三.数据结构1.进程管理程序调试好后运行进程管理程序2.优先权调度(1)输入1选择优先权调度算法模拟。(2)输入开始进程个数n,创建n个PCB并加入就绪队列ready_qu
6、eue中。(3)就绪队列ready_queue不为空,调度就绪队列中第一个进程运行,否则,从闲逛队列idleprocess中调度闲逛进程运行。(4)在运行过程中,当遇到阻塞,则该进程插入到阻塞队列block_queue中,且将该进程从ready_queue中删除。(5)如果运行时间CPUtime大于等于Alltime,该进程运行完毕,释放该进程;否则插入到就绪队列中。(6)更新就绪队列中的优先级数。(7)随机对阻塞队列block_queue中的进程PCB询问是否要唤醒,唤醒,即从唤醒队列中选择第一个进程,且插入就绪
7、队列中;阻塞队列中没有阻塞进程返回。(8)重复上述步骤,直到本次调度结束。3.按时间片轮转调度(1)输入2选择优先权调度算法模拟。(2)输入开始进程个数n,创建n个PCB并加入就绪队列ready_queue中。(3)就绪队列ready_queue不为空,调度就绪队列中第一个进程运行,否则,从闲逛队列idleprocess中调度闲逛进程运行。(4)在运行过程中,当遇到阻塞,则该进程插入到阻塞队列block_queue中,且将该进程从ready_queue中删除。(5)如果运行时间CPUtime大于等于Alltime,
8、该进程运行完毕,释放该进程;否则插入到就绪队列中。(6)随机对阻塞队列block_queue中的进程PCB询问是否要唤醒,唤醒,即从唤醒队列中选择第一个进程,且插入就绪队列中;阻塞队列中没有阻塞进程返回。(7)如果时间到,本次调度结束,否则重复上述步骤,直到本次调度结束。四.源程序代码#include#include#i
此文档下载收益归作者所有