一. 成绩评定表。
二. 任务书。
三. 计目的意义、设计内容
四. 计方案(软硬件环境,开发工具或语言选择及思路)
五. 程序功能模块设计(程序功能模块划分及层次等)
六. 程序总控流程图。
七. 数据结构设计。
八. 程序**结构(函数调用关系或类层次关系)
九. 程序主要**分析。
十. 测试数据及测试结果。
十一.设计过程中遇到的问题及解决方法。
十二.结论(系统实现情况、系统特点、设计体会及收获等)
十三。 目前资料收集情况(含指定参考资料)
二.任务书:
三.设计目的意义、设计内容。
1. 编程实现模拟操作系统进程调度子系统的基本功能;理解进程调度的概念,通过课程设计深入了解进程控制块的功能、进程的创建、删除以及进程各个状态间的转换过程;实现先来先服务、时间片轮转、多级反馈轮转法对进程进行的调度过程;通过观察有关的队列结构的内容的动态变化过程深入体会各个调度算法的特点;从而能够更好的巩固从书本上学到的知识。
2. 编程过程中需要建立队列等结构进行各种操作,通过该次试验,可以督促学生从实用的角度对《数据结构》课程内容进行更深入理解和更熟练的使用。
3. 实验编程语言要求使用j**a语言或c++语言。通过对调度功能的编程实现,不但能有效训练学生对编程语言的熟练使用,还能促进学生独立思考解决问题、以及独立查新获取知识的能力。
四.设计方案(软硬件环境,开发工具或语言选择及思路等)
1>设计环境平台:该软件在windows xp,jdk1.6
2>开发工具: eclipse+designer
3>设计思路 :
1、 进程概念:进程是被独立分配资源的最小单位。进程是动态概念,必须程序运行才有进程的产生。
2、 进程的状态模型:
1)运行:进程已获得处理机,当前处于运行状态。
2)就绪:进程已经准备好,一旦有处理器就可运行。
3)阻塞:进程因为发生某事件而暂停执行,亦即进程的执行受到阻塞。
3、处理机调度:在多道程序设计系统中,内存中有多道程序运行,他们相互争夺处理机这一重要的资源。处理机调度就是从就绪队列中,按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程并发地执行。
4、 进程调度算法的功能。
记录系统中所有进程的执**况。
选择占有处理机的进程。
进行进程的上下文切换。
5、进程调度的算法:
1)先来先服务算法:最先进入等待队列的进程先执行,进程结束后执行下一个进程。这是最简单的处理机调度算法,其基本思想是按照进程进入就绪队列的先后顺序调度并分配处理机执行。
先来先服务调度算法是一种不可抢占的算法,先进入就绪队列的进程,先费培处理机运行。一旦一个进程占有了处理机,它就一直运行下去,知道该进程完成工作或者因为等待某事件而不能继续运行时才释放处理机。
2)优先数算法:即进程的执行顺序由高优先级到低优先级。系统或用户按某种原则为进程指定一个优先级来表示该进程所享有的确调度优先权。该算法核心是确定进程的优先级。
3)时间片轮转算法:固定时间片,每个进程在执行一个时间片后,轮到下一进程执行,知道所有的进程执行完毕。处理器同一个时间只能处理一个任务。
处理器在处理多任务的时候,就要看请求的时间顺序,如果时间一致,就要进行**。挑到一个任务后,需要若干步骤才能做完,这些步骤中有些需要处理器参和,有些不需要(如磁盘控制器的存储过程)。不需要处理器处理的时候,这部分时间就要分配给其他的进程。
原来的进程就要处于等待的时间段上。经过周密分配时间,宏观上就象是多个任务一起运行一样,但微观上是有先后的,就是时间片轮换。
(4) 多级反馈轮转法: 把系统中的所有进程分成若干个具有不同优先级别的组,同一组的进程都具有和所在组同样的优先级别,并且把每组进程组织成一个先进先出的队列。在设计时,按优先级别越高的组中的进程应得时间片越短的原则分配时间片。
在调度时,调度器每次都从优先级别高的就绪队列中队首选择就绪进程。当在高优先级别的队列中找不到就绪进程时,才到低优先级别的就绪进程队列中选取。
注:优先数算法。
时间片轮转法。
多级反馈队列调度法。
五.程序功能模块设计。
六.程序总控流程图。
七.数据结构设计。
本组在实现进程调度算法时采用了一个有特色的模拟方式———
线程模拟进程。
数据结构设计如下:
创建j**a中的thread对象,并将创建好的各个对象放入数据容器。
vector()中,各个调度算法对个进程的排序,其实就是对vector
中的thread对象排序,决定其执行顺序。
八.程序**结构(函数调用关系或类层次关系)
开始执行:public class mainthread
—>弹出程序运行窗口。
—>选择进程调度算法。
"pri;== t_slice";
== m_fb_slice"}
—>创建进程:
从窗体控件获取相应参数创建进程new refreshlist(list_3, list_1, list_2, textfield_3).run()
—>对进程进行控制:
阻塞。首先判断有无进程在执行: "已经无进程处于运行状态,请创建进程!")若有,则终止执,行将执行进程从就绪队列调入等待队列。
list_list_
唤醒:将等待队列中的进程重新调入就绪队列的对尾。
九.程序主要**分析。
public void run()
public void refresh() 刷新列表,并且执行下一个进程。
if ( 0) else
"无进程");
if (k < 进程执行过程。
public void executefcfs和优先级调度算法。
int maximum =
progress = crtprocess)
// sfsdf"+
label_
label_
int i = progress;
while (i < maximum) {
try {int value =
int value = progress;
source =
if ( true) {
progress = value + 1;
操作系统课程设计进程调度
批处理系统的作业调度模拟。一 课程设计目的。1 加深对作业概念的了解 2 深入了解批处理系统如何组织作业 管理作业和调度作业 3 巩固相关的理论知识 二 课程设计预备知识。1 作业控制块的概念和结构 2 作业的创建 3 作业的调度算法 4 c语言的相关知识。三 课程设计内容要求。1 编写程序完成批处...
进程调度算法操作系统课程设计
操作系统原理。课程设计报告。题目 进程调度算法。班级 软件09 姓名 李宗仁 指导老师 张老师 进程调度算法。一 实验目的。通过优先权法与轮转调度算法的模拟加深对进程概念和进程调度过程的理解,掌握进程状态之间的切换,同时掌握进程调度算法的实现方法和技巧。二 实验内容。1 用c语言或c 语言来实现对n...
操作系统模拟进程课程设计
本科实验课程报告。2016 至2017学年第 1 学期 课程名称 计算机组成原理。专业名称 计算机科学与技术 行政班级1410081 学号 141006125 姓名黄梦阳。指导教师李玉玲。报告时间 2016 年 12 月 4 日。实验一。实验地点实验日期成绩 1 实验目的。1 熟悉硬软件环境。2 学...