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

上传人:b****7 文档编号:9969816 上传时间:2023-02-07 格式:DOCX 页数:29 大小:111.19KB
下载 相关 举报
操作系统实验指导书4.docx_第1页
第1页 / 共29页
操作系统实验指导书4.docx_第2页
第2页 / 共29页
操作系统实验指导书4.docx_第3页
第3页 / 共29页
操作系统实验指导书4.docx_第4页
第4页 / 共29页
操作系统实验指导书4.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

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

《操作系统实验指导书4.docx》由会员分享,可在线阅读,更多相关《操作系统实验指导书4.docx(29页珍藏版)》请在冰豆网上搜索。

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

操作系统实验指导书4

 

《计算机操作系统》

实验指导书

第四版

作者:

田卫东、刘晓平、李琳、孙晓

第一章实验预备

第一节概述

<<计算机操作系统>>是计算机科学与技术专业主要专业基础课程之一,以操作系统的基本概念,原理和重要算法为主要讲述内容。

由于教材侧重于从理论的角度来介绍现代操作系统的核心技术内容,长篇论述较多,因此课程内容深,难度大。

学生普遍反映本课程难学难懂,甚至有的学生认为学好本课的关键就是死记硬背,从而走向歧路。

由此可见,为课程设计一套完善的实验,将课程中的重点、难点内容通过实验直观地呈现在学生面前,达到操作系统理论和实际相结合,抽象原理和具体运用相结合,最终起到加快学生理解和掌握课程内容的目的。

正是在这种背景下,作者结合自己几年从事<<计算机操作系统>>课程教学的经验,精心撰写了这本操作系统实验指导书,并编写部分程序作为实验工具。

本实验指导书内容分实验预备、实验安排两部分。

实验预备介绍进入实验之前的预备知识和有关实验的总体概况,实验安排是本指导书主体部分,具体规定各实验的详细内容和要求。

目前本实验指导书安排实验6个,涵盖了操作系统的主要内容,如下所示:

实验一

DOS/Win2000/WinXP操作系统

实验二

进程调度算法

实验三

银行家算法

实验四

动态分区管理模拟

实验五

页面置换算法

实验六

UNIX磁盘空间管理方法:

成组链接法

第二节实验环境

一、操作系统环境

本课程实验的对象是操作系统,实验前必需准备好相应的操作系统软件。

由于操作系统软件的特殊性,无法象其它软件一样随时卸载和重装,因此从操作系统的应用范围、性能、价格和可获得性等因素出发,本指导书选择使用广泛的商业软件MS-DOS和Win2000/WinXP作为实验操作系统,其中MS-DOS为单用户单任务操作系统,而Win2000/WinXP为单用户多任务操作系统。

有条件的读者可以选用UNIX/LINUX/XENIX或其它主机系统作为实验环境。

二、编程环境

本书实验所用编程语言为C/C++语言。

如果操作系统平台为Win2000/WinXP,请使用MicrosoftVisualC++5.0,如为DOS,则请使用BorlandC/C++3.1或TurboC2.0.对于没有学过C/C++语言的同志,可选择BorlandTurboPascal4.0作为编程语言,选作可用pascal进行编程的实验。

下面仅介绍MicrosoftVisualC++5.0和BorlandC/C++3.1环境的使用方法。

(一)BorlandC/C++3.1

BorlandC/C++是美国Borland公司推出的系列编程语言之一,最初流行的版本为TurboC1.0/1.5/2.0,后来引入C++,改名为TurboC/C++1.0/2.0,BorlandC/C++3.0是完全基于MS-DOS环境的最后一个C/C++编程环境,具有强大的集程序编辑、编译、链接、调试、运行为一体的集成环境,因此使用非常方便。

1.启动BorlandC/C++3.1

单机环境下:

C:

\>CDBORLANDC

C:

\>BORLANDC

注意如果BorlandC/C++3.1安装的目录不是C:

