? ? ? ?? ? ??
1、虛擬存儲管理概念
一個計算機任務只需要部分裝入主存便可以啟動運行,其余部分留在磁盤上,在需要的時候裝入主存,這樣可以提高主存空間的利用率。這樣該系統所具有的主存容量會比實際主存容量大很多,這樣的存儲器稱為虛擬存儲器。
2、程序局部性原理
程序在執行時會呈現局部性規律,即在一段時間內,程序的執行僅局限于某個部分,相應所訪問的空間也局限于某個區域內。程序的局限性表現在時間、空間兩個方面。
2.1 時間局限性
是指程序中的某個指令一旦執行,則在不久的將來可能會被再次執行;如果某個存儲單元被訪問,則不久后該存儲單元可能會被再次訪問。產生時間局限性的原因是程序中存在大量的循環處理。
2.2 空間局限性
指一旦程序訪問了某個存儲單元,在不久的將來,它附件的存儲單元也有可能被訪問。典型原因是程序是順序執行的。
3、虛擬存儲器的實現原理
虛擬存儲器具有請求調入功能和置換功能,能僅把作業的一部分裝入主存便運行作業系統,能從邏輯上對主存容量進行擴充的一種虛擬存儲系統。其邏輯容量由主存和外存容量之和以及CPU可尋址的范圍決定,運行速度接近主存速度。應用十分廣泛。
3.1 虛擬存儲器實現方式
1、請求分頁系統
在分頁系統的基礎上增加了請求調頁功能和頁面裝置功能所形成的頁式虛擬存儲系統。置換時以頁面為單位。
2、請求分段系統
在分段系統的基礎上增加了請求調段和分段置換功能所形成的段式虛擬存儲系統。置換時以段為單位。
3、請求分頁管理
請求分頁是在純分頁系統的基礎上增加了請求調頁功能、頁面置換功能所形成的頁式虛擬存儲系統。是目前最常用的一種虛擬存儲器的方式。
請求分頁的頁表機制是在純分頁的頁表機制上形成的,因為只將應用程序的一部分調入主存,還有一部分仍在磁盤上,因此需要在頁表中增加(狀態位、訪問字段和輔存地址等)供程序(數據)在轉進、轉出時參考。
請求分頁系統中的地址變換機構是在分頁系統的地址變換結構的基礎上增加了某些功能。比如處理缺頁中斷、從主存中轉出一頁實現虛擬存儲。
在請求分頁系統中,每當所要訪問的頁面不在主存時便要產生一個缺頁中斷,請求系統將所缺的頁調入主存,這個是由中斷機構完成的。
3.1 缺頁中斷和一般中斷的區別
1、缺頁中斷是在指令執行期間產生和中斷處理信號;一般中斷是在一條指令執行完。下一條指令執行前檢查和處理中斷信號。
2、發生缺頁中斷返回到被中斷指令的開始重新執行該指令;一般中斷會返回到下一條指令。
3、一條指令在執行期間可能會產生多次缺頁中斷。
4、頁面置換法
在進程運行過程中,如果發生缺頁,此時主存中無空閑塊時,為了保證進程正常運行,需要從主存中調出一頁程序或數據傳送磁盤對換區。系統要決定哪個頁面調出,需要根據一定的頁面置換算法來確定。置換算法的優劣會直接影響系統的性能,不好的算法可能會造成系統抖動。即剛被換出的頁很快又被訪問,需重新調入,導致系統頻繁更換頁面。這樣會把進程的運行時間花費在頁面置換的工作上,造成系統性能大大降低。
1、最佳置換算法
理想化的算法,選擇那些永遠不被使用的、或者最長時間內不再被訪問的頁面置換出去。該算法性能做好,但實現非常困難。
2、先進先出置換算法
該算法的主要思想是淘汰最先進入主存的頁面,也就是選擇在主存中駐留時間最久的頁面置換掉。
特點:最直觀、性能最差的算法。會出現Belady現象,即一個進程未分配它所要求的全部頁面,有可能出現分配的頁面數增多但缺頁率提高的異常現象。
3、最近最少使用置換法 LRU
把最近最少使用的頁面進行置換掉。
4、最近未用置換算法
將最近一段時間沒有使用過的頁面置換掉。是一種和LRU接近的算法。