虚存管理

1、虚存简介


  虚拟存储器又称虚拟存储系统,或虚拟存储体系等,由主存储器和联机工作的外部存储器共同组成。在目前的计算机系统中,主存储器通常用动态随机存储器(DRAM)实现,它的存储容量相对比较小,速度比较快,单位容量的价格比较贵。

  联机工作的外部存储器通常为磁盘存储器,它的存储容量很大,与主存储器相比,速度很低,单位容量的价格很便宜。这两个存储器在硬件和系统软件的共同管理下,对于应用程序员,可以把它们看来是一个单一的存储器,是一个存储容量非常大的主存储器。

  虚存一般分为页式存储、段式存储和段页式存储。


2、页式存储


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

  注意:程序分页的大小和内存中分页的大小需要相同,否则会导致出错;同时它们之间通过页表进行对应,程序页通过页表映射到内存中去。 页表中储存了程序的逻辑地址和内存中的块号地址,如下:


            虚存管理_第1张图片


  下面来看一下页式存储的组织:


         虚存管理_第2张图片


  逻辑地址分为页号和页内地址,知道页号可以通过页表得到内存中实际地址,然后以页表中对应块号的二进制表现形式为高位,逻辑地址中的页内地址为低位构成的地址就是内存中的实际地址,即物理地址。

  页内地址如何得到?

  将逻辑地址转换为二进制,然后得到页面大小,如果页面大小为4K,那么2的12次方为4K,所以页内地址就是逻辑地址的低12位。


3、段式存储



            虚存管理_第3张图片


  页式存储是从操作系统的角度分为多个页,而段式存储是从用户的角度将一个程序分为多个段,段的大小一般比页的大小要大的多,而且可以不相等的,而页的大小都是相同的。理念是将程序分为多个段,然后分别读到内存中去,和页式存储系统很类似。

  下面来看一下段式存储的组织:


             虚存管理_第4张图片


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

  段式存储计算内存中实际地址的方式和页式存储也是十分类似的,首先通过段号找到基址然后以基址为高位,位移量为低位组成实际地址。


4、页式存储和段式存储的优缺点


  (1)页式存储


     优点:利用率高,产生的内存碎片小,内存间分配及管理简单;

     缺点:要有相应的硬件支持,增加了系统开销,请求调页的算法如果选择不当,有可能产生抖动现象。


  (2)段式存储


     优点:便于多道程序共享内存,便于对存储器的保护,搁几程序修改互不影响;

     缺点:内存利用率低,内存碎片浪费大。


5、段页式存储


  由于页式存储和段式存储都有各自的缺点,所以提出了段页式存储,段页式存储的组织如下:


          虚存管理_第5张图片


  段页式存储包括一个段表和多个页表的,因为每一个段都对应着一个页表。页式存储是针对操作系统角度的;而段式存储是从用户角度划分的,所以是从逻辑角度划分而成。


  段页式存储的优缺点:


     优点:空间浪费小、存储共享容易、存储保护容易、能动态连接。

     缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降。



虚存管理_第6张图片

你可能感兴趣的:(操作系统,段式存储,虚存管理,段页式存储,页式存储)