第五講 計算機體系結構 內存層次

總算搞完Lab1

管理存儲介質的東西

cpu 內存 io 設備

內存一次最小單位 8 bit
計算機 總線32bit數組

有大量的數據要讀寫,CPU內有高速緩存
內存層次,兩級緩存緩存

操做系統的內存管理

內存 以字節爲單位進行訪問
磁盤 扇區編號 每個扇區512 字節最小單位數據結構

內存管理系統的要求

抽象,保護,共享,虛擬化app

內存管理機制:
+ 重定位:(relocation)
+ 分段 : (segmentation)
+ 分頁 : (paging)
+ 虛擬儲存(virtual memory)
多數系統 按 需頁式虛擬儲存
操作系統

地址空間 & 地址生成

從寫出來的符號 到總線上的物理地址3d

地址空間 :
物理地址空間 硬件支持的地址空間 起始是0 知道 MAXsys
邏輯地址空間 CPU運行時 進程看到的地址 0- MAX progcode

邏輯地址根據方法轉換成物理地址blog

邏輯地址的生成

編譯時:
假設起始地址已知
若是起始地址改變,必須從新編譯排序

加載時:
編譯時起始位置位置,編譯器徐生成可重定位的代碼(reloctable code)
加載時,生成絕對地址進程

執行時:
執行時代碼可移動
需地址轉換(映射)硬件支持

地址的生成過程:


邏輯地址到物理地址的傳喚

地址檢查

連續內存分配

連續內存分配和內存碎片

你要分配510字節 結果分配了512字節 剩下幾個字節就是內碎片
取決於分配單元大小是否要取整。

動態分區分配

最早匹配策略


空閒分區鏈表
First Fit Allocation

Best Fit Allocation


合併還慢 由於要找地址臨近 可是倒是按照大小排序的

Wrost Fit Allocation

碎片整理


緊湊(ompaction)
碎片緊湊: 否有應用程序都是能夠動態重定位

分區對換
Swapping in/out
對換到對換區內

處於等待狀態的程序搬到外存區
有一個對換區


夥伴系統

夥伴系統的實現 Buddy System

整個可分配的分區大小 的策咯

數據結構

空閒塊的二維數組
第一維 由小到大 排成第一位
同大小就按地址排序


u core 中的物理內存管理

ucore 已經實現了

相關文章
相關標籤/搜索