ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:111.19KB ,
资源ID:9969816      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9969816.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统实验指导书4.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统实验指导书4.docx

1、操作系统实验指导书4计算机操作系统实验指导书第四版作者:田卫东、刘晓平、李琳、孙晓第一章 实验预备第一节 概述是计算机科学与技术专业主要专业基础课程之一,以操作系统的基本概念,原理和重要算法为主要讲述内容。由于教材侧重于从理论的角度来介绍现代操作系统的核心技术内容,长篇论述较多,因此课程内容深,难度大。学生普遍反映本课程难学难懂,甚至有的学生认为学好本课的关键就是死记硬背,从而走向歧路。由此可见,为课程设计一套完善的实验,将课程中的重点、难点内容通过实验直观地呈现在学生面前,达到操作系统理论和实际相结合,抽象原理和具体运用相结合,最终起到加快学生理解和掌握课程内容的目的。正是在这种背景下,作者

2、结合自己几年从事课程教学的经验,精心撰写了这本操作系统实验指导书,并编写部分程序作为实验工具。本实验指导书内容分实验预备、实验安排两部分。实验预备介绍进入实验之前的预备知识和有关实验的总体概况,实验安排是本指导书主体部分,具体规定各实验的详细内容和要求。目前本实验指导书安排实验6个,涵盖了操作系统的主要内容,如下所示:实验一 DOS/Win2000/WinXP操作系统实验二 进程调度算法实验三 银行家算法实验四 动态分区管理模拟实验五 页面置换算法实验六 UNIX磁盘空间管理方法:成组链接法第二节 实验环境一、操作系统环境本课程实验的对象是操作系统,实验前必需准备好相应的操作系统软件。由于操作

3、系统软件的特殊性,无法象其它软件一样随时卸载和重装,因此从操作系统的应用范围、性能、价格和可获得性等因素出发,本指导书选择使用广泛的商业软件MS-DOS和Win2000/WinXP作为实验操作系统,其中MS-DOS为单用户单任务操作系统,而Win2000/WinXP为单用户多任务操作系统。有条件的读者可以选用UNIX/LINUX/XENIX或其它主机系统作为实验环境。二、编程环境本书实验所用编程语言为C/C+语言。如果操作系统平台为Win2000/ WinXP,请使用Microsoft Visual C+ 5.0,如为DOS,则请使用Borland C/C+ 3.1或Turbo C2.0. 对

4、于没有学过C/C+语言的同志,可选择Borland Turbo Pascal 4.0作为编程语言,选作可用pascal进行编程的实验。下面仅介绍Microsoft Visual C+ 5.0和Borland C/C+ 3.1环境的使用方法。(一) Borland C/C+ 3.1Borland C/C+是美国Borland公司推出的系列编程语言之一,最初流行的版本为TurboC 1.0/1.5/2.0,后来引入C+,改名为Turbo C/C+ 1.0/2.0,Borland C/C+ 3.0是完全基于MS-DOS环境的最后一个C/C+编程环境,具有强大的集程序编辑、编译、链接、调试、运行为一体

5、的集成环境,因此使用非常方便。1. 启动Borland C/C+ 3.1单机环境下:C:CD BORLANDC C:BORLANDC 注意如果Borland C/C+ 3.1安装的目录不是C:BORLANDC,应该使用相应的目录。联网环境下:需要先在NetWare网络上注册工作站,之后运行系统批处理程序:F:LOGINTC30 (或TC31)Borland C/C+ 3.1集成环境如图所示。2. Borland C/C+ 3.1的集成环境Borland C/C+ 3.1集成环境包括主菜单,编辑窗口和热键区三部分。主菜单位于屏幕的最上方,列出了集成环境的所有命令,命令分组列出,包括File, E

6、dit, Search, Run, Compile, Debug, Project, Options, Window, Help等。编辑窗口可以同时打开多个,每个窗口用于对一个源程序文件进行编辑,编辑窗口也可用来显示与当前程序有关的信息。热键区列出了集成环境提供的热键,使用热键主要是为了省去查找菜单的麻烦,加快操作速度,每个热键所代表的功能都可以从菜单上找到。常见的热键包括F1帮助,F2存盘,F3打开,Alt-F9编译等。(1) 常用编辑功能介绍光标移动:使用光标键、一次移动一个字符位置;使用键Home将光标定位到本行行首,End键将光标定位到本行行末;使用键PageUp向上翻一页,PageD

