操作系统课程方案任务书.docx
《操作系统课程方案任务书.docx》由会员分享,可在线阅读,更多相关《操作系统课程方案任务书.docx(22页珍藏版)》请在冰豆网上搜索。
![操作系统课程方案任务书.docx](https://file1.bdocx.com/fileroot1/2023-2/25/7aef55b1-4924-452f-8cf5-181acfad0092/7aef55b1-4924-452f-8cf5-181acfad00921.gif)
操作系统课程方案任务书
《操作系统课程设计》任务书
一、课程编号:
070006
二、适用专业:
计算机科学与技术专业
三、课程设计学时和学分:
学时2周,1学分
四、《操作系统课程设计》的目的
《操作系统》是一门重要的专业基础课,是涉及较多硬件知识的计算机系统软件课程。
在计算机软硬件课程的设置上,它起着承上启下的作用。
操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。
操作系统课程设计的主要任务是研究计算机操作系统的基本原理和算法,掌握操作系统的进程管理、存储管理、文件管理和设备管理的基本原理与主要算法。
目的是使学生掌握常用操作系统<如DOS、Windows或Linux)的一般管理方法,了解它是如何组织和运作的,对操作系统的核心概念和算法有一个透彻的理解,并对系统运行的机制有一个全面的掌握,从而充分理解系统调用与程序设计之间的关系。
五、课程设计的要求
1、要求学生已有先导课程《数据结构》和一门高级程序设计语言的基础。
2、在两周的课程设计环节,要求学生选择那些最典型的操作系统概念和机制,通过模拟实现的方式来体现操作系统的管理原理与算法,进而深刻理解操作系统的运行机制和数据结构。
3、人员、题目分配:
各班分成小组,每组1~2人,每组一题,每班各题目都要选到。
每个小组各成员独立完成课程设计,要求自行进行选题的设计、开发、调试与测试,实现课程设计要求的系统功能。
4、具体课程设计要求:
1)写出操作系统设计各个阶段的详细设计报告;
2)能够实现课程设计目标,根据选题内容设计出软件的结构和功能,写出系统的主要功能和使用说明;
3)设计有效的测试方法与测试数据,提交可运行的软件系统:
最终的软件对问题的描述应正确无误,运行稳定、可靠,界面友好;
4)对于不同算法的比较应提供直观的性能分析方法及数据,写入课程设计文档内;
5)提交一份课程设计总结报告,写出本次课程设计的收获和体会,包括已解决和尚未解决的问题,进一步完善的设想与建议;
6)根据以上内容,提交如下材料:
a.源程序、b.执行程序、c.设计文档、d.测试纪录、e.不同算法的分析与比较数据。
a和b两项以班级为单位集中上交刻录光盘,每名学生一个文件夹,其它各项上交纸质文稿。
6)开发环境与语言可自行选择,VisualVC++6.0、VB、Delphi7、PowerBuild9.0、VisualStudio.NET、GCC等.
7>每名同学进行10分钟的报告和答辩,讲解设计方案,演示系统运行。
课程设计提交时间:
周四、五上午8:
00~17:
50,要求当场进行系统演示。
六、成绩评定
通过进度检查、设计答辩和报告评审了解学生的设计水平,根据任务完成的情况,设计报告的质量,系统运行状态及平时讨论和设计的积极程度全面准确评定成绩。
评定的主要参考依据有:
1、选题难度。
2、系统功能的完成程度<功能、界面、特色、编程量、可用性)。
3、设计报告的质量。
4、统一上机检查结果和答辩情况。
5、平时检查情况。
课程设计成绩将以五级制形式进行评定,其标准如下:
1、优秀:
软件运行正确无误,稳定可靠,界面友好新颖<图形界面),有交互性,各种文档齐全、详细、准确。
2、良好:
软件运行正确无误,稳定可靠,界面友好,各种文档齐全、准确。
3、中等:
问题描述正确,界面尚可接受。
各种文档齐全、准确。
4、及格:
问题描述正确,各种文档齐备。
5、不及格:
有下列问题之一:
问题描述有误;文档不齐;软件运行有错误;没有按时完成;课程设计有抄袭或是雷同情况。
七、课程设计报告格式
见后面附页。
青岛理工大学
操作系统课程设计报告
院<系):
计算机工程学院
专业:
计算机科学与技术专业
学生姓名:
__
班级:
_______ 学号:
题目:
_________
起迄日期:
____ ____
设计地点:
指导教师:
2018—2018年度第1学期
完成日期:
2018年1月日
说明:
1.红色字说明,最终报告须删除这部分;
2.蓝色字的说明,是要用自己所做的具体内容替换的部分。
一、课程设计目的<标题宋体加粗四号)
正文<宋体五号),单倍行间距,段前段后均设置为0行。
进行操作系统课程设计主要是在学习操作系统课程的基础上,在完成操作系统各部分实验的基础上,对操作系统的整体进行一个模拟,通过实践加深对各个部分的管理功能的认识,还能进一步分析各个部分之间的联系,最后达到对完整系统的理解。
同时,可以提高运用操作系统知识解决实际问题的能力;锻炼实际的编程能力、创新能力及团队组织、协作开发软件的能力;还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。
二、课程设计内容与要求
模拟一种多任务<或多用户)<多道)批处理操作系统<包含处理器管理、存储管理、文件管理、进程管理、设备管理、作业管理)。
三、系统分析与设计
1、系统分析
系统分析报告,主要强调本人对系统分析的认识
系统分析从系统需求入手,从用户观点出发建立系统用户模型。
用户模型从概念上全方位表达系统需求及系统与用户的相互关系。
系统分析在用户模型的基础上,建立适应性强的独立于系统实现环境的逻辑结构。
分析阶段独立于系统实现环境,可以保证建立起来的系统结构具有相对的稳定性,便于系统维护、移植或扩充。
在系统分析阶段,系统的逻辑结构应从以下三方面全面反映系统的功能与性能:
<1)信息。
完整描述系统中所处理的全部信息;
<2)行为。
完全描述系统状态变化所需处理或功能;
<3)表示。
详细描述系统的对外接口与界面。
2、系统设计:
系统设计方案
系统设计是新系统的物理设计阶段。
根据系统分析阶段所确定的新系统的逻辑模型、功能要求,在用户提供的环境条件下,设计出一个能在计算机网络环境上实施的方案,即建立新系统的物理模型。
这个阶段的任务是设计软件系统的模块层次结构,设计数据库的结构以及设计模块的控制流程,其目的是明确软件系统"如何做"。
这个阶段又分两个步骤:
概要设计和详细设计。
概要设计解决软件系统的模块划分和模块的层次机构以及数据库设计;详细设计解决每个模块的控制流程,内部算法和数据结构的设计。
这个阶段结束,要交付概要设计说明书和设计说明,也可以合并在一起,称为设计说明书。
2.1、模块设计:
包括:
主程序的流程以及各程序模块之间的层次(调用>关系。
2.2、数据结构说明:
设计中所用到的数据结构或抽象数据类型的说明,以及在程序中的作用
2.3、算法流程图:
实现设计中主程序和其他子模块的算法,以流程图的形式表示,需画出函数和过程的调用关系图。
本小节内所有的图均要求用Visio或Word进行绘制,不允许用bmp或其他格式的图片。
绘图内文字均采用宋体五号<如果图比较大,排版不好看的话,可以根据需要缩小字体),单倍行间距,段前段后均设置为0行。
四、系统测试与调试分析
1、系统测试
●测试方法:
黑盒、白盒等
●测试技术:
单元测试、功能测试、场景测试
●测试数据:
包括正确的输入及其输出结果和含有错误的输入及其输出结果。
●测试报告:
必须包含最终测试结果:
列出你的测试结果,包括输入和输出。
这里的测试数据应该完整和严格。
单元测试应用背景:
它是从开发者的角度来编写的,用于确保类的每个特定方法成功执行一系列特定的任务。
每一个测试都要保证对于给定的一个已知的输入应该得到所期望的输出。
功能测试应用背景:
它是从使用者的角度来编写的,它关注系统提供的功能特征及其不同的处理条件;测试功能的不同处理流程<包括正常处理的和异常处理);一个功能测试用例仅用于测试一个功能,一个功能可能需要多个功能测试用例来覆盖。
场景测试应用背景:
它是从用户对系统进行最终确认的角度来编写的,关注于不同场景、事务、业务流程等;跨功能;仅用到各个功能的一部分处理流程;一个场景测试用例仅测试一个场景、事务或业务流程。
所以,报告这部分的撰写首先是要确定你所要采取的测试技术,然后对此进行介绍,最后根据所选择的技术设计测试用例,填写好下表,其中测试用例不止一个。
测试说明
测试名称
**程序<输入你设计的软件名)
测试目的
验证系统对于系统登录的处理流程
测试技术
单元测试
测试方法
黑盒测试法
测试用例
测试内容
用户登录功能—用户名
测试步骤
输入正确用户名与密码
输入正确用户名与错误密码
输入错误用户名与密码
测试数据
Admin,正确密码
Admin,错误密码
错误用户名,密码
预期结果
正常进入系统
显示密码错误
显示用户不存在
测试结果
与预期相符
与预期相符
与预期相符
2、调试分析:
调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析等。
五、用户手册
1、使用平台是什么?
下载网址?
2、是否需要安装?
如需要安装,如何安装?
3、说明如何使用你编写的程序,详细列出每一步的具体操作步骤。
这里可以有适当的运行结果抓图。
用户手册与开发过程无关,只与使用有关,必须是StepbyStep的。
所有运行结果截图均要求有实际数据的内容,截图尺寸要求按页宽排版两张大小,且要求有每张图下面有规范的标题。
如:
图1:
系统登录界面。
六、程序清单
列出主要/关键算法的程序清单,要求加上详细的程序注释<函数体/过程注释,与语句行注释)
七、体会与自我评价
要求不少于600字
八、参考文献
[1]汤子瀛编著,《计算机操作系统<修订版)》,西安电子科技大学出版社,2001年
不少于5条,可以是书籍、论文、网络资料<给出网址)
九、课程设计评价<由任课教师填写)
课程设计评价
成绩:
教师:
年月日
选题要求:
1、允许学生自拟题目,但自拟题目需要在课程设计正式开始前两周的时间报至指导老师审核并批准后才能生效;
2、禁止在设计过程中擅自更改选定的题目,否则不能进入答辩环节,课程设计成绩评定为不及格;
3、选题以班为单位,每个题目最多允许2个人选做;
4、在任务书下发后二天时间内,由班长统一将选题情况发给相应的指导老师。
附件1:
由指导教师提供的题目
选题一:
银行家算法通用演示程序
1、设计目的:
主要用于解决多种资源被多个独立执行的程序使用的安全算法。
银行家算法采用矩阵存储资源的数据,通过对系统资源预分配后检查系统状态,以避免死锁的产生。
2、设计要求:
1)资源种类与数目可在界面进行设置,在资源分配过程中可以随时增加进程及其对资源的需求
2)可读取样例数据<要求存放在外部文件中)进行资源种类、数目与进程数的初始化
3)在资源分配过程中可以随时进行系统安全状态检测
4)如果能够通过系统安全状态检测,则系统对该进程进行资源分配;当进程满足所有资源分配后能够自行释放所有资源,退出资源竞争
5)要求进行安全性检查时按指定策略顺序进行,即按每个进程当前Need数由小至大进行排序,如果Need数相同,则按序号由小至大进行排序;
6)具有一定的数据容错性
选题二:
通用处理机调度演示程序
1、设计目的:
在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个,也就是能运行的进程数大于处理机个数,为了使系统中的进程有条不紊地工作,必须选用某种调度策略,在一定的时机选择一个进程占有处理机。
要求学生设计一个模拟处理机调度算法,以巩固和加深处理机调度的概念。
2、设计要求<多道、单处理机):
1)进程调度算法包括:
时间片轮转算法、先来先服务算法、短作业优先算法、静态优先权优先调度算法、高响应比调度算法
2)每一个进程有一个PCB,其内容可以根据具体情况设定。
3)进程数、进入内存时间、要求服务时间、作业大小、优先级等均可以在界面上设定
4)可读取样例数据<要求存放在外部文件中)进行进程数、进入内存时间、时间片长度、作业大小、进程优先级的初始化
5)可以在运行中显示各进程的状态:
就绪、执行<由于不要求设置互斥资源与进程间的同步关系,故只有两种状态)
6)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列
7)有性能比较功能,可比较同一组数据在不同调度算法下的平均周转时间
8)具有一定的数据容错性
选题三:
采用时间片轮转算法的进程调度程序
1、设计目的:
在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个,且进程之间也存在着同步与互斥的关系,要求采用指定的调度策略,使系统中的进程有条不紊地工作,通过观察诸进程的运行过程,以巩固和加深处理机调度的概念。
2、设计要求<多道、单处理机):
1)每一个进程有一个PCB,其内容可以根据具体情况设定<这里需包括静态优先级)。
2)可以在界面设定的互斥资源<包括两种:
输入设备与输出设备)的数目
3)进程数、进入内存时间、要求服务时间可以在界面上进行设定
4)进程之间存在一定的同步与互斥关系,可以通过界面进行设定,其表示方法如下:
进程的服务时间由三段组成:
I2C10O5<表示进程的服务时间由2个时间片的输入,10个时间片的计算,5个时间片的输出)
进程间的同步关系用一个段表示:
W2,表示该进程先要等待P2进程执行结束后才可以运行
因此,进程间的同步与互斥关系、服务时间可以统一用四段表示为:
I2C10O5W2
5)可以在运行中显示各进程的状态:
就绪、阻塞、执行
6)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列
7)具有一定的数据容错性
选题四:
采用高响应比算法的进程调度程序
1、设计目的:
在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个,且进程之间也存在着同步与互斥的关系,要求采用指定的调度策略,使系统中的进程有条不紊地工作,通过观察诸进程的运行过程,以巩固和加深处理机调度的概念。
2、设计要求<多道、单处理机):
1)每一个进程有一个PCB,其内容可以根据具体情况设定。
2)可以在界面设定的互斥资源<包括两种:
输入设备与输出设备)的数目
3)进程数、进入内存时间、要求服务时间可以在界面上进行设定
4)进程之间存在一定的同步与互斥关系,可以通过界面进行设定,其表示方法如下:
进程的服务时间由三段组成:
I2C10O5<表示进程的服务时间由2个时间片的输入,10个时间片的计算,5个时间片的输出)
进程间的同步关系用一个段表示:
W2,表示该进程先要等待P2进程执行结束后才可以运行
因此,进程间的同步与互斥关系、服务时间可以统一用四段表示为:
I2C10O5W2
5)可以在运行中显示各进程的状态:
就绪、阻塞、执行
6)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列
7)具有一定的数据容错性
选题五:
采用短作业优先算法的进程调度程序
1、设计目的:
在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个,且进程之间也存在着同步与互斥的关系,要求采用指定的调度策略,使系统中的进程有条不紊地工作,通过观察诸进程的运行过程,以巩固和加深处理机调度的概念。
2、设计要求<多道、单处理机):
1)每一个进程有一个PCB,其内容可以根据具体情况设定。
2)可以在界面设定的互斥资源<包括两种:
输入设备与输出设备)的数目
3)进程数、进入内存时间、要求服务时间可以在界面上进行设定
4)进程之间存在一定的同步与互斥关系,可以通过界面进行设定,其表示方法如下:
进程的服务时间由三段组成:
I2C10O5<表示进程的服务时间由2个时间片的输入,10个时间片的计算,5个时间片的输出)
进程间的同步关系用一个段表示:
W2,表示该进程先要等待P2进程执行结束后才可以运行
因此,进程间的同步与互斥关系、服务时间可以统一用四段表示为:
I2C10O5W2
5)可以在运行中显示各进程的状态:
就绪、阻塞、执行
6)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列
7)具有一定的数据容错性
选题六:
采用最低松弛度优先调度的实时系统调度程序
1、设计目的:
在实时系统中,要保证在指定的时间完成指定的任务,通常会采用抢占式的调度方式。
要求采用指定的调度算法,使系统中的任务能够按时完成,通过观察中系统中的抢占点,以巩固和加深对实时系统调度算法的理解。
2、设计要求:
1)每一个周期性实时任务必须指定周期长度与执行时间
2)可以在界面安排周期性实时任务的个数与相关的指标值,又及要求仿真的时间长度
3)系统可又对设定的任务条件进行检查,如果无法满足公式的要求,则弹出相应的错误提示,并重新进入任务安排界面
4)可读取样例数据<要求存放在外部文件中)进行周期性实时任务数、周期长度、执行时间的初始化
5)采用可视化界面,数据载入后按最低松弛度算法进行调度,可以在运行中动态显示各进程的状态:
就绪、执行、完成
6)系统上下文切换时,会暂停调度,显示就绪队列中各任务的松弛度,按任意键后自动运行
7)具有一定的数据容错性
选题七:
用多进程同步方法演示“生产者-消费者”问题
1、设计目的:
通过研究Linux的进程同步机制和信号量,实现生产者消费者问题的并发控制。
2、说明:
有界缓冲区内设有26个存储单元,放入取出的产品设定为26个大写英文字母。
3、设计要求:
1)生产者与消费者均有二个以上
2)生产者和消费者进程的数目在程序界面上可调,在运行时可随时单个增加与减少生产者与消费者
3)生产者的生产速度与消费者的消费速度均可在程序界面调节,在运行中,该值调整后立即生效
4)生产者生产的产品由随机函数决定
5)多个生产者或多个消费者之间必须有共享对缓冲区进行操作的函数代码
6)每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容、当前生产者与消费者的指针位置,以及生产者和消费者线程标识符
7)采用可视化界面,可在运行过程中随时暂停,查看当前生产者、消费者以及有界缓冲区的状态
选题八:
用多进程同步方法演示“桔子-苹果”问题
1、设计目的:
通过研究Linux的进程同步机制和信号量,实现特殊的生产者与消费者问题的并发控制。
2、说明:
有两类生产者,一类负责生产桔子,一类负责生产苹果;有两类消费者,一类负责消费桔子,一类负责消费苹果;他们共享一个有20个存储单元的有界缓冲区,每个存储单元只能放入一种产品<桔子/苹果)。
3、设计要求:
1)二类生产者与二类消费者数目均为20,即20个生产者负责生产桔子,20个生产者负责生产苹果;20个消费者负责消费桔子,20个消费者负责消费苹果
2)二类生产者的生产速度与二类消费者的消费速度均可独立在程序界面调节,在运行中,该值调整后立即生效
3)多个生产者或多个消费者之间必须有共享对缓冲区进行操作的函数代码,同时需要考虑算法的效率性
4)每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容、当前生产者与消费者的指针位置,以及生产者和消费者线程标识符
5)采用可视化界面,可在运行过程中随时暂停,查看当前生产者、消费者以及有界缓冲区的状态
选题九:
模拟二级文件管理系统
1、设计目的:
通过研究Linux的文件系统结构,模拟设计一个简单的二级文件系统,第一级为主目录文件,第二级为用户文件。
2、设计要求:
1)系统运行时根据输入的用户数目创建主目录,系统设定最多只能创建10个用户,如果多于10个用户,则推迟创建用户工作,等待有用户被删除后唤醒创建
2)系统有10K的容量限制,所有用户创建的文件总的大小不应超出总容量限制
3)设定一个超级用户,可以查看整个二级文件系统结构
4)普通用户只能根据自己的用户名与密码访问自己的文件与共享的文件
5)能够实现下列命令<要求大小写不不敏感):
●Login用户登录
●Dir列文件目录
●Create创建文件
●Delete删除文件
●Open打开文件
●Close关闭文件
●Read读文件
●Write写文件
6)系统能检查键入命令的正确性,出错时应能显示出错原因
7)创建文件时需设定文件保护码的内容
8)列目录时要列出文件目录、文件名、保护码<只执行、只读、只写、共享)、文件长度、文件最后修改时间,以及系统总容量,占用容量、空闲容量等统计信息
9)不允许对打开的文件执行重复打开操作或执行删除操作
10)对于共享文件,除了文件的创建者,其他人只有查看权,不能进行写入与删除操作
11)对于文件的越权操作,要有相应的错误提示
选题十:
通用请求分页调度算法演示程序
1、设计目的:
用高级语言编写和调试一个内存分配程序,加深对内存分配算法的理解。
2、设计要求<多道):
1)演示实现下列五种请求分页存储管理方式的页面置换算法:
●先进先出的算法●最佳置换算法●近期最久未使用算法●近期最少使用算法●CLOCK置换算法
2)内存物理块数固定为15个,对多个作业采用固定分配局部置换的策略分配物理块
3)作业数量与作业大小<10-20页)可在界面进行设置
4)所有作业按RR算法进行调度,时间片长度为1秒
5)可为每个作业随机产生引用的页面串,也可以人工输入引用的页面串,页面串长度50---100,要求必须包括作业所有的页面,可作为样例数据保存
6)可读取样例数据<要求存放在外部文件中)进行作业数量、作业大小、页面串长度的初始化
7)要求对每种算法采用可视化界面,模拟内存分配和使用情况图,可在运行过程中随时暂停,查看当前内存物理块使用情况。
8)有性能比较功能,可比较同一组数据在不同页面置换算法下的命中率
选题十一:
采用近期最久未使用1、设计目的:
用高级语言编写和调试一个内存分配程序,加深对内存分配算法的理解。
2、设计要求:
1)实现请求分页存储管理方式的页面置换算法:
近期最久未使用算法2)内存物理块数固定为15个,对多个作业采用可变分配全局置换的策略分配物理块
3)作业数量与作业大小<10-20页)可在界面进行设置
4)所有作业按RR算法进行调度,时间片长度为1秒
5)可为每个作业随机产生引用的页面串,也可以人工输入引用的页面串,页面串长度50---100,要求必须包括作业所有的页面,可作为样例数据保存
6)可读取样例数据<要求存放在外部文件中)进行作业数量、作业大小、页面串长度的初始化
7)要求采用可视化界面,模拟内存分配和使用情况图,可在运行过程中随时暂停,查看当前内存物理块使用情况。
8)每次全部作业运行结束后,要求打印出访问命中率
选题十二:
采用近期最少使用1、设计目的:
用高级语言编写和调试一个内存分配程序,加深对内存分配算法的理解。
2、设计要求:
1)实现请求分页存储管理方式的页面置换算法:
近期最少使用算法2)内存物理块数固定为15个,对多个作业采用可变分配全局置换的策略分配物理块
3)作业数量与作业大小<10-20页)可在界面进行设置
4)所有作业按RR算法进行调度,时间片长度为1秒
5)可为每个作业随机产生引用的页面串,也可以人工输入引用的页面串,页面串长度50---100,要求必须包括作业所有的页面,可作为样例数据保存
6)可读取样例数据<要求存放在外部文件中)进行作业数量、作业大小、页面串长度的初始化
7)要求采用可视化界面,模拟内存分配和使用情况图,可在运行过程中随时暂停,查看当前内存物理块使用情况。
8)每次全部作业运行结束后,要求打印出访问命中率
选题十三:
采用CLOCK置换算法仿真