计算机系统与系统软件课程设计任务书

  • 格式:docx
  • 大小:157.02 KB
  • 文档页数:17

《计算机系统与系统软件》课程设计任务书

一、 课程设计目的

《计算机系统与系统软件》课程设计是计算机类专业的集中实践性环节之一,

是学习完《计算机系统与系统软件》课程后进行的一次全面的综合练习。其目的在

于加深对操作系统课程的理解,使学生更好地掌握操作系统的基本概念、基本原理、 及基本功能,理解操作系统在计算机系统中的作用、地位和特点,具有分析实际操 作系统,设计、构造和开发现代操作系统的基本能力,为今后从事的各种实际工作, 如设计、分析和改进各种系统软件和应用软件提供必要的软件理论基础。

二、 课程设计内容及要求

课程设计要求:

每位同学从下述设计任务中任选一个任务完成,上机验收运行结果,现场提问,

并提交所完成该任务的课程设计报告。

实验要求:

1) 上机前认真使用C语言编写好程序,采用Visual C++6.0作为编译环境;

2) 上机时独立调试程序

3) 上机验收运行结果,现场提问

4) 根据具体任务要求,提交课程设计实验报告,报告内容包括:课程设计目

的、内容、基本原理、模块划分、数据结构、算法设计、程序流程图(包括主

程序流程图、模块详细设计流程图等)、以及算法源码(必须有相关注释,以有 助于说明问题为宜,不得全盘打印而不加任何注释)、心得体会等。设计内容一 页式虚拟存储管理页面置换算法

1・目的和要求

在熟练掌握计算机虚拟存储技术的原理的基础上,利用一种程序设计语言模拟

实现几种置换算法,一方面加深对原理的理解,另一方面提高学生通过编程根据已

有原理解决实际问题的能力,为学生将来进行系统软件开发和针对实际问题提出高

效的软件解决方案打下基础

2 .实验内容

阅读教材《计算机操作系统》第四章,掌握存储器管理相关概念和原理。

模拟实现页式虚拟存储管理的三种页面置换算法(OPT、FIFO和LRU),并通过

比较性能得出结论。

前提:

(1) 页面分配采用固定分配局部置换。

(2) 作业的页面走向和分得的物理块数预先指定。可以从键盘输入也可以从 文件读入。

(3) 置换算法的置换过程输出可以在显示器上也可以存放在文件中,但必须 清晰可读,便于检验。

3 .实验环境

Windows操作系统、VC++6.0、C语言

4 .实验提示

(1)基础知识

存储管理是操作系统进行资源管理的一个重要功能。现代操作系统广泛采用虚 拟存储的技术对内存进行扩充。实现虚拟存储的一个主要技术手段就是将辅存和主

存统一管理,在二者之间进行对换,从而形成物理上两级而逻辑上一级的存储管理

系统。一个置换算法的好坏对这个逻辑上的单级虚存的性能起着极其重要的作用,

而且会影响处理机的调度性能。

对于本任务规定的前提:页面分配采用固定分配局部置换,则置换发生的时机

是作业已经将操作系统分配的固定数目的物理块全部用完且发生缺页的时候。此时

必须要将已经装入内存的部分逻辑页面换出以便将所缺的页面调入内存。置换算法

就是一个决定将内存中“哪一个”页面换出的算法。

(2)数据结构

要模拟实现某一个置换算法,有如下一些对象需要用相关的数据结构来描述:

•作业的页面走向(执行过程中对页面的访问顺序)。可以用数组也可以用字 符串。如果用数组,则页面走向的长度受数组长度限制,如果用字符串, 则需要将字符串进行解析,将字符串经过解析处理后变成一个页面的排列 顺序。考虑最佳置换算法(“向前看”)和其他置换算法(“向后看“) 的特点。

•页框(作业分得的物理块)。由于作业分得的物理块数在置换算法执行之前 已经确定,可以用一些比较简单的数据结构实现。在综合置换算法的原理,

可以灵活采用相应的数据结构,尽可能使程序的时间复杂度最低。如对于

FIFO,队列最合适,对于LRU,则数组和堆栈都比较合适,采用不同的数

据结构还要配合在数据结构上的相应操作才行。

(2)功能模块划分

大体上可以将整个程序的模块划分成如下几个部分:

1) 主模块:主要是初始化、界面和模块调用。

2) 页面走向输入模块。(从键盘读入数据结构或将页面走向写入文件)

3) 置换算法模块。

*判断模块。决定换出哪一块。每一种置换算法对应一种判断算法。

*调整模块。根据判断模块的结果,调整作业分得物理块集合中逻

辑页面的情况。 *置换过程输出模块(在显示器上显示或写入文件)。该模块每发

生一次置换,由置换算法模块调用一次。

* ............

除此之外,有些反复执行的操作考虑用过程或函数实现。总而言之,整

个程序应该结构清晰,界面友好,可读性好,易调试,易扩充,易维护。

1・目的和要求

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

存储管理技术。本实验的目的是:通过编写和调试请求页式存储管理中页面置换算

法的模拟程序以加深对存储管理方案的理解,了解虚拟存储技术的特点,掌握请求

页式存储管理的页面置换方法;通过编写和调试地址转换过程的模拟程序以加强对

地址转换过程的了解。

2

.实验内容

阅读教材《计算机操作系统》第四章,掌握存储器管理相关概念和原理。

