计算机操作系统教程——分区存储管理
目錄
- 1 分區管理基本原理
- 1.1 固定分區法
- 1.2 動態分區法
- 2 分區的分配與回收
- 2.1 固定分區時的分配與回收
- 2.2 動態分區是的分配與回收
- 2.2.1 最先適應算法(first fit algorithm)
- 2.2.2 最佳適應算法(best fit algorithm)
- 2.2.3 最壞適應算法(worst fit algorithm)
- 2.3 動態分區時的回收與拼接
- 2.4 其中分配算法的比較
- 2.4.1 搜索速度
- 2.4.2 釋放速度
- 2.4.3 空閑區的利用
- 3 有關分區管理其他問題的討論
- 3.1 關于虛存的實現
- 3.2 關于內存擴充
- 3.3 關于地址變換和內存保護
- 3.4 分區管理的主要優缺點
- 3.4.1 優點
- 3.4.2 缺點
- 4 Reference
1 分區管理基本原理
??給每一個內存中的進程劃分一塊適當大小的存儲區,以連續存儲個進程的程序和數據,是各進程得以并發執行。按分區的時機,分區管理可以分為固定分區和動態分區兩種方法。
1.1 固定分區法
??固定分區法就是把內存固定劃分為若干個大小不等的區域。分區劃分的原理有一般系統操作員或操作系統決定。
??系統對內存的管理和控制通過數據結構——分區說明表進行,分區說明表說明個分區號、分區大小、起始地址和是否空閑區。
1.2 動態分區法
??在作業的處理過程中進行分區建立,其大小可隨作業或進程對內存的要求而改變。
2 分區的分配與回收
2.1 固定分區時的分配與回收
??固定分區時的分配與回收不會涉及到空閑區的合并,相對來說比較簡單。
2.2 動態分區是的分配與回收
??動態分區是的分配與回收主要解決3個問題:
2.2.1 最先適應算法(first fit algorithm)
??可用表或自由鏈按起始地址遞增的次序排列,一旦找到大于或等于所要求內存長度的分區,則結束搜索。
2.2.2 最佳適應算法(best fit algorithm)
??從小到大的次序組成空閑區可用表或自由鏈,從表頭開始查找,當找到第一個滿足要求的空閑區是,停止查找。
2.2.3 最壞適應算法(worst fit algorithm)
??空閑區按其大小遞減的順序組成空閑區可用表或自由鏈。當用戶作業或進程申請一個空閑區是,先檢查空閑區可用表或自由鏈的第一個空閑可用區的大小是否大于或等于所要求的的內存長度,若可用表或自由鏈的第一個項長度小于所要求的的,則分配失敗,否則從空閑區可用表或自由鏈中分配相應的存儲空間給用戶,然后修改空閑區可用表或自由鏈。
2.3 動態分區時的回收與拼接
??在將一個空閑區插入可用表或自由鏈是,該空閑區和上下相鄰區的關系是下述四關系之一:
2.4 其中分配算法的比較
2.4.1 搜索速度
??從搜索速度上看,最先適應算法具有最佳性能。盡管最佳適應算法或最壞適應算法看上去能很快的找到一個最適合的或最大的空閑區,但后兩種算法都要求首先把大小不同的空閑區按其大小進行排隊,這實際上是對所有空閑區進行一次搜索。
2.4.2 釋放速度
??從回收過程來看,最先適應算法也是最佳的。因為使用最先適應算法回收某一空閑區時,無論被釋放區是否與空閑區相鄰,都不用改變該去在可用表或自由鏈中的位置,只需要修改其大小或起始地址。而最佳適應算法和最壞適應算法都必須重新調整該區的位置。
2.4.3 空閑區的利用
??最先適應算法盡可能地利用了低地址空間,從而保證高地址有較大的空閑區來放置要求內存較多的進程或作業。
??反過來,最佳適應法找到的空閑區是最佳的,也就是說,用最佳適應法找到的空閑區或者是正好等于用戶請求的大小或者是能滿足用戶要求的最小空閑區。不過,盡管最佳適應法能選出最適合用戶要求的可用空閑區,但這樣做在某些情況下并不一定能提高內存的利用率(有些小空間可能可不到利用)。
??最壞適應算法正是基于不留下碎片空閑區這一出發點的,它選擇最大的空閑區來滿足用戶要求,以期分配后的剩余部分仍能進行再分配。
3 有關分區管理其他問題的討論
3.1 關于虛存的實現
??利用分區式管理,也同樣存在每個用戶可以自由編程的虛擬空間。但是,分區式管理方式無法實現那種用戶進程所需內存容量只受內存和外存容量之和限制的虛擬存儲器。事實上,如果不采用內存擴充技術,每個用戶進程所需內存容量是受到分區大小限制的。
3.2 關于內存擴充
??由于分區式管理時各用戶進程或作業所要求的內存容量受到分區大小的限制,如果不采用內存擴充技術,將會極大地限制分區式管理技術的使用。在分區式管理中,可以使用覆蓋或交換技術來擴充內存。
3.3 關于地址變換和內存保護
??靜態地址重定位和動態地址重定位技術都可用來完成分區式內存管理的地址變換。顯然,動態分區時分區大小不固定,而空閑區的拼接會移動內存中的程序和數據,因此,使用靜態定制重定位的方法來完成動態分區時的地址變換是不妥當的。
??在進行動態地址重定位是,每個分區需要一對硬件寄存器的支持,即基址寄存器和限長寄存器,分別用來存放作業或進程在內存分區的起始地址和長度。這一對硬件寄存器除了完成動態地址重定位的功能之外,還具有保護內存中數據和程序的功能。
??保護鍵法也可用來存放作業或進程在內存分區的起始地址和長度。
3.4 分區管理的主要優缺點
3.4.1 優點
3.4.2 缺點
4 Reference
[1] 張堯學. 計算機操作系統教程[M]. 清華大學出版社, 2018.
總結
以上是生活随笔為你收集整理的计算机操作系统教程——分区存储管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(1818):前端面试题之封装函
- 下一篇: 打不开磁盘“D:\CentOS7\Cen