操作系统课程设计进程管理系统.docx

上传人:b****8 文档编号:9306968 上传时间:2023-05-18 格式:DOCX 页数:16 大小:166.64KB
下载 相关 举报
操作系统课程设计进程管理系统.docx_第1页
第1页 / 共16页
操作系统课程设计进程管理系统.docx_第2页
第2页 / 共16页
操作系统课程设计进程管理系统.docx_第3页
第3页 / 共16页
操作系统课程设计进程管理系统.docx_第4页
第4页 / 共16页
操作系统课程设计进程管理系统.docx_第5页
第5页 / 共16页
操作系统课程设计进程管理系统.docx_第6页
第6页 / 共16页
操作系统课程设计进程管理系统.docx_第7页
第7页 / 共16页
操作系统课程设计进程管理系统.docx_第8页
第8页 / 共16页
操作系统课程设计进程管理系统.docx_第9页
第9页 / 共16页
操作系统课程设计进程管理系统.docx_第10页
第10页 / 共16页
操作系统课程设计进程管理系统.docx_第11页
第11页 / 共16页
操作系统课程设计进程管理系统.docx_第12页
第12页 / 共16页
操作系统课程设计进程管理系统.docx_第13页
第13页 / 共16页
操作系统课程设计进程管理系统.docx_第14页
第14页 / 共16页
操作系统课程设计进程管理系统.docx_第15页
第15页 / 共16页
操作系统课程设计进程管理系统.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

操作系统课程设计进程管理系统.docx

《操作系统课程设计进程管理系统.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计进程管理系统.docx(16页珍藏版)》请在冰点文库上搜索。

操作系统课程设计进程管理系统.docx

操作系统课程设计进程管理系统

操作系统

课程设计报告

 

题目:

专业:

班级:

姓名:

学号:

指导老师:

年月日

《操作系统》课程设计任务书

一、课程设计题目(任选一个题目)

1.模拟进程管理

2.模拟处理机调度

3.模拟存储器管理

4.模拟文件系统

5.模拟磁盘调度

二、设计目的和要求

1.设计目的

《操作系统原理》课程设计是计算机科学与技术专业实践性环节之一,是学习完《操作系统原理》课程后进行的一次较全面的综合练习。

其目的在于加深对操作系统的理论、方法和基础知识的理解,掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。

2.基本要求:

(1)选择课程设计题目中的一个课题,独立完成。

(2)良好的沟通和合作能力

(3)充分运用前序课所学的软件工程、程序设计、数据结构等相关知识

(4)充分运用调试和排错技术

(5)简单测试驱动模块和桩模块的编写

(6)查阅相关资料,自学具体课题中涉及到的新知识。

(7)课题完成后必须按要求提交课程设计报告,格式规范,内容详实。

三、设计内容及步骤

1.根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么。

2.根据实现的功能,划分出合理的模块,明确模块间的关系。

3.编程实现所设计的模块。

4.程序调试与测试。

采用自底向上,分模块进行,即先调试低层函数。

能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。

调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;

5.结果分析。

程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。

6.编写课程设计报告;

设计报告和实验报告要求:

A4纸和实验报告册,详细设计部分主要叙述本人的工作内容

设计报告的格式:

(1)封面(题目、指导教师、专业、班级、姓名、学号)

(2)设计任务书

(3)目录

(4)需求分析

(5)概要设计

(6)详细设计(含主要代码)

(7)调试分析、测试结果

(8)用户使用说明

(9)附录或参考资料

四、进度安排

设计在第四学期的第1-18周(共18课时)进行,时间安排如下:

序号

内容

时间(课时)

1

系统分析

2

2

设计

4

3

编码、测试

10

4

验收

2

合计

18

五、成绩评定办法

成绩分为优(A)、良(B)、中(C)、及格(D)、不及格(E)五个等级。

其中设计表现占30%,验收40%,设计报告占30%。

1.设计表现:

教师可依据学生使用实验环境的能力、观察和分析实验现象的能力、实验结果和数据的正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2.验收:

要求学生演示设计的程序,讲解设计思路、方法、解决的主要问题,教师根据具体情况向每个学生提问2至3个问题。

3.设计报告:

学生设计后应按时完成设计报告和实验报告。

要求:

内容充实、写作规范、项目填写正确完整、书面整洁等。

 

一、需求分析………………………………………………6

1.进一步理解进程的基本概念…………………………6

2.加强进程管理的设计及算法…………………………6

3.观察和管理进程………………………………………6

二、概要设计………………………………………………6

1.实验原理………………………………………………6

2.数据结构………………………………………………6

3.算法描述………………………………………………6

4.算法流程图……………………………………………7

三、详细设计………………………………………………8

1.源程序代码……………………………………………8

四、调试分析及测试结果………………………………15

五、用户及用说明………………………………………17

六、附录或参考资料……………………………………17

 

一、需求分析

1.进一步理解进程的基本概念。

2.加强进程管理中主要数据结构的设计及进程调度算法。

3.观察和管理进程——系统在运行过程中可显示或打印各进程的状态及有关参数的变化情况。

二、概要设计

1.实验原理

定义PCB的数据结构,用链表的形式管理进程,采用多级反馈队列调度的算法模拟进程的控制,最终完成有创建、撤销、调度、阻塞、唤醒进程等功能。

2.数据结构

类:

classqueuenode

classqueue

函数:

voidenqueue(char&item);

chardequeue();

voiddel(charitem);

voiddisplay();

intfind(charitem);

intisempty()

3.算法描述