\BORLANDC,应该使用相应的目录。

联网环境下:

需要先在NetWare网络上注册工作站,之后运行系统批处理程序:

F:

LOGIN>TC30(或TC31)

BorlandC/C++3.1集成环境如图所示。

2.BorlandC/C++3.1的集成环境

BorlandC/C++3.1集成环境包括主菜单,编辑窗口和热键区三部分。

主菜单位于屏幕的最上方,列出了集成环境的所有命令,命令分组列出,包括File,Edit,Search,Run,Compile,Debug,Project,Options,Window,Help等。

编辑窗口可以同时打开多个,每个窗口用于对一个源程序文件进行编辑,编辑窗口也可用来显示与当前程序有关的信息。

热键区列出了集成环境提供的热键,使用热键主要是为了省去查找菜单的麻烦,加快操作速度,每个热键所代表的功能都可以从菜单上找到。

常见的热键包括F1帮助,F2存盘,F3打开,Alt-F9编译等。

(1)常用编辑功能介绍

光标移动:

使用光标键←、↑、→、↓一次移动一个字符位置;

使用键Home将光标定位到本行行首,End键将光标定位到本行行末;

使用键PageUp向上翻一页,PageDown向下翻一页;

插入:

将光标定位到要插入字符的位置,保证当前编辑状态为插入态(使用Insert键在插入态和修改态之间切换),键入字符,字符就依次插入到光标所在位置,光标之后的字符将依次向后移动。

修改:

将光标定位到要插入字符的位置,保证当前编辑状态为修改态(使用Insert键在插入态和修改态之间切换),键入字符,光标之后的字符就依次被新键入的字符所修改。

删除:

删除光标之后的字符请按键Delete或Del;

删除光标之前的字符请按键Backspace;

删除光标所在行请按热键Ctrl-Y;

块定义

块是一段连续的字符串文本,BorlandC/C++编辑器可以块为单位来进行文本的拷贝、移动和删除操作。

一个块的定义包括块首和块尾的指定。

将光标移动到块首位置,按下Ctrl-K-B,定义块首;将光标移动到块尾位置,按下Ctrl-K-K,定义块尾;

块拷贝

定位光标到要放置块的地方,按下Ctrl-K-C,块的内容将被复制到此处。

块移动

定位光标到要放置块的地方,按下Ctrl-K-V,块的内容将被复制到此处,同时原来的块将被删除。

块删除

按下Ctrl-K-Y,删除块。

查找字符串

按下Ctrl-Q-F,在弹出的FindText窗口中输入要查找的字符串,并设置查找选项,按下OK按钮,编辑器就会定位光标到该字符串首次出现的位置。

按下Ctrl-L,编辑器定位光标到该字符串下一个出现的位置。

替换字符串

按下Ctrl-Q-A,在弹出的ReplaceText窗口中输入要被替换的字符串和替换后的字符串,并设置替换选项,按下OK按钮,编辑器就会开始替换字符串。

(2)项目(Project)管理

BorlandC/C++3.1与其早期版本不一样的地方是全面引入了程序开发的项目思想。

BorlandC/C++3.1将一套软件的开发称为一个项目,项目包括了一套软件开发所需的所有源程序、库文件和相关的编译、链接选项。

每个项目由一个项目文件来记录所有这些信息,因此使用BorlandC/C++3.1集成环境开发程序,首先需要建立一个新项目。

软件开发项目的引入使得对软件开发的管理变得较为容易,便于组织大型软件项目的开发。

3.BorlandC/C++3.1使用实例

下面示出一个简单程序的开发过程。

(1)启动BorlandC/C++3.1:

F:

LOGIN>TC30

(2)建立新项目

选择菜单:

Project->OpenProject

在弹出的对话框中输入项目文件名称Project1

(3)建立源程序文件

选择菜单:

File->New

在编辑窗口中输入下述内容:

#include

main()

{

printf("Hello,world.");

}

