《计算机操作系统综合实验》实验指导书.docx

上传人:b****6 文档编号:8676735 上传时间:2023-02-01 格式:DOCX 页数:41 大小:131.40KB
下载 相关 举报
《计算机操作系统综合实验》实验指导书.docx_第1页
第1页 / 共41页
《计算机操作系统综合实验》实验指导书.docx_第2页
第2页 / 共41页
《计算机操作系统综合实验》实验指导书.docx_第3页
第3页 / 共41页
《计算机操作系统综合实验》实验指导书.docx_第4页
第4页 / 共41页
《计算机操作系统综合实验》实验指导书.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

《计算机操作系统综合实验》实验指导书.docx

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

《计算机操作系统综合实验》实验指导书.docx

《计算机操作系统综合实验》实验指导书

ComputerScienceandTechnology

 

西南科技大学(SouthWestUniversityofScienceandTechnology)

 

ExperimentalInstructorofComputerOperatingSystem

计算机操作系统综合实验指导书

应用教研室编写

 

计算机科学与技术学院二00七年

 

前言

 

FOREWORD

FOREWORD

FOREWORD

 

实验课程是理论课程的有力补充,通过操作系统上机实验,培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的程序的能力,加深对操作系统理论的理解。

使学生更好地掌握操作系统的基本概念、基本原理及基本功能,具有分析现代操作系统,设计和开发简单操作系统部分功能的基本能力。

对于操作系统理论的掌握与进一步学习具有非常重要的意义。

实验指导书第一章是基础知识概述,主要介绍了实验环境和实验工具。

第二章是要求,包括实验选题要求、过程要求、实验报告要求、实验成绩评价和评分标准。

第三章是实验内容,计算机操作系统综合实验内容主要围绕计算机操作系统理论课程进行安排,一共包括10个实验。

实验1和实验2涉及进程创建和撤销相关理论;实验

3涉及信号量相关理论;实验4和实验8涉及进程调度相关理论;实验5涉及死锁相

关理论;实验6涉及页面置换相关理论;实验7涉及磁盘调度相关理论;实验9涉及

内存管理相关理论;实验10是一个真实的内核实验,它涉及了可执行文件的装载与重定位。

计算机操作系统综合实验指导书主要帮助学生掌握和理解操作系统原理相关理论,让更抽象的理论在实践中得到更好的理解。

适合已经学习过操作系统相关理论的学生使用。

 

《计算机操作系统综合实验》实验指导书建设小组

2007年5月

第一章基础知识概述1

1.1实验环境1

1.2实验工具1

第二章实验要求3

2.1实验体系结构......................................................................................错误!

未定义书签。

2.2实验过程要求3

2.3实验报告要求3

2.3.1实验报告书写格式3

2.3.2实验报告格式4

2.4实验成绩评价4

2.4.1实验成绩评价结构及比例4

2.4.2考核方式4

2.5评价标准及考核方式细则的确定4

2.5.1过程成绩4

2.5.2报告成绩5

第三章实验内容6

3.1进程创建模拟实现6

3.1.1实验类型6

3.1.2实验目的6

3.1.3实验描述6

3.1.4实验内容6

3.1.5实验要求6

3.1.6测试要求6

3.1.7相关知识6

3.1.8实验指导8

3.1.9实验思考8

3.2进程撤销模拟实现9

3.2.1实验类型9

3.2.2实验目的9

3.2.3实验描述9

3.2.4实验内容9

3.2.5实验要求9

3.2.6测试要求9

3.2.7相关知识9

3.2.8实验指导9

3.2.9实验思考9

3.3P、V原语的模拟实现10

3.3.1实验类型10

3.3.2实验目的10

3.3.3实验描述10

3.3.4实验内容10

3.3.5实验要求10

3.3.6测试要求10

3.3.7相关知识10

3.3.8实验指导10

3.3.9实验思考11

3.4FCFS进程调度模拟实现12

3.4.1实验类型12

3.4.2实验目的12

3.4.3实验描述12

3.4.4实验内容12

3.4.5实验要求12

3.4.6测试要求12

3.4.7相关知识12

3.4.8实验指导12

3.4.9实验思考13

3.5银行家算法实现14

3.5.1实验类型14

3.5.2实验目的14

3.5.3实验描述14

3.5.4实验内容14

3.5.5实验要求14

3.5.6测试要求14

3.5.7相关知识14

3.5.8实验指导15

