作業系統 『動態(可變)分割槽分配』
動態(可變)分割槽分配
動態建立分割槽:
- 在裝入程式時按其初始要求分配;
- 在其執行過程中通過系統呼叫進行分配或改變分割槽大小。
優點:沒有內碎片。
缺點:有外碎片;
“邏輯地址>限長暫存器值”時,形成一個“地址越界”的程式性中斷事件
地址轉換公式:絕對地址=基址暫存器值+邏輯地址
分割槽分配中的資料結構
空閒分割槽表:
記錄每個空閒分割槽的情況。每個空閒分割槽佔一個表目,表目中包括分割槽序號、分割槽始址及分割槽的大小等資料項。
空閒分割槽鏈:
分割槽分配演算法(基於順序搜尋)
首次適應演算法FF(First Fit):將地址最小的夠用的空間分配出去
(最先匹配法(first-fit))首址遞增排列
優點:優先利用記憶體低址部分。
缺點:低址部分不斷劃分,產生小碎片;每次查詢從低址部分開始,增加了查詢的開銷。
迴圈首次適應演算法NF(Next Fit):從上次分配位置開始搜尋,將地址最小的夠用的空間分配出去
(下次匹配法(next-fit))
為實現演算法,需要:
- 設定一起始查尋指標
- 採用迴圈查詢方式
優點:使記憶體空閒分割槽分佈均勻,減少查詢的開銷
缺點:缺乏大的空閒分割槽
最佳適應演算法BF(Best Fit):將夠用的長度最小的空間分配出去
空閒區按大小遞增排列!
缺點:產生許多難以利用的小空閒區(外碎片)
最壞適應演算法WF(Worst Fit):將夠用的長度最大的空間分配出去
空閒區按大小遞減排列!
- 不會留下太多的小空閒分割槽;
- 但較大的空閒分割槽不被保留。
分配演算法對比
分割槽分配操作
分配記憶體
設請求的分割槽大小為u.size,
表中每個空閒分割槽的大小表示為m.size,
若m.size- u.size <= size(最小閾值),
將整個分割槽分配給請求者,
否則從分割槽中按請求的大小劃出一塊記憶體空間分配,
餘下部分留在空閒鏈中,將分配區首址返回給呼叫者。
注:基於索引搜尋的分割槽分配演算法
快速適應演算法:
將空閒分割槽,按其容量大小,進行分類,對於每一類的所有空閒分割槽,單獨設立一個空閒分割槽連結串列
夥伴系統:
分割槽大小均為2的k次冪,將空閒分割槽按分割槽的大小進行分類,並單獨設立一個空閒分割槽雙向連結串列。
夥伴需滿足的條件:
- 兩個塊大小相同;
- 兩個塊地址連續;
- 兩個塊必須是同一個大塊中分離出來的
雜湊演算法:
構造一張以空閒分割槽大小為關鍵字的雜湊表,該表的每一個表項記錄了一個對應的空閒分割槽連結串列表頭指標。
相關文章
- 實驗、可變分割槽儲存管理系統模擬 —— 最先適應分配演算法演算法
- Hive的靜態分割槽與動態分割槽Hive
- 重灌p690分割槽的作業系統作業系統
- Hive動態分割槽Hive
- Hive中靜態分割槽和動態分割槽總結Hive
- 『學了就忘』Linux檔案系統管理 — 62、手動分配swap分割槽Linux
- Hive動態分割槽詳解Hive
- 作業系統動態庫呼叫過程作業系統
- 【作業系統筆記】動態儲存管理作業系統筆記
- Windows10系統分割槽中提示動態磁碟無效如何解決Windows
- 使用HMC接管透過串列埠或顯示卡安裝的分割槽作業系統串列埠作業系統
- 使用HMC接管通過串列埠或顯示卡安裝的分割槽作業系統串列埠作業系統
- hive 動態分割槽插入資料表Hive
- 非 LVM 分割槽動態擴容LVM
- hive Sql的動態分割槽問題HiveSQL
- Android系統常用分割槽Android
- Mac磁碟如何分割槽?教你Mac系統磁碟自由分割槽教程!Mac
- Kafka分割槽分配策略(Partition Assignment Strategy)Kafka
- win10重灌系統分割槽教程_win10重灌系統是怎麼分割槽Win10
- Linux系統中分割槽是什麼?Linux系統分割槽方式有幾種?Linux
- 作業系統綜合題之“銀行家演算法,畫出試分配後的資源分配狀態圖”作業系統演算法
- Linux系統如何進行分割槽?swap分割槽是什麼?Linux
- 作業系統中使用者態和核心態(系統態)是什麼?使用者態如何變成核心態?作業系統
- mysql 動態新建以及刪除分割槽表MySql
- ODPS輸出到動態分割槽(DYNAMIC PARTITION)
- SSD固態硬碟要分割槽嗎?SSD固態硬碟分割槽與不分割槽的效能對比硬碟
- Linux系統怎麼分割槽Linux
- Linux系統分割槽簡介Linux
- 好程式設計師大資料培訓分享Hive的靜態分割槽與動態分割槽程式設計師大資料Hive
- 系統分割槽win10怎麼設定 怎麼給win10系統分割槽Win10
- 資料庫分割槽表分割槽未分配導致的一些問題資料庫
- 作業系統——記憶體連續分配管理方式作業系統記憶體
- win10 怎麼分割槽_如何給win10系統分割槽Win10
- 作業系統:計算機的生態系統作業系統計算機
- 好程式設計師大資料開發之掌握Hive的靜態分割槽與動態分割槽程式設計師大資料Hive
- linux系統檢視分割槽檔案系統Linux
- 國產作業系統的生態之路作業系統
- 資料庫系統設計:分割槽資料庫