将此文件存盘,名称为C:

\First.CPP

(4)将刚建立的源程序加入到项目Project1

激活项目窗口,按键Insert,在弹出的AddToProjectList窗口中,输入文件C:

\First.CPP,按OK按钮结束。

(5)编译链接

按键F9;

(6)运行

按键Ctrl-F9;

(7)调试

如果程序运行出错,可以使用BorlandC/C++强大的调试功能进行调试。

方法如下:

a.设置断点移动光标到怀疑出错的程序行,按Ctrl-F8设置断点;

b.执行程序按下Ctrl-F9执行程序,程序执行到设置了断点的语句处会停下来;

c.查看变量值按下Ctrl-F7,输入变量名,将该变量放入观察窗口,检验其值;

d.程序继续执行按下Ctrl-F9继续执行程序;

e.反复执行a~d,直至程序运行正常为止。

4.退出BorlandC/C++3.1

选择菜单File->Quit或用热键Alt-X退出集成环境。

(二)MicrosoftC/C++5.0/6.0

MicrosoftVisualC/C++可以开发不同类型的程序,读者应根据自己的实际情况选择应用程序类型。

熟悉Windows编程的可选MFCAppWizard(exe),不熟悉的请选用Win32ConsoleApplication。

MicrosoftVisualC/C++的使用较复杂,详细的使用方法请参见有关书籍和联机帮助。

下面仅简单介绍使用一下利用MicrosoftVisualC/C++5.0/6.0开发Win32ConsoleApplication应用程序的过程。

1.启动MicrosoftVisualC/C++5.0/6.0

双击图标:

MicrosoftVisualC/C++5.0/6.0

或选择菜单:

MicrosoftVisualC/C++5.0/6.0

2.建立新项目Exp1

选择菜单:

File->New

弹出对话框见图:

选择页面标签:

Project。

选择应用程序类型:

Win32ConsoleApplication

选择项目位置:

C:

\TEMP

输入应用程序名称:

Exp1

点击OK按钮,VC系统自动产生一个新项目Exp1;

3.建立源程序maic.cpp:

选择菜单:

File->New

弹出对话框见上图。

选择页面标签:

Files。

选择文件类型:

C/C++SourceFile

选择项目位置:

C:

\TEMP

输入文件名:

main

注意选择AddToProject标签,在其前面添加“”符号。

点击OK按钮,VC系统自动产生一个新文件main.cpp,并将其加入项目Exp1中;

4.编辑源程序

在窗口main.cpp中,键入如下程序代码:

#include"iostream.h"

main()

{

inti,j;

cout<<"输入数i:

";

cin>>i;

cout<<"输入数j:

";

cin>>j;

cout<<"输入结果为:

";

cout<

}

选择菜单File->SaveAll存盘。

5.编译、链接

选择菜单Build->RebuildAll

强迫编译链接本项目所有的源程序。

6.运行

按Ctrl-F5或选择相应菜单运行应用程序。

7.调试

程序执行如果出现错误,可以使用VC进行调试,方法如下。

a.设置程序断点移动光标到需要查看中间结果的语句,单击鼠标右键,并从弹出的菜单上选择Insert/RemoveBreakpoint,VC将在该行前加符号。

b.进入调试状态按F5执行程序,程序将在设置了断点的语句前停下来。

c.查看变量的值移动鼠标到要查看的变量上方,略停一会,该变量的值会自动显示出来。

d.继续执行程序按F10/F11/F5继续执行程序。

第二章实验安排

实验一DOS/Win2000/WinXP操作系统

一、实验目的

DOS和Windows2000/XP是目前使用广泛的桌面操作系统,本实验的目的就是让读者从操作系统理论的观点来重新认识它们,从而加深对教材上有关内容的理解。

二、实验原理

(一)MS-DOS简介

MS-DOS是Microsoft公司80年代初推出的单用户单任务操作系统,由于性能和移植性较好,因此应用范围非常广。

