日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)

發布時間:2024/7/23 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一. 分頁存儲概念
  • 二. 地址轉換
      • 1)為什么頁面大小為2的次冪?
  • 三. 頁表
      • 1)頁表項長度、頁號"隱含"
  • 四. 局部性原理與快表
  • 五. 二級頁表
      • 1)單級頁表存在的問題
      • 2)兩級頁表
      • 3)如何解決單級頁表的問題

一. 分頁存儲概念

  • 內存分成等大區域(頁框),頁框號從0開始
  • 進程也分成和頁框等大的區域(頁),頁號也從0開始
  • 頁框不能太大,可能產生過大內部碎片(進程的最后一個頁面不一定撐滿頁框)
  • 進程頁面 - 內存頁框一一對應。

二. 地址轉換

  • 找邏輯地址對應頁號
  • 找頁號對應內存的起始地址①
  • 計算邏輯地址在頁面內的偏移量②
  • 物理地址 = 頁面起始① + 頁內偏移量②

1)為什么頁面大小為2的次冪?

  • 方便計算
  • 偏移量最大值 - 對應一個頁面持有內存單元個數(k 位 - 2k2^k2k個)
  • 頁號 - 對應一個進程最多允許持有頁面個數(m 位 - 2m2^m2m個)

三. 頁表

  • 記錄每個頁面在內存中的位置
  • 頁表項 = 頁號 + 塊號(由塊號獲取內存地址)

1)頁表項長度、頁號"隱含"

  • 因為頁表項按序連續存于內存,且頁號長度相同,因此頁號無需明確表示。
  • 延申:理論上 3B 就夠,但是為了方便頁表的查詢,常常會讓一個頁表項占有更多字節,使得每個頁面恰好裝得下整數個頁表項(也就沒有內存碎片,比如此處 4KB % 3B = 1B 的內存碎片,但是 4KB % 4B = 0B)

四. 局部性原理與快表

  • 時間局部性:指令一段時間內可能多次執行(由于程序存在循環
  • 空間局部性:存儲單元附近的存儲單元可能被訪問(由于很多數據在內存中連續存放
  • 快表:高速緩沖寄存器,比內存塊。用來存放當前訪問的若干頁表項,達到加速地址變換的效果。
  • 慢表:內存中的頁表
  • 快表使用:
  • 快表:命中率高、一次訪問內存。滿則置換
  • 慢表:兩次訪存

五. 二級頁表

1)單級頁表存在的問題

  • 單級頁表太大,又由局部性原理知道一段時間內只需訪問幾個頁面即可,沒必要讓整個頁表常駐內存
  • 解決方法:對頁表分組,分組與內存塊等大??梢?strong>離散存放頁表分組了,也因此,需要再給離散的頁表建一個頁表——頂層頁表。

2)兩級頁表

  • 32位、頁 4KB、頁表項 4B 的情況下,可知頁表需要占用 2^10 = 1024 個頁框。
  • 那么,我們可以使用離散的1024個頁框,然后用一個頂級頁表來記錄這些頁框的塊號
  • 也就可以推出:一級頁號用 10B,二級頁號用 10B(二級頁表的排法)

3)如何解決單級頁表的問題

  • 需要記錄某一頁表是否在內存
  • 兩級頁表不夠,就用更多級
  • 多級頁表的訪存次數 = N級頁表用 N + 1 次(沒有快表的情況)

總結

以上是生活随笔為你收集整理的【学习笔记】第三章——内存 II(分页存储、快表与局部性原理、两级页表)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。