1-1、创建进程,根据进程的顺序依次放入就绪队列。

2-1、执行进程——管理系统将就绪队列中的第一个进程调入运行队列;

2-2、将阻塞队列中进程调入就绪队列;

2-3、封锁进程——管理系统将就绪队列中的第一个进程调入阻塞队列;

2-4、结束进程——管理系统撤销所选进程;

2-5、结束程序。

4.算法流程图

三、详细设计

1.源程序代码

#include

classqueuenode

{

friendclassqueue;

private:

chardata;

queuenode*link;

queuenode(chard=0,queuenode*l=NULL):

data(d),link(l){}

};

classqueue

{

public:

queue():

rear(NULL),front(NULL){};

~queue();

voidenqueue(char&item);

chardequeue();

voiddel(charitem);

voiddisplay();

intfind(charitem);

intisempty(){returnfront==NULL;}

private:

queuenode*front,*rear;

};

queue:

:

~queue()

{

queuenode*p;

while(front!

=NULL)

{

p=front;front=front->link;deletep;

}

}

voidqueue:

:

enqueue(char&item)

{

if(front==NULL)front=rear=newqueuenode(item,NULL);

elserear=rear->link=newqueuenode(item,NULL);

}

charqueue:

:

dequeue()

{

queuenode*p=front;

charf=p->data;front=front->link;

deletep;

returnf;

}

voidqueue:

:

display()

{

queuenode*p;

p=front;

while(p!

=NULL)

{cout<data<<"->";

p=p->link;

}

cout<<"NULL";

}

queue:

:

find(charitem)

{queuenode*w;

w=front;

M:

while(w!

=NULL)

{

if(item==w->data)

{return1;break;

}

else

{w=w->link;

gotoM;

}

}

if(w==NULL)return0;

}

voidqueue:

:

del(charitem)

{queuenode*q,*b;

q=front;

while(q->data!

=item)

{b=q;

q=q->link;

}

if(q==front){front=front->link;deleteq;}

elseif(q==rear){rear=b;rear->link=NULL;deleteq;}

else{b->link=q->link;deleteq;}

}

voidmain()

{

intn;

chara;

cout<<"\n[-----------操作系统之进程管理模拟系统(先来先服务算法)------------]\n"<

queueexecute,ready,clog;//执行,就绪,阻塞

cout<<"\n[-------请用户输入进程名及其到达cpu的顺序(结束进程数请输入x)------]\n"<

charr;

r='x';

for(inti=0;;i++)

{

chare[100];

cout<<"输入进程名:

"<<"";

cin>>e[i];

if(e[i]!

=r)

ready.enqueue(e[i]);

else

break;

}

A:

cout<<"\n[------------请(学号)用户(姓名)选择操作------------]\n";

cout<<"\n[1、执行进程……2、将阻塞队列中进程调入就绪队列………]\n";

cout<<"\n[3、封锁进程…………………4、结束进程…………………]\n";

cout<<"\n[5、退出程序…………………………………………………]\n选项:

";

cin>>n;

if(n==1)

{

if(!

execute.isempty())

{

cout<<"已经有进程在执行!

此操作不能执行\n";

charw;

cout<

cout<<"如果要继续请输入#;如果要退出按其它任意键"<

cout<<"要选择的操作:

";

cin>>w;

if(w=='#')gotoL;

elsegotoE;

}

else

{

if(!

ready.isempty())

{

a=ready.dequeue();

if(a!

=r)

execute.enqueue(a);

gotoL;

}

elsegotoL;

}

}

elseif(n==2)

{

if(!

clog.isempty())

{

a=clog.dequeue();

if(a!

=r)

ready.enqueue(a);

gotoL;

}

elsegotoL;

}

elseif(n==3)

{

if(!

execute.isempty())

{

a=execute.dequeue();

if(a!

=r)

clog.enqueue(a);

gotoL;

}

elsegotoL;

}

elseif(n==4)

{

cout<<"\n请输入要结束的进程名:

";

cin>>a;

if(execute.find(a)||ready.find(a)||clog.find(a))

{

if(execute.find(a))

{execute.del(a);}

elseif(ready.find(a))

{ready.del(a);}

if(clog.find(a))

{clog.del(a);}

cout<<"\n结束进程成功!

\n"<

gotoL;

}

else

cout<<"没有此进程"<

gotoL;

L:

if(n==1||n==2||n==3||n==4)

{

cout<<"执行队列"<

execute.display();

cout<

cout<<"就绪队列"<

ready.display();cout<

cout<<"阻塞队列"<

clog.display();cout<

gotoA;

}

else

if(n==5);

else

{

cout<<"\n你的输入错误!

\n";

gotoA;

}

}

E:

;}

 

四、调试分析及测试结果

 

五、用户使用说明

用户通过VC++即可运行改程序。

需说明的是主函数是实现进程管理的入口,在入口处需输入进程名称,然后输入进程的状态选项,如果完毕后,则通过相应的调度算法进行进程机的调度,同时也将结果显示在屏幕上。

本次实验通过模拟多个进程的同步运行,实现了进程就绪,运行,阻塞三个状态的转换,并可以根据用户要求改变进程的状态。

六、附录及参考资料

[1]王红,《操作系统实训》,中国水利水电出版社,2005

[2]张红光,《UNIX操作系统试验教程》,机械工程出版社,2006

[3]史美林,《操作系统教程》,清华大学,2006

[4]殷兆麟,《计算机操作系统》,北京大学,2007

[5]严蔚敏,《数据结构(C语言版)》,清华大学,2007

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2