《操作系统》实验指导手册.docx
《《操作系统》实验指导手册.docx》由会员分享,可在线阅读,更多相关《《操作系统》实验指导手册.docx(23页珍藏版)》请在冰点文库上搜索。
《操作系统》实验指导手册
操作系统
实验报告
班级:
_______________
学号:
_______________
姓名:
_______________
电子与信息工程学院计算机科学系
第一部分上机实验的指导思想和要求
一、上机实验的目的
《操作系统》是计算机及相关专业的一门重要专业课,其讲授内容及研究对象即操作系统则为整个计算机系统的核心组成部分和关键所在。
课程要求理解操作系统的基本概念、原理,掌握操作系统设计方法与实现技术,能够运用操作系统原理、方法与技术分析问题和解决问题。
同时,掌握操作系统原理、熟悉操作系统的使用是各层次计算机软硬件开发人员必不可少的基本技能。
由于操作系统在整个计算机系统中的核心地位及其特性,学生对操作系统的认识往往只局限于简单的操作系统配置和使用,这与本课程的教学和考查目标有很大差距。
为了让学生深刻理解操作系统的内部机制和系统结构,清楚操作系统的资源管理的主要过程,进而理解和掌握操作系统的设计方法和实现技术,就必须进行上级实验。
具体的说,上机实验的目的包括:
(1)了解和分析操作系统的系统结构。
通过分析操作系统,特别是Linux系统的内核源代码,了解操作系统的内部机制和体系结构,将教材中的抽象的算法、原理转换为具体的程序和代码。
(2)理解和掌握操作系统的基本概念、原理和算法。
通过编写程序实现操作系统基本算法,深刻理解这些算法的前因后果,理解设计这些算法的目的,理解算法的运转过程。
(3)理解操作系统中资源管理的过程。
通过编写程序及分析系统源代码,理解系统的运行过程,尤其是资源分配和管理过程。
(4)能够运用所学知识分析问题和解决问题。
通过上机实验加深对操作系统的体系结构和运行过程的全面了解和理解,进而掌握运用操作系统的基本概念、理论和方法分析和解决具体问题的能力。
二、上机实验前的准备工作
在上机实验前应事先做好准备工作,以提高上机实验的效率,准备工作至少应包括:
(1)了解所用的实验环境;
(2)复习和掌握与本实验有关的教学内容;
(3)准备好上机所需的程序。
由于计算机实验室给每个学生安排的时间是有限的,要珍惜时间,充分利用。
应当在上机前按指定的题目编写好程序。
手编程序应书写整齐,并经人工检查无误后才能上机,以提高上机效率。
初学者切忌不编程序或抄别人程序去上机,应从一开始就养成严谨的科学作风;
(4)对运行中可能出现的问题事先作出估计,对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意;
(5)准备好调试和运行时所需的数据。
三、实验报告
实验后,应整理出实验报告,实验报告应包括以下内容:
(1)题目;
(2)程序清单(计算机打印出的程序清单);
(3)运行结果(必须是上面程序清单所对应打印输出的结果);
(4)对运行情况所作的分析以及本次调试程序所取得的经验。
如果程序末能通过,应分析其原因。
第二部分实验环境介绍
实验环境可根据实际情况选择Windows或者Linux环境,开发语言可根据学生习惯和能力选择C/C++或者Java。
一、Windows实验环境
1.Windows环境
建议采用WindowsXpSp2及以上系统。
2.C/C++环境
在Windows下,采用以TurboC2.0或VisualC++6.0为集成开发工具的C/C++实验环境。
3.Java环境
在Windows下,采用以JDK6.0和Eclipse3.x为开发工具的Java实验环境。
实验环境的搭建及配置详见附录A。
二、Linux实验环境
1.Linux环境
建议采用在VMware虚拟机下安装Ubuntu系统作为Linux实验环境。
安装及配置详见附录B。
2.C环境
在Linux下,采用以Vi+GCC+GDB为开发环境的C语言实验环境。
其中Vi作为编辑器,GCC作为编译器,GDB作为调试器。
3.Java环境
在Linux下,采用以JDK6.0和Eclipse3.x为开发工具的Java实验环境。
实验环境的搭建及配置详见附录A。
第三部分实验内容与安排
实验一进程同步
1.实验目的
(1)了解操作系统进程同步的基本概念和准则。
(2)理解信号量机制及P、V操作含义。
(3)了解经典进程同步问题,掌握信号量方法解决进程同步问题的方法。
2.实验内容和步骤
(1)在生产者-消费者问题、读者-写者问题和哲学家进餐问题中任选一个,用C/C++或Java语言描述该问题。
(2)用C/C++或Java语言描述记录型信号量及相应的P、V操作。
(3)利用以上结果,写出用记录型信号量解决进程同步问题的程序。
(4)输入一个进程到达序列,验证(3)中程序的正确性。
3.预习内容
《计算机操作系统》(第三版)第二章。
实验二进程调度
1.实验目的
(1)理解操作系统中进程调度的基本概念和调度过程。
(2)理解并掌握进程调度算法。
(3)各进程调度算法处理不同类型进程序列的性能分析。
2.实验内容和步骤
(1)用C/C++或Java语言定义进程调度中的基本数据结构,如PCB(至少包含PID进程编号、进程名称、进程到达时间、进程服务时间、优先级、已服务时间等),就绪队列。
(2)用C/C++或Java语言实现常用调度算法,如先来先服务调度算法、短作业优先调度算法、优先级调度算法(抢占式)、时间片轮转调度算法,可选择实现高响应比优先调度算法和多级反馈队列调度算法。
(3)根据下表中的进程情况,用
(2)中实现的各调度算法(时间片轮转调度算法中的时间片可分别选用1、2、3和4)进行调度实验,输出进程调度序列及各进程的开始时间、完成时间、周转时间和带权周转时间,计算各算法的平均周转时间和平均带权周转时间,分析各算法对不同类型进程的性能影响。
进程名
A
B
C
D
E
到达时间
0
1
2
3
4
服务时间
4
3
5
2
4
优先级
2
3
1
4
0
(优先级的规定:
数字0表示最高优先级,数值越大,其优先级越低)
3.预习内容
《计算机操作系统》(第三版)第三章。
实验三死锁及银行家算法
1.实验目的
(1)理解操作系统中产生死锁的原因及死锁状态。
(2)掌握银行家算法。
(3)能够运用银行家算法分析是否会发生死锁以及处理资源分配请求。
2.实验内容和步骤
(1)用C/C++或Java语言定义银行家算法中的基本数据结构,包括资源向量Available,最大需求矩阵Max、分配矩阵Allocation和需求矩阵Need,资源请求向量Request,工作向量Word,完成向量Finish。
(2)用C/C++或Java语言实现银行家算法和安全性检查算法。
(3)根据以下条件,用
(2)中实现的算法进行实验,说明是否应该满足进程的资源请求。
进程
Max
Allocation
A
B
C
A
B
C
P0
7
5
3
0
1
0
P1
3
2
2
2
0
0
P2
9
0
2
3
0
2
P3
2
2
2
2
1
1
P4
4
3
3
0
0
2
进程以此发出以下资源请求:
P1:
Request1(1,0,2)
P4:
Request4(3,3,0)
P0:
Request0(0,2,0)
是否能够满足,程序应能输出每步的执行过程及最终结果。
3.预习内容
《计算机操作系统》(第三版)第三章。
实验四存储器管理
1.实验目的
(1)了解存储器管理的基本概念和基本方法。
(2)理解页式、段式存储管理方式。
(3)理解并掌握页表、段表结构及相应的地址变换机制。
2.实验内容
(1)用C/C++或Java语言定义页式或段式存储管理的基本数据结构,包括以数组形式表示的存储器空间,页表或段表,页式或段式的地址结构(如下所示)。
页式地址结构:
页号
页内地址
段式地址结构:
段号
段内地址
(2)用C/C++或Java语言实现页式或段式存储分配和回收算法,以及相应的地址变换算法。
(3)利用
(1)和
(2)中的结果,演示存储管理过程。
3.预习内容
《计算机操作系统》(第三版)第四章。
附录AVMware虚拟机下安装Ubuntu系统
1安装VMwareWorkstation
(1)下载安装文件
在下载VMwareWorkstation,安装过程很简单,默认配置一路下一步直至完成。
安装过程需要填入注册码,在官网注册可得到30天免费试用的注册码。
(2)安装VMware
点击安装文件,全部默认选项,直至安装完成。
2启动VMware,创建新的虚拟机
(1)双击图标启动VMwareWorkstation。
(2)在Home标签中选择NewVirtualMachine新建虚拟机。
(3)在创建虚拟机向导中选择Typical。
(4)选择从磁盘镜像安装,点击Browse选择.iso文件。
(5)填写虚拟机名字,和虚拟机文件的位置。
(6)虚拟机文件的大小,默认8G,应该够用了。
(7)完成虚拟机设置
检查创建信息,其中NetworkAdapter项默认选择的是NAT,表示使用网络地址翻译,这时只要宿主计算机已联网,则虚拟机就可以上网(虚拟机开启DHCP服务)。
3启动虚拟机安装ubuntu
(1)点击绿色箭头启动虚拟机
启动虚拟机后就可以看到ubuntu启动界面,在虚拟机窗口鼠标左键点击,即可进入虚拟机界面进行操作,使用ctrl+alt组合键可释放鼠标返回原系统。
(1)在虚拟机中启动Ubuntu,点击安装图标,安装系统。
(2)选择语言。
(3)选择时区。
(4)选择键盘布局。
(5)分区,由于是用磁盘上的文件模拟了虚拟机的磁盘,所以直接选择向导-使用整个磁盘,无需担心。
(6)填写登录名和密码。
(7)确认安装信息,开始安装。
剩下的就是耐心等待,安装中可断开网络,安装程序默认将联网下载语言包,但使用官方更新源速度较慢,建议安装好系统后再使用速度较快的源下载安装。
4安装VMwareTools
安装完成后再次启动虚拟机,将会在虚拟机窗口中看到Ubuntu的启动过程,完成后出现Ubuntu桌面。
桌面上出现了一个名为VMwareTools的光盘图标,并且被自动打开。
这个工具将帮助我们完成虚拟机分辨率、文件共享、联网等配置,它必须在以及在虚拟机中安装了操作系统之后才能安装。
(1)在Ubuntu中安装VMwareTools。
双击图标,打开目录。
点击Ubuntu桌面左上角的Applications-附件-终端。
在终端界面中依次运行如下命令:
$tarzxf/media/cdrom0/VMwareTools-7.8.4-126130.tar.gz(解压缩.tar.gz文件,文件路径和文件名可能不同在前面自动打开的目录中可以看到)
$cdvmware-tools-distrib(切换到解压后的目录)
$sudo./vmware-install.pl(sudo表示要以根用户权限执行后面的安装命令,回车后提示输入用户密码)
经过一番确认回车后,直到最后出现“Enjoy——theVMwareteam”的字样后,VMwareTools的安装就完成了。
在这里选择分辨率。
安装完成。
(2)共享文件的设置
在虚拟机VM菜单中选择settings,打开设置窗口的Options选项卡,选择SharedForders。
点击Add按钮后在添加共享目录向导的HostPath中选择你要共享的Windows中的目录。
完成设置后,在Ubuntu系统的/mnt下会出现hgfs目录,刚才设置的共享目录就在其中。
附录BJava开发环境安装与配置
1Windows下安装JDK
(1)下载JDK安装文件。
(2)点击安装文件,按照默认方式同意一切协议,一直“下一步”,在选择安装目录时,填写D:
/Java作为安装目录,然后按照默认方式一直“下一步”。
等待安装成功提示“完成”,点击完成,安装完成。
整个过程大约5-10分。
(3)配置环境变量
桌面右击“我的电脑”,选择“属性”,出现如下对话框
选择“高级”,出现
选择“环境变量”,出现
在“系统变量”窗口中选择“新建”,出现
在变量名中填写:
JAVA_HOME;变量值:
D:
\Java\jdk1.5.0_12(其中D:
\Java是JDK的安装目录),填写完成点击确定。
继续选择“新建”,在变量名中填写:
CLASSPATH;变量值:
.;%JAVA_HOME%\bin;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(其中.表示当前目录,必须有)。
完成后点击确定。
继续选择“新建”,在变量名中填写:
Path;变量值:
.;%JAVA_HOME%\bin;%JAVA_HOME%;(其中“.”表示当前目录,必须有)。
完成后点击确定。
最后完成点击确定。
(4)测试
在开始-运行,输入“cmd”
出现如下dos窗口
输入javac–version,出现java版本信息,例如
说明安装成功。
2Linux下安装JDK
以Ubuntu系统为例,在命令行下输入:
$sudoapt-getinstallsun-java6-jresun-java6-sdk
在联网情况下,系统将自动下载安装JDK。
3安装Eclipse
(1)下载与安装。
Eclipse是开源产品,在www.eclipse.org下载Windows或Linux平台相应的压缩格式的安装文件,解压后即可直接使用。
(2)在Eclipse中配置JRE
打开window-Perferences菜单
在Perferences对话框中,选择Java-InstalledJREs,设置使用的JRE。
在右侧点击Add按钮,在AddJRE对话框中点击Browse按钮选择JRE所在目录,其余项目由Eclipse自动完成,点击OK,回到Perference对话框再次点击OK,完成配置。