計算機體系結構&記憶體分層體系
- 計算機體系結構/記憶體分層體系
- 計算機硬體
- 基本結構
- 記憶體層次
- 作業系統的記憶體管理
- 地址空間&地址生成
- 地址空間定義
- 地址生成
- 邏輯地址生成
- 地址生成程序
- 地址安全檢查
- 連續記憶體分配
- 記憶體碎片
- 動態磁區分配
- 最先匹配
- 最佳匹配
- 最差分配
- 連續記憶體分配:壓縮式與交換式碎片整理
- 碎片整理:緊湊
計算機體系結構/記憶體分層體系
計算機硬體
基本結構

記憶體層次

作業系統的記憶體管理

在作業系統中管理記憶體的不同方法
1.程式重定位
2.分段
3.分頁
4.虛擬記憶體
5.按需分頁虛擬記憶體
地址空間&地址生成
地址空間定義
物理地址空間:硬體支持的地址空間
起始地址0,直到MAX(sys)
邏輯地址空間:在CPU運行的行程看到的地址
起始地址0,直到MAX(prog)

地址生成
邏輯地址生成

編譯時
假設起始地址已知
如果起始地址改變,必須重新編譯
加載時
如編譯時起始位置未知,編譯器需生成課重定位的代碼
加載時,生成絕對地址
執行時
執行時代碼可移動
需地址轉換(映射)硬體支持
地址生成程序
CPU
ALU:需要邏輯地址的記憶體內容
MMU:進行邏輯地址和物理地址的轉換
CPU控制邏輯:給總線發送物理地址請求
記憶體
發送物理地址的內容給CPU
或接收CPU資料到物理地址
作業系統
建立邏輯地址LA和物理地址PA的映射

地址安全檢查

連續記憶體分配
定義:給行程分配一塊不小于指定大小的連續的物理記憶體區域
記憶體碎片
記憶體碎片:空閑記憶體不能被利用

1>外部碎片:分配單元之間的未被使用記憶體

2>內部碎片
分配單元內部的未被使用記憶體,取決于分配單元大小是否要取整

動態磁區分配
1.定義:當程式被加載執行時,分配一個行程指定大小課邊的磁區(塊,記憶體快),磁區的地址是連續的
2.作業系統需要維護的資料結構
1>所有行程的已分配磁區
2>空閑磁區
3.動態磁區分配策略
最先匹配
最佳匹配
最差匹配
最先匹配
思路:分配n個位元組,使用第一個可用的空間比n大的空閑塊
示例:分配400位元組,使用第一個1kb的空閑塊

原理&實作:
1.空閑磁區串列按地址順序排序
2.分配程序時,搜索一個適合的磁區
3.釋放磁區時,檢查是否可與臨近的空閑磁區合并
優點:
1.簡單
2.在高低值空間有大塊的空閑分布
3.易于產生更大的空閑塊,向著地址空間的結尾
缺點:
1.外部碎片
2.分配大塊時較慢
3.不確定性
最佳匹配
思路
分配n位元組磁區時,查找并使用不小于n的最小空閑磁區
示例
分配400位元組,使用第3個空閑塊(最小)

原理&實作
1.空間磁區串列按照大小排序
2.分配時,查找一個合適的磁區
3.釋放時,查找并且合并臨近的空閑磁區(如果找到)
優點
1.大部分分配的尺寸較小時,效果很好
2.可避免大的空閑磁區被拆分
3.可減小外部碎片的大小
4.相對簡單
缺點
1.外部碎片
2.釋放磁區較慢
3.容易產生很多無用的小碎片
最差分配
思路
分配n位元組,使用尺寸不小于n的最大空閑磁區
示例
分配400位元組,使用第2個空閑塊(最大)

原理&實作
1.空閑磁區串列按從小到大排序
2.分配時,選最大磁區
3.釋放時,檢查是否可與臨近的空閑磁區合并,進行可能的合并,并調整空閑磁區串列順序
優點
1.中等大小的分配較多時,效果最好
2.避免出現太多小的碎片
缺點
1.釋放磁區較慢
2.外部碎片
3.容易破壞大的空閑磁區,因此后續難以分配大的磁區
連續記憶體分配:壓縮式與交換式碎片整理
碎片整理:緊湊
碎片整理
通過調整行程占用的磁區未知來減少或避免磁區碎片
碎片緊湊
1.通過移動分配給行程的記憶體磁區,以合并外部碎片
2.碎片緊湊的條件:所有應用程式課動態重定位


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/260578.html
標籤:其他
上一篇:洛谷P1739 運算式括號匹配
下一篇:【論文筆記】An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (ViT)
