zoukankan      html  css  js  c++  java
  • 软考总结——虚存管理

    

    存储管理是操作系统的重要职能之中的一个,主要任务是对内存空间进行分配与回收。

    因为计算机内存容量有限(如今一般都是32位或64位系统),而外存储设备的容量增长速度很快,比如移动硬盘已经到了T的级别,这时假设要訪问这块儿移动硬盘内的大数据,我们的计算机就有点力不从心了。

    。。故在此基础上发展了虚拟存储系统。

     

    虚存理念:利用有限资源尽可能的运行大程序。对用户程序和内存进行分块,将用户程序一块块拿到内存中来,一个运行完后释放内存,下一个继续运行。

     

    虚拟存储通过将执行进程訪问的地址(逻辑地址、虚拟地址)与主存的物理地址(实际地址)分开,从而使得提供大于物理地址的逻辑地址空间成为可能。

     

    虚存管理的组织结构例如以下图示

        



    1.页式存储组织

        

           

        系统划分,逻辑地址=页号+页内地址。


        基本思想:内存分为固定大小的页。


        基本原理:将各进程的虚拟空间划分为若干个长度相等的页,把内存空间以与页相等的大小划分为大小相等的片或页面。採用请求调页或预调页技术实现内外存统一管理。



            已知程序逻辑地址为14位且前三位为011,页面大小2K,採用页式存储。


        已知逻辑地址14位,每一个页面2K=2^11,所以页内地址11位,页号为3位。

    又前三位为011变为十进制为3,相应的物理块号为b。地址变换步骤例如以下图所看到的

           

          


        长处:利用率高,产生的内存碎片小,内存间分配及管理简单。


        缺点:要有对应的硬件支持,添加了系统开销。

    请求调页的算法选择不当,有可能产生抖动现象。


    2.段式存储组织

        


    从用户角度划分,逻辑地址=段号+段内地址。


    基本思想:程序按逻辑单位分成基本独立的段。


    基本原理:系统为每个作业建立一个段表。其内容包含段号与内存起始地址的相应关系、段长和状态等。

       

        地址变换过程与页式变换同理,例如以下图所看到的

         



    长处:便于多道程序共享内存,便于对存储器的保护,各段程序改动互不影响


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

         

    3.段页式存储组织


       


    逻辑地址=基号+段号+页号+页内地址


    一个段表+一组页表。


    段页式存储组织是段式存储组织和页式存储组织的组合。这样能够充分利用两者的长处,实存等分为页。程序按逻辑模块分成段。当中,基号作为用户标志号存在。

        


    地址变换过程公式:


        (((x+s+p*2^n +d


    当中,X表示基号,(x)表示基寄存器中地址为x的单元的内容。S为段号。P表示页号,d表示页内地址。n表示页内地址的位数。


     长处:空间浪费小,存储共享easy、存储保护easy、能动态连接。


    缺点:因为软件的添加。复杂性和开销添加。须要的硬件以及占用的内存添加,运行速度大大下降。


     

    页面置换算法(从要运行的元素自身開始算起)


    在開始页面置换之前,要了解一个概念,页面置换是相对缺页现象来讲的。缺页,简单的来理解,就是因为实际主存是小于虚存的。因此可能会发生主存中已满,而要使用的页不在主存中,这时就会出现缺页现象。

     

          最优算法


                 查看后面的序列,最后被使用的元素被替换掉


          随机算法


                 随机淘汰,没有一定的约束性。


          先进先出


                 最先进入主存的元素先被淘汰。


          近期最少使用算法


                 查看前面的序列,最后被訪问的元素被替换掉




          


    初始keyword  

    2

    4

    6

    5

    3

    4

    2

    最优置换

    2

    2

    2

    2

    2

    2

    2

     

     

    4

    4

    4

    4

    4

    4

     

     

     

    6

    5

    3

    3

    3

    缺页(*

    *

    *

    *

    *

    *

     

     


     解析:


        主存初始加入页2,4,6,直接依次放入就可以,可是都会出现缺页现象。


    加入页5。主存中没有5。所以会出现缺页现象,依据最优置换的规定,5后面又依次出现了34,2所以6被替换掉。


    加入页3。主存中没有3。出现缺页现象。3后面出现了42,5被替换掉


    加入页4。主存中2,4,3包括3。没有缺页现象。不用进行最优置换。



    初始keyword  

    2

    4

    6

    5

    3

    4

    2

    先进先出

    2

    2

    2

    5

    2

    2

    2

     

     

    4

    4

    4

    3

    3

    3

     

     

     

    6

    6

    6

    4

    4

    缺页(*

    *

    *

    *

    *

    *

    *

     


    解析:


    主存初始加入页2,4,6,直接依次放入就可以。可是都会出现缺页现象。


    加入页5,主存中没有5,所以会出现缺页现象,依据先进先出的规定。主存中已有页出现顺序为2,4,6,所以2被替换掉


    加入页3,主存中没有3。出现缺页现象。主存中已有页出现顺序为4,6,5,所以4被替换掉


    加入页4,主存中没有4。出现缺页现象。主存中已有页出现顺序为6,2,3,所以6被替换掉


    加入页2,主存中有2。没有缺页现象。




    总结:


    没有学不会的知识,仅仅有不愿意学的知识。再简单的知识点,不学习不总结。也掌握不好;再难的知识点,仅仅要想学、愿意学、会学,那么也能够掌握。

    点滴积累吧!




    
  • 相关阅读:
    详解 final 和 static
    详解 方法的覆盖 —— toString() 与 equals()的覆盖
    详解 继承(上)—— 工具的抽象与分层
    详解 继承(下)—— super关键字 与 多态
    Java 基础讲解
    矩阵 的实现
    C语言 贪吃蛇
    巨大数——三则运算(+、-、*)
    浅谈 循环数组
    人体对电流的反应
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6964824.html
Copyright © 2011-2022 走看看