7、own向下翻一页;插入: 将光标定位到要插入字符的位置,保证当前编辑状态为插入态(使用Insert键在插入态和修改态之间切换),键入字符,字符就依次插入到光标所在位置,光标之后的字符将依次向后移动。修改: 将光标定位到要插入字符的位置,保证当前编辑状态为修改态(使用Insert键在插入态和修改态之间切换),键入字符,光标之后的字符就依次被新键入的字符所修改。删除:删除光标之后的字符请按键Delete或Del;删除光标之前的字符请按键Backspace;删除光标所在行请按热键Ctrl-Y;块定义块是一段连续的字符串文本,Borland C/C+编辑器可以块为单位来进行文本的拷贝、移动和删除操作。

8、一个块的定义包括块首和块尾的指定。将光标移动到块首位置,按下Ctrl-K-B,定义块首;将光标移动到块尾位置,按下Ctrl-K-K,定义块尾;块拷贝定位光标到要放置块的地方,按下Ctrl-K-C,块的内容将被复制到此处。块移动定位光标到要放置块的地方,按下Ctrl-K-V,块的内容将被复制到此处,同时原来的块将被删除。块删除按下Ctrl-K-Y,删除块。查找字符串按下Ctrl-Q-F,在弹出的Find Text窗口中输入要查找的字符串,并设置查找选项,按下OK按钮,编辑器就会定位光标到该字符串首次出现的位置。按下Ctrl-L,编辑器定位光标到该字符串下一个出现的位置。替换字符串按下Ctrl-Q

9、-A,在弹出的Replace Text窗口中输入要被替换的字符串和替换后的字符串,并设置替换选项,按下OK按钮,编辑器就会开始替换字符串。(2) 项目(Project)管理Borland C/C+ 3.1与其早期版本不一样的地方是全面引入了程序开发的项目思想。Borland C/C+ 3.1将一套软件的开发称为一个项目,项目包括了一套软件开发所需的所有源程序、库文件和相关的编译、链接选项。每个项目由一个项目文件来记录所有这些信息,因此使用Borland C/C+ 3.1集成环境开发程序,首先需要建立一个新项目。软件开发项目的引入使得对软件开发的管理变得较为容易,便于组织大型软件项目的开发。3.

10、 Borland C/C+ 3.1使用实例下面示出一个简单程序的开发过程。(1) 启动Borland C/C+ 3.1: F:LOGINTC30(2) 建立新项目 选择菜单:Project-Open Project 在弹出的对话框中输入项目文件名称Project1(3) 建立源程序文件选择菜单:File-New在编辑窗口中输入下述内容:#include main() printf( Hello,world. );将此文件存盘,名称为C:First.CPP(4) 将刚建立的源程序加入到项目Project1激活项目窗口,按键Insert,在弹出的Add To Project List窗口中,输入文

11、件C:First.CPP,按OK按钮结束。(5) 编译链接 按键F9;(6) 运行 按键Ctrl-F9;(7) 调试 如果程序运行出错,可以使用Borland C/C+强大的调试功能进行调试。方法如下:a. 设置断点 移动光标到怀疑出错的程序行,按Ctrl-F8设置断点;b. 执行程序 按下Ctrl-F9执行程序,程序执行到设置了断点的语句处会停下来;c. 查看变量值 按下Ctrl-F7,输入变量名,将该变量放入观察窗口,检验其值;d. 程序继续执行 按下Ctrl-F9继续执行程序;e. 反复执行ad,直至程序运行正常为止。4. 退出Borland C/C+ 3.1选择菜单File-Quit或

12、用热键Alt-X退出集成环境。(二) Microsoft C/C+ 5.0/6.0Microsoft Visual C/C+可以开发不同类型的程序,读者应根据自己的实际情况选择应用程序类型。熟悉Windows编程的可选MFC AppWizard (exe),不熟悉的请选用Win32 Console Application。Microsoft Visual C/C+的使用较复杂,详细的使用方法请参见有关书籍和联机帮助。下面仅简单介绍使用一下利用Microsoft Visual C/C+5.0/6.0开发Win32 Console Application应用程序的过程。1. 启动Microsoft

13、 Visual C/C+ 5.0/6.0双击图标:Microsoft Visual C/C+ 5.0/6.0或 选择菜单:Microsoft Visual C/C+ 5.0/6.02. 建立新项目Exp1选择菜单:File-New弹出对话框见图:选择页面标签:Project。选择应用程序类型:Win32 Console Application选择项目位置:C:TEMP输入应用程序名称:Exp1点击OK按钮,VC系统自动产生一个新项目Exp1;3. 建立源程序maic.cpp:选择菜单:File-New弹出对话框见上图。选择页面标签:Files。选择文件类型:C/C+ Source File选择

