2)分割槽分配演算法
動態分割槽方式,分割槽多、大小差異各不相同,此時把乙個新作業裝入記憶體,更需選擇乙個合適的分配演算法,從空閒分割槽表/鏈中選出一合適分割槽
首次適應演算法ff
迴圈首次適應演算法
最佳適應演算法
最差適應演算法
快速適應演算法
(4)動態重定位分割槽分配——有緊湊功能的動態分割槽分配
使用者程式在記憶體中移動,將空閒空間緊湊起來提高空間利用率。但必然需要位址變化,增加「重定位」工作。
儲存管理的離散分配方式
基本分頁儲存管理
基本分段儲存管理
段頁式儲存管理
基本分頁儲存管理方式
1)頁面的概念
記憶體劃分成多個小單元,每個單元k大小,稱(物理)塊。作業也按k單位大小劃分成片,稱為頁面。
① 物理劃分塊的大小 = 邏輯劃分的頁的大小
②頁面大小要適中。
太大,(最後一頁)內碎片增大,類似連續分配的問題。
太小的話,頁面碎片總空間雖然小,提高了利用率,但每個程序的頁面數量較多,頁表過長,反而又增加了空間使用。
2)頁表的概念
為了找到被離散分配到記憶體中的作業,記錄每個作業各頁對映到哪個物理塊,形成的頁面對映表,簡稱頁表。
每個作業有自己的頁表
頁表的作用:
頁號到物理塊號的位址對映
要找到作業a
關鍵是找到頁表(pcb)
根據頁表找物理塊
3)位址的處理
連續方式下,每條指令用基位址+偏移量即可找到其物理存放的位址。
4)位址變換機構
5)引入快表——針對訪問速度問題
問題:基本分頁機制下,一次指令需兩次記憶體訪問,處理機速度降低1/2,分頁空間效率的提高以如此的速度為代價,得不償失。
改進:減少第1步訪問記憶體的時間。增設乙個具有「並行查詢」能力的高速緩衝暫存器,稱為「快表」,也稱「聯想暫存器」(associative memory),ibm系統稱為tlb(translation look aside buffer)。
快表放什麼?:
正在執行程序的頁表的資料項。
6)兩級、多級頁表,反置頁表——針對大頁表占用記憶體問題
頁表大小的討論
程序分頁離散存放,但頁表的資料是連續在存放記憶體的。而頁表可能很大:
現代作業系統支援非常大的邏輯位址空間的程序。如32位系統,可編址的最大**數為232,若頁面大小為4kb(4*210),則支援的最大程序頁表項數可達碼232/212=220,有1m個,每個頁表項佔1b(位元組),則頁表大小就有1mb。
①兩級頁表
將頁表分頁,並離散地將頁表的各個頁面分別存放在不同的物理塊中
為離散分配的頁表再建立一張頁表,稱為「外層頁表」,其每個表項記錄了頁表頁面所在的物理塊號。
②多級頁表
64位作業系統下,兩級仍然不足以解決頁表過大問題時,可按同樣道理繼續分頁下去形成多級頁表。
③反置頁表
每個程序一張頁表
一張os 反置頁表 + 每程序一張外部頁表
反置頁表(inverted page tale):站在物理塊的角度,記錄占用它的已調入記憶體的程序標識和頁號。系統中只需一張該錶即可。乙個64mb記憶體,若頁面大小4kb(64m/4k=2^16=16k個物理塊),反置頁表占用64kb(16k*4b)
程序外部頁表(external page table):每個程序一張,記錄程序不在記憶體中的那些頁面所在的外存物理位置。
如何提高檢索反置頁表速度:記憶體容量大時,反置頁表的頁表項還是會很大,利用程序識別符號和頁號去檢索一張大的線性表很費時,可利用hash演算法提高檢索速度。
作業系統第四章
常用排程演算法 先來先服務演算法 fcfs 短程序優先演算法 spf 短剩餘時間優先演算法 srt 最高響應比優先演算法 hrrn 時間片輪轉演算法 rr 和多級反饋演算法 mfq 先來先服務演算法 fcfs 基本思想是按照程序進入就緒佇列的先後次序來分配處理機.採用不可剝奪方式 fcfs演算法很少...
作業系統第四章作業
什麼是臨界資源?什麼是臨界區?對臨界資源的訪問有哪些原則?臨界資源 一次僅允許乙個程序使用的共享資源。臨界區 每個程序中訪問臨界資源的那段程式。訪問原則 空閒讓進,如果有若干程序要求進入空閒的臨界區,一次僅允許乙個程序進入。忙則等待,任何時候,處於臨界區內的程序不可多於乙個。如已有程序進入自己的臨界...
作業系統第四章總結
第四章 檔案系統 檔案是以計算機硬碟為載體儲存在計算機上的資訊集合。檔案管理系統 作業系統中負責管理和儲存檔案資訊的軟體機構。檔案系統由三部分組成 與檔案管理有關的軟體,被管理檔案,實施檔案管理檔案所需要資料結構。對於使用者而言,檔案系統最主要的功能 實現檔案的基本操作,按名儲存和查詢,組織成合適的...