MS-DOS是采用字符界面的操作系统,人机接口为命令行界面。

没有进程的并发执行能力,但允许多个进程同时驻留在内存中,也允许进程创建自己的子进程,父子进程之间采用串形方式执行。

MS-DOS的内存管理较简单,类似于分区分配管理,但没有虚拟存储器能力,应用程序的长度受640K内存的限制。

MS-DOS的文件系统使用FAT系统,仅有简单的文件保护功能。

实际上从现代操作系统理论的来看,MS-DOS不能算是一个现代化的操作系统,但正因为他简单,所以也便于我们在其上进行一些其它操作系统所不允许的操作,如直接操作计算机硬件等。

目前,单独使用MS-DOS的计算机已经很少,读者可以使用Win2000/XP的MS-DOS盒应用程序来进入MS-DOS模拟环境。

(二)Win2000/WinXP简介

MicrosoftWindows2000/XP是Microsoft公司90年代中后期推出的单用户多任务操作系统,由于具有良好的用户界面,强大的连网和多媒体功能,因而成为当前最流行的桌面操作系统。

Win2000/XP的用户界面为GUI,即图形用户界面,使用图形图象作为计算机和人之间的信息交流手段。

用户无需记忆大量的命令及格式,使用较方便。

Win2000/WinXP具有相当完善的多进程并发执行能力,而且在内核级直接支持线程,可实现线程间的并发执行。

Win2000/WinXP的线程消耗资源较少,通过增加线程的并发数目,可以有效地增强计算机的处理能力。

Win2000/WinXP的内存管理功能较复杂,实现了教材上介绍的页式和段式存储管理功能,具有强大的虚拟存储能力。

应用程序不再有640K的大小限制,即使在小内存机器上也可运行大型的应用程序。

Win2000/WinXP的文件系统仍然使用FAT系统。

新型FAT32文件系统使用4个字节来标志一个磁盘簇,磁盘簇的总数可达232(4G)个。

目前硬盘的容量均在2000G以下,因此可以一个簇代表一个磁盘扇区,大大减少磁盘存储空间的分配粒度,提高磁盘的利用率。

新型FAT文件系统还支持长文件名,可以给文件起一个更具描述性的名称,方便使用。

(三)进程查看程序:

PPview.exe

进程查看程序能列出当前Windows环境下正在执行的进程和线程信息,包括进程和线程的标志符、名称、文件名、执行时间、优先级等信息。

其用户界面参见下图:

(四)多进程并发演示程序:

MultiProc.exe

多进程并发演示程序向我们展示了Windows环境下的多线程特征。

该应用程序提供三种线程,一种线程在窗口中画直线,一种画填充的矩形,还有一种画填充的圆形。

每一种线程可以以任意数目同时运行。

有兴趣的读者可以同时执行上千个线程,以检测一下自己计算机性能的极限。

下图是该程序某时刻的运行状态。

(五)进程/线程优先级和互斥演示程序:

PPriority.exe

本程序用于演示Windows环境下进程/线程的互斥和优先级特征。

程序内部提供两个线程,两个线程共享变量count;一个线程用于计算数,总是执行count++;另一个线程用于显示该数,总是将count变量转换为字符串并添加到结果列表框中;下图是该程序在某时刻的运行状态。

三、实验内容

(一)MS-DOS的命令接口

熟悉md,cd,rd,copy,move,del,deltree,type等常见DOS命令的使用

a.在当前目录下建立子目录MYTEMP和MYTEMP2,将当前目录设定为MYTEMP;

b.在当前目录下创建新文件B.BAT,其内容为:

清除屏幕内容,显示当前DOS版本号;

c.使用type命令显示B.BAT的内容,检查正确后,执行它;

d.拷贝B.BAT到路径MYTEMP2中;

d.删除MYTEMP2中的文件B.BAT,删除目录MYTEMP2

