zoukankan      html  css  js  c++  java
  • 段页式存储管理

    段页式存储管理

    分段式和分页式管理都有他们各自的优缺点:

    优点 缺点
    分段式 很方便按照逻辑模块实现信息的共享和保护 如果段长过大,分配空间不方便,其次,会产生外部碎片
    分页式 内存利用率高,不会产生外部碎片,只有少量的页内碎片 不方便按照逻辑模块实现信息的共享和保护

    分段式管理中,产生的外部碎片当然有其解决的方法---“紧凑”,但是这需要花费较大的时间代价

    在段页式存储管理中,基本思想是:

    • 内存划分:按照分页式存储管理方案
    • 作业的管理:按照分段式存储管理进行分配

    这种新的系统既具有分段系统的便于实现、分段可共享、易于保护、可动态链接等一系列优点,又能像分页系统那样,很好地解决内存的外部碎片问题

    其大致的分格式图如下:

    段页式图

    • 段页式管理中,段间离散,段内离散,和分段式的段间离散,段内连续不一样
      • 段号的位数决定了每个进程最多可以分几个段
      • 页号位数决定了每个段最大有多少个页
      • 页内偏移量决定了页面大小、内存块大小是多少

    在段页式存储管理中,一个大的作业被分成许多小的段,然后每一段再进行分页,映射到内存中,如下面的格式:

    作业按照逻辑模块分段,然后再进行分段

    作业段页式映射内存

    利用段表和页表实现地址映射:

    映射图

    如果想知道,其中的物理地址,该怎么办?

    想想,我们在分段式管理中是怎么寻找的?通过段表,然后来寻得地址,然后页表中呢?通过页号和页内地址寻得,即如下:

    地址变换图

    在这个地址变换中,我们经历了三次的寻址

    • 第一次访问是访问内存中的段表
    • 第二次访问是访问内存中的页表
    • 第三次访问是访问真正的地址

    主要过程:

    • 首先根据逻辑地址得到段号、页号、页内偏移量
    • 然后判断段号是否越界
    • 不越界,则查询段表,找到相对应的段表项
    • 检查是否越界
    • 不越界,则根据页表存放块号、页号查询页表,找到对应的页表项
    • 计算出实际地址,访问实际地址

    为了提高执行速度,在地址变换机构中增设一个高速缓冲寄存器。每次访问它,都须同时利用段号和页号去检索高速缓存,若找到匹配项,便可从中得到相应页的物理块号,用来与页内地址一起形成物理地址;若未找到匹配表项,则仍需第三次访问内存。

    在页式、段式存储管理中,为获得一条指令或数据,须两次访问内存;而段页式则须三次访问内存

    back

    这是小睿的博客,如果需要转载,请标注出处啦~ヾ(≧▽≦*)o谢谢。
  • 相关阅读:
    20155327 2016-2017-3 《Java程序设计》第4周学习总结
    Hadoop常见错误解决
    正则表达式30分钟入门教程
    Java并发之CopyOnWriteArrayList
    web.xml加载顺序
    详解@Autowired、@Qualifier和@Required
    Java HashMap的死循环
    Redis学习手册(服务器管理)
    Redis介绍及常用命令
    Cron表达式
  • 原文地址:https://www.cnblogs.com/Yunrui-blogs/p/12616805.html
Copyright © 2011-2022 走看看