计算机操作系统实验指导书(罗晓清)

更新时间:2024-02-01 09:07:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《计算机操作系统》

实 验 指 导 书

适用专业:计算机科学与技术 信息与计算机

江南大学物联网工程学院

2013年11月

前 言

计算机操作系统(Operating System简称OS)是计算机中最重要的系统软件,也是最活跃的学科之一,是计算机相关本科专业的核心课程。通过本课程的学习使学生掌握操作系统的基本概念、技术、原理,具备一定的从不同层次分析与使用操作系统功能的能力。了解计算机操作系统方面的新技术、新理论与新发展。

本实验指导书,是根据《操作系统》课程教学大纲的要求而编写的,目的是让学生能够进一步了解操作系统的基本概念、原理,通过综合性、验证性和设计性等实验,熟练掌握操作系统的运行机理和各种算法思想,尤其是操作系统的核心功能。同时还希望通过实验进一步提高学生的动手能力和综合运用先修课程的能力。

由于编写仓促,难免有错误和不足之处,恳请读者不吝赐教。

1

目 录

前 言 .................................................................................................................... 1 实验一 进程调度..................................................................................................... 3 实验二 银行家算法................................................................................................. 6 实验三 存储管理................................................................................................... 10

2

实验一 进程调度

实验学时:4学时 实验类型:设计 实验要求:必修 一、

实验目的

多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。 二、

实验内容

1.优先权法、轮转法 简化假设

1) 进程为计算型的(无I/O) 2) 进程状态:ready、running、finish 3) 进程需要的CPU时间以时间片为单位确定 2.算法描述

1) 优先权法——动态优先权

当前运行进程用完时间片后,其优先权减去一个常数。 2) 轮转法 三、

流程图

3

开始

键盘输入进程数n,和调度方法的选择

N

优先权法? 轮转法 Y 产生n个进程,对每个进程产生一个PCB,并用随机数产生进程的优先权及进程所需的CPU时间 按优先权大小,把n个进程拉成一个就绪队列 初始化其他数据结构区 链首进程投入运行 时间片到,进程所需的CPU时间减1,优先权减3,输出个进程的运行情况 N 所需的CPU时间=0? 将进程插入就绪队列 Y 撤销进程 N 就绪队列为空?

Y 结束

B 产生n个进程,对每个进程用随机数产生进程的轮转时间片数及进程所需的时间片数,已占用CPU的时间片数置为0

按进程产生的先后次序拉成就绪队列链

链首进程投入运行

时间片到,进程所需时间片数减1,已占用CPU时间片数加1 输出各进程的运行情况 Y 进程所需时间片数=0? N

撤销该进程 N

就绪队列为空吗?

Y 结束

B N 占用CPU的时间片数=轮转时间片数?

Y

占用CPU的时间片数置为0 把该进程插入就绪队列尾 4

四、实验要求

1.产生的各种随机数的取值范围加以限制,如所需的CPU时间限制在1~20之间。 2.进程数n不要太大通常取4~8个 3.使用动态数据结构 4.独立编程 5.至少三种调度算法 五、实验报告

主要包括实验预习和实验报告两部分。

学生在上机做实验前,要根据教师布置的题目,对实验内容应作相应的预习,编写相关程序,准备好测试数据,进行静态检查后方可上机。

实验结束后,根据实验过程和结果写出实验报告,主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。

严禁抄袭或拷贝他人的成果,自觉培养科学、严谨的作风。 六、其它说明

学生在实验过程中应遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理。

5

实验二 银行家算法

实验学时:4学时 实验类型:设计 实验要求:必修 一、

实验目的

死锁会引起计算机工作僵死,因此操作系统中必须防止。本实验的目的在于让学生独立的使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的知识的理解。 二、

实验要求

设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源。

系统能显示各个进程申请和释放资源,以及系统动态分配资源的过程,便于用户观察和分析; 三、

数据结构

1.可利用资源向量Available ,它是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源的数目,其初始值是系统中所配置的该类全部可用资源数目。其数值随该类资源的分配和回收而动态地改变。如果Available(j)=k,标是系统中现有Rj类资源k个。

2.最大需求矩阵Max,这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max(i,j)=k,表示进程i需要Rj类资源的最大数目为k。

3.分配矩阵Allocation,这是一个n×m的矩阵,它定义了系统中的每类资源当前一分配到每一个进程的资源数。如果Allocation(i,j)=k,表示进程i当前已经分到Rj类资源的数目为k。Allocation i表示进程i的分配向量,有矩阵Allocation

6

的第i行构成。

4.需求矩阵Need,这是一个n×m的矩阵,用以表示每个进程还需要的各类资源的数目。如果Need(i,j)=k,表示进程i还需要Rj类资源k个,才能完成其任务。Need i表示进程i的需求向量,由矩阵Need的第i行构成。 上述三个矩阵间存在关系:Need(i,j)=Max(i,j)-Allocation(i,j); 四、

银行家算法

参考教材P96 五、

安全性算法

1.设置两个向量。

Work:它表示系统可提供给进程继续运行的各类资源数目,它包含m个元素,

