完整版操作系统毕业课程设计指导书09版.docx
- 文档编号:7298101
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:52
- 大小:35.12KB
完整版操作系统毕业课程设计指导书09版.docx
《完整版操作系统毕业课程设计指导书09版.docx》由会员分享,可在线阅读,更多相关《完整版操作系统毕业课程设计指导书09版.docx(52页珍藏版)》请在冰豆网上搜索。
完整版操作系统毕业课程设计指导书09版
操作系统课程设计
指导书
(试用版)
内蒙古工业大学信息工程学院计算机系
2009.12
《操作系统课程设计》教学大纲3
第一章设计规范与说明5
1.1设计规范5
1.2报告的整理与形成6
第二章设计内容7
2.1文件系统的设计与实现7
2.2银行家算法的设计与实现9
2.3主存空间的分配与回收11
2.4处理机管理16
内蒙古工业大学课程设计任务书
(一)19
内蒙古工业大学课程设计任务书
(二)20
内蒙古工业大学课程设计任务书(三)21
内蒙古工业大学课程设计任务书(四)22
内蒙古工业大学课程设计(论文)说明书书写规范23
附录一模拟文件系统实践示例:
26
附录二银行家算法实践示例:
43
附录三可变式分区的分配与回收实践示例:
49
附录四时间片轮转法进行CPU调度的示例:
54
《操作系统课程设计》教学大纲
课程英文名称:
OperatingSystemofcomputer课程类别:
技术基础课
开出学期:
第五学期开出单位(系):
计算机系
适用专业:
软件工程
制定人:
赵俊生、马志强
一、制定依据
根据内蒙古工业大学2006版培养方案、操作系统课程教学大纲等制订本课程设计教学大纲。
二、目的与基本要求
1.目的
操作系统课程设计是操作系统课程的重要实践性环节。
通过小型文件系统、银行家算法、主存空间的分配与回收和处理机管理的设计与实现,可以加深学生对课堂中所讲授内容的理解,培养学生的系统开发能力,加强学生的项目经验,使学生初步具有研究、设计、编制和调试操作系统模块的能力。
2.基本要求
根据操作系统课程设计任务书所确定的设计内容,每位同学选择其中一个设计题目进行
一周的设计,针对设计内容查阅相关资料、进行理论分析、确定相应算法并编程实现原型系统;完成原型系统后,按照内蒙古工业大学课程设计说明书书写规范,编写操作系统课程设计说明书;最后进行课程设计答辩。
三、基本内容和安排
1.基本内容
题目一:
文件系统的设计与实现
题目二:
银行家算法的设计与实现
题目三:
主存空间的分配与回收
题目四:
处理机管理
2.安排
周一:
布置、讲解题目,收集资料;
周二:
系统分析,算法设计;
周三:
编制、调试程序;
周四:
测试系统,形成设计结论,编写课设报告;
周五:
系统及材料验收,课设答辩。
四、组织及指导方式
1.学生的组织
本课设安排四个题目,学号为单号学生选择题目一或三进行设计,学号为双号学生选择题目二或四进行设计,一人一组,设计过程中可以相互讨论。
2.指导方式
每班指导教师两人,每人指导一题,跟班指导。
五、考核方式及成绩评定
1.考核方式
成绩考核采取面试答辩形式。
2.成绩评定
由指导教师根据学生在设计中的表现、任务的完成情况、课程设计报告的质量等综合评定。
评分标准为:
1)完成基本功能占60%;2)设计报告占20%;3)出勤率占10%;4)回答指导教师提问占10%。
根据以上四个标准,课程设计成绩按优秀、良好、中等、及格和不及格五级记分制评定。
六、教材及主要参考资料
1.教材
[1]张尧学主编.计算机操作系统教程(第三版).北京:
清华大学出版社,2006
2.主要参考书
[1]张尧学编.计算机操作系统教程(第三版)习题解答与实验指导.北京:
清华大学出版社,2006
[2]汤子瀛主编.计算机操作系统(第三版).西安:
西安电子科技大学出版社,2001
[3]张坤等编.操作系统实验教程.北京:
清华大学出版社,2008
[4]张丽芬等编.操作系统实验教程.北京:
清华大学出版社,2006
[5]AndrewS.Tanenbaum.ModernOperatingSystems,SecondEdition.EnglewoodCliffs,N.J,PrenticeHall,2001
[6]屠祁等编.操作系统基础(第三版).北京:
清华大学出版社,2000
[7]冯耀霖等编.操作系统.西安:
西安电子科技大学出版社,2001
[8]左万历.计算机操作系统教程(第二版).北京:
高等教育出版社,2004
第一章设计规范与说明
1.1设计规范
一、问题分析与系统结构的设计
充分地分析和理解问题本身。
本阶段主要解决“要作什么,限制条件是什么”。
首先从问题中抽取合适的数据结构,作为整个系统的底层,解决问题的算法作为上层。
定义数据的存储结构及其在这些结构上的操作,使得在上层的应用中可以通过这些操作完成对数据结构层的访问。
在这个过程中,要综合考虑系统功能,使所设置的操作要易于系统整体功能的实现。
最后写出每个函数的规格说明,包括形参个数和类型、函数的返回类型、函数的前提条件是什么、以及函数的功能。
列出函数间的调用关系,可以使用调用关系图表示则更加清晰,这样便完成了系统结构设计。
二、详细设计和编码
详细设计的目的是对函数的进一步求精。
用if、while和赋值语句等类语言写出算法的框架。
利用类语言的目的是避免陷入细节。
在编码时,可以对详细设计的结果进一步求精,用高级语言表示出来。
应注意以下事项。
1.程序的每一行最好不超过60个字符。
每个函数通常不要太长,以40行为宜。
函数包含的程序行数太多,易于造成阅读困难。
2.变量定义为:
名+类型。
如:
LinkList*firstLinkListPointer;其中first为名,后面的LinkListPointer说明是链表指针类。
3.控制if、while等语句的嵌套深度,最多不超过5层。
4.对每一段程序完成的作用,除非常明显的除外(如:
x=x+1;注释为x加1,没有什么意义),都应加以注释。
这会对程序的调试提供很多方便。
5.对每个数据结构和其函数要进行单元测试。
6.根据情况可以设立若干调试点,即输出若干信息,用于验证和你的设想是否一致。
另外,对于输入输出语句,必须对它们的作用加以说明。
否则,在调试程序时,无法了解系统需要输入说明,系统输出的又是什么。
三、静态检查
自己用一组数据手动执行程序;或和同学一起阅读自己的程序,以全面地了解该程序的逻辑。
1.2报告的整理与形成
一、调试报告
包括的内容有问题是如何解决的,讨论与分析、改进设想、经验与体会、时空复杂度等。
二、源程序清单和结果
打印的源程序清单和测试结果附在设计报告的后面。
源程序必须有注释,以及必要的测试数据和运行结果数据。
注释提倡用英文描述。
三、文档及资料的形成
在程序开发过程中,逐步形成各种必要的文档及资料。
第二章设计内容
2.1文件系统的设计与实现
一、设计目的
通过设计一个小型文件系统,进一步掌握文件管理的方法和技术,使学生初步具有研究、设计、编制和调试操作系统模块的能力。
二、设计要求与提示
1.问题描述
在任一OS下,建立一个大文件,把它假想成一张盘,在其中实现一个简单的小型文件系统。
2.基本要求
该文件系统没有子目录机制,文件连续分配,不考虑换“盘”和分区。
做一个简单的操作界面,提供五条简单的命令:
dir、mkfile、type、copy、delfile,分别用于显示文件目录、建立文件、显示文件内容、复制和删除一个文件。
三、设计思想、环境说明和使用工具
1.设计思想
建立一个系统文件(模拟盘),并对此进行盘块的划分,第一个盘块存放文件目录,第二盘块存放盘块位示图,自第三个盘块开始存放各具体文件的内容,文件目录存放文件的名字,文件的扩展名,开始盘块号,所占用的盘块数目,文件的大小;盘块位示图用来标记盘块是否被占用。
2.环境说明
工具:
C语言。
在WINDOWS环境下使用VC++进行编译及运行。
四、主要的数据结构
数据结构说明:
structfilename{文件目录项结构体
charname[9];文件名
charext[4];扩展名
inti;文件所占用磁盘块的第一个磁盘块号
intAmount;文件所占用磁盘块的块数
longintsize;文件大小
};
structempty{盘块结构体
intmap[100];盘块位示图
intfilenum;文件数量
};
五、课程设计应提交的主要内容
1.写出实现文件管理的数据结构、算法和算法流程图。
2.打印出程序清单。
3.写出程序调试及运行情况。
4.写出课程设计出现的问题及解决的方法。
5.课程设计的体会。
6.自我评价与总结。
2.2银行家算法的设计与实现
一、设计目的
通过银行家算法设计与实现,可以加深学生对死锁的理解,掌握死锁的预防、避免、检测和解除的基本原理,重点掌握死锁的避免方法—银行家算法。
使学生初步具有研究、设计、编制和调试操作系统模块的能力。
二、设计要求
1.问题描述
系统在进行资源分配的过程中,允许进程动态的申请资源,为了避免发生死锁,在分配资源前要进行安全性检查,若此次分配不会导致系统进入不安全状态,便将资源分配给进程,否则,进程等待。
2.基本要求
设计一个进程动态请求资源的模拟系统,实现随机产生进程请求资源的数量;资源安全性检查算法;资源的分配算法;以及输出显示每次请求的结果和系统资源的状态。
三、设计思想、环境说明和使用工具
1.设计思想
输入当前进程资源的使用情况以及整个系统的资源使用情况,并进行初始化安全性检查;如果是不安全状态,重新初始化系统;否则,从等待队列中提取一个等待进程,使用银行家算法进行检测,输出当前系统的状态和安全序列;如果是安全状态,系统继续从等待队列中提取等待进程进行检查;如果是不安全状态,进程回到等待队列,系统从等待队列中提取等待进程进行检查。
系统中申请资源的进程全部进入等待队列等候处理。
2.环境说明
工具:
C语言。
在WINDOWS环境下使用VC++6.0进行开发。
四、主要的数据结构
数据结构说明:
#defineMAX_RESOURCE_TYPE10定义最大的系统资源类数
structtask_struct{进程控制块
intpid;进程编号
intmax[MAX_RESOURCE_TYPE];进程对资源的最大需求
intalloc[MAX_RESOURCE_TYPE];进程已经分配的资源
intrequest[MAX_RESOURCE_TYPE];进程本次申请的资源数
};
等待队列采用链表结构进行设计。
五、课程设计应提交的主要内容
1.写出实现银行家算法的数据结构、算法和算法流程图。
2.打印出程序清单。
3.写出程序调试及运行情况。
4.写出系统设计中出现的问题及解决的方法。
5.课程设计的体会。
6.自我评价与总结。
2.3主存空间的分配与回收
一、设计目的
本设计题目主要让大家熟悉主存的各种分配与回收。
所谓分配,就是解决多道作业或多进程如何共享主存空间的问题。
所谓回收,就是当作业运行完成时,将作业或进程所占用的主存空间归还给系统。
主存的分配与回收的实现是与主存储器的管理方式有关的。
通过本次设计,帮助学生理解在不同的存储管理方式下,如何实现主存空间的分配与回收。
使学生初步具有研究、设计、编制和调试操作系统模块的能力。
二、设计要求
1.问题描述
采用可变式分区管理,使用首次或最佳适应算法实现主存的分配与回收。
可以采用分区说明表或空闲区链来进行。
可变式分区管理是指在处理作业过程中建立分区,使分区大小正好适合作业的需要,并且分区个数是可以调整的。
当要装入一个作业时,根据作业需要的主存量,查看是否有足够的空闲空间,若有,则按需求量分割一部分给作业;若无;则作业等待。
随着作业的装入、完成,主存空间被分割成许多大大小小的分区。
有的分区被作业占用,有的分区空闲。
2.基本要求
设计多个作业或进程动态请求内存资源的模拟系统,使用首次或最佳适应算法实现内存的分配与回收,实现可变式分区管理;设计相应的内存分配算法,定义相关数据结构,以及输出显示每次请求分配内存的结果和内存的已分配和未分配的状况。
三、设计思想、环境说明和使用工具
1.设计思想
初始化系统的内存分区说明表;输入当前作业或进程的使用内存情况,检索系统内的内存分区说明表,判断是否可分配,也就是查看是否有足够的空闲空间,若有,则按需求量分割一部分给作业;若无;则作业等待。
随着作业的装入、完成,主存空间被分割成许多大大小小的分区。
有的分区被作业占用,有的分区空闲。
使用内存的分配和回收算法进行,完成所有作业或进程的内存使用请求,作业完成后回收其所占用的内存给系统;并可输出查看内存的当前使用状况。
例如,某时刻主存空间占用情况如图3-1所示。
(1)为了说明哪些分区是空闲的,可以用来装入新作业,必须要有一张空闲区说明表,如表3-1所示。
操作系统(10KB)
作业1(10KB)
作业4(25KB)
空闲区1(20KB)
作业2(45KB)
空闲区2(146KB)
图3-1主存空间占用情况
表3-1空闲区说明表
起始地址
长度
状态
45K
20KB
未分配
110K
146KB
未分配
空表目
空表目
空表目
…
…
…
其中,起始地址指出各空闲区的主存起始地址,长度指出空闲区大小。
状态有:
未分配:
该栏目是记录的有效空闲区。
空表目:
没有登记信息。
由于分区个数不定,所以空闲区说明表中应有足够的空表目项。
否则造成溢出,无法登记。
同样,再设一个已分配区表,记录作业或进程的主存占用情况。
(2)当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区。
有时找到的空闲区可能大于作业需求量,这时应将空闲区一分为二。
一个分给作业;另一个仍作为空闲区留在空闲区表中。
为了尽量减少由于分割造成的碎片,尽可能分配低地址部分的空闲区,将较大空闲区留在高地址端,以利于大作业的装入。
为此在空闲区表中,按空闲区首地址从低到高进行登记。
为了便于快速查找,要不断地对表格进行紧缩,即让“空表目”项留在表的后部。
其分配框图如图3-2所示。
(3)当一个作业执行完成时,作业所占用的分区应归还给系统。
在归还时要考虑相邻空闲区合并的问题。
作业的释放区与空闲区的邻接分以下4种情况考虑:
A.释放区下邻(低地址邻接)空闲区;
B.释放区上邻(高地址邻接)空闲区;
C.释放区上下都与空闲区邻接;
D.释放区与空闲区不邻接。
首次适应算法回收框图如图3—3所示。
2.环境说明
工具:
C语言。
在WINDOWS环境下使用VC++6.0进行开发。
四、主要的数据结构
数据结构说明:
#defineN5
structfreearea*定义一个空闲区说明表结构,并初始化变量*
{intstartaddress;*空闲区始址*
intsize;*空闲区大小*
intstate;*空闲区状态:
0为空表目,1为可用空闲块*
}freeblock[N]={{20,20,1},{80,50,1},{150,100,1},{300,
五、课程设计应提交的主要内容
1.写出实现主存的分配和回收程序的数据结构、算法和算法流程图。
2.打印出程序清单。
3.写出程序调试及运行情况。
4.写出系统设计中出现的问题及解决的方法。
5.课程设计的体会。
6.自我评价与总结。
2.4处理机管理
一、设计目的
在多道程序或多任务系统中,系统同时处于就绪态的进程有若干个。
也就是说能运行的进程数远远大于处理机个数。
为了使系统中的各进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占有处理机。
要求学生设计一个模拟单处理机调度的算法,以巩固和加深处理机调度的概念。
二、设计要求
1、问题描述
处理机管理是操作系统中非常重要的部分。
为深入理解处理机调度部分的功能,设计一个按时间片轮转调度CPU的算法,模拟实现处理机的调度。
2.基本要求
时间片轮转调度CPU的算法是分时系统采用的典型算法,把CPU的执行时间分成若干个一定大小的时间片轮流的分配给就绪队列的各个进程,让各就绪进程按指定的顺序分别占用CPU的一个时间片轮流执行下去,直至完成。
要求定义进程控制块PCB的结构,并为每个进程任意确定一个要求运行时间和到达时间,按照进程到达的先后顺序排成一个循环队列。
设计按时间片轮转的进程调度算法。
三、设计思想、环境说明和使用工具
1.设计思想
(1)假设系统有5个进程,每个进程用一个进程控制块PCB来代表。
PCB的格式如图4-1所示。
进程名
链接指针
到达时间
估计运行时间
进程状态
图4-1进程控制块
其中,进程名即进程标识。
链接指针:
指出下一个到达进程的进程控制块首地址。
按照进程到达的顺序排队。
系统设置一个队头和队尾指针分别指向第一个和最后一个进程。
新生成的进程放队尾。
估计运行时间、到达时间以及进程状态与图3-1中相同。
(2)为每个进程任意确定一个要求运行时间和到达时间。
(3)按照进程到达的先后顺序排成一个循环队列。
再设一个队首指针指向第一个到达进程的首址。
(4)执行处理机调度时,开始选择队首的第一个进程运行。
另外再设一个当前运行进程指针,指向当前正运行的进程。
(5)由于本实践是模拟算法,所以对被选中进程并不实际启动运行,而只是执行:
①估计运行时间减1;
②输出当前运行进程的名字。
用这两个操作来模拟进程的一次运行。
(6)进程运行一次后,以后的调度则将当前指针依次下移一个位置,指向下一个进程,即调整当前运行指针指向该进程的链接指针所指进程,以指示应运行进程。
同时还应判断该进程的剩余运行时间是否为0。
若不为0,则等待下一轮的运行;若该进程的剩余运行时间为0,则将该进程的状态置为完成态C,并退出循环队列。
(7)若就绪队列不空,则重复上述的(5)和(6)步骤直到所有进程都运行完为止。
(8)在所设计的调度程序中,应包含显示或打印语句。
以便显示或打印每次选中进程的名称及运行一次后队列的变化情况。
2.环境说明
工具:
C语言。
在WINDOWS环境下使用VC++6.0进行编译及运行。
四、主要的数据结构
数据结构说明:
typedefstructpcb*进程控制块定义*
{charpname[N];*进程名*
intruntime;*运行时间*
intarrivetime;*到达时间*
charstate;*进程状态*
structpcb*next;*链接指针*
}PCB;
五、课程设计应提交的主要内容
1.写出实现文件管理的数据结构、算法和算法流程图。
2.打印出程序清单。
3.写出程序调试及运行情况。
4.写出课程设计出现的问题及解决的方法。
5.课程设计的体会。
6.自我评价与总结。
内蒙古工业大学课程设计任务书
(一)
学院(系):
信息学院计算机系课程名称:
操作系统课程设计指导教师(签名):
专业班级:
软件工程09-学生姓名:
学号:
一、课程设计题目
文件系统的设计与实现
二、课程设计的目的
通过设计一个小型文件系统,进一步掌握文件管理的方法和技术,使学生初步具有研究、设计、编制和调试操作系统模块的能力。
三、课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等)
原始数据:
文件目录项结构体,盘块结构体。
技术参数:
WindowsXP系统,VC++6.0开发工具。
设计要求:
1.设计基于位示图的文件连续分配算法;
2.设计显示文件目录、建立文件、显示文件内容、复制和删除文件算法;
3.画出以上算法流程图;
4.编程实现算法功能;
5.编写课程设计说明书。
工作量要求:
完成以上设计要求中的所有算法功能。
四、工作进度安排
周一:
布置、讲解题目,收集资料;
周二:
系统分析,算法设计;
周三:
编制、调试程序;
周四:
测试系统,形成设计结论,编写课设报告;
周五:
系统及材料验收,课设答辩。
五、主要参考文献
[1]张尧学编.计算机操作系统教程(第三版)习题解答与实验指导.北京:
清华大学出版社,2006
[2]汤子瀛主编.计算机操作系统(第三版).西安:
西安电子科技大学出版社,2001
[3]张坤等编.操作系统实验教程.北京:
清华大学出版社,2008
审核批准意见
系(教研室)主任(签字)
内蒙古工业大学课程设计任务书
(二)
学院(系):
信息学院计算机系课程名称:
操作系统课程设计指导教师(签名):
专业班级:
软件工程09-学生姓名:
学号:
一、课程设计题目
银行家算法的设计与实现
二、课程设计的目的
通过银行家算法设计与实现,可以加深学生对死锁的理解,掌握死锁的预防、避免、检测和解除的基本原理,重点掌握死锁的避免方法—银行家算法。
使学生初步具有研究、设计、编制和调试操作系统模块的能力。
三、课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等)
技术参数:
WindowsXP系统,VC++6.0开发工具。
设计要求:
1.设计银行家算法的核心数据结构、安全性检查算法;
2.画出银行家算法流程图;
3.编程实现算法功能;
4.编写课程设计说明书。
工作量要求:
完成以上设计要求中的所有算法功能。
四、工作进度安排
周一:
布置、讲解题目,收集资料;
周二:
系统分析,算法设计;
周三:
编制、调试程序;
周四:
测试系统,形成设计结论,编写课设报告;
周五:
系统及材料验收,课设答辩。
五、主要参考文献
[1]张尧学编.计算机操作系统教程(第三版)习题解答与实验指导.北京:
清华大学出版社,2006
[2]汤子瀛主编.计算机操作系统(第三版).西安:
西安电子科技大学出版社,2001
[3]张坤等编.操作系统实验教程.北京:
清华大学出版社,2008
审核批准意见
系(教研室)主任(签字)
内蒙古工业大学课程设计任务书(三)
学院(系):
信息学院计算机系课程名称:
操作系统课程设计指导教师(签名):
专业班级:
软件工程09-学生姓名:
学号:
一、课程设计题目
主存空间的分配与回收
二、课程设计的目的
通过该课程设计使学生理解在不同的存储管理方式下,如何实现主存空间的分配与回收。
使学生初步具有研究、设计、编制和调试操作系统模块的能力。
三、课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等)
原始数据:
空闲区说明表结构体。
技术参数:
WindowsXP系统,VC++6.0开发工具。
设计要求:
1.设计基于空闲区说明表的可变分区分配与回收算法;
2.或设计基于空闲区链表的可变分区分配与回收算法;
3.画出以上算法流程图;
4.编程实现算法功能;
5.编写课程设计说明书。
工作量要求:
完成以上设计要求中的所有算法功能。
四、工作进度安排
周一:
布置、讲解题目,收集资料;
周二:
系统分析,算法设计;
周三:
编制、调试程序;
周四:
测试系统,形成设计结论,编写课设报告;
周五:
系统及材料验收,课设答辩。
五、主要参考文献
[1]张尧学编.计算机操作系统教程(第三版)习题解答与实验指导.北京:
清华大学出版社,20
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 操作系统 毕业 课程设计 指导书 09