《現代作業系統》讀書筆記 記憶體管理篇

2021-07-06 09:09:08 字數 1619 閱讀 7182

標籤: 讀書筆記 校招 作業系統 面試

實體地址是指出現在cpu外部位址匯流排上的定址物理記憶體的位址訊號,是邏輯位址變換後的最終結果位址,實體地址空間是指記憶體中實體地址單元的集合。

記憶體保護是為了防止乙個作業有意或無意地破壞作業系統或其他作業。常用的儲存保護方法有界限暫存器方法和儲存保護鍵方法。

* 界限暫存器方法:有兩種,分別是上、下界暫存器方法和基址和限長暫存器方法。上、下界暫存器方法採用上、下界暫存器分別存放作業的結束位址和開始位址。在作業執行過程中,將每乙個訪問記憶體的位址都同這兩個暫存器內容進行比較,如超出範圍便產生保護性中斷;基址和限長暫存器方法採用基址和限長暫存器分別存放作業的起始位址及作業的位址空間長度。當作業執行時,將每乙個訪問記憶體的相對位址和現場暫存器比較,如果超過了限長暫存器的值,則發出越界中斷訊號,並停止作業的執行。

* 儲存保護鍵方法:儲存保護鍵方法是給每個儲存塊分配乙個單獨的保護鍵,它相當於一把「鎖」。此外,進入系統的每個作業也被賦予乙個保護鍵,它相當於一把「鑰匙」。當作業執行時,檢查「鑰匙」和「鎖」是否匹配,如果二者不匹配,則系統發出保護性中斷訊號,停止作業執行。

tlb是快表,是cpu內部的暫存器,因為程式的位址訪問具有區域性性,所以使用tlb在暫存器中記錄最近訪問的頁表項可以增加速度.

與頁式的碎片比較:頁式儲存管理方式下平均乙個程式有半頁碎片,而段頁式儲存管理方式下平均一段就有半頁碎片,而乙個程式往往有很多段,所以平均下來段頁式的內部碎片比頁式要多。

前面的方法都具有如下兩個特點:一次性(作業全部裝入記憶體後才能執行)和駐留性(作業常駐記憶體直到執行結束)。它們均難以滿足較大的作業或者較多的作業進入記憶體執行。因此,引入了一種能夠讓作業部分裝入就可以執行的儲存管理技術,即虛擬記憶體管理技術。

缺點:

在預知乙個程序的頁面號引用串的情況下,每次都淘汰以後不再使用的或以後最遲再被使用的頁面,這種演算法就是最佳置換演算法。

fifo演算法是最簡單的頁面置換演算法,每次總是淘汰最先進入記憶體的頁面,也就是淘汰在記憶體駐留時間最長的頁面。

選擇最近最長時間沒有被使用的頁面予以淘汰,其思想是用以前的頁面引用情況來**將來會出現的頁面引用情況,也就是假設乙個頁面剛被訪問,那麼不久該頁面還會被訪問。即最佳置換演算法是「向後看」,而lru演算法則是「向前看」。

lru理論上有兩種實現

1. 給每個頁計數,但是如果執行時間太長的話,頁面的計數會溢位,而且每次訪問乙個位址都要去更新計數的話代價太大

2. 使用訪問棧,但是如果棧滿了之後,每次入棧需要丟棄棧底的元素,可能需要大量的陣列元素移位操作,或者鍊錶指標操作

3. 所以實際中我們一般使用時鐘演算法

通常題目給出的位址形式分為兩種:十進位制與其他進製(通常是十六進製制、八進位制或二進位制)。當題目中給出的位址是十進位制時,通常位址是不會特別說明或者不帶字尾的,例如「訪問7105號單元」;而當給出的位址是其他進製時,通常會特別說明或者用符號字尾,十六進製制、八進位制與二進位制對應的字尾分別為字母h、o、b,例如「訪問1a79h號單元」就是十六進製制位址,其中字母h表示該位址是以十六進製制給出的。而在答題過程中,通常會進行進製之間的轉換,在轉換之後可以將轉換後的位址加括號並加註下標來表明轉換後的進製,例如將17ach(十六進製制)轉化為二進位制,則可以表示為17a* = 17a* = 00* 01* 10* 1100

首先程式內部的位址訪問通過分段查ldt表項,得到虛擬位址,虛擬位址通過mmu查頁表轉換為實體地址

《現代作業系統》讀書筆記 死鎖篇

標籤 讀書筆記 校招 作業系統 面試 可剝奪資源 是指雖然資源佔有者程序需要使用該資源,但另乙個程序可以強行把該資源從佔有者程序處剝奪來歸自己使用。不可剝奪資源 是指除佔有者程序不再需要使用該資源而主動釋放資源,其他程序不得在佔有者程序使用資源過程中強行剝奪。如果乙個程序集合中的每個程序都在等待只能...

讀書筆記 現代作業系統

ch1.1.作業系統中,抽象非常重要,乙個複雜的任務可以抽象成多個簡單的子任務,將複雜的硬體抽象成簡單的介面,書中針對向上層應用提供的介面做詳細的講解,但是對於使用者 終端使用者 介面不會做研究.2.作業系統中的資源有時間資源和空間資源,以及硬碟的空間資源,時間資源是時間復用的 如cpu的輪轉 空間...

《現代作業系統》讀書筆記 執行緒

執行緒是最小的任務排程單位,是依賴於程序而存在的迷你程序。和程序一樣,執行緒也有三種狀態 執行 就緒 阻塞。我認為,執行緒是程序中任務真正的執行者,而程序提供了記憶體空間 cpu 程式計數器以及暫存器讓執行緒使用。對於程序來說,多個程序之間無法分享記憶體空間,對於一些應用而言,共享記憶體空間的能力是...