14、项目位置:C:TEMP输入文件名:main注意选择Add To Project标签,在其前面添加“”符号。点击OK按钮,VC系统自动产生一个新文件main.cpp,并将其加入项目Exp1中;4. 编辑源程序在窗口main.cpp中,键入如下程序代码:#include iostream.hmain() int i, j ; cout i ; cout j ; cout 输入结果为:; cout i , Save All存盘。5. 编译、链接选择菜单Build-Rebuild All强迫编译链接本项目所有的源程序。6. 运行按Ctrl-F5或选择相应菜单运行应用程序。7. 调试程序执行如果出现错误

15、,可以使用VC进行调试,方法如下。a. 设置程序断点 移动光标到需要查看中间结果的语句,单击鼠标右键,并从弹出的菜单上选择Insert/Remove Breakpoint,VC将在该行前加符号。b. 进入调试状态 按F5执行程序,程序将在设置了断点的语句前停下来。c. 查看变量的值 移动鼠标到要查看的变量上方,略停一会,该变量的值会自动显示出来。d. 继续执行程序 按F10/F11/F5继续执行程序。第二章 实验安排实验一 DOS/Win2000/WinXP操作系统一、实验目的DOS和Windows 2000/XP是目前使用广泛的桌面操作系统,本实验的目的就是让读者从操作系统理论的观点来重新认

16、识它们,从而加深对教材上有关内容的理解。二、实验原理(一 ) MS-DOS简介MS-DOS是Microsoft公司80年代初推出的单用户单任务操作系统,由于性能和移植性较好,因此应用范围非常广。MS-DOS是采用字符界面的操作系统,人机接口为命令行界面。没有进程的并发执行能力,但允许多个进程同时驻留在内存中,也允许进程创建自己的子进程,父子进程之间采用串形方式执行。MS-DOS的 内存管理较简单,类似于分区分配管理,但没有虚拟存储器能力,应用程序的长度受640K内存的限制。MS-DOS的文件系统使用FAT系统,仅有简单的文件保护功能。实际上从现代操作系统理论的来看,MS-DOS不能算是一个现代

17、化的操作系统,但正因为他简单,所以也便于我们在其上进行一些其它操作系统所不允许的操作,如直接操作计算机硬件等。目前,单独使用MS-DOS的计算机已经很少,读者可以使用Win2000/XP的MS-DOS盒应用程序来进入MS-DOS模拟环境。(二) Win2000/WinXP简介Microsoft Windows 2000/XP是Microsoft公司90年代中后期推出的单用户多任务操作系统,由于具有良好的用户界面,强大的连网和多媒体功能,因而成为当前最流行的桌面操作系统。Win2000/XP的用户界面为GUI,即图形用户界面,使用图形图象作为计算机和人之间的信息交流手段。用户无需记忆大量的命令及

18、格式,使用较方便。Win2000/WinXP具有相当完善的多进程并发执行能力,而且在内核级直接支持线程,可实现线程间的并发执行。Win2000/WinXP的线程消耗资源较少,通过增加线程的并发数目,可以有效地增强计算机的处理能力。Win2000/WinXP的内存管理功能较复杂,实现了教材上介绍的页式和段式存储管理功能,具有强大的虚拟存储能力。应用程序不再有640K的大小限制,即使在小内存机器上也可运行大型的应用程序。Win2000/WinXP的文件系统仍然使用FAT系统。新型FAT 32文件系统使用4个字节来标志一个磁盘簇,磁盘簇的总数可达232(4G)个。目前硬盘的容量均在2000G以下,因

19、此可以一个簇代表一个磁盘扇区,大大减少磁盘存储空间的分配粒度,提高磁盘的利用率。新型FAT文件系统还支持长文件名,可以给文件起一个更具描述性的名称,方便使用。(三) 进程查看程序:PPview.exe进程查看程序能列出当前Windows环境下正在执行的进程和线程信息,包括进程和线程的标志符、名称、文件名、执行时间、优先级等信息。其用户界面参见下图:(四) 多进程并发演示程序:MultiProc.exe多进程并发演示程序向我们展示了Windows环境下的多线程特征。该应用程序提供三种线程,一种线程在窗口中画直线,一种画填充的矩形,还有一种画填充的圆形。每一种线程可以以任意数目同时运行。有兴趣的读