3.5.9实验思考15

3.6改进型CLOCK页面置换算法实现16

3.6.1实验类型16

3.6.2实验目的16

3.6.3实验描述16

3.6.4实验内容16

3.6.5实验要求16

3.6.6测试要求16

3.6.7相关知识16

3.6.8实验指导16

3.6.9实验思考17

3.7SCAN磁盘调度模拟实现18

3.7.1实验类型18

3.7.2实验目的18

3.7.3实验描述18

3.7.4实验内容18

3.7.5实验要求18

3.7.6测试要求18

3.7.7相关知识18

3.7.8实验指导18

3.7.9实验思考18

3.8基于时间片的高优先级调度模拟实现19

3.8.1实验类型19

3.8.2实验目的19

3.8.3实验描述19

3.8.4实验内容19

3.8.5实验要求19

3.8.6测试要求19

3.8.7相关知识19

3.8.8实验指导20

3.8.9实验思考20

3.9连续动态内存管理模拟实现21

3.9.1实验类型21

3.9.2实验目的21

3.9.3实验描述21

3.9.4实验内容21

3.9.5实验要求21

3.9.6测试要求21

3.9.7相关知识21

3.9.8实验指导22

3.9.9实验思考22

3.10EXE文件装载实现23

3.10.1实验类型23

3.10.2实验目的23

3.10.3实验描述23

3.10.4实验内容23

3.10.5实验要求23

3.10.6测试要求23

3.10.7相关知识23

3.10.8实验指导24

3.10.9实验思考24

附录A源代码25

1.实验一源代码25

2.实验二源代码28

3.BASIC.H文件33

附录B实验报告格式36

 

1.1实验环境

第一章基础知识概述

硬件环境:

PC机1台。

软件环境:

Windows2000/xp、TurboC3.0或MicrosoftVisualC++6.0。

1.2实验工具

1)TurboC3.0

该软件是Borland公司在1992年推出的强大的C语言程序设计与C++面向对象程序设计的集成开发工具。

它只需要修改一个设置选项,就能够在同一个IDE集成开发环境下设计和编译以标准C和C++语法设计的程序文件。

使用说明:

(1)找到TC3.0安装目录,假设为C:

\TC3;

(2)打开Bin目录,单击TC打开TC3.0开发环境;

(3)如图1-1所示,可以选择load和new打开或创建一个新CPP文件;

图1-1新建CPP文件

(4)对于一个CPP文件可以按F2或图1-1中的save菜单项进行保存;

(5)对于编写好的CPP文件按Alt+F9进行编译;

(6)按Ctrl+F9运行该程序;

(7)Alt+F5看运行结果;

(8)Options\Directories可修改相应默认路径,如include、输出等,如图1.2所示。

图1-2TC路径设置

2)VisualC++6.0

VC6.0是微软公司开发的面向对象可视化软件制作工具,其提供了强大的MFC支持,可以编写基于Windows的各类软件,功能强大。

在计算机操作系统综合实验过程中,只需

要使用其最基本的编码和编译功能。

使用说明:

(1)打开VC6.0开发环境;

(2)新建一个CPP文件,如图1-3所示。

图1-3新建一个CPP文件

(3)编写完后按F5运行,此时会出现图1-4的提示信息,直接按“是”即可运行程序。

图1-4单文件运行提示

2.1选题要求

第二章实验要求

表1-1实验体系结构

序号

实验内容

实验选题

实验类型

实验学时

1

进程创建模拟实现

必做

验证型

2

2

P、V原语模拟实现

必做

验证型

2

3

进程撤销模拟实现

必做

设计型

4

4

FCFS进程调度模拟实现

必做

设计型

4

5

银行家算法实现

必做

设计型

4

6

改进型Clock页面置换算法实现

必做

设计型

4

7

SCAN磁盘调度模拟实现

必做

设计型

4

8

基于时间片的高优先级调度实现

 

必选一题

综合型

 

8

9

连续动态内存管理实现

综合型

10

EXE文件装载实现

综合型

2.2实验过程要求

1)理解实验目的,了解实验内容,掌握相关理论。

2)实验准备

(1)验证型实验:

掌握实验涉及相关理论,预读指导书提供的相关代码;

(2)设计型实验:

掌握实验涉及相关理论,按照提示算法编写代码;

(3)综合型实验:

掌握实验涉及相关理论,设计算法并编写代码。

3)实验过程

