【學習筆記之作業系統原理篇】儲存管理
儲存管理基本概念
實體記憶體(即記憶體地址)
位元組編號,從0開始,是“一維”的地址。
例題: 1.外存上存放的資料( 必須在訪問前先裝入記憶體 )。 |
儲存管理的主要任務
如何將可用記憶體有效地分配給多個程式?
如何讓儲存容量大於可用記憶體的大程式得以執行?
如何保護和共享記憶體?
①記憶體的分配與回收
靜態分配 | —次性全部載入記憶體,執行過程中不再變化。 |
動態分配 | 先分配必需的基本空間,執行過程中動態載入。 |
記憶體分配表 | 已使用的記憶體記錄,未使用的記憶體記錄。 |
②地址變換
靜態地址重定位 | 不需要硬體支援,不能移動,利用率低。 |
動態地址重定位 | 轉入後再計算實體地址,方便多模組。 |
記憶體分配表 | 已使用的記憶體記錄,未使用的記憶體記錄。 |
例題: 1.靜態重定位是在作業的( 執行過程 )中進行的。 2.動態重定位是在作業的( 裝入過程 )中進行的。 3.儲存分配解決多道作業地址空間的劃分問題。為了實現靜態和動態儲存分配,需採用地址重定位,即把邏輯地址轉為實體地址,靜態重定位由連線裝入程式實現,動態重定位由硬體地址變換機構實現。 4.採用動態重定位方式裝入的作業,在執行中允許( 作業系統有條件地 )將其移動。 5.把邏輯地址轉變為記憶體的實體地址的過程稱作( 重定位 )。 6.將作業地址空間中的邏輯地址轉換為記憶體中的實體地址的過程稱為( 重定位 ) 。 7.邏輯地址轉變為記憶體的實體地址的過程稱作( 重定位或地址對映 )。 |
例題: 1.邏輯地址就是( 相對地址 )。 |
③記憶體資訊的共享和保護
上下界保護法 | 程式程式和資料段的起始地址和終止地 |
保護鍵法 | 類似於讀者——寫者控制的方法。 |
Linux採用方法 | 界限暫存器與CPU使用者態和核心態舊結合的保護方式。 |
④記憶體擴充
虛擬儲存
例題: 1.儲存管理的目的是(方便使用者和提高記憶體利用率。) |
分割槽式儲存管理
固定式分割槽(靜態分割槽)
特點 | 個數、大小不變 |
優缺點 | 技術簡單;但主存利用率不高,存在嚴重的內碎片。 |
碎片 | 明明空在這裡卻不能被利用 |
例題: 1.碎片現象的存在使得記憶體空間利用率( 降低 ). |
可變式分割槽(動態分割槽)
特點 | 個分割槽數、大小變化 |
資料結構 | 已分配分割槽表(大小、起址)和空閒分割槽表(鏈)(大小,起址,狀態)。 外碎片,拼接(記憶體緊湊) |
例題: 1.用可重定位分割槽分配方式,( 解決碎片問題 )。 2.可重定位記憶體的分割槽分配目的為( 解決碎片問題 ) 。 |
分割槽分配演算法
首次適應演算法 | 按空閒區首地址遞增排序 |
迴圈首次適應演算法 | 按空閒區首地址遞增排序 |
最壞適應演算法 | 按空間大小遞減排序 |
最佳適應演算法 | 按空間大小遞曾排序 |
快速適應演算法 | 按容量相同否分類排序 |
夥伴系統 | 把記憶體中的所有空閒分割槽按照2k(1sk≤n)的大小劃分。 |
雜湊演算法 | 構建—張以空閒區大小為關鍵字的雜湊表,該表的每一個表項記錄了—個對應的空閒分割槽連結串列頭指標。 |
例題: 1.在可變分割槽儲存管理中,最優適應分配演算法要求對空閒區表項按( 尺寸從小到大 )進行排序。 2.在動態分割槽式記憶體管理中,傾向於優先使用低地址部分空閒區的演算法是(首次適用演算法)。 3.在動態分割槽式記憶體管理中,能使記憶體空間中空閒區分佈較均勻的演算法是(迴圈首次適用演算法)。 4.在動態分割槽式記憶體管理中,每次分配時把既能滿足要求,又是最小的空閒區分配給程式的演算法是(最佳適應演算法)。 5.在((迴圈)首次適應演算法)中,要求空閒分割槽按空閒區地址遞增順序連結成空閒分割槽鏈。 6.在( 最佳適應演算法 )中,是按空閒區大小遞增順序形成空閒分割槽鏈。 7.在( 最壞適應演算法 )中,是按空閒區大小遞減的順序形成空閒分割槽鏈。 8.分割槽管理方式中,當記憶體碎片容量大於某一作業所申請的記憶體容量時,(拼接後,可以為這一作業分配記憶體)。 9.在迴圈首次適應演算法中,要求空閒分割槽按( 空閒區首地址遞增 )順序連結成空閒分割槽鏈。 10.在最佳適應演算法中是按( 空閒區大小遞增 )順序形成空閒分割槽鏈。 |
分配記憶體
記憶體回收
例題: 1.在回收記憶體時可能出現四種情況,其中若釋放區與插入點前一空閒分割槽F1相鄰接,此時應( 在F1分割槽表項的基礎上,修改大小 ) 。 2.在回收記憶體時可能出現四種情況,其中若釋放區與插入點的後一分割槽F2相鄰接,此時應(在F2分割槽表項的基礎上,修改大小和始址 )。 3.在回收記憶體時可能出現四種情況,其中若釋放區不與F1和F2相鄰接,此時應( 為回收區建立一新空閒分割槽表項,並填上 分割槽的大小和始址) 。 4.在回收記憶體時可能出現四種情況,其中若釋放區與F1和F2都相鄰接,此時應( 刪除F2分割槽表項,並在F1分割槽表項的基礎 上修改大小 ) 。 5.在動態分割槽分配方案中,某一作業完成後,系統收回其主存空間,並與相鄰空閒區合併,為此需修改空閒區表,造成空閒區減一的情況是(有上鄰空閒區,也有下鄰空閒區)。 |
地址變換與記憶體保護
動態分割槽可以採用拼接技術:有碎片就拼接,不夠時才拼接。
分割槽式管理的優缺點
主要優點 | (1)實現了多個作業或程式對記憶體的共享,有助於多道程式設計,從而提高了系統的資源利用率。 (2)該方法要求的硬體支援少,管理演算法簡單,因而實現容易。 |
主要缺點 | (1)記憶體利用率仍然不高。存在著嚴重的碎小空閒區(碎片)不能利用的問題。解決辦法:記憶體緊湊。 (2)作業或程式的大小受分割槽大小控制,除非實現記憶體的擴充。可採用覆蓋和交換技術。 (3)難以實現各分割槽間的資訊共享。 |
例題: 1.通常,採用緊縮法消除記憶體碎片的儲存管理技術是( 可重定位分割槽法 )。 |
頁式儲存管理
靜態頁式管理
靜態方法:一個程式的所有頁一次性全部裝入記憶體。
資料結構
頁表 | 對每—個程式,系統為它建立—個頁表。 |
請求表 | |
儲存頁面表 | |
分配與回收 | 靜態分配為一次性分配 |
地址結構與地址變換
地址結構 | |
地址變換 |
動態頁式管理
例題: 1.在頁式儲存管理中,若所需頁面不在記憶體中,則會引起( 缺頁中斷 )。 |
指令存取速度與頁面大小的問題
快表
頁面大小的選擇:如果頁面太大,頁式管理就退化為分割槽管理,同時導致頁內“碎片”過大。而頁面太小,頁表佔用記憶體空間太多。—個系統的頁表佔用記憶體的空間大小與主存大小和頁大小有關。
例題: 1.在請求分頁儲存管理方案中,若某使用者空間為16個頁面, 頁長1KB,現有頁表如下: |頁號 | 塊號| | 0 | 12 | | 1 | 13 | | 2 | 3 | 則邏輯地址0A1F(H)所對應的實體地址為(0E1F(H))。 |
注:
頁長1KB 210=1k 頁面長度為10位,
邏輯地址0A1F(H)轉化為二進位制位 0000 1010 0001 1111
(二進位制10)為頁號即十進位制2,對應表找到塊號為3,故實體地址為 0000 1110 0001 1111 (0E1F)
因為是分頁儲存管理,所以隱藏了頁面大小等於頁框大小這個條件
頁式管理的優缺點
優點 | (1)有效地解決了記憶體的碎片問題,進—步可提高了處理機的利用率。 (2)動態頁式儲存管理只要求每個程式部分裝入便可執行,實現了記憶體的擴充技術。 |
缺點 | (1)要求有相應的硬體支援。例如,地址變換機構,缺頁中斷機構和頁面的淘汰等。 (2)增加了系統開銷。 (3)淘汰演算法選擇不當有可能會嚴重影響系統的使用效率。 (4)雖然消除了碎片,但同時還存在頁內碎片問題。 |
例題: 1.分頁式儲存管理中,地址轉換工作是由( 硬體 )完成的。 |
淘汰演算法與抖動現象
抖動現象與工作集
抖動現象:頻發的調入調出,與程式數和程式的實頁數有關
防止抖動現象的方法:
①是選擇好的淘汰演算法:以減少缺頁次數。
②是擴大工作集:是指程式在某個時間段裡要訪問的頁的集合。如果能夠預知程式在某段時間的工作集,並在此之前把該集合調入記憶體,至該段時間終了時,再將其在下—時間段時不需要訪問的哪些頁換出記憶體,這樣就會可以減少頁的交換。
淘汰原因 | 記憶體空閒頁不足,調出暫不用頁到磁碟交換區。 |
演算法目標 | 應使缺頁率儘可能小。 |
最佳(Optimal)淘汰演算法 | |
---|---|
基本思想 | 不再使用或最遠的將來不再使用。不能實現,但可以作為衡量標準。 |
先進先出淘汰演算法(FIFO) | |
---|---|
基本思想 | FIFO演算法容易實現,但是它所依據的理由與普遍的程式執行規律不符。它只適用於CPU按線性順序訪問地址空間的程式。 |
最近最少使用(LRU)淘汰演算法 | 最近最久沒有被使用的頁 |
---|---|
基本思想 | 方法:(1)計時器法(2)) 棧(解題方法) (3)暫存器法:高位補一,右移,最小。 |
最近未使用(NUR)演算法 | LRU近似演算法 |
---|---|
基本思想 | R:是否訪問,M:是否修改,R=O,M=O的先淘汰。最不經常使用(NotFrequentlyUsed,NFU)演算法增設一個訪問暫存器,每次訪問加1,淘汰值最小的。 |
例題: 1.在請求分頁系統中,LRU演算法是指( 丘期最長時間以來沒被訪問的頁先淘汰 ) 。 2.在請求調頁中可採用多種置換演算法,其中LRU是( 最近最久未使用 )置換演算法。 3.在下述儲存管理技術中,( 請求分頁) 處理不當會產生抖動。. |
段式儲存管理
靜態段式儲存管理
結構 | |
資料結構 | |
地址變換 | |
記憶體分配與釋放 |
動態段式儲存管理
基本思想 | |
段表 | |
缺段中斷處理 | 能容納直接調入 不能容納合並碎片再調入 記憶體不足換出 也可能產生抖動現象 |
分段和分頁的主要區別
(1)段是面向使用者的,頁是面向系統的。 |
(2)頁的大小是固定的,由系統決定;段的大小不固定,由使用者決定。 |
(3)從使用者的角度看,分頁系統的使用者程式空間是一維連續的線性空間 ; 段的地址空間是二維的,由段名和段內相對地址組成。 |
(4)從管理的角度看,分頁系統的二維地址是在地址變換過程中由系統的硬體機構實現的,對使用者是透明的。分段系統的在地址變換過程中的二維地址是由使用者提供的。因而, 頁內沒有地址越界問題,而段內的相對地址則存在地址越界(段長受記憶體實際空間大小限制)問題。 |
段的資訊共享
頁式、段式都可以共享。但段式方便。
共享:頁表、段表記錄相同空間。
段的靜態連結與動態連結
靜態連結
動態連結
段的儲存管理的記憶體保護
①地址越界保護法
②存取控制保護法
段的儲存管理的優缺點
優點 | (1)便於資訊的共享和保護。 (2)實現了記憶體的擴充。 (3)便於資訊的變化處理。 (4)便於實現動態連結。 |
缺點 | (1)增加了計算機成本。 (2)存在碎片問題。 (3)段的長度受記憶體可用空間大小的限制。 (4)與頁式儲存管理類似,淘汰演算法選擇不當,可能產生抖動現象。 |
例題: 1.分段管理提供(二 )維的地址結構。 2.在段式儲存管理中,一個段是一個( 不定長的連續 )區域。 3.支援程式浮動的地址轉換機制是( 動態重定位) 。. |
其他
例題: 1.(固定分割槽)儲存管理支援多道程式設計,演算法簡單,但儲存碎片多。 2.(段頁式管理)實現了段式、頁式兩種儲存方式的優勢互補。 3.(段頁式管理)儲存管理方式能使儲存碎片儘可能少,而且使記憶體利用率較高。 4.段頁式儲存管理汲取了頁式管理和段式管理的長處,其實現原理結合了頁式和段式管理的基本思想,即(用分段的方法分配和管理使用者地址空間,用分頁方法來管理物理儲存空間)。 5.虛擬儲存技術是(補充相對地址空間的技術)。 6.虛擬儲存器的最大容量是由(計算機系統的地址結構和外存空間)決定的。 7.實現虛擬儲存最關鍵的技術是( 請求調頁(段))。 8.以下支援虛擬儲存器的儲存管理技術是( 請求分頁技術 )。 9.若一個系統記憶體有64MB,處理器是32位地址,則它的虛擬地址空間為( 4GB )位元組。 |
Linux儲存管理
相關文章
- 作業系統儲存器管理筆記作業系統筆記
- 【作業系統筆記】動態儲存管理作業系統筆記
- 作業系統——記憶體管理學習筆記作業系統記憶體筆記
- 作業系統學習筆記:裝置管理作業系統筆記
- 【儲存管理】SAN儲存 Storage Area Network 儲存區域網路 學習筆記筆記
- 學習筆記14:模型儲存筆記模型
- 作業系統學習筆記作業系統筆記
- GlusterFS分散式儲存學習筆記分散式筆記
- OS學習筆記五:儲存模型筆記模型
- CUDA 學習筆記之儲存器筆記
- C、作業系統學習筆記作業系統筆記
- 理解作業系統之儲存管理作業系統
- 作業系統(8)儲存器管理作業系統
- 【C#學習筆記】儲存檔案C#筆記
- HTML5學習筆記 Web儲存HTML筆記Web
- SQL學習筆記(ORACLE內部儲存)SQL筆記Oracle
- Django學習筆記《二》圖書管理系統Django筆記
- spark學習筆記--資料讀取與儲存Spark筆記
- 學習筆記|AS入門(七) 資料儲存篇筆記
- ibm ds4700儲存學習筆記(一)IBM筆記
- ibm ds4700儲存學習筆記(二)IBM筆記
- ibm ds4700儲存學習筆記(三)IBM筆記
- 作業系統學習筆記-1:基礎概念作業系統筆記
- 專案管理學習筆記二:資訊系統服務管理專案管理筆記
- 分散式系統學習筆記分散式筆記
- 【numpy學習筆記】陣列的儲存和下載筆記陣列
- opencv學習筆記(二)-- 載入、修改和儲存影像OpenCV筆記
- [PyTorch 學習筆記] 7.1 模型儲存與載入PyTorch筆記模型
- Python爬蟲學習筆記(三、儲存資料)Python爬蟲筆記
- 【大話儲存】學習筆記(6章), 磁碟陣列筆記陣列
- RAC之作業系統配置作業系統
- 軟考之作業系統作業系統
- 2011寒假-作業系統學習筆記作業系統筆記
- ucore作業系統學習筆記(二) ucore lab2實體記憶體管理分析作業系統筆記記憶體
- 不同作業系統之間的軟體管理理念的分析_學習筆記作業系統筆記
- mysql dba系統學習(20)mysql儲存引擎MyISAMMySql儲存引擎
- OS學習筆記七:IO系統筆記
- 系統程式設計學習筆記程式設計筆記