重要说明:①凡是上机未到者,每次扣除5分。
②上机时间内,做与本课程设计无关事情者,予以警告。
屡教不改者当次上机视为旷课。
处理办法见第①条。
③上机时间内,无正当理由离开实验室长达半小时者,当次上机视为旷课。
处理办法见第①条。
课程设计说明:1,课程设计分组进行,每组人数最多4人,选出小组长1名;2,从课程设计任务书里的题目任选一题(也可由学生自己选题,由教师审核批准,请主动联系老师);--------以上步骤最迟第1天下午完成。
每个组长负责提交本组的成员以及选题情况给学习委员,学习委员填写文件《11网络工程--操作系统课程设计分组.xls》并提交给老师(该文件由老师提供)。
3,所选题目需要完成基本功能,要求每一个组员都要明确完成一个任务。
时间充裕可自行添加扩充功能,完成基本任务的同学也可继续完成其它题目的内容,可酌情加分。
4,需撰写课程设计报告,初稿最迟倒数第2天下午完成并提交。
组长负责提交初稿的word 文档,文档命名为:组长姓名_课程设计题目.doc5,每一组都需要在最后1天进行简易的答辩,随时完成随时进行,答辩主要由组员简单介绍、演示所完成的系统,老师进行简单的提问(如针对其中一个组员提问该组员完成的任务情况)。
6,组长提交最终版课程设计报告,有源代码的也需要同时提交源代码,并同时提交系统的用户手册。
同时提交另外一个文件:组长姓名_工作量分配.txt该文件包含各个组员(包括组长)的贡献率,组员贡献率加起来需为100%,文件内容示例如下:张三:30%,主要工作为课程设计报告的撰写李四:60%,主要工作为模块a的编写王五:10%,主要工作为模块b的编写工作量分配作为评分的参考之一。
《操作系统》课程设计任务书学年学期:2013-2014学年第1学期专业班级:11网络工程指导教师:李桂森设计时间:2013.12.30-2014.01.04学时周数:1一、设计目的本课程设计是在学完《操作系统》课程之后综合利用所学知识完成一个具有一定难度的综合设计题目。
该课程设计的目的和任务是:1、培养学生正确的设计思想,理论联系实际的工作作风,严肃认真、实事求是的科学态度和勇于探索的创新精神。
2、巩固和加深《操作系统》课程中所学的理论知识和实际应用能力,培养学生综合运用所学计算机知识,分析和解决工程技术问题的能力。
3、通过课程设计训练,基本掌握分析问题,总体结构设计,用户界面的设计,功能实现等各方面的基本技能和技巧。
4、培养团体协作精神,获得初步的项目分析应用经验,为以后从事生产和科研工作打下一定的基础。
二、设计任务及要求1、开题:课程设计以小组为单位协作完成,学生自由组合小组,由教师进行选题,也可由学生自己选题,由教师审核批准。
2、需求分析:根据设计题目查阅文献资料,分析课题需求,确定总体方案,包括系统功能,系统架构,所选开发语言等。
3、概要设计:对上一步工作进行进一步细分,明确小组内各成员的分工。
4、功能调试。
5、撰写课程设计报告。
6、进行简要答辩。
可选设计题目:1、页式虚拟存储管理页面置换算法模拟程序设计要求:熟悉页面置换算法及其实现,引入计算机系统性能评价方法的概念。
页面置换算法是虚拟存储管理实现的关键,通过本次课程设计理解内存页面调度的机制,在模拟实现OPT、FIFO、LRU和NRU几种经典页面置换算法的基础上,比较各种置换算法的效率及优缺点,从而了解虚拟存储实现的过程。
注意:页面分配采用固定分配局部置换;作业的页面走向和分得的物理块数预先指定。
可以从键盘输入也可以从文件读入;置换算法的置换过程输出可以在显示器上也可以存放在文件中,但必须清晰可读,便于检验。
提示:(1)相关数据结构要模拟实现某一个置换算法,有如下一些对象需要用相关的数据结构来描述:●作业的页面走向(执行过程中对页面的访问顺序)。
可以用数组也可以用字符串。
如果用数组,则页面走向的长度受数组长度限制,如果用字符串,则需要将字符串进行解析,将字符串经过解析处理后变成一个页面的排列顺序。
考虑最佳置换算法(“向前看”)和其他置换算法(“向后看“)的特点。
●页框(作业分得的物理块)。
由于作业分得的物理块数在置换算法执行之前已经确定,可以用一些比较简单的数据结构实现。
在综合置换算法的原理,可以灵活采用相应的数据结构,尽可能使程序的时间复杂度最低。
如对于FIFO,队列最合适,对于LRU,则数组和堆栈都比较合适,采用不同的数据结构还要配合在数据结构上的相应操作才行。
(2)功能模块划分大体上可以将整个程序的模块划分成如下几个部分:1)主模块:主要是初始化、界面和模块调用。
2)页面走向输入模块。
(从键盘读入数据结构或将页面走向写入文件)3)置换算法模块。
* 判断模块。
决定换出哪一块。
每一种置换算法对应一种判断算法。
* 调整模块。
根据判断模块的结果,调整作业分得物理块集合中逻辑页面的情况。
* 置换过程输出模块(在显示器上显示或写入文件)。
该模块每发生一次置换,由置换算法模块调用一次。
*……………….除此之外,有些反复执行的操作考虑用过程或函数实现。
总而言之,整个程序应该结构清晰,界面友好,可读性好,易调试,易扩充,易维护。
2、可变分区存储管理模拟程序设计要求:设计合理的数据结构来描述存储空间:对于未分配出去的部分,可以用空闲分区队列或空闲分区链表来描述,对于已经分配出去的部分,由装入内存的作业占据,可以将作业组织成链表或数组。
实现分区存储管理的内存分配功能,要求选择至少两种适应算法(首次适应算法和循环首次适应算法至少选一,最佳适应算法和最坏适应算法至少选一)。
实现分区存储管理的内存回收算法:要求能够正确处理回收分区与空闲分区的四种邻接关系。
当碎片产生时,能够进行碎片的拼接。
提示:要模拟实现可变分区存储管理,有如下一些对象需要用相关的数据结构来描述:●内存中没有被存储管理程序分配给作业的部分,属于空闲内存,要求以分区为单位进行统一管理以合理分配。
包括对分区的描述(结构体)和对多个分区的组织(表格或链表)。
●对于内存中已经分配给作业的那部分内存,当作业完成后应该将占据的内存归还给系统,以便进行再分配。
因此必须对已分配分区进行描述和组织,以便进行内存的回收。
大体上可以将整个程序的模块划分成如下几个部分:1)主模块:主要是初始化(设置物理内存的用户区的大小,选取适应算法)和界面,界面参考如下:2)内存分配算法(实现两种适应算法)3)内存回收算法(考虑四种邻接情况,尤其是采用最佳(坏)适应算法时的分区合并)4)碎片拼接算法5)空闲分区队列显示6)作业队列显示除此之外,有些反复执行的操作考虑用过程或函数实现。
总而言之,整个程序应该结构清晰,界面友好,可读性好,易调试,易扩充,易维护。
3、银行家算法模拟程序设计要求:模拟实现银行家算法对系统资源进行分配,以防止死锁的出现。
本课题肯定不可能实现对实际操作系统的资源管理,而是通过对模拟资源数据的处理,检测银行家算法在防止死锁出现的作用。
提示:银行家算法描述:第一部分:银行家算法(扫描)1.如果Request<=Need,则转向2;否则,出错2.如果Request<=Available,则转向3,否则等待3.系统试探分配请求的资源给进程4.系统执行安全性算法第二部分:安全性算法1.设置两个向量(1).工作向量:Work=Available(表示系统可提供给进程继续运行所需要的各类资源数目)(2).Finish:表示系统是否有足够资源分配给进程(True:有;False:没有).初始化为False2.若Finish[i]=False&&Need<=Work,则执行3;否则执行4(i为资源类别)3.进程P获得第i类资源,则顺利执行直至完成,并释放资源:Work=Work+Allocation;Finish[i]=true;转2请充分理解以上银行家算法描述的核心思想。
本课题的设计思路:●需根据教材上银行家算法的描述定义一些模拟数据:系统中资源的种数(假设:n);每类资源的数量(假设:m1,m2,…,m n);当前系统中资源的使用情况等。
●设计方法:通过静态数据,人工输入来完成银行家算法的工作流程。
此方法只需给出一个当前系统资源的使用情况的模拟数据矩阵(该数据可事先保存于磁盘文件,程序执行后从该磁盘文件读入矩阵数据),然后通过用户手工输入下一个进程的资源申请要求的一维向量(控制台输入,此方式可以输入各种资源请求的可能情况,以检测当前的资源申请后是否系统处于安全状态)。
4、生产者-消费者问题的模拟实现要求:利用所学知识模拟并实现生产者消费者问题,要求生产者消费者各有两个以上,多个生产者和多个消费者之间必须共享对缓冲区进行管理的函数代码。
(1)为每个生产者/消费者产生一个线程,设计正确的同步算法。
(2)每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的当前全部内容、当前指针位置和生产者/消费者线程的自定义标识符。
5、Linux系统中基于Socket的多人聊天系统设计与实现要求:在Linux系统中实现多人聊天程序设计,分为服务端与客户端两部分。
要求服务端能同时接受多个客户端的连接,客户端可与任意其它的客户端进行聊天。
注:字符界面即可,客户端可列出当前登录系统的所有用户,然后可向任意一个用户发送消息。
三、设计时间进度安排第一天:布置课程设计题目,并作课程设计的要求讲解,同学初步查阅资料并开始分组进行;周二天至第四天:同学根据选定题目的要求,分工合作,负责选题的分析、设计、报告的书写、答辩PPT的制作等;教师负责解答学生的问题并作其他指导;周五:提交课程设计报告书,并作简要的答辩。
四、成绩考核评定项目及评分成绩分布1.选题合理、目的明确(10分)2.设计方案正确,具有可行性、创新性(20分)3.设计结果(例如:硬件成果、软件程序)(20分)4.态度认真、学习刻苦、遵守纪律(15分)5.设计报告的规范化、参考文献充分(不少于5篇)(10分)6.答辩(25分)总分(100分)备注:成绩等级:优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。