下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

虚存管理之段式,页式,段页式存储要点

作者:课课家教育     来源: http://www.kokojia.com点击数:2579发布时间: 2017-04-30 08:30:00

标签: 操作系统虚存管理段式存储页式存储段页式存储

  虚存一般分为页式存储、段式存储和段页式存储。那对于虚存管理你了解多少呢?那小编现在带你了解一下它好啦!
  1、虚存简介
  虚拟存储器又称虚拟存储系统,或虚拟存储体系等,由主存储器和联机工作的外部存储器共同组成。在目前的计算机系统中,主存储器通常用动态随机存储器(DRAM)实现,它的存储容量相对比较小,速度比较快,单位容量的价格比较贵。
  联机工作的外部存储器通常为磁盘存储器,它的存储容量很大,与主存储器相比,速度很低,单位容量的价格很便宜。这两个存储器在硬件和系统软件的共同管理下,对于应用程序员,可以把它们看来是一个单一的存储器,是一个存储容量非常大的主存储器。
  2、页式存储
  理念:利用有限的资源尽可能的执行大一些的程序。如果我的内存64K,而需要执行128K的程序,在实存中不可能执行,因为内存无法一次性将程序放进来;如果将用户程序和内存进行分块,然后将程序一块块的拿到内存中去,执行完的程序块就立即退出内存,然后换没有执行的程序块进入内存来执行。这样就使得执行比内存容量大的程序成为可能。页式存储就是基于这种理念。
  注意:程序分页的大小和内存中分页的大小需要相同,否则会导致出错;同时它们之间通过页表进行对应,程序页通过页表映射到内存中去。 页表中储存了程序的逻辑地址和内存中的块号地址,如下:


利用有限的资源尽可能的执行大一些的程序。如果我的内存64K,而需要执行128K的程序,在实存中不可能执行,因为内存无法一次性将程序放进来;如果将用户程序和内存进行分块,然后将程序一块块的拿到内存中去,执行完的程序块就立即退出内存,然后换没有执行的程序块进入内存来执行。这样就使得执行比内存容量大的程序成为可能。页式存储就是基于这种理念。  下面来看一下页式存储的组织:

页式存储组织的主要优点是利用率高,产生的内存碎片小,内存空间分配及管理简单。主要缺点是要有相应的硬件支持,增加了系统开销;请求调页的算法如选择不当,有可能产生抖动现象。

如:某虚拟存储器的用户编程空间共32个页面,每页1KB,主存为16KB。假定某时刻该用户页表中已调入主存的页面的虚页号和物理页号对照表如下


程序分页的大小和内存中分页的大小需要相同,否则会导致出错;同时它们之间通过页表进行对应,程序页通过页表映射到内存中去。 页表中储存了程序的逻辑地址和内存中的块号地址,如下:  逻辑地址分为页号和页内地址,知道页号可以通过页表得到内存中实际地址,然后以页表中对应块号的二进制表现形式为高位,逻辑地址中的页内地址为低位构成的地址就是内存中的实际地址,即物理地址。
  页内地址如何得到?
  将逻辑地址转换为二进制,然后得到页面大小,如果页面大小为4K,那么2的12次方为4K,所以页内地址就是逻辑地址的低12位。
  3.页式存储管理基本原理
  1.等分内存
  2.逻辑地址
  3.内存分配
  页式存储管理实现原理
  1.页表
  2.地址映射过程
  3.页面的共享与保护
  4.分段系统的基本原理
  1.分段
  2.段表
  3.地址变换机构
  5.段式存储

段式存储是从用户的角度将一个程序分为多个段,段的大小一般比页的大小要大的多,而且可以不相等的,而页的大小都是相同的。理念是将程序分为多个段,然后分别读到内存中去,和页式存储系统很类似。  如果说推动存储管理方式从固定分区到动态分区分配,进而又发展到分页存储管理方式的主要动力,是提高内存利用率,那么,引入分段存储管理方式的目的,则主要是为了满足用户(程序员)在编程和使用上多方面的要求,其中有些要求是其它几种存储管理方式所难以满足的。因此,这种存储管理方式已成为当今所有存储管理方式的基础。
  页式存储是从操作系统的角度分为多个页,而段式存储是从用户的角度将一个程序分为多个段,段的大小一般比页的大小要大的多,而且可以不相等的,而页的大小都是相同的。理念是将程序分为多个段,然后分别读到内存中去,和页式存储系统很类似。
  下面来看一下段式存储的组织:

