操作系统课程设计任务书Word格式文档下载.docx
- 文档编号:12935753
- 上传时间:2022-09-30
- 格式:DOCX
- 页数:13
- 大小:107.76KB
操作系统课程设计任务书Word格式文档下载.docx
《操作系统课程设计任务书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计任务书Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
“序号”+“姓名”。
内容包括:
源文件、可执行文件、演示运行结果、课程设计说明书,最后由班长以班为单位刻录两张光盘,统一交给任课教师。
3.每人自己打印操作系统课程设计报告的纸质文档,装订后交给班长,班长收齐清点后统一交给任课教师。
课程设计说明书具体包括以下内容:
(1)设计思想说明(5%);
(2)系统结构的说明(15%);
(3)数据结构的说明(5%);
(4)各模块的算法流程图(5%);
(5)程序运行及清单(共60%,其中书面源程序占20%,光盘的源程序在计算机上实现程度占40%)
(6)使用说明书(即用户手册)(内容包含如何登录、退出、读、写、等操作说明)(5%分)
(7)体会,建议(5%)
(8)参考文献
一、设计思想说明
⑴短进程优先调度算法的基本思想:
进程调度每次从就绪队列中选出一估计运行时间最短的进程,将CPU分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时,再重新调度。
⑵最高优先数优先调度算法的基本思想:
进程调度每次是把CPU分配给就绪队列中优先数最高的进程。
进程优先数的设置可以是静态的也可以是动态的。
静态优先数是在进程创建时根据进程初始特性或用户要求确定的,并在整个进程运行期间不能再改变。
动态优先数是指在进程创建时先确定一个初始优先数,以后在进程运行中随着进程特性的改变(如等待时间增长),不断修改优先数,这样,由于开始优先数很低而得不到CPU的进程,就能因为等待时间的增长而优先数变为最高而得到CPU运行。
例如:
在进程获得一次CPU后就将其优先数减少1。
或者,进程等待的时间超过某一时限时增加其优先数的值,等等。
⑶简单轮转法的基本思想:
所有就绪进程按FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。
即将CPU的处理时间划分成一个个相同的时间片,就绪队列的诸进程轮流运行一个时间片。
当一个时间片结束时,如果运行进程用完它的时间片后还未完成,就强迫运行机制进程让出CPU,就把它送回到就绪队列的末尾,等待下一次调度。
同时,进程调度又去选择就绪队列中的队首进程,分配给它一时间片,以投入运行。
直至所有的进程运行完毕。
⑷多队列反馈法的基本思想:
①在系统中设置多个就绪队列,各队优先权不同。
②CPU总是优先分配给优先权高的队列中的进程,仅当优先权高的队列空闲时,CPU才运行下一级队列中的进程。
③优先权越高的队列,其中的进程运行时所获得的时间片越小。
④进程并非总是固定在某一队列中,系统总是把新创建的进程首先放入优先权最高的队列,若它执行一个时间片后尚未完成,系统便把它放入下一级队列的末尾,即进程的优先权在逐步降低。
⑤除最低优先权队列外的所有其他队列,均采用相同的进程调度算法,即按时间片轮转的FIFO(先进先出)算法。
当进程进入最低优先权队列时,便可采用时间片轮转算法或其他方式运行。
二、系统结构的说明
⑴设定系统中有五个进程,每一个进程用一个进程控制块(PCB)表示,进程队列采用链表数据结构。
⑵进程控制块包含如下信息:
进程名、优先数、到达时间、需要运行时间、进程状态、链接指针等等。
⑶进程的优先数及需要的运行时间事先人为地指定。
为方便起见,我在C++Builder下设计了图形界面,并初始化了五个进程的信息。
在每次调用处理程序之前,可以修改进程的信息。
⑷进程的运行时间以时间片为单位进行计算。
⑸根据所选择算法的不同,五个进程排成一个循环队列,队列采用链表结构,并且设置了队首指针。
另外,根据多级反馈队列算法的要求,设置了第二队列,同样也为其设置了队首指针。
⑹执行处理机调度时,总是选择队首进程运行。
另外,再设一个当前运行进程的指针,指向当前正在运行的进程。
⑺由于只是模拟进程调度,所以对选中的进程并不实际启动运行,而只是执行:
进程的运行时间增加;
输出当前运行进程的信息
用这两个操作来模拟进程的一次运行。
⑻进程运行时,在界面上显示相应的信息。
⑼进程运行一次后,以后的调度则将当前指针依此下移一个位置,指向下一个进程,即调整当前运行指针指向该进程的链接指针所指进程,以指示应运行进程。
同时还应判断该进程的实际运行时间大于或等于需要运行的时间。
若满足要求,则释放该进程,退出循环队列,否则重新排队,等待下一次的调度。
⑽所有进程运行完后,程序结束。
三、数据结构的说明
⑴进程控制块包含如下信息:
进程名、状态、到达时间、优先数、需要运行时间、实际运行时间、链接指针等。
1进程名:
进程的标识。
2状态:
就绪、运行或完成三种状态之一。
3到达时间:
由于是模拟共行进程,故到达时间都相同。
4优先数:
事先指定,高优先权算法总是根据优先数调度进程。
5需要运行时间:
事先指定,短进程优先算法根据此调度进程。
6实际运行时间:
以CPU时间片为单位,每调度一次增加1。
7链接指针:
指出下一个到达进程的进程控制块首地址。
按照进程到达的顺序排队。
系统设置一个队头和队尾指针分别指向第一和最后一个进程。
新生成的进程放队尾。
源程序中进程控制块定义如下:
structpcb{/*定义进程控制块PCB*/
ShortStringname;
ShortStringstate;
//状态
intctime;
//到达时间
intsuper;
//优先数
intntime;
//需要运行时间
intrtime;
//实际运行时间
structpcb*link;
}*ready=NULL,*p,*q,*ready2=NULL;
⑵主要函数说明:
1voidsortbySPF();
按进程需要运行时间从小到大排列。
2voidsortbyHPF();
建立对进程进行优先级排列函数,优先数大者,排在队首。
3voidsortbyFB();
多队列算法时,对第二队列的进程按到达时间先后排列。
4voidsortbyRR();
建立对进程进行时间片轮换排序
5intspace();
返回队列长度;
6voiddisp(PCB*pr);
建立进程显示函数,用于显示当前进程,check()函数调用。
7voidcheck();
建立进程查看函数示当前运行进程显示就绪队列状态
8voidcheckFB();
查看第二队列进程。
9voiddestroy();
建立进程撤消函数(进程运行结束,撤消进程)
10voidrunning();
建立进程就绪函数(进程运行时间到,置就绪状态)
11voidrunningFB();
建立第二队列的进程就绪函数(FB算法用到,进程运行时间到,置就绪状态)
源程序中定义如下:
classTForm1:
publicTForm
{
__published:
//IDE-managedComponents
TsuiForm*suiForm1;
TsuiProgressBar*suiProgressBar1;
TsuiStringGrid*suiStringGrid1;
TsuiRadioGroup*suiRadioGroup1;
TsuiMemo*suiMemo1;
TsuiGroupBox*suiGroupBox1;
TsuiButton*suiButton1;
TLabel*Label1;
TLabel*Label2;
TLabel*Label3;
TLabel*Label4;
TLabel*Label5;
TLabel*Label6;
void__fastcallFormCreate(TObject*Sender);
void__fastcallsuiButton1Click(TObject*Sender);
private:
//Userdeclarations
public:
//Userdeclarations
voidsortbySPF();
voidsortbyHPF();
voidsortbyFB();
voidsortbyRR();
intspace();
voiddisp(PCB*pr);
voidcheck();
voidcheckFB();
voiddestroy();
voidrunning();
voidrunningFB();
__fastcallTForm1(TComponent*Owner);
};
⑶程序不断调度队首的进程,直到该队列为空,如下所示:
len=space();
suiMemo1->
Clear();
while((len!
=0)&
&
(ready!
=NULL))
{
h++;
Lines->
Add("
CPU时间片:
"
+IntToStr(h));
p=ready;
ready=p->
link;
p->
link=NULL;
state="
运行"
;
check();
running();
}
while(ready2!
=NULL)
CPU时间片(第二队列):
p=ready2;
ready2=p->
checkFB();
runningFB();
四、各模块的算法流程图
⑴短进程优先调度算法的流程图:
⑵最高优先数优先调度算法的流程图:
⑶简单轮转法的流程图:
⑷多队列反馈法的流程图:
五、程序运行及清单
⑴程序运行文件名:
jinchengdiaodu.exe
⑵本程序是在C++Builder6下开发的。
使用C++Builder能够方便快捷地开发一个应用程序,并且设计一个实用的界面。
下面是整个工程项目目录下各个文件的作用。
①inchengdiaod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 任务书