操作系统
实验指导书
适用专业:计算机科学技术
计算机应用
电子专业
安徽建筑工业学院电子与信息工程学院
2008年 3 月
前言
对计算机科学与技术及相关专业的学生而言,操作系统是一门重要的专业基础课程。要学好操作系统的设计原理,除了听课、看书、做习题外,最好的方法就是在实践中进行,包括使用操作系统、阅读和分析已有操作系统的源代码、自己设计小型系统/模块或模拟算法等。从个人的角度而言,如果能够完成MINUX源代码的阅读与分析,这将对掌握操作系统的原理与设计方法不无益处。这里,我没有向大家推荐Linux或者FreeBSD之类的操作系统(虽然我从1997年就一直向学生推荐FreeBSD),是因为这里的阅读源代码的目标是为了掌握操作系统的原理。孟子曰:“富贵不能淫,贫贱不能移,威武不能屈,此之谓大丈夫。”我的理解,即使不能够按照孟老夫子的话去做大丈夫,如果能够做到“时髦不能跟”,也就可以做真正的自己了。对我们课程的学习,也就是这个道理吧。
对操作系统的实践,教学计划安排了8个课时的实验时间,这很不够,希望大家能够对自己狠一点,创造自己进行的操作系统实践的环境与机会。
操作系统实践,按深度可分为使用级、观察级、系统管理级、源码阅读级和实现级等五个层次。具体地,
1.使用级:是指如何使用操作系统,包括对命令(以及菜单和shell)、
系统调用和系统文件的使用。
2.观察级:是指通过使用级的接口,从外部观察操作系统的内部工作
过程和结构。
3.系统管理级:是指系统或设备的安装、配置和性能调整。
4.源码阅读级:是指对现有操作系统部分内核源代码的阅读。
5.实现级:是指编程模拟实现操作系统某些功能模块。
上述五个层次的实践,不同层次的实践者可以根据自己的实际情况自主安排,在我给的实验指导中,当前不会对各实验的层次明确区分,大家仁者见仁吧。
由于条件限制,只能够提供Windows 2000 Professional/WindowsXP2作为大家实践时使用的操作系统。希望大家能够结合具体的实验要求以及实践环境提前做好试验准备。如果可能,给自己创造使用Unix或类Unix的实验环境。
上机前应充分做好以下准备工作:
1.复习和掌握与本次实验有关的教学内容。
2.根据本次实验的内容,在纸上编写好准备上机调试的程序,并初步
检查无误。
3.准备好对程序进行测试的数据。
4.对每种测试数据,给出预期的程序运行结果。
5.预习实验步骤,对实验步骤中提出的一些问题进行思考。
上机实验后,应及时写出实验报告,实验报告应包括以下内容:
1.实验目的和内容。
2.程序说明,包括程序结构、各模块的算法。
3.调试正确的源程序。
4.程序运行记录(包括对不同测试数据的运行结果)。
5.针对实验中出现的问题,写出解决办法及对运行结果的分析。
根据教学大纲与实验大纲的安排,本课程计划进行12课时上机试验。由于所有实验均涉及程序设计、数据结构与算法设计、操作系统等课程的多个知识点,相关实验均为综合实验。
针对具体的实验要求,本指导书附录有大量的源代码,供对相关算法不是很熟悉的同学参考。
本指导书适用于计算机科学技术、计算机应用、电子专业学生学习计算机操作系统课程时实验使用,也适用于上述专业软件实验课程中操作系统部分实验使用。
实验一:进程管理
实验学时:2
实验类型:(验证、综合)
实验要求:(必修)
一、实验目的
Windows NT内核的操作系统是多任务操作系统,对程与线程提供完整支持。本次实验意图通过实践掌握进程的基本概念,理解进程控制、进程同步、经典进程的同步问题、管程机制、进程通信、线程;初步熟悉多进程/多线程编程的特点。
二、实验内容
本次实验的实验内容包括:
1)使用taskmgr.exe观察实验环境中的进程信息;
2) 编程实现哲学家就餐问题或者读写者问题。
三、实验组织运行要求
根据本实验的特点、要求和具体条件,宜采用“以学生自主训练为主的开放模式组织教学”。相关材料可以以书面资料(或电子版本)的形式分发给学生。学生自主练习、提问;教师针对性的辅导。
四、实验条件
- 硬件环境:Pentium 300MHz以上的微型计算机;
- 操作系统:Windows 2000或Windows XP;
- 编程环境:Visual C++ 6.0 企业版(算法模拟可以使用其它合适的C/C++
编译器或编程环境)。
五、实验步骤
具体实验步骤如下:
1.首先使用taskmgr.exe程序观察系统中运行进程的基本信息;
2.使用taskmgr.exe程序观察系统中运行进程的详细信息;
3.编码实现哲学家就餐问题或者读写者问题。
六、思考题
1.如何编程实现获得进程的详细信息?
2.编码实现哲学家就餐问题时哲学家获取筷子的策略是什么?
3.读写者问题的实现中,什么是读者优先,什么是写者优先?
七、实验报告
学生在实验结束后必须完成实验报告。实验报告必须包括实验预习、实验记录、思考题三部分内容。实验记录应该忠实的描述操作过程,并提供操作步骤以及调试程序的源代码。对思考题应该能够初步认识。
具体实验报告的书写按照实验报告纸的要求逐项完成。
八、其它说明
要求学生在实验过程中遵循如下的要求:
1.准时到达实验室,严格签名方式的考勤制度。不允许代签;
2.遵循实验室的各种管理规定;
3.服从教师和实验员的管理;
实验二:处理机调度
实验学时:2
实验类型:(验证、综合)
实验要求:(必修)
一、实验目的
本实验模拟在单处理机情况下的处理机调度,以期加深了解处理机调度算法;同时,本次实验要求编程实现银行家算法,以期加深对避免死锁的理解。
二、实验内容
1) 使用taskmgr.exe观察实验环境中的进程调度情况;
2) 编程实现一个调度算法,推荐实现ELLF算法。要求给出对随机测试序列
能够给出调度次序;
3) 编程实现银行家算法,要求在给定资源初始状态后能够动态处理进程的资
源分配请求;
三、实验组织运行要求
根据本实验的特点、要求和具体条件,宜采用“以学生自主训练为主的开放模式组织教学”。相关材料可以以书面资料(或电子版本)的形式分发给学生。学生自主练习、提问;教师针对性的辅导。
四、实验条件
- 硬件环境:Pentium 300MHz以上的微型计算机;
- 操作系统:Windows 2000或Windows XP;
- 编程环境:Visual C++ 6.0 企业版(算法模拟可以使用其它合适的C/C++
编译器或编程环境)。
五、思考题
1.ELLF算法与LLF算法的区别在什么地方?
2.安全性检查算法的逻辑基础是什么?
六、实验报告
学生在实验结束后必须完成实验报告。实验报告必须包括实验预习、实验记录、思考题三部分内容。实验记录应该忠实的描述操作过程,并提供操作步骤以及调试程序的源代码。对思考题应该能够初步认识。
具体实验报告的书写按照实验报告纸的要求逐项完成。
七、其它说明
要求学生在实验过程中遵循如下的要求:
1.准时到达实验室,严格签名方式的考勤制度。不允许代签;
2.遵循实验室的各种管理规定;
3.服从教师和实验员的管理;
实验三:存储器管理
实验学时:2
实验类型:(验证、综合)
实验要求:(必修)
一、实验目的
本次实验旨在通过使用操作系统内存分配信息的动态观察以及存储器管理算法的实现,加深对内存分配原理的理解(重点加深对请求式分页存储管理方式的理解)。同时通过相关算法的实现,熟悉页面置换算法及其性能。
二、实验内容
1) 使用taskmgr.exe观察实验环境中的进程生命周期内系统内存分配变化情
况;
2) 编程实现请求分页管理方式时的地址变换过程;
3) 编程实现OPT或者FIFO算法
4) 编程实现LRU算法;
三、实验组织运行要求
根据本实验的特点、要求和具体条件,宜采用“以学生自主训练为主的开放模式组织教学”。相关材料可以以书面资料(或电子版本)的形式分发给学生。学生自主练习、提问;教师针对性的辅导。
四、实验条件
- 硬件环境:Pentium 300MHz以上的微型计算机;
- 操作系统:Windows 2000或Windows XP;
- 编程环境:Visual C++ 6.0 企业版(算法模拟可以使用其它合适的C/C++
编译器或编程环境)。
五、思考题
1.OPT算法是否具备实用性??
2.OPT算法与LRU算法的区别是什么?
3.虚拟存储器的主要特征有哪些?
六、实验报告
学生在实验结束后必须完成实验报告。实验报告必须包括实验预习、实验记录、思考题三部分内容。实验记录应该忠实的描述操作过程,并提供操作步骤以及调试程序的源代码。对思考题应该能够初步认识。
具体实验报告的书写按照实验报告纸的要求逐项完成。
七、其它说明
要求学生在实验过程中遵循如下的要求:
1.准时到达实验室,严格签名方式的考勤制度。不允许代签;
2.遵循实验室的各种管理规定;
3.服从教师和实验员的管理;