zoukankan      html  css  js  c++  java
  • 操作系统:分页与分段存储管理方式

    • 连续内存分配的缺点
      • 分配给一个程序的物理内存是连续的
      • 内存利用率较低
      • 有外碎片、内碎片的问题
    • 非连续内存分配的优点
      • 一个程序的物理地址空间是非连续的
      • 更好的内存利用和管理
      • 允许共享代码与数据
      • 支持动态加载和动态链接
    • 非连续内存分配的缺点:
      • 如何建立虚拟地址和物理地址之间的转换(硬件方案、软件方案)
    • 两种硬件方案
      • 分段
        image
        image
      • 分页
        • 划分物理内存至固定大小的帧(frame):大小是2的幂
        • 划分逻辑地址空间至相同大小的页(page):大小是2的幂
          image
        • 分页机制性能问题:
          • 访问一个内存单元需要2次内存访问:一次用于获得页表项,一次用于访问数据
          • 页表可能非常大(如何处理? 缓存 + 间接访问(多级页表))
        • TLB
          • TLB是一种访问速度比内存快很多的高速缓存(TLB不是内存!)。
          • 若快表命中,则直接取出该页对应的帧号,再将帧号和页内偏移组合形成物理地址。(一次访问内存)
          • 若快表未命中,则需要访问内存中的页表,找到对应页表项,获得页表项存放的帧号,再将帧号与页内偏移组合形成物理地址。(两次访问内存)
            image
        • 多级页表
          • 多级页表的访问次数(假设没有快表) --- n级页表访问一个逻辑地址需要n+1次访问内存。
    • 分段与分页内存管理的区别
      • 分段划分的是程序的逻辑地址空间。分段对用户是可见的。
      • 分页划分的是物理内存空间。分页对用户是不可见的。
      • 页的大小固定,且由系统决定。段的长度不固定,决定于用户编写的程序。
      • 分页的用户进程地址空间是一维的。分段的用户进程地址空间是二维的。
      • 分段、分页都需要两次访问内存(分段页可以引入快表)。
  • 相关阅读:
    html的URL参数传值问题
    html背景图片拉伸至全屏
    Laravel 用户验证Auth::attempt fail的问题
    HTML中meta的应用
    ubuntu升级php版本
    Laravel 目录结构分析
    css颜色渐变在不同浏览器的设置
    谷歌浏览器(Chrome)离线包的下载方法!
    RAD Studio 10 up1欢迎页证书不可用
    MySQL
  • 原文地址:https://www.cnblogs.com/xiaobaizzz/p/12266828.html
Copyright © 2011-2022 走看看