天天看點

OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次

計算機體系結構與記憶體層次

  • 記憶體最小的通路機關是1B=8bit,每個位元組都有自己的實體位址
  • 總線一般是一次讀取4B=32bit
  • cpu裡面有高速緩存cache和寄存器作為存儲幫手
  • 通路速度最快的是幾納秒,最慢的幾毫秒,相差百萬級
  • 程序會共享所需要的核心資源
  • 程序和核心的邏輯位址會經過中間的存儲管理單元轉換成實體位址,實作抽象、保護、共享、虛拟化
  • 作業系統核心放在記憶體的前面一部分,程序有一部分放在記憶體裡面,有一部分放在外存裡面,如圖
  • 程序的邏輯位址空間可能會大于實體記憶體總量
  • OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次
    OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次

作業系統采用的記憶體管理方式

  • 重定位:段位址+偏移
  • 分段:分成代碼、資料、堆棧
  • 分頁:把記憶體分成最基本的機關
  • 虛拟存儲:把資料存到硬碟上,使得邏輯位址空間大于實體記憶體空間

邏輯位址生成

  • 靜态重定位是指裝入時把邏輯位址轉換成實體位址,裝入後不變
  • 動态重定位指裝入後位址在執行中,子產品位址會改變
  • 編譯:生成若幹子產品
  • 連結:将子產品和庫函數連結到一起,形成一個完整的裝入子產品,此時生成邏輯位址
  • 運作:将完整的子產品裝入記憶體
OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次
  • 編譯和連結後每個目标子產品都以0号單元開始編址,不同程序有相同的邏輯位址
OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次
  • MMU位址轉換子產品
OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次

連續記憶體配置設定

  • 連續記憶體配置設定有兩種實作方式:固定分區配置設定,動态分區配置設定
  • 程序内部無法利用的碎片叫内碎片,配置設定單元之間無法利用的碎片叫外碎片
OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次
  • 動态配置設定下,程序大小可變,由作業系統确定那些是可用的那些是不可用的區域
  • 配置設定政策有三個:First-fit,Best-fit,Worst-fit
  • First-fit:找到第一個合适的分區就裝進去,簡單,但有外碎片,高位址有大塊記憶體空間,但大塊記憶體空間配置設定就要找比較久,較慢
  • Best-fit:找到比它大,而且大得最小的分區,相對簡單,大的分區不會被拆開,但還是有外碎片,釋放分區較慢
  • Worst-fit:找到比它大,而且大得最多的分區,不喜歡,不記
OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次

碎片整理

  • 将程序間的外碎片整理起來
  • 隻有可動态重定位的程式可以移動整理
  • 一般在程序等待狀态下時移動
  • 小個的外碎片會選擇跳過,避免開銷
OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次

分區兌換

  • 記憶體不夠用時,會把等待狀态的程序先放到外存
OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次

夥伴系統

  • 不斷将分區分成兩個小的部分,直到裝不下程序的前一次大小,最多空2^i-1内碎片
  • 外碎片合并時如果不能合成空間大小2的整數幂,将不合并
  • 目前unix和linux都有對夥伴系統的相關實作
OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次
OS學習筆記-5(清華大學慕課)計算機體系結構與記憶體層次

繼續閱讀