《操作系统》课程实验指导书

  • 格式:doc
  • 大小:46.50 KB
  • 文档页数:5

1
《操作系统》实验指导书
课程编号:B0105511S
课程名称:操作系统
实验学时:8
适应专业: 信息管理与信息系统,电子商务
目 录
前言
实验一 :进程管理与进程同步-----------------------------------------------------------------------------------------1
实验二 :存储器管理-----------------------------------------------------------------------------------------------------3
实验三 :磁盘调度算法的设计-----------------------------------------------------------------------------------------4
实验四 :文件系统原理与模拟实现-----------------------------------------------------------------------------------5

前 言
本课程将系统学习操作系统的基本概念和常用算法以及其发展情况和应用情况。通过
本课程的学习,学生应达到如下要求:1、加深理解操作系统原理。2、熟悉操作系统的常
用算法并完成算法的程序设计。3、理解当前操作系统的应用前景和新的进展。
本课程主要讲解操作系统的实现原理,如进程管理、进程同步、存储器管理、设备管
理和文件系统等。要求学生理解操作系统的基本原理并完成其中多种典型的操作系统的算
法的模拟序设计。
学生可以采用任何一种自己熟悉的编程语言完成算法的程序设计,如C/C++、Delphi、
VB、VC、C#等。

实验一、进程管理与进程同步
一、实验目的与基本要求
1、了解进程管理的实现方法;
2、理解和掌握处理进程同步问题的方法。
二、实验仪器与设备
硬件:微型计算机。中央处理器PentiumIV以上;显示器256色VGA以上;内存使
用128兆;硬盘300M以上。
软件:学生可以采用任何一种自己熟悉的编程语言完成算法的程序设计,如C/C++、
Delphi、VB、VC、C#等。
三、实验内容:
实现银行家算法、进程调度过程的模拟、读者-写者问题的写者优先算法。
四、实验步骤:
2

 理解安全性算法和银行家算法的核心机制:
针对3类资源、5个进程的情况,设计相应的数据结构,分别表示每个进程占
用各类资源的情况;
编程实现安全性算法函数,编制主函数,动态输入资源的占用情况,进程的资
源申请,调用安全性函数,实现银行家算法;
测试:输入可分配和不可分配的请求,测试系统的正确性。

 理解进程的三状态调度过程,及各状态间的转换关系;
模拟若干个进程的运行过程,将其存入进程文件中。如:进程1:运行5秒后
有3秒的I/O操作,之后有10秒的运行,结束。可以写成:”p1:r5,io3,r3 e;” ;
编程实现调度算法函数,定义时间片大小和并发进程个数,不断从进程文件中
读出进程信息,模拟进程的运行及调度过程;
测试:针对进程文件里面的数据为正常、缺项、格式不正确等各种情况,检测
程序的执行结果。

 设计读者--写者问题的写者优先算法;
学习Windows平台下信号量的API函数的使用;
编制读写进程的模拟信息文件,里面包含多个读写进程的运行描述:如0秒到
达读进程1,读5秒结束;1秒到达写进程2,写3秒结束;2秒到达读进程3,读
4秒结束。可以写为:
0:1,r,5;
1:2,w,3;
2:3,r,4;
编制读者--写者问题的写者优先算法,从进程模拟信息文件中取出进程信息,
按要求启动对应的进程模拟程序,决定出读者/写者进程的运行次序。
测试:针对进程模拟信息文件里面的数据为正常、缺项、格式不正确等各种情
况,检测程序的执行结果。
实验结果:

银行家算法程序提供一个用户界面,可以在上边发出资源申请命令,系统应能
给出是否可以接受申请,并且有结论输出;
进程调度模拟程序根据一个进程调度文件,模拟进程的各种调度过程,用适合
的表达方式表示出来。
写者优先同步控制程序根据一个读写进程模拟信息文件,按照写者优先同步控
制过程,用适合的表达方式表示出各读写进程的执行次序。
3