(1) 用C语言实现对分页式存储管理中的硬件的地址转换和产生缺页中断。

(2) 设计页表。

分页式虚拟存储系统是把作业的副本存放在磁盘上,当作业被选中时,可把作

业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页

已在主存,哪些页尚未装入主存,页表的格式为:

页号 标志 主存块号 在磁盘上的位置

可根据页面置换算法的不同,页表构的内容可以作适当的增删。

(3)地址计算。

作业执行时,指令中的逻辑地址指出了参加运算的操作数存放的页号和单元 设计内容二 :拟存储管理(请求分页存储管理) 号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在

主存,这时根据关系式:

绝对地址二块号*块长+单元号

计算出欲访问的主存单元地址。按计算出的绝对地址可以取到操作数,完成一

条指令的执行。若访问的页标志为“0”,则表示该页不在主存,这时硬件发“缺页

中断”信号,由OS按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再

重新执行这条指令。

(4) 设计“地址转换”程序模拟硬件的地址转换工作。

当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转

换后的地址来代替一条指令的执行。当访问的页不在主存时,则输出“*该页页号”,

表示产生了一次缺页中断,执行缺页中断程序。该模拟程序的算法如图1.2所示。

如果访问页不在主存且页表未满,则调入一页并打印页表情况;如果该页不在

主存且页表已满,则产生缺页中断,模拟算法如图1.3所示。 (5)缺页中断模拟。 图1.2地址转换模拟流程图 修改页表:

第j页存在标志改为“0”

第Inumber页存在标记改为“1”

第Inumber页修改标记改为“0”

第Inumber页主存块号为第j页原主存块号

图御加缺号中瞄法流

实验中采用FIFO算法进行页面淘汰。把在主存的页的页号按进入主存的先后

次序排成队列,每次总是调出队首页。用数组存放页号的队列。若分配给该作业的

物理块数为m,则数组由m个元素组成,p[0],p[1]……p[m-1],队首指针head,

队尾指针tail。当装入新页时,将其页号装入数组。

3 .实验环境

Windows操作系统、VC++6.0、C语言

4 .实验主要步骤:

1. 启动C语言环境,新建文件。

2. 假定主存的每块长度为128个字节;现有一个共七页的作业,其中的第0 页至第3页已经装入主存,其余三页未装入主存;该作业的页表为: 如果作业依次执行的指令序列(操作,页号,单元号)为:

(+, 0, 070)、(+, 1, 050)、(*, 2, 015)、(存,3, 021)、(取,0,

056)、 (—,6, 040)、(移位,4, 053)、(+, 5, 023)、(存,1, 037)、(取,2, 078)、 (+, 0, 070)、(+, 4, 001)、(存,6, 084)。

运行设计的地址转换程序,显示或打印运行结果。因仅模拟地址转换,并不模

拟指令的执行,故可不考虑上述指令序列中的操作。

3. 编写程序运行。

设计内容三 模拟实现可变分区存储管理

1・目的和要求

在熟练掌握计算机分区存储管理方式的原理的基础上,利用一种程序设计语言

模拟实现操作系统的可变分区存储管理的功能,一方面加深对原理的理解,另一方

面提高学生通过编程根据已有原理解决实际问题的能力,为学生将来进行系统软件

开发和针对实际问题提出高效的软件解决方案打下基础。

2 .实验内容

设计合理的数据结构来描述存储空间:对于未分配出去的部分,可以用空闲分

区队列来描述,对于已经分配出去的部分,由装入内存的作业占据,可以将作业组

织成链表或数组。

实现分区存储管理的内存分配功能,要求选择至少两种适应算法(如首次适应

算法,循环首次适应算法,最佳适应算法,最坏适应算法)。

实现分区存储管理的内存回收算法:要求能够正确处理回收分区与空闲分区的 0 1

1 1

2 1

3 1

4 0

5 0

6 0 5 011

8 012

9 013

1 021

022

023

121 四种邻接关系。

当碎片产生时,能够进行碎片的拼接。

3 .实验环境

Windows操作系统、VC++6.0、C语言

4 .实验提示

(1) 基础知识

分区存储管理是操作系统进行内存管理的一种方式。现代操作系统广泛采用多

道程序设计的技术来提高系统吞吐量和内存的利用率。由于可变分区存储管理将一

个连续的作业装入一片大小与作业恰好相等的内存中,因而地址变换的算法简单,

需要的硬件支持少,变换效率高。但是最大的缺点是随着作业不断地进出内存,会

将内存逐渐分割成一些大小很小而数目较多的小块,而且一块中仅能容纳一道作 业,导致内存利用率较低。分区存储管理的另一个缺点是由于必须将整个作业的逻 辑地址空间全部装入内存作业才可以开始运行,因而这种存储管理的方式无法实现 内存的扩充。

(2) 数据结构

要模拟实现可变分区存储管理,有如下一些对象需要用相关的数据结构来描 述:

•内存中没有被存储管理程序分配给作业的部分,属于空闲内存,要求以分 区为单位进行统一管理以合理分配。包括对分区的描述(结构体)和对多 个分区的组织(表格或链表)。

•对于内存中已经分配给作业的那部分内存,当作业完成后应该将占据的内 存归还给系统,以便进行再分配。因此必须对已分配分区进行描述和组织,

以便进行内存的回收。

(2)功能模块划分

大体上可以将整个程序的模块划分成如下几个部分: