软考路——封装产生的虚拟空间

曾经,还在为看不懂的代码而发愁,曾经,还在为想不通的二进制转换而苦恼,而现在,却朝着软件设计师迈进。我们在不经意间,就会发生意想不到的变化。这是进步,也是成长。

在这个过程中,我可以得到很多,也会失去些什么,不过这些经历,是我生命中宝贵的财富。我想记录下来,然后分享给大家,让我们一同进步。

1、背景

正如我们所知道的一样,任何程序在计算机中运行都需要一个运行空间,可是在实存管理技术中,常常会出现以下问题:

1)要求运行的进程所需的内存空间大于系统的内存空间,只有部分进程能够装入内存运行,而其他进程只有留在外存中等待。

2)逻辑地址空间大于存储空间的进程无法在系统中运行

要想解决以上问题,必须引入虚拟存储。也就是,用户的逻辑地址空间可以比主存的绝对地址空间要大。对用户来说,好像计算机系统具有一个容量很大的主存储器,称为“虚拟存储器”。

2、原理

根据程序执行的互斥性和局部性两个特点,我们允许作业装入的时候只装入一部分,另一部分放在磁盘上,当需要的时候再装入到主存,这样以来,在一个小的主存空间就可以运行一个比它大的作业。同时,用户编程的时候也摆脱了一定要编写小于主存容量的作业的限制。

程序在运行时,如果所需要的页(段)已经调入内存,便可以继续执行下去。如果所需要的页(段)不在内存,此时程序应利用操作系统所提供的请求调页(段)功能,将该页(段)调入内存,以使程序能够运行下去。如果此时分配给该程序的内存已全部占用,不能装入新的页(段),则需要利用系统的置换功能,把内存中暂时不用的页(段)调出至磁盘上,腾出足够的内存空间,再将所要装入的页(段)调入内存,使程序能够继续运行下去。

由此可知,我们不必把整个作业放入内存空间,而是封装成页表形式,将其地址放入内存空间。以此来降低内存的负担,提高效率。

3、功能

(1)具有存储设备故障确定及自动触发故障设备接替功能。

  (2)具有存储协议的自由转换功能,从而能实现对不同协议下的,异构的存储和服务器环境的支持;

  (3)支持SAN存储配置,能实现存储体的集中式管理和存储容量扩充。

  (4)能通过TCP/IP协议,在网络上实现对存储器的各种远程同步操作;

  (5)可实现数据高速缓存、定时自动备份和恢复等。

4、分类

(1)对称式

对称式虚拟存储的控制交换设备直接存在于服务器和存储设备之间,用运行在虚拟存储控制设备中的管理软件来管理和配置所有的存储设备,组成一个大型的存储池,其中的若干存储设备以一个逻辑分区的形式被系统中所有的服务器访问。

(2)非对称式(通道外虚拟存储)

非对称式结构的虚拟存储系统主要通过软件手段实现虚拟存储控制。其虚拟存储控制器独立于数据传输通道之外,数据和控制信息在传输通道上分离。

虚拟存储控制器不直接参与数据的传输,运行在其上的虚拟存储控制软件对存储设备进行统一管理和配置并形成逻辑存储单元和存储设备映射表,任何服务器在初始化时,均要通过虚拟存储控制器获得存储设备的映射表并实现对虚拟存储单元的访问。

5、请求页式存储

(1)页表机制

纯分页的页表只有两项:页号和物理块。而请求分页存储管理增加了调入功能和置换功能,故需在页表中增加若干项,供程序在换进换出时参考。下面所示是一请求分页系统中的页表:

状态位P:记录该页是否在内存。P=0该页在内存;

P=1该页不在内存。访问字段A:记录该页多长时间没有被访问。

修改位M:记录该页在内存期间是否被修改过。

M=1该页调入内存后被修改过;

M=0该页调入内存后未被修改过。

外存地址:该页在外存上的地址

(2)页表存储管理示意图

(3)内存页面分配策略

平均分配
:将内存中的所有可供分配的物理块,平均分配给各个进程。这是最简单的分配方式,它看起来很公平,但实际上很不公平,因为它没有考虑进程的大小等因素。

按进程大小比例分配 :系统按进程的大小按比例分配物理块。若m为可用物理块总和,S为各进程页面总和,si为第i个进程的页面数,则为第i个进程分配的页面数为:

按进程优先级比例分配 :为照顾重要的、紧迫的进程,使其能够尽快的完成,可以为其分配较多的内存物理块。

(4)页面置换算法

先进先出FIFO(First InFirst Out)算法 

该算法是一种最简单的淘汰算法。首先淘汰在主存中驻留时间最长的页面。该算法的依据是,由于每个作业装入是依次进行的,一般来说,页号相邻的页之间逻辑关系最密切,所以最早调入主存的页不再被使用的可能性比最近调入主存的页要大。

该算法容易实现,但算法仅在按线性顺序访问地址空间时才是最理想的,那些在内存中驻留很久的页面却往往是被经常访问的。此外,该算法还有可能产生异常现象即当分配给一进程的页面增多时,缺页中断的次数反而增加。

最近最久不用页表的淘汰LRU算法 

LRU(Least Recently Used)算法的基本思想是:如果某一页面被访问了,那么它很可能马上又被访问;反之,如果某一页面很久没有被访问,那么最近也不会再次被访问。因此,该算法为每一个页面设置一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当须淘汰一个页面时,选择现有页面中t值最大的,即最近最久未使用的页面予以淘汰。

该算法比FIFO算法性能好,但实现起来比较困难。

最近最少使用页面淘汰算法LFU算法 

LFU(Least Frequendy Used)算法即把最近一段时间内,使用得最少的页面淘汰掉。实际上LFU算法可以看作LRU的一种近似算法。

总结:学习了计算机中的虚拟存储,知道了它可以使封装好的逻辑地址来代替物理地址,从而在运行内存中大大节省了空间。也正是因为如此,才产生了虚拟空间,从而提高了计算机的效率。在请求页式存储中,学习了一些常用的分配策略和置换方法,这些都是为了提高内存的利用率,优化系统的性能。在操作系统的学习中还学习了其他的一些知识,以后慢慢跟大家分享。

时间: 2024-11-05 13:34:58

软考路——封装产生的虚拟空间的相关文章

软考路——算法其实很简单

在参加中级软件设计师的考试中,公认的最难的一部分就是算法.可是自从老师给我们讲完算法之后,就感觉算法其实也没什么.软考中,算法被分为分治法.动态规划法.贪心算法和回溯法.那么,今天我们就来说一说这几种算法. 一.概念 1.分治法 分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同.递归的解这些子问题,然后将各子问题的解合并得到原问题的解. 适用范围:  1) 该问题的规模缩小到一定的程度就可以容易地解决 2) 该问题可以分解为若干个规模较小的相同问

软考路——码的世界

参加了软考之后,第一次接触到了计算机系统知识的内容,其主要介绍了计算机的结构组成,以及计算机的原理,都是一些很抽象的东西. 大家都知道计算机中的运算都是通过二进制进行的,但是由于计算机中只有加法运算器,所以在进行减法运算往往会出错,这也就要求我们要把减法运算转化为加法运算.于是就出现了各种码. 1.原码 原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制: [+1]原 = 0000 0001 [-1]原 = 1000 0001 原码是人脑最容易理解和计算

软考路——Pk适配器模式

一.适配器模式 1.概念 将一个类的接口转换成客户希望的另外一个接口.A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 2.对象适配器 使用对象组合,以修改的接口包装被适配者,被适配者的任何子类,都可以搭配着适配器使用. 把客户和接口绑定起来,而不是和实现绑定起来. 我们可以使用数个适配器,每一个都负责转换不同的后台类. 3.类适配器 类适配器,你需要多重继承才能实现它,这在Java和C#中是不可能的.但是当你使用多重继承语言的时候,还是可能遇到这样的需

软考路——进程与线程

一.进程 1.概念 程序是一组指令的有序集合.进程(Process)是具有一定独立功能的程序在一个数据集合上的一次运行活动.是系统进行资源分配和调度的一个独立单位. 程序本身没有任何运行的含义,只是一个静态实体.而进程则不同,它是程序在某个数据集上的执行,是一个动态实体.它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程. 2.特性 (1)结构性 进程包含程序及其相关数据结构.进程的实体包含进程控制块(PCB),程

软考之路(1)——浅解网络基础知识

对网络这一块的基础知识理解如下,以图文并茂的形式展出,便于分析和理解.解析与图如下: 物理层: 功能: 提供为建立.维护和拆除物理链路所需的机械.电气.功能和规程的特性: 提供有关在传输介质上传输非结构的位流及物理链路故障检测指示: 为数据链路层提供一个物理连接,以及他们的机械.电气.功能和过程性.如规定使用电缆和接头的类型,传送信号的电压.在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是位. 物理链路: 这里多次出现物理链路,简单解释物理链路:一条无源的点到点的物理线路段,中

我的软考之路(七)——数据结构与算法(5)之查找

上篇博文我重点介绍了八大内部排序,这篇博文(数据结构与算法的最后一课)重点介绍查找,我们依旧沿用上篇博文的风格,先简单介绍,再以例子重点讲解. 下面我们开始今天的旅行,首先祝你旅行愉快,呵呵. 静态查找 若查找目的是为了查询某个特定的数据是否在表中或检索某个特定数据的各种属性,则此类查找表为静态查找表. 1.顺序查找 基本原理:从表一端开始逐个和关键字进行比较,若找到一个记录和给定值相等,则查找成功,反之失败.再简单点就是,一个一个的比大小,看看是否相等. 例子: 顺序查找更适合于顺序存储结构和

软考之路--数据结构之线性表

数据就是数值,也就是我们通过观察.实验或计算得出的结果.数据有很多种,最简单的就是数字.数据也可以是文字.图像.声音等.数据可以用于科学研究.设计.查证等.结构,组成整体的各部分的搭配和安排,两者完美结合在一起,我们这样需要重新认识她,对她重新审视与定义:数据结构是程序设计的重要理论和技术基础,她所讨论的内容和技术,对从事软件项目的开发有重要作用,通过学习数据结构,我们学会从问题出发,分析和研究计算机加工的数据的特性,以便为应用所设计的数据悬着适当的逻辑结构.存储结构及其相应的操作方法,为提高应

软考之路--开始的开始,我们都是孩子

为了软考,奋力一搏,没钱.没人脉.没背景,在人人自危的竞争中,要靠自己的真实力,这次考试我们积极备考,不打无准备之战,软考的目的,不仅仅是为了软考通过这么简单,在软考的背后还隐藏着一个古老的秘密,那就是为了学习知识,在个人重构,机房合作,牛腩新闻发布系统等学习中,小伙伴们有没有这样的疑问,出现了很多问题,解决了,但是具体的原理自己并不是很理解,这个时候,软考来了,驾着五彩的云霞,翩翩来到你眼前,解决我们计算机体系知识不全的问题.在面临自考,等级考,软考,计算机学习,英语学习等犹如冰糖葫芦的串儿的

软考之路--计算机背后的故事

文法:1.法制:法规. 2.文章的作法. 3.语法.语言的结构方式.包括词的构成和变化﹐词组和句子的组织.文法即文章的书写法规,一般用来指以文字.词语.短句.句子的编排而组成的完整语句和文章的合理性组织.这个是我们小时候接触过的关于文法的概念,那个时候的文法总是会和主语,宾语,谓语等联系在一起. 二十年过去了,今天她再次出现在我面前,还是一样的眼神,藏在记忆深处的"文法"跟眼前的这个"她"有什么不一样呢?在计算机科学中,文法是编译原理的基础,是描述一门程序设计语言和