开始执行安全性算法时,Work = Available。

Finish:它表示系统是否有足够的资源分配给进程,使之运行完成,开始Finish

(I)=false;当有足够资源分配给进程Pi时,令Finish(i)=true;

2.从进程集合中找到一个能满足下述条件的进程。 Finish(i)= = false; Need i ≤work;

如找到则执行步骤3;否则,执行步骤4;

3.当进程Pi获得资源后,可顺利执行直到完成,并释放出分配给它的资源,故应执行

Work = work + Allocation i Finish(i)=true;转向步骤2;

4.若所有进程的Finish(i)都为true,则表示系统处于安全状态;否则,系统处于不安全状态。 六、流程

7

始 开 输入资源数m, 及各类资源总数,初始化Available向量 所有进程运行都结束 调用银行家算法,及安全性算法,完成分配,或并给出提示 该进程的Need向量为0 N 输入该进程的资源请求量Request 结 束 Y Need矩阵为0 N 任选一个进程作为当前进程 Y 初始化need 矩阵 i加1 max≤资源总数 Y i≤n N 输入进程i的最大需求向量max。 N 提示错误重新输入 输入进程数n,i=1 Y 该进程已运行结束 8

七、实验报告

主要包括实验预习和实验报告两部分。

学生在上机做实验前,要根据教师布置的题目,对实验内容应作相应的预习,编写相关程序,准备好测试数据,进行静态检查后方可上机。

实验结束后,根据实验过程和结果写出实验报告,主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。 严禁抄袭或拷贝他人的成果,自觉培养科学、严谨的作风。 八、其它说明

学生在实验过程中应遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理。

9

实验三 存储管理

实验学时:4学时 实验类型:设计 实验要求:必修 一、实验目的

存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。

本实验的目的是通过请求页式管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 二、实验内容

(1) 通过计算不同算法的命中率比较算法的优劣。同时也考虑了用户内存

容量对命中率的影响。

命中率?1?

页面失效次数页地址流长度页面失效次数为每次访问相应指令时,该指令所对应的页不在内存中

的次数。

在本实验中,假定页面大小为1k,用户虚存容量为32k,用户内存容

量为4页到32页。

(2) produce_addstream通过随机数产生一个指令序列,共320条指令。

A、 指令的地址按下述原则生成:

1) 50%的指令是顺序执行的

2)25%的指令是均匀分布在前地址部分

3) 25%的指令是均匀分布在后地址部分

10

B、 具体的实施方法是:

1) 2)

在[0,319]的指令地址之间随机选取一起点m; 顺序执行一条指令,即执行地址为m+1的指令;

3) 在前地址[0,m+1]中随机选取一条指令并执行,该指令的地

址为m’; 4) 5) 6)

顺序执行一条指令,地址为m’+1的指令

在后地址[m’+2,319]中随机选取一条指令并执行; 重复上述步骤1)~5),直到执行320次指令

C、 将指令序列变换称为页地址流

在用户虚存中,按每k存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:

第0条~第9条指令为第0页(对应虚存地址为[0,9]); 第10条~第19条指令为第1页(对应虚存地址为[10,19]); 。。。。。。

第310条~第319条指令为第31页(对应虚存地址为[310,319]); 按以上方式,用户指令可组成32页。

(3)计算并输出下属算法在不同内存容量下的命中率。

1)先进先出的算法(FIFO); 2)最近最少使用算法(LRU);

11

三、系统框图

开 始 生成地址流 形成地址页号 输入算法号S N 1≤S≤4 Y 是否用其他算法继续 N 结 束 Msize≤32 Y S=? 1 2 3 4 用户内存空间msize=2 提示出错,重新输入 OPT() FIFO() LRU() LFU() Msize加1

一、 运行结果

运行程序:

12

a、 终端先显示: Start memory management.

Producing address flow, wait for while, please. b、 地址流、地址页号流生成后,终端显示: There are algorithms in the program

1、 Optimization algorithm 2、 Least recently used algorithm 3、 First in first out algorithm 4、 Least frequently used algorithm Select an algorithm number, please.

用户输入适当淘汰算法的号码,并按回车,若是第一次选择,输出相应的地址页号流。然后输出该算法分别计算的用户内存从2k~32k时的命中率,若输入的号码不再1~4中,则显示:

there is not the algorithm in the program,并重复b。

c、 输出结果后,终端显示 “do you try again with anther algorithm(y/n)”。若键

入y则重复b,否则结束。(一般讲四种算法都用过后结束,以便比较)。

二、 运行结果讨论

1、 比较各种算法的命中率

2、

七、实验报告

分析当用户内存容量增加是对命中率的影响

主要包括实验预习和实验报告两部分。

学生在上机做实验前,要根据教师布置的题目,对实验内容应作相应的预习,编写相关程序,准备好测试数据,进行静态检查后方可上机。

实验结束后,根据实验过程和结果写出实验报告,主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。

13

严禁抄袭或拷贝他人的成果,自觉培养科学、严谨的作风。 八、其它说明

学生在实验过程中应遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理。

14

本文来源:https://www.bwwdw.com/article/mldw.html

Top