操作系統相關知識整理(一)

存儲管理

程序的裝入和鏈接

用戶程序要在系統中運行,必須先將它裝入內存,然後再將其轉變爲一個可以執行的程序,通常都要經過以下幾個步驟:
1)編譯,由編譯程序將用戶源代碼編譯成若干個目標模塊。
2)鏈接,由鏈接程序將編譯後形成的一組目標模塊,以及它們所需要的庫函數鏈接在一起,形成一個完整的裝入模塊。
3)裝入,由裝入程序將裝入模塊裝入內存。

虛擬內存

1、它將主存看成是一個存儲在磁盤上的地址空間的高速緩存,在主存中只保存活動區域,並根據需要在磁盤和主存之間來回傳遞數據,通過這種方式,它高效地使用了主存。
2、它爲每個進程提供了一致的地址空間,從而簡化了內存管理。
3、它保護了每個進程的地址空間不被其他進程破壞。

段頁式管理

程序在邏輯上分段,每一段在內存上分爲若干頁。

對於用戶而言,當用戶發出一個邏輯地址,用戶希望訪問到特定程序段的內存空間,而對於計算機而言,則希望用戶發出的邏輯可以通過MMU轉換成頁框號和頁內偏移量,從而直接去訪問真實的內存空間。

爲了解決這一問題引入了虛擬內存(就是通過一張段表完成地址映射轉換):簡單的說就是用戶發出訪問程序段的邏輯地址<段號,段內偏移量>,通過對這一邏輯地址的運算將其轉換爲訪問頁的虛擬地址<頁號,頁內偏移量>,再由MMU將其轉換爲內存的物理地址<頁框號,頁內偏移量>。通過這種方式,用戶訪問的就是虛擬內存,經過兩次地址映射後,變成真實的物理地址。

頁面置換算法

1、最佳置換算法(OPT )
理想狀況下的頁面置換算法,但 實際上是不可能實現的,思想是:發生缺頁時,有些頁面在內存中,其中有一頁將很快被訪問,而其他頁面可能要等到 10,100,1000 條指令後纔會被訪問,每個頁面都可以用在該頁面首次被訪問前所要
執行的指令數進行標記。最佳頁面置換算法規定: 標記最大的頁應該被置換。 。
2、先進先出置換算法(FIFO )
最簡單的頁面置換算法是先入先出(FIFO)法。這種算法的實質是, 總是選擇在主存中停留時間最長(即最老)的一頁置換,即 先進入內存的頁,先退出內存 。理由是: 最早被調入內存的頁,其不再被使用的可能性比剛調入內存的可能性大。
3、最近最久未使用(LRU )算法
FIFO 算法和 OPT 算法之間的主要差別是,FIFO 算法利用頁面進入內存後的時間長短作爲置換依據,而 OPT 算法的依據是將來使用頁面的時間,如果以最近的過去作爲不久將來的近似,那麼就可以把過去最長一段時間裏不曾被使用的頁面置換掉。 它的 實質 是:當需要置換一頁時, 選擇在最近一段時間裏最近沒有使用過的頁面予以置換。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章