段式存储分的段比较大,有利于资源共享。例如我们将一个程序分为程序段和数据段,那么如果有多个用户使用这个程序时,我们就可以只运行一个数据段,而运行多个数据段,因为每个用户用的程序都是一致的,而各个用户的数据却是不相同的。

  段式存储分的段比较大,有利于资源共享。例如我们将一个程序分为程序段和数据段,那么如果有多个用户使用这个程序时,我们就可以只运行一个数据段,而运行多个数据段,因为每个用户用的程序都是一致的,而各个用户的数据却是不相同的。
  段式存储计算内存中实际地址的方式和页式存储也是十分类似的,首先通过段号找到基址然后以基址为高位,位移量为低位组成实际地址。
  6.页式存储和段式存储的优缺点
  (1)页式存储
  ● 优点:利用率高,产生的内存碎片小,内存间分配及管理简单;
  ● 缺点:要有相应的硬件支持,增加了系统开销,请求调页的算法如果选择不当,有可能产生抖动现象。
  (2)段式存储
  ● 优点:便于多道程序共享内存,便于对存储器的保护,搁几程序修改互不影响;
  ● 缺点:内存利用率低,内存碎片浪费大。
  7.段页式存储
  由于页式存储和段式存储都有各自的缺点,所以提出了段页式存储,段页式存储的组织如下:


段页式存储包括一个段表和多个页表的,因为每一个段都对应着一个页表。页式存储是针对操作系统角度的;而段式存储是从用户角度划分的,所以是从逻辑角度划分而成。  段页式存储包括一个段表和多个页表的,因为每一个段都对应着一个页表。页式存储是针对操作系统角度的;而段式存储是从用户角度划分的,所以是从逻辑角度划分而成。
  段页式存储的优缺点:
  ● 优点:空间浪费小、存储共享容易、存储保护容易、能动态连接。
  ● 缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。
  补充:8.分段存储管理方式的引入
  引入分段存储管理方式,主要是为了满足用户和程序员的下述一系列需要:
  1) 方便编程
  通常,用户把自己的作业按照逻辑关系划分为若干个段,每个段都是从0开始编址,并有自己的名字和长度。因此,希望要访问的逻辑地址是由段名(段号)和段内偏移量(段内地址)决定的。例如,下述的两条指令便是使用段名和段内地址:
  LOAD 1,[A] |〈D〉;
  STORE 1,[B] |〈C〉;
  其中,前一条指令的含义是将分段A中D单元内的值读入寄存器1;后一条指令的含义是将寄存器1的内容存入B分段的C单元中。
  2) 信息共享
  在实现对程序和数据的共享时,是以信息的逻辑单位为基础的。比如,共享某个例程和函数。分页系统中的“页”只是存放信息的物理单位(块),并无完整的意义,不便于实现共享;然而段却是信息的逻辑单位。由此可知,为了实现段的共享,希望存储管理能与用户程序分段的组织方式相适应。
  3) 信息保护
  信息保护同样是对信息的逻辑单位进行保护,因此,分段管理方式能更有效和方便地实现信息保护功能。
  4) 动态增长
  在实际应用中,往往有些段,特别是数据段,在使用过程中会不断地增长,而事先又无法确切地知道数据段会增长到多大。前述的其它几种存储管理方式,都难以应付这种动态增长的情况,而分段存储管理方式却能较好地解决这一问题。
  5) 动态链接
  动态链接是指在作业运行之前,并不把几个目标程序段链接起来。要运行时,先将主程序所对应的目标程序装入内存并启动运行,当运行过程中又需要调用某段时,才将该段(目标程序)调入内存并进行链接。可见,动态链接也要求以段作为管理的单位。
  这篇文章到这就结束了,小编写的内容对你们有用吗!有的可以点个赞,也可以分享给你的朋友们哦!更多知识点,尽在课课家,还等什么!

赞(31)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程