e.使用deltree命令删除MYTEMP

(二)MS-DOS的进程管理

1.运行编辑程序EDIT,可以同时再运行其它命令(如DIR)吗?

2.执行如下管道和换向命令:

a.C:

\>dir>dir.lst

b.C:

\>typedir.lst|more

c.C:

\>dir|FIND"

"

d.C:

\>dir*.*|SORT/+14

e.C:

\>dir|SORT>SORT.DIR

观察执行结果

3.将当前目录换为系统目录,比如说F:

\SYSTEM,再重新执行2;

这次执行的结果和上次相同吗?

想想为什么?

(三)Win2000/XP的用户接口

启动Windows资源管理器,完成

(一)中实验,体会两者有何区别。

(四)Win2000/XP的进程管理

1.启动PPview.exe程序,记录当前系统都有哪些进程,哪些进程是多线程程序。

2.启动MultiProc.exe程序,任意几个启动画线、圆和矩形的线程,观察线程的并发执行。

此时PPview.exe的显示有和改变?

2.启动PPriority.exe程序,注意观察:

a.当不选取互斥选项时,列表框中的数字有何特征?

b.当选取互斥选项后,列表框中的数字有何特征?

c.提高计算线程的优先级,列表框中的数字有何特征?

d.提高显示线程的优先级,列表框中的数字有何特征?

e.再运行PPriority.exe程序的一份拷贝,即创建PPriority.exe的第二个进程,调整这两个进程的优先级,两进程执行有何特点?

(五)回答问题

通过以上实验内容,回答下面问题:

1.MS-DOS属于什么类型的操作系统?

2.MS-DOS的用户界面属于教材上介绍的哪一种?

其进程管理有什么特点?

3.解释实验

(二)3结果出现的原因。

4.Win2000/XP属于何种类型的操作系统?

5.Win2000/XP的用户界面属于教材上的哪一种?

具有什么特点?

6.Win2000/XP的进程/线程管理具有什么特点?

进程/线程具有几种优先级?

7.你的计算机在线程数目达到多少时,计算机就很慢了?

实验二进程调度算法

一、实验目的

调度的实质是操作系统按照某种特定的分配策略来分配资源,在操作系统中调度分三级,高级调度、中级调度和低级调度,其中执行最频繁的是低级调度,也就是进程调度,目的是分配CPU。

由于进程调度程序执行的频率很高,因此调度算法的好坏将直接影响到操作系统的性能。

本实验的目的是自己编程实现教材上介绍的几种常见进程调度算法,通过对几组进程执行序列分别使用不同的调度算法,计算出进程的平均周转时间和平均带权周转时间,比较各种算法的性能优劣。

二、实验原理

实际的操作系统在实现进程调度时常用的CPU分配策略又分非抢占式和抢占式两种方式。

使用非抢占式分配方式时,一旦把处理机分配给某进程后,便让该进程一直执行,直至该进程完成或发生某事件而阻塞时,才再把处理机分配给其它进程,不允许进程强占已经分配出去的处理机。

采用抢占分配方式时,允许调度程序根据某种原则,如时间片原则,优先权原则等,去停止某个正在执行的进程,将已经分配给该进程的处理机重新分配给其它的进程。

本实验算法除特殊说明的之外,都采用非抢占式分配。

(一)进程调度算法

常见的进程调度算法分先来先服务调度算法,短进程优先算法,时间片轮转算法,优先权调度算法,高响应比优先调度算法,多级队列调度算法和多级反馈队列调度算法等7种,本实验对前3种算法进行编程。

1.先来先服务(FCFS)调度算法

此种算法在进行调度时,总是选择一个最先进入进程就绪队列的进程,把处理器分配给它,使之开始运行。

该进程一直运行到完成或发生阻塞事件时,才放弃处理机。

2.短进程优先(SPF)调度算法

此种算法在进行调度时,总是在进程就绪队列中选择一个估计运行时间最短的进程,把处理器分配给它,使之开始运行。

