- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
操 作 系 统
课程设计任务书
适用专业: 计算机科学技术
网络工程
电 子 专 业
安徽建筑工业学院 电子与信息工程 学院
2014 年 6 月
- PAGE 57 -
前 言
对计算机科学与技术及相关专业的学生而言,操作系统是一门重要的专业基础课程。要学好操作系统的设计原理,除了听课、看书、做习题外,最好的方法就是在实践中进行,包括使用操作系统、阅读和分析已有操作系统的源代码、自己设计小型系统/模块或模拟算法等。从个人的角度而言,如果能够完成MINUX源代码的阅读与分析,这将对掌握操作系统的原理与设计方法不无益处。这里,我没有向大家推荐Linux或者FreeBSD之类的操作系统(虽然我从1997年就一直向学生推荐FreeBSD),是因为这里的阅读源代码的目标是为了掌握操作系统的原理。孟子曰:“富贵不能淫,贫贱不能移,威武不能屈,此之谓大丈夫。”我的理解,即使不能够按照孟老夫子的话去做大丈夫,如果能够做到“时髦不能跟”,也就可以做真正的自己了。对我们课程的学习,也就是这个道理吧。
操作系统实践,按深度可分为使用级、观察级、系统管理级、源码阅读级和实现级等五个层次。具体地,
使用级:是指如何使用操作系统,包括对命令(以及菜单和shell)、系统调用和系统文件的使用。
观察级:是指通过使用级的接口,从外部观察操作系统的内部工作过程和结构。
系统管理级:是指系统或设备的安装、配置和性能调整。
源码阅读级:是指对现有操作系统部分内核源代码的阅读。
实现级:是指编程模拟实现操作系统某些功能模块。
上述五个层次的实践,不同层次的实践者可以根据自己的实际情况自主安排,在本课程设计中,每次有对各个任务的层次明确区分,大家仁者见仁吧。
如果可能,给自己创造使用Unix或类Unix的实现环境。
课程设计要求实现以后,应及时写出课程设计报告,报告应包括以下内容:
设计目的和内容。
程序说明,包括程序结构、各模块的算法。
调试正确的源程序。
程序运行记录(包括对不同测试数据的运行结果)。
针对实现过程中出现的问题,写出解决办法及对运行结果的分析。
本课程设计总体时间为2周(包括资料查询、设计准备、实现过程、报告书写)。由于所有任务均涉及程序设计、数据结构与算法设计、操作系统等课程的多个知识点。
任务一:进程管理
一、目的
Windows NT内核的操作系统是多任务操作系统,对程与线程提供完整支持。本任务意图通过实践掌握进程的基本概念,理解进程控制、进程同步、经典进程的同步问题 、管程机制、进程通信、线程;初步熟悉多进程/多线程编程的特点。
二、设计内容
1)使用taskmgr.exe观察实现环境中的进程信息;
2) 编程实现哲学家就餐问题或者读写者问题。
三、组织运行要求
根据本任务的特点、要求和具体条件,宜采用“以学生自主训练为主的开放模式组织教学”。相关材料可以以书面资料(或电子版本)的形式分发给学生。学生自主练习、提问;教师针对性的辅导。
四、编程条件
- 硬件环境:Pentium 300MHz以上的微型计算机;
- 操作系统:Windows 2000或Windows XP;
- 编程环境:Visual C++ 6.0 企业版(算法模拟可以使用其它合适的C/C++编译器或编程环境)。
五、设计步骤
具体步骤如下:
首先使用taskmgr.exe程序观察系统中运行进程的基本信息;
使用taskmgr.exe程序观察系统中运行进程的详细信息;
编码实现哲学家就餐问题或者读写者问题。
六、思考题
如何编程实现获得进程的详细信息?
编码实现哲学家就餐问题时哲学家获取筷子的策略是什么?
读写者问题的实现中,什么是读者优先,什么是写者优先?
七、报告
学生在课程设计结束后必须完成课程设计报告。报告记录应该详细的描述操作过程,并提供操作步骤以及调试程序的源代码。
任务二:处理机调度
一、目的
本任务模拟在单处理机情况下的处理机调度,以期加深了解处理机调度算法;同时,本设计要求编程实现银行家算法,以期加深对避免死锁的理解。
二、设计内容
1) 使用taskmgr.exe观察实现环境中的进程调度情况;
2) 编程实现一个调度算法,推荐实现ELLF算法。要求给出对随机测试序列能够给出调度次序;
3) 编程实现银行家算法,要求在给定资源初始状态后能够动态处理进程的资源分配请求;
三、组织运行要求
根据本任务的特点、要求和具体条件,宜采用“以学生自主训练为主的开放模式组织教学”。相关材料可以以书面资料(或电子版本)的形式分发给学生。学生自主练习、提问;
四、编程条件
- 硬件环境:Pentium 300MHz以上的微型计算机;
- 操作系统:Windo
文档评论(0)