(1)验证型实验:

按照测试要求进行测试,观察并理解测试结果,完成实验要求和测试要求;

(2)设计型实验:

调试并检查错误,完成实验要求和测试要求;

(3)综合型实验:

调试并检查错误,完成实验要求和测试要求。

4)实验结果的处理实验结果正确,达到测试要求。

5)实验报告的撰写按照实验报告要求书写实验报告。

6)实验程序的收集等方面的总体要求程序运行结果、代码编写或熟悉情况由实验指导教师当场检查,实验代码不用收集。

2.3实验报告要求

2.3.1实验报告书写格式

1)封面

封面包括课程名称、实验名称、学号、学生姓名、班级、指导教师、评分、实验日期。

2)主体内容

(1)实验目的以实验指导书中的实验目的为依据,结合自己的理解情况进行书写。

(2)实验内容以实验指导书中的实验内容为依据,结合自己的实验完成情况进行书写。

(3)实验要求实验要求中提出了实验过程要求和实验报告的要求,按照相关要求书写实验报告内容。

(4)实验环境实验环境包括硬件和软件环境,按照自己实验过程中使用到的环境进行书写。

(5)测试实验指导书中有测试要求,在实验过程中按照测试要求进行测试,书写相应的测试结果。

(6)实验思考实验指导书中有实验思考,请仔细理解后查阅资料进行回答并书写。

(7)实验体会结合实验过程,对整个实验进行总结。

2.3.2实验报告格式

见附录B。

2.4实验成绩评价

2.4.1实验成绩评价结构及比例

实验成绩评定方式包含实验报告成绩、实验过程成绩两个部分,其中实验过程成绩占60%、实验报告成绩占40%,如果其中任何一个部分成绩不及格,则总成绩按不及格处理。

2.4.2考核方式

1)过程成绩考核

(1)验证型实验根据测试数据量、测试结果理解程度、相关理论知识理解程度进行考核。

(2)设计型实验根据代码编写规范程度、代码编写正确程度、测试结果正确程度、实验内容完成情况进

行考核。

(3)综合型实验根据算法设计优良程度、代码编写规范程度、测试结果正确程度、实验内容完成情况进

行考核。

2)报告成绩考核根据报告书写规范程度,是否按照实验报告要求进行内容组织,相关流程图是否正确、

规范,实验思考回答正确程度,实验体会深刻程度等进行考核。

2.5评价标准及考核方式细则的确定

2.5.1过程成绩

共分为A、B、C、D、E五个等级。

1)验证型实验A:

测试数据量充分,测试结果理解好,理论知识清晰;B:

测试数据量较充分,较好地理解了测试结果,理论知识较清晰;C:

测试数据量适中,测试结果理解程度一般,理论知识较清晰;

D:

测试数据量不够,测试结果理解较肤浅,理论知识不够清晰;E:

测试数据严重不够,无法理解测试结果,理论知识理解混乱。

2)设计型实验A:

代码编写规范、合理,很好地完成了实验内容,测试结果正确;B:

代码编写较规范,较好地完成了实验内容,测试结果正确;C:

代码编写较规范,完成了实验内容,测试结果基本正确;D:

代码编写不够规范,基本完成了实验内容,测试结果基本正确;E:

代码编写不够规范,没有完成实验内容。

3)综合型实验A:

算法设计优秀,代码编写准确、规范,测试结果很理想,很好地完成了实验内容;B:

算法设计较好,代码编写较准确,测试结果较好,较好地完成了实验内容;C:

算法设计较好,代码编写不够紧凑,测试结果较准确,完成了实验内容;D:

算法设计一般,代码实现了算法,但不够清晰,测试结果基本正确,基本完成了实

验内容;

E:

没有设计出可行的算法,代码编写混乱,测试结果错误,没达到测试要求。

2.5.2报告成绩

共分为A、B、C、D、E五个等级。

A:

报告书写规范、清晰,包含了实验报告要求的所有内容,相关流程图规范、正确,实验思考回答正确、简练,实验体会深刻。

B:

报告书写较规范,包含了实验报告要求的所有内容,相关流程图较规范、流程思想较正确,实验思考回答较准确,实验体会较深刻。

C:

报告书写较规范,包含了实验报告要求的所有内容,相关流程图完善、基本正确,实验思考回答基本正确,有实验体会。

D:

报告书写较规范,包含了实验报告要求的所有内容,相关流程图不够完善,实验思考回答不够准确,有少量实验体会。

