立即學習:https://edu.csdn.net/course/play/7883/161190?utm_source=blogtoedu
3.3 存儲管理
存儲管理主要是指對內存的管理,負責內存分配和回收,內存的保護和擴充.
- 存儲管理的目的是儘量提高內存的使用效率.
內存的分配方式有兩種
- 連續的分配方式
- 離散的分配方式
一.連續分配方式
指爲一個用戶程序分配一個連續的內存空間.
(1) 單一連續分配
(2) 固定分區分配
(3) 動態分區分配
爲把一個新作業裝入內存,需按照一定的分配算法,從空閒分區表或空閒分區鏈中選出一分區分配給該作業.
常用的分配算法:
a. 首次適應算法
b. 循環首次適應算法
c. 最佳適應算法
d. 最壞適應算法
內碎片和外碎片區別:
(4) 可重定位分區分配(解決外碎片問題)
如果在系統中只有若干了小分區,即使它們的容量總和大於要裝入的程序,但由於這些分區不相鄰,也無法將程序裝入內存.
解決方法:將內存中的所有作業進行移動,使它們全部鄰接,這樣把原來分散的小分區拼接成大分區,這種方法稱爲"拼接"或"緊湊".(非常耗費CPU時間)
a.動態重定位的實現
在動態運行時裝入的方式,將相對地址轉換爲物理地址的工作在程序指令真正要執行時才進行.地址轉換需要重定位寄存器的支持.程序執行時訪問的內存地址是相對地址與重定位寄存器中地址相加而成.
二.對換與覆蓋技術
1.覆蓋技術
一個作業的若干程序段或數據段的某些部分共享內存空間.
2.對換技術
把內存中暫時不能運行的進程或者暫時不用的程序和數據,調到外存上,以便騰出足夠的內存空間,再把已具備運行條件的進程和進程所需要的程序和數據調入內存.
對換的分類:
- 整體對換(或進程對換):以整個進程爲單位
- 頁面對換或分段對換:以頁或段爲單位
連續分配方式會形成"碎片",雖然可以通過"緊湊"解決,但開銷大.如果允許將一個進程直接分散地裝入許多不相鄰的分區中,則無需"緊湊",由此產生離散分配方式.
分類:
- 分頁存儲管理方式:離散分配的基本單位是頁
- 分段存儲管理方式:離散分配的基本單位是段
三.基本分頁存儲管理方式
1.頁面與頁表
2.地址變換機構
1.頁面
2.地址變換
3.基本分頁式存儲管理的實現