该进程一直运行到完成或发生阻塞事件,才放弃处理机。

3.时间片轮转调度算法

在需要保证响应时间的场合通常采用时间片轮转算法来分配CPU。

此种算法将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时把CPU分配给队首进程,令其执行一个时间片。

时间片的大小从几ms到几百ms不等。

时间片用完,调度程序自动停止该进程的执行,将它放到进程就绪队列的末尾,等待下一次执行。

然后将CPU分配给就绪队列中的新队首进程,也让它执行一个时间片。

这样就可以保证所有进程都能在有限的时间内得到运行。

(二)衡量算法性能的参数

平均周转时间:

平均带权周转时间:

其中:

Ti为第i个进程的周转时间

Tsi为第i个进程要求执行的时间

三、实验内容

(一)编程模拟先来先服务算法

要求:

1.能预先输入或随机产生进程信息。

每个进程的描述信息包括:

进入就绪队列时间;

进程执行时间;

随机产生进程信息时,要求在进程执行过程中不断产生新的进程,模拟实际操作系统的运行。

2.使用键盘或时钟中断来模拟时间的流逝

本实验需要对模拟算法的执行计时,因此程序应该提供定量计算时间的方法,一种最简单的方法是使用键盘,比如每敲一次空格代表一个时间单位。

另一种方法是使用时钟中断,这需要在程序中截获时钟中断。

使用VisualC/C++的MFCAppWizard(exe)应用程序类型时,可以响应窗口的WM_TIMER消息获得时间。

使用DOS下的BorlandC/C++时,需要截获INT1CH或INT08H时钟中断。

3.一组进程序列执行完毕,应该打印出结果信息

程序需要计算出每个进程的开始执行时间,结束时间,周转时间,带权周转时间,并为整个进程序列计算平均周转时间和平均带权周转时间。

将计算结果按一定的格式显示在计算机屏幕上。

(二)编程模拟短进程优先算法

要求:

1.能预先输入或随机产生进程信息。

每个进程的描述信息包括:

进入就绪队列时间;

进程执行时间;

随机产生进程信息时,要求在进程执行过程中不断产生新的进程,模拟实际操作系统的运行。

2.使用键盘或时钟中断来模拟时间的流逝

本实验需要对模拟算法的执行计时,因此程序应该提供定量计算时间的方法,一种最简单的方法是使用键盘,比如每敲一次空格代表一个时间单位。

另一种方法是使用时钟中断,这需要在程序中截获时钟中断。

使用VisualC/C++的MFCAppWizard(exe)应用程序类型时,可以响应窗口的WM_TIMER消息获得时间。

使用DOS下的BorlandC/C++时,需要截获INT1CH或INT08H时钟中断。

3.一组进程序列执行完毕,应该打印出结果信息

程序需要计算出每个进程的开始执行时间,结束时间,周转时间,带权周转时间,并为整个进程序列计算平均周转时间和平均带权周转时间。

将计算结果按一定的格式显示在计算机屏幕上。

(三)时间片轮转调度算法

要求:

1.能预先输入或随机产生进程信息。

每个进程的描述信息包括:

进入就绪队列时间;

进程执行时间;

随机产生进程信息时,要求在进程执行过程中不断产生新的进程,模拟实际操作系统的运行。

2.时间片模拟

本实验需要对模拟计算机的时间片,最简单的方法是使用键盘,比如每敲一次空格代表一个时间片。

另一种方法是使用时钟中断,这需要在程序中截获时钟中断。

使用VisualC/C++的MFCAppWizard(exe)应用程序类型时,可以响应窗口的WM_TIMER消息获得时间。

使用DOS下的BorlandC/C++时,需要截获INT1CH或INT08H时钟中断。

3.一组进程序列执行完毕,应该打印出结果信息

程序需要计算出每个进程的开始执行时间,结束时间,周转时间

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

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

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