E:

报告书写不规范,没有包含实验报告要求的所有内容,相关流程图存在较大错误,没有回答实验思考,无实验体会。

A:

95A+:

99A-:

90B:

85B+:

89B-:

80C:

75C+:

79C-:

70D:

65D+:

69D-:

60E:

0-59

每个等级为参考评分,评分可左右浮动1-4分。

第三章实验内容

3.1进程创建模拟实现

3.1.1实验类型

验证型(2学时)。

3.1.2实验目的

1)理解进程创建相关理论;

2)掌握进程创建方法;

3)掌握进程相关数据结构。

3.1.3实验描述

本实验针对操作系统中进程创建相关理论进行实验。

要求实验者输入实验指导书提供的代码并进行测试。

代码简化了进程创建的多个步骤和内容。

进程的树形结构采用广义二叉树的方式进行存储。

3.1.4实验内容

1)输入给定代码;

2)进行功能测试并得出正确结果;

3)分析并掌握测试结果。

3.1.5实验要求

1)分析进程创建函数createpc程序模块;

2)在实验报告中画出createpc函数程序流程图;3)撰写实验报告。

3.1.6测试要求

1)至少创建10个进程;

2)创建进程树中4层以上的树型结构。

3.1.7相关知识

1)进程控制块为了描述和控制进程的运行,系统为每个进程定义了一个进程控制块(PCB),它是进程

实体的一部分,是操作系统管理进程最重要的数据结构。

其主要包含四类信息:

(1)进程标识符

它唯一地标识一个进程。

通常包括进程号pid,父进程号ppid和用户号uid。

(2)处理机状态

处理器的状态通常由处理机的各种寄存器中的内容组成。

PCB存放中断(阻塞,挂起)时的各寄存器值,当该进程重新执行时,可以从断点处恢复。

主要包括:

a)通用寄存器;b)指令计数器;

c)程序状态字PSW;d)用户栈指针。

(3)进程调度信息a)进程状态;

b)进程优先级(用于描述优先使用cpu级别的一个整数,高优先级的进程先得到cpu,通常情况下,优先值越小优先级越高);

c)其它信息(等待时间、总执行时间等);d)事件(等待原因)。

(4)进程控制信息

a)程序和数据的地址(程序在内存和外存中的首址);b)进程同步和通信机制;

c)资源列表(进程除CPU以外的所有资源);

d)链接指针(进程队列中指向下一个进程的PCB首址)。

2)进程创建流程

(1)申请空白PCB

为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB。

如果无空白PCB,可以创建一个新的PCB。

在本实验中,每次动态创建PCB。

(2)为新进程分配资源为新进程分配内存空间和栈空间。

(3)初始化进程控制块

a)初始化标识信息;

b)初始化处理机状态信息;c)初始化处理机控制信息。

(4)将新进程插入就绪队列

3)进程树

图3-1进程树

进程树用于描述进程家族关系,如图1-1中可以看出,进程P1创建了进程P2、P3、P4、P5,而P2又创建了P6、P7、P8……。

在进程创建过程中,需要对每一个新增加的进程加入到进程树中,有了清晰的父子关系,可以使资源继承或进程删除等操作变得很方便。

4)进程总链

它是一个PCB链表,每一个新创建的进程必须把其PCB放入总链中,该总链可以对破坏的进程树进行修复,也方便PCB查找。

3.1.8实验指导

输入实验提供的代码后,可以输入createpc命令创建进程,输入showdetail显示每个进程及其子进程的信息,测试命令解释如下:

1)createpc创建进程命令。

参数:

1pid(进程id)、2ppid(父进程id)、3prio(优先级)。

示例:

createpc(2,1,2)。

创建一个进程,其进程号为2,父进程号为1,优先级为2。

2)showdetail显示进程信息命令。

3)exit退出命令行。

3.1.9实验思考

1)进程创建的核心内容是什么?

2)该设计和实际的操作系统进程创建相比,缺少了哪些步骤?

3.2进程撤销模拟实现

3.2.1实验类型

设计型(4学时)。

3.2.2实验目的

1)理解进程撤销相关理论;

2)掌握进程撤销流程。

3.2.3实验描述

本实验针对操作系统中进程撤销相关理论进行实验。

要求实验者设计一个程序,该程序可模拟撤销多个进程及其子孙进程。

3.2.4实验内容