实验二、存储器管理
一、实验目的与基本要求
1、理解各类置换算法的原理
2、理解虚拟存储器管理的方法
二、实验仪器与设备
硬件:微型计算机。中央处理器PentiumIV以上;显示器256色VGA以上;内存使
用128兆;硬盘300M以上。
软件:学生可以采用任何一种自己熟悉的编程语言完成算法的程序设计,如C/C++、
Delphi、VB、VC、C#等。
三、实验内容:
编程实现LRU算法或CLOCK/改进算法等置换算法(二选一),模拟实现虚拟存储器的地
址变换过程。
四、实验步骤:
 理解LRU或CLOCK改进算法等置换算法;
设计与算法相关的数据结构,如:LRU的堆栈或CLOCK改进算法中的循环结构;
按照最多5块的内存分配情况,编程实现所选算法,动态输入访问内存的块号序
列,输出置换结果;
测试:输入合法、非法的访问序列数据,检查程序的正确性和健壮性。

 理解虚拟存储器的地址变换过程;
设计用于模拟快表、页表、地址变换所用的寄存器的数据结构;
编制页表的初始信息文件,举例说明文件中具有的信息:共有5块,每块的状态、
在内存和外存的起始地址等。
编程实现虚拟存储器地址变换算法程序,动态输入所要访问的逻辑地址,变换过
程文字描述以及变换后的物理地址;
测试:输入有效、无效地址,测试程序的正确性和错误处理能力。
实验结果:

置换算法程序提供内存访问序列的输入界面,输出正确的置换过程描述和置换结
果;
虚拟地址变换程序提供逻辑地址输入界面,形象地表示出变换成物理地址的过程
与最后变换成的物理地址。
4

实验三、磁盘调度算法的设计
一、实验目的与基本要求
1、理解磁盘调度算法的设计
2、理解提高磁盘访问速度的原理
二、实验仪器与设备
硬件:微型计算机。中央处理器PentiumIV以上;显示器256色VGA以上;内存使
用128兆;硬盘300M以上。
软件:学生可以采用任何一种自己熟悉的编程语言完成算法的程序设计,如C/C++、
Delphi、VB、VC、C#等。
三、实验内容:
模拟实现磁盘调度算法:最短寻道时间优先(SSTF)和扫描(SCAN)算法

四、实验步骤:
可以对给出的任意的磁盘请求序列、计算平均寻道长度; 要求可定制磁盘请求序列
长度、磁头起始位置、磁头移动方向。
测试:假设磁盘访问序列:98,183,37,122,14,124,65,67;读写头起始位置:
53,方向:磁道增加的方向。
5

实验四、文件系统原理与模拟实现
一、实验目的与基本要求
1、了解操作系统中文件系统的结构和管理过程。
2、掌握经典的算法:混合索引与成组链接法等方法。
二、实验仪器与设备
硬件:微型计算机。中央处理器PentiumIV以上;显示器256色VGA以上;内存使
用128兆;硬盘300M以上。
软件:学生可以采用任何一种自己熟悉的编程语言完成算法的程序设计,如C/C++、
Delphi、VB、VC、C#等。
三、实验内容:
编程模拟实现混合索引和成组链接法算法

四、实验步骤:
 模拟混合索引的原理;
假设每个盘块16字节大小,每个盘块号占2字节:
设计支持混合索引算法的索引节点的数据结构;编程模拟实现混合索引算法。
测试:输入一个文件的长度,给出模拟分配占用的磁盘块的情况;输入一个需要
访问的地址,计算该地址所在的盘块号。

 模拟成组链接法的原理;
设系统具有7个可用磁盘块,每组3块。
编程模拟实现成组链接法。输入请求的磁盘块数,模拟成组链接分配;输入回收
的磁盘块号,模拟成组链接回收。
测试:输入请求的磁盘块数,给出分配后的链接情况。输入回收的磁盘块号,给
出回收后的链接情况。

执 笔 人:沈超
编写时间:2011年10月10日