20、者可以同时执行上千个线程,以检测一下自己计算机性能的极限。下图是该程序某时刻的运行状态。(五) 进程/线程优先级和互斥演示程序:PPriority.exe本程序用于演示Windows环境下进程/线程的互斥和优先级特征。程序内部提供两个线程,两个线程共享变量count;一个线程用于计算数,总是执行count+;另一个线程用于显示该数,总是将count变量转换为字符串并添加到结果列表框中;下图是该程序在某时刻的运行状态。三、实验内容(一) MS-DOS的命令接口熟悉md,cd,rd,copy,move,del,deltree,type等常见DOS命令的使用a. 在当前目录下建立子目录MYTEMP和

21、MYTEMP2,将当前目录设定为MYTEMP;b. 在当前目录下创建新文件B.BAT,其内容为:清除屏幕内容,显示当前DOS版本号;c. 使用type命令显示B.BAT的内容,检查正确后,执行它;d. 拷贝B.BAT到路径MYTEMP2中;d. 删除MYTEMP2中的文件B.BAT,删除目录MYTEMP2e. 使用deltree命令删除MYTEMP(二) MS-DOS的进程管理1. 运行编辑程序EDIT,可以同时再运行其它命令(如DIR)吗?2. 执行如下管道和换向命令:a. C:dir dir.lstb. C:type dir.lst | morec. C:dir | FIND d. C:d

22、ir *.* | SORT /+14e. C:dir | SORT SORT.DIR观察执行结果3. 将当前目录换为系统目录,比如说F:SYSTEM,再重新执行2;这次执行的结果和上次相同吗?想想为什么?(三) Win2000/XP的用户接口启动Windows资源管理器,完成(一)中实验,体会两者有何区别。(四) Win2000/XP的进程管理1. 启动PPview.exe程序,记录当前系统都有哪些进程,哪些进程是多线程程序。2. 启动MultiProc.exe程序,任意几个启动画线、圆和矩形的线程,观察线程的并发执行。此时PPview.exe的显示有和改变?2. 启动PPriority.ex

23、e程序,注意观察:a. 当不选取互斥选项时,列表框中的数字有何特征?b. 当选取互斥选项后,列表框中的数字有何特征?c. 提高计算线程的优先级,列表框中的数字有何特征?d. 提高显示线程的优先级,列表框中的数字有何特征?e. 再运行PPriority.exe程序的一份拷贝,即创建PPriority.exe的第二个进程,调整这两个进程的优先级,两进程执行有何特点?(五) 回答问题通过以上实验内容,回答下面问题:1. MS-DOS属于什么类型的操作系统?2. MS-DOS的用户界面属于教材上介绍的哪一种?其进程管理有什么特点?3. 解释实验(二)3结果出现的原因。4. Win2000/XP属于何种

24、类型的操作系统?5. Win2000/XP的用户界面属于教材上的哪一种?具有什么特点?6. Win2000/XP的进程/线程管理具有什么特点?进程/线程具有几种优先级?7. 你的计算机在线程数目达到多少时,计算机就很慢了?实验二 进程调度算法 一、实验目的调度的实质是操作系统按照某种特定的分配策略来分配资源,在操作系统中调度分三级,高级调度、中级调度和低级调度,其中执行最频繁的是低级调度,也就是进程调度,目的是分配CPU。由于进程调度程序执行的频率很高,因此调度算法的好坏将直接影响到操作系统的性能。本实验的目的是自己编程实现教材上介绍的几种常见进程调度算法,通过对几组进程执行序列分别使用不同的

25、调度算法,计算出进程的平均周转时间和平均带权周转时间,比较各种算法的性能优劣。二、实验原理实际的操作系统在实现进程调度时常用的CPU分配策略又分非抢占式和抢占式两种方式。使用非抢占式分配方式时,一旦把处理机分配给某进程后,便让该进程一直执行,直至该进程完成或发生某事件而阻塞时,才再把处理机分配给其它进程,不允许进程强占已经分配出去的处理机。采用抢占分配方式时,允许调度程序根据某种原则,如时间片原则,优先权原则等,去停止某个正在执行的进程,将已经分配给该进程的处理机重新分配给其它的进程。本实验算法除特殊说明的之外,都采用非抢占式分配。(一) 进程调度算法常见的进程调度算法分先来先服务调度算法,短