1)采用动态或静态方法生成一颗进程树(进程数目≥20);

2)设计进程撤销算法;

3)实现进程撤销函数,采用级联方式撤销;

4)可动态撤销进程;

5)可动态观察进程树的情况;

6)测试程序并得到正确结果。

3.2.5实验要求

1)编写程序完成实验内容;

2)在实验报告中画出撤销函数流程图;

3)撰写实验报告。

3.2.6测试要求

1)构建1棵进程树,该树至少包含4层;

2)对该树中的多个进程进行删除,至少对一个含有孙子进程的进程进行删除。

3.2.7相关知识

1)进程创建流程

(1)从PCB链中找到该进程的PCB,从中读出该进程的状态;

(2)如果该进程处于执行状态,则终止该进程并置调度标志为真;

(3)若该进程有子孙进程,需要撤销其子孙进程;

(4)释放该进程占有的资源;

(5)从PCB链中移出该进程的PCB。

3.2.8实验指导

1)进程子树的删除

对于已经创建的进程树(可以参考实验1创建进程),在删除的时候,首先需要考虑把该进程及其子孙从整棵树中脱离出来,这样才不会破坏整棵树的完整性。

2)进程总链元素的删除对于进程树种撤销的所有进程,必须在进程总链中进行删除。

3.2.9实验思考

1)进程撤销的核心内容是什么?

2)进程总链在进程撤销过程中有什么作用?

3.3P、V原语的模拟实现

3.3.1实验类型

验证型(2学时)。

3.3.2实验目的

1)理解信号量相关理论;

2)掌握记录型信号量结构;

3)掌握P、V原语实现机制。

3.3.3实验描述

本实验针对操作系统中信号量相关理论进行实验,要求实验者输入实验指导书提供的代码并进行测试。

代码主要模拟信号量的P操作(wait)和V操作(signal)。

3.3.4实验内容

1)输入给定代码;

2)进行功能测试并得出正确结果。

3.3.5实验要求

1)分析signal和wait函数功能模块;

2)在实验报告中画出signal和wait函数流程图;3)撰写实验报告。

3.3.6测试要求

1)至少进行10次以上的wait和signal操作;2)要求wait操作出现进程等待队列;

3)对有等待队列的信号量进行signal操作。

3.3.7相关知识

1)信号量信号量也称为信号锁,主要应用于进程间的同步和互斥,在用于互斥时,通常作为资源

锁。

信号量通常通过两个原子操作wait(P)和signal(V)来访问。

wait操作使信号量的值+1,signal操作使信号量的值-1。

2)记录型信号量记录型信号量采用了“让权等待”的策略,存在多个进程等待访问同一临界资源的情况,

所以记录型信号量需要一个等待链表来存放等待该信号量的进程控制块或进程号。

在本实验中,使用记录型信号量。

3.3.8实验指导

实验中提供了5个信号量(s0-s4)和20个进程(pid0-19)。

在程序运行过程中可以键入wait命令,signal命令和showdetail命令显示每个信号量的状态。

具体输入解释如下:

1)wait获取信号量操作(P操作)。

参数:

1sname2pid。

示例:

wait(s1,2)。

进程号为2的进程申请名字为s1的信号量。

2)signal释放信号量操作(V操作)。

参数1sname。

示例:

signal(s1)。

释放信号量名字为s1的信号量。

3)showdetail显示各信号量状态及其等待队列。

4)exit退出命令行。

3.3.9实验思考

1)如何修改wait操作,使之能一次申请多个信号量?

2)在某个时刻,一个进程最多可以等待多少个信号量?

3.4FCFS进程调度模拟实现

3.4.1实验类型

设计型(4学时)。

3.4.2实验目的

1)理解进程调度相关理论;

2)掌握FCFS进程调度方法。

3.4.3实验描述

本实验是一个模拟实验,模拟操作系统中进程调度过程。

要求实验者设计一个程序,该程序可模拟对10个以上的进程进行FCFS的方式进行调度。

3.4.4实验内容

1)设计可用于该实验的进程控制块,进程控制块至少包括进程号、到达时间和要求服务时间;

2)动态或静态创建多个(≥10)进程;

3)实现FCFS调度算法;

4)可动态修改进程到达时间;

5)调度所创建的进程并显示调度结果。

3.4.5实验要求

1)编写程序完成实验内容;

2)在实验报告中画出FCFS调度函数流程图;

3)撰写

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

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

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

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