26、进程优先算法,时间片轮转算法,优先权调度算法,高响应比优先调度算法,多级队列调度算法和多级反馈队列调度算法等7种,本实验对前3种算法进行编程。1. 先来先服务(FCFS)调度算法此种算法在进行调度时,总是选择一个最先进入进程就绪队列的进程,把处理器分配给它,使之开始运行。该进程一直运行到完成或发生阻塞事件时,才放弃处理机。2. 短进程优先(SPF)调度算法此种算法在进行调度时,总是在进程就绪队列中选择一个估计运行时间最短的进程,把处理器分配给它,使之开始运行。该进程一直运行到完成或发生阻塞事件,才放弃处理机。3. 时间片轮转调度算法在需要保证响应时间的场合通常采用时间片轮转算法来分配CPU。此

27、种算法将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时把CPU分配给队首进程,令其执行一个时间片。时间片的大小从几ms到几百ms不等。时间片用完,调度程序自动停止该进程的执行,将它放到进程就绪队列的末尾,等待下一次执行。然后将CPU分配给就绪队列中的新队首进程,也让它执行一个时间片。这样就可以保证所有进程都能在有限的时间内得到运行。(二) 衡量算法性能的参数平均周转时间 : 平均带权周转时间 : 其中: Ti为第i个进程的周转时间 Tsi为第i个进程要求执行的时间三、实验内容(一) 编程模拟先来先服务算法要求:1. 能预先输入或随机产生进程信息。每个进程的描述信息包括: 进入就绪队列

28、时间; 进程执行时间;随机产生进程信息时,要求在进程执行过程中不断产生新的进程,模拟实际操作系统的运行。2. 使用键盘或时钟中断来模拟时间的流逝本实验需要对模拟算法的执行计时,因此程序应该提供定量计算时间的方法,一种最简单的方法是使用键盘,比如每敲一次空格代表一个时间单位。另一种方法是使用时钟中断,这需要在程序中截获时钟中断。使用Visual C/C+的MFC AppWizard(exe)应用程序类型时,可以响应窗口的WM_TIMER消息获得时间。使用DOS下的Borland C/C+时,需要截获INT 1CH或INT 08H时钟中断。3. 一组进程序列执行完毕,应该打印出结果信息程序需要计算

29、出每个进程的开始执行时间,结束时间,周转时间,带权周转时间,并为整个进程序列计算平均周转时间和平均带权周转时间。将计算结果按一定的格式显示在计算机屏幕上。(二) 编程模拟短进程优先算法要求:1. 能预先输入或随机产生进程信息。每个进程的描述信息包括: 进入就绪队列时间; 进程执行时间;随机产生进程信息时,要求在进程执行过程中不断产生新的进程,模拟实际操作系统的运行。2. 使用键盘或时钟中断来模拟时间的流逝本实验需要对模拟算法的执行计时,因此程序应该提供定量计算时间的方法,一种最简单的方法是使用键盘,比如每敲一次空格代表一个时间单位。另一种方法是使用时钟中断,这需要在程序中截获时钟中断。使用Vi

30、sual C/C+的MFC AppWizard(exe)应用程序类型时,可以响应窗口的WM_TIMER消息获得时间。使用DOS下的Borland C/C+时,需要截获INT 1CH或INT 08H时钟中断。3. 一组进程序列执行完毕,应该打印出结果信息程序需要计算出每个进程的开始执行时间,结束时间,周转时间,带权周转时间,并为整个进程序列计算平均周转时间和平均带权周转时间。将计算结果按一定的格式显示在计算机屏幕上。(三) 时间片轮转调度算法要求:1. 能预先输入或随机产生进程信息。每个进程的描述信息包括: 进入就绪队列时间; 进程执行时间;随机产生进程信息时,要求在进程执行过程中不断产生新的进程,模拟实际操作系统的运行。2. 时间片模拟本实验需要对模拟计算机的时间片,最简单的方法是使用键盘,比如每敲一次空格代表一个时间片。另一种方法是使用时钟中断,这需要在程序中截获时钟中断。使用Visual C/C+的MFC AppWizard(exe)应用程序类型时,可以响应窗口的WM_TIMER消息获得时间。使用DOS下的Borland C/C+时,需要截获INT 1CH或INT 08H时钟中断。3. 一组进程序列执行完毕,应该打印出结果信息程序需要计算出每个进程的开始执行时间,结束时间,周转时间

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1