操作系統虛擬內存_第1頁
操作系統虛擬內存_第2頁
操作系統虛擬內存_第3頁
操作系統虛擬內存_第4頁
操作系統虛擬內存_第5頁
已閱讀5頁,還剩81頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1 1虛擬存儲管理2 2由于受到計算機結構限制和系統成本限制,計算機系統的內存容量總是有限的。在傳統存儲器管理中,如果一個作業需要運行,系統必須將作業的全部信息裝入內存,并在整個作業運行結束后,才能釋放內存。如果一個作業信息大于內存容量,則無法裝入內存,也無法運行;如果系統有大量的作業申請進入內存,則系統只能接納相當有限的作業,系統的多道度和性能都難以得到提高。通過對進程運行的分析而發現:在進程執行時,并非同時需要作業的全部信息。虛擬存儲器概念3 3在進程的執行過程中,作業的某部分信息,可能從來不會使用;也可能運行完一次后,再也不會使用。如果將這些不使用的信息存放在物理內存中,對內存是一種浪費

2、。同樣,既然作業的全部信息是分階段需要,則可以分階段將作業信息調入內存,而不需要一次將作業的全部信息調入內存。于是,提出了這樣的問題:能否將作業不執行的部分暫時存放在外存,待到進程需要執行時,再將其從外存調入內存。將外存作為內存的補充,從邏輯上擴充內存,是虛擬存儲管理的虛擬存儲管理的基本思想基本思想。虛擬存儲器概念4 4人們通過對Fortran語言程序、操作系統過程和通用科學計算程序的分析,發現了對程序和數據的訪問具有如下特點:(1)順序性 程序在運行時除了少部分的分支和過程調用指令外,大部分都是順序執行。對大程序沒有必要把所有的信息一次都放入內存。(2)局限性 程序在運行時,如果有若干個過程

3、調用,程序執行的軌跡會轉移至調用區域,但過程調用一般由相對較少的指令組成。當程序在某個局部范圍內運行時,系統可以只將相關的局部信息放入內存,其它不相關或暫時不相關的信息放入外存。虛擬存儲器概念5 5(3)多次性 雖然程序中可能包含許多循環結構,但是這些循環結構通常只由少數指令構成。這些集中在一起的少數指令被多次執行,在內存中可以只放入一個版本,在需要時才將該版本調入內存。(4)獨立性 程序中可能存在彼此互斥或相互獨立的部分,每次運行時總有部分程序不被使用,沒有必要將不被使用的部分放入內存。 虛擬存儲器概念6 6 虛擬存儲器定義虛擬存儲器定義:是指具有請求調入功能和置換功能,能夠:是指具有請求調

4、入功能和置換功能,能夠從邏輯上對內存空間進行擴展,允許用戶的邏輯地址空間大從邏輯上對內存空間進行擴展,允許用戶的邏輯地址空間大于物理內存地址空間的存儲管理系統。于物理內存地址空間的存儲管理系統。虛擬存儲器的虛擬存儲器的組織形式如下圖所示。組織形式如下圖所示。虛擬存儲管理的組織虛擬存儲器概念7 7在虛擬存儲器中,一般將硬盤作為外存,因此,硬盤也被稱為對換設備。虛擬存儲器的邏輯地址空間大小與物理內存大小沒有直接關系,由計算機系統的地址結構決定。 如果計算機系統的地址為32位,則可尋址的范圍為04G;如果計算機系統的地址為20位,則可尋址的范圍為01M。計算機系統的可尋址范圍為虛擬存儲器的最大范圍。

5、 虛擬存儲器概念8 8虛擬存儲器完成了邏輯地址空間和物理地址空間的分離,能夠在一個小的物理存儲空間上提供給程序一個巨大的虛擬存儲器空間。虛擬存儲器的基礎是內存的離散管理,實現的方式為請求請求分頁式虛擬存儲器管理分頁式虛擬存儲器管理或請求分段式虛擬存儲器管理請求分段式虛擬存儲器管理。虛擬存儲器概念9 9以頁為單位置換需硬件支持請求分頁的頁表機構缺頁中斷機構地址變化機構需實現請求分頁的軟件用于實現請求調頁的軟件實現頁面置換的軟件請求分頁系統1010請求分段系統以段為單位置換需硬件支持請求分段的段表機構缺段中斷機構地址變化機構需實現請求分段的軟件用于實現請求調段的軟件實現段面置換的軟件1111虛擬存

6、儲器特征多次性:最重要的特征 虛擬存儲器在實現上需要將一個作業分多次調入內存運行。對換性 虛擬存儲器允許作業在運行過程中將暫時不運行的部分換出,在需要時再換入,對換性使得作業運行所需內存更少,系統的多道度提高。虛擬性 虛擬存儲器從邏輯上擴充內存容量,使得用戶能夠使用的內存容量遠遠大于實際內存容量,提高了系統運行程序的能力。 1212 虛擬存儲管理的方式之一為基于內存的分頁管理。分頁虛擬存儲器管理的實現需要增加請求調頁增加請求調頁和頁面置換頁面置換功能。 虛擬存儲管理首先將需要運行的作業放在外存。當作業被調度時,系統只將作業的少數頁面裝入內存,隨著作業運行,再通過頁面請求功能、調頁功能和頁面置換

7、功能,逐次將作業需要運行的頁面調入內存運行,并將暫時不運行的頁面換出到外存。虛擬存儲管理的主要功能為請求調頁及頁面置換。請求分頁存儲管理1313請求分頁存儲管理請求分頁的硬件支持包括:請求分頁的硬件支持包括: 請求分頁的頁表機制、缺頁中斷機構和地址變換機構請求分頁的頁表機制 除了頁號和物理塊號外,增加了頁的狀態位、外存地址、修改位、訪問字段等信息虛擬存儲器管理下的頁表1414頁表增加字段的用途:狀態位:用于標志一個頁面是否已經裝入內存。外存地址:頁面在外存中的地址。當需要將某頁面調入內存時,查詢頁表中的外存地址,通常是物理塊號。修改位:頁面到內存后是否被修改過的標志,以確定如果頁面被換出內存時

8、,是否需要寫入外存。如果頁面在內存沒有被修改過,頁面中的內容和外存中的內容一致,則被換出內存時不需要再寫入外存,節約了寫入外存的時間。如果頁面在內存中已經被修改過了,被換出內存時需要寫入外存。請求分頁存儲管理1515訪問字段:標志頁面在內存時是否被訪問過。用于頁面置換算法時系統是否將頁面換出內存時參考。如果頁面被訪問過,在頁面置換時,系統考慮該頁面可能以后會被再次訪問而不將其換出。請求分頁存儲管理1616請求分頁存儲管理缺頁中斷機構 在進程運行過程中,當發現所訪問的頁面不在內存時,缺頁中斷機構便產生一缺頁中斷信號,通知操作系統將所需要的頁面調入內存。 缺頁中斷與一般中斷一樣,都需要經歷保護CP

9、U環境、分析中斷原因、轉入中斷程序處理、中斷處理后恢復CPU環境等步驟。1717請求分頁存儲管理缺頁中斷又是非常特殊的一種中斷,與一般中斷有如下不同:CPU檢測中斷的時間不同 對一般中斷信號對一般中斷信號,CPU是在一條指令執行完后檢測其是否存在,檢測時間以一個指令周期為間隔以一個指令周期為間隔。而對缺頁中斷信號缺頁中斷信號,CPU是在一條指令執行期間,只要有中斷信息就可檢測,不需要等待一個指令周期。因此,CPU檢測缺頁中斷更及時。CPU可以多次處理 如果在一個指令周期中多次檢測到缺頁中斷,CPU都會及時處理。 由于缺頁中斷的獨特性,缺頁中斷的處理過程需要由硬件和軟件共同需要由硬件和軟件共同完

10、成完成。硬件寄存器硬件寄存器主要用于保護缺頁時CPU未完成指令狀態和恢復原指令的執行。軟件軟件為實現缺頁中斷的相應算法程序1818缺頁中斷處理流程圖請求分頁存儲管理1919 虛擬存儲器管理不可能在程序執行前將所有的程序頁面放入內存,因此,在程序執行過程中需要逐步將程序頁面調入內存。這樣,在程序運行過程中完成邏輯地址邏輯地址到內存物理地址的變換,是動態重定位裝入到內存物理地址的變換,是動態重定位裝入。請求分頁存儲管理2020具有快表的請求分頁虛擬存儲地址變換機構請求分頁存儲管理地址變換機構2121請求分頁存儲管理當進程被調度時,操作系統將進程PCB中的頁表起始地址和長度裝入頁表寄存器中。CPU從

11、邏輯地址中取得頁號,根據頁號查詢快表查詢快表,如果快表中有該如果快表中有該頁面的內存塊號頁面的內存塊號,則將內存塊號與頁內偏移一起作為該頁在內存的物理地址;如果快表中沒有該頁面的內存塊號如果快表中沒有該頁面的內存塊號,CPU從頁表寄存器得到頁表在內存中的起始地址,查詢頁表查詢頁表,得到該頁的內存塊號,則將該塊號與頁內偏移一起作為該頁在內存中的物理地址,同時將該頁的頁號和內存塊號寫入快表,以備下次查詢時使用。如果查詢如果查詢頁表而沒有得到該頁的內存塊號頁表而沒有得到該頁的內存塊號,即表示該頁不在內存,產生一缺產生一缺頁中斷信號頁中斷信號,請求操作系統將該頁面調入內存。2222請求分頁存儲管理在頁

12、面調入過程中,如果進程空間沒有空余的頁框,則系統需要調出一個頁面后再將該頁面調入內存,同時系統修改頁表。請求分頁的虛擬存儲器管理采用請求頁面調入方式,其實現需要硬件支持,增加了機器成本和系統開銷。 用于地址變換和各種數據結構的存儲開銷、執行地址變換指令的時間開銷、內存與外存之間對換頁面的I/O開銷等與單純的分頁存儲管理相比,虛擬存儲器管理是以犧牲系統開銷為以犧牲系統開銷為代價,換取內存的邏輯擴充代價,換取內存的邏輯擴充,換取系統運行程序的增大和吞吐量的提高。2323請求分頁存儲管理 請求分頁的硬件支持完成了分頁虛擬存儲器管理中的地址變換,但是,在實施分頁虛擬存儲器管理中需要解決如下的策略問題:

13、調頁策略調頁策略用于決定何時將進程所需要的頁面調入到內存分配策略分配策略決定系統應該給一個進程分配多少內存中的物理塊,進程才能運行。內存置換策略 內存置換策略用于決定內存中的哪些頁面被換出內存。2424請求分頁存儲管理 在虛擬存儲器管理中,有兩種調頁策略:請求頁(demand paging)調入和預先頁(prepaging)調入:請求頁調入請求頁調入是在在CPUCPU需要訪問進程頁面需要訪問進程頁面時,所訪問的進程頁面不在內存,則CPU發出缺頁中斷,請求將頁面調入內存。操作系統接收到缺頁中斷請求后,分配內存頁框并完成從外存調入頁面優點:只有在需要時才將頁面調入內存,節省了內存空間。2525請求

14、分頁存儲管理缺點:在進程初次執行時,開始會有大部分的頁面調入內存,這時的進程切換開銷很大。如果發生缺頁時系統調入頁面,而每次又僅調入一個頁面,則啟動磁盤作I/O的頻率很高。由于每次啟動磁盤時會產生一個時間延遲,因此,會造成系統用于I/O的時間增長,系統效率降低。對于執行順序跳躍性大的程序,缺頁情況變化大,難以趨向穩定的水平,從而引起系統不穩定。2626請求分頁存儲管理預先頁調入預先頁調入由操作系統根據某種算法,預先動態估計進程可能要訪問的頁面,并在處理器需要訪問頁面之前先將頁面預先調入內存優點 一次可將多個頁面調入內存,減少了缺頁中斷的次數和I/O操作次數,系統付出的開銷減少。如果預先動態估計

15、準確率高,該調入策略會大大提高系統效率。缺點: 如果預先動態估計準確率較低,調入的頁面不被使用的可能性大,系統效率較低如果程序員不能預先提供所需程序部分的信息,則該調度策略難以實施。2727請求分頁存儲管理物理塊的分配策略物理塊的分配策略: :為了合理和有效分配內存,內存物理塊可以按照進程平均分配法、進平均分配法、進程按比例分配法和進程優先權分配法程按比例分配法和進程優先權分配法進行分配。進程平均分配法 在內存物理塊的分配上,早期采用的是各進程機會均等進行分配的方法,即進程平均分配法。進程按比例分配法: 根據進程的大小,進程按比例分配法為按照比例分配內存物理塊數。如果系統中有m個內存物理塊,n

16、個并發進程,每個進程的頁面數為si,則系統中每個進程能夠分得的內存物理塊數為:)/()(1niiiiSmSb282857)12710/()12762(, 4)12710/()1062(21bb內存物理塊數也應該取整數。 例如,如果內存能夠提供62個內存物理塊,并發進程有P1(有10個頁面)和P2(有127個頁面),則進程P1和P2分配到的內存物理塊分別為:請求分頁存儲管理2929請求分頁存儲管理進程優先權分配法對于在系統中所處地位重要、時間要求緊迫的進程,系統應該考慮給其分配較多的內存空間,使其加速完成。在實際應用中,將按比例分按比例分配法和進程優先級結合配法和進程優先級結合起來考慮,系統把內

17、存中可以分配的物理塊分為兩部分,一部分按照比例分配給各并發進程,另一部分根據進程的優先權進行適當增加。對內存物理塊分配還要考慮系統的多道度情況還要考慮系統的多道度情況。如果隨著系統運行,多道度增加了,則每個進程需要釋放出一些內存物理塊給新進程;相反,如果多道度減少了,則將回收的內存物理塊再分配給剩余進程。3030請求分頁存儲管理進程的最小物理塊數不管給進程分配多少物理塊,首要條件是保證進程的正常運行保證進程的正常運行。因此,在內存物理塊分配中有一個基本的界限,即最小物理塊數。最小物理塊數是保證進程正常運行所需要的最小內存塊數進程需要的最小物理塊數與計算機的硬件結構有關,取決于計算機的指令格式、

18、功能和尋址方式。如果計算機采用單地址指令的直接尋址方式單地址指令的直接尋址方式,則只需要用于存放指令的頁面和存放數據的頁面,最小物理塊數為2;如果采用間接尋址方采用間接尋址方式式,則至少需要3個物理塊。對于功能較強大的計算機,指令長度可能會超過多個字節,指令本身需要跨過多個頁面,則物理塊的最小需要數會更大。3131請求分頁存儲管理內存置換策略當需要運行的頁面不在內存時,系統需要將其從外存調入內存。但是如果內存沒有空閑空間提供時,則系統需要先從內存中選擇頁面換出內存后,再將需要的頁面換入內存。選擇被換出的頁面有兩種類型:全局置換和局部置換全局置換和局部置換。3232請求分頁存儲管理可變分配全局置

19、換最容易實現的物理塊分配和置換策略。首先為系統中的每個進程分配一定數目的物理塊,OS系統自身也保持一個空閑物理塊隊列。如果有頁面需要換入內存時,則系統首先考慮從空閑物理塊隊列中分配,其次考慮從所有的進程中選擇合適的頁面換出內存。3333請求分頁存儲管理固定分配局部置換根據進程類型,或程序員的建議,為每個進程分配一定數目的物理塊,在整個運行期間不再改變。當進程有頁面需要換入到內存時,只能從當前需要頁面的進程中選擇從當前需要頁面的進程中選擇頁面換出到外存頁面換出到外存,該置換方法對其它進程沒有影響,每個進程在內存中分得的內存物理塊數不變。局限在于為每個進程分配多少個物理塊難以確定。3434請求分頁

20、存儲管理可變分配局部置換根據進程類型,或程序員的建議,開始為每個進程分配一定數目的物理塊。當進程有頁面需要換入到內存時,只能從當前需要頁面的進程中選擇頁面換出到外存,該置換方法對其它進程沒有影響。進程運行中頻繁發生缺頁,系統再為該進程分配若干附加的物理塊進程運行中頻繁發生缺頁,系統再為該進程分配若干附加的物理塊,直至其缺頁率減少到適當程度為止。3535頁面置換虛擬存儲管理的一個設計問題是: 需要一個空閑頁面時選擇哪個頁面來進行替換目標:減少缺頁中斷的次數,即減少缺頁率缺頁率 舉例:如果一個進程或一個作業在運行中成功的訪問次數為S,即所訪問的頁面在內存中;不成功的訪問次數為F,即訪問的頁面需要缺

21、頁中斷并且需要調入內存;運行需要訪問的頁面的總次數為A: A = S + F 則缺頁率f為: f = F / A3636l 進程的內存物理塊數 進程分得的內存物理塊數越多,缺頁率越低。l 頁面大小 劃分的頁面越大,缺頁率越低。l 程序的局部性 如果編制的程序局部性好,則缺頁率低。l 頁面置換算法 如果選取的置換算法優,則缺頁率低。影響缺頁率的因素3737置換算法最佳置換算法FIFO (first in first out) 先進先出頁面置換算法LRU (least recently used) 置換算法時鐘更換工作集法3838最佳置換最佳置換算法: 選擇一個隨后最長時間不會被訪問的頁面進行替換

22、最長時間不被使用的頁產生缺頁中斷的次數最小要具備預知未來的能力 預測未來很困難 舉例:假如某進程的頁面號引用串為:6 0 1 2 0 3 0 5 2 3 0 3 2 1 2 0 1 1 6 0 1,系統為進程分配三個內存物理塊。 如下圖所示。最佳頁面置換算法缺頁6次,缺頁率為6/21。3939最佳頁面置換算法最佳置換4040FIFO 頁面置換更換最早進入內存的頁面維護一個所有頁面的鏈表 按照它們進入內存的次序替換鏈表頭部的頁面缺點:可能出現最先加載進來的頁面是經常被訪問的頁面,這樣做很可能造成常被訪問的頁面替換到磁盤上,導致很快就需要再次發生缺頁中斷4141假如某進程的頁面號引用串為:6 0

23、1 2 0 3 0 5 2 3 0 3 2 1 2 0 1 1 6 0 1,系統為進程分配三個內存物理塊。FIFO頁面置換FIFO頁面置換算法4242最近最久未使用(LRU)置換算法LRU 代表最近使用最少使用過去的數據預測未來 時空局域性如果一個頁面長時間沒有被使用過 可能以后的一段時間也用不到4343最近最久未使用LRU置換算法LRU 接近于 OPT基本思想是替換一個舊頁面 不需要最舊的頁面4444最近最久未使用LRU置換算法舉例:在LRU置換算法中引用串為:6 0 1 2 0 3 0 5 2 3 0 3 2 1 2 0 1 1 6 0 1,為進程分配三個內存物理塊。置換過程如下圖所示。

24、缺頁9次,缺頁率為9/21。LRU頁面置換算法4545最近最久未使用LRU置換算法使用一個頁面鏈表 最近被使用的頁面在鏈表頭, 最近未被使用的在鏈表尾 每次頁面訪問時更新這個鏈表在每一個頁表項中使用計數器 選擇具有最小計數器值的頁面 周期性的將計數器清零4646使用矩陣實現LRU另一個選擇是使用 nn 矩陣 這里 n 是虛擬空間中的頁面數開始矩陣被設置為0當頁面 k 被訪問: 將k行全部設置為1, k列全部設置為0需要替換頁面時 選擇矩陣里對應行值最小的頁面更換即可4747使用矩陣實現LRU頁面訪問順序: 0,1,2,3,2,1,0,3,2,30000000000001110Page0 1 2

25、 301230000000011011100Page0 1 2 30000101110011000Page0 1 2 30111001100010000Page0 1 2 30011101100010000Page0 1 2 30001100111010000012300001000110011100111000001000110001110110000001001110011000000104848使用移位寄存器實現 LRU 給每個存放在內存的頁面配備一個移位寄存器 移位寄存器的初始值設為0在每一個規定長度的時鐘周期: 將移位寄存器的值向右移動一位 并將對應頁面的訪問位的值加到該移位寄存器的

26、最左位上當需要尋找一個頁面進行更換時 選擇對應移位寄存器值最小的頁面即可4949使用移位寄存器實現 LRU5050時鐘算法為每個常駐頁維護訪問位 頁面被訪問過后訪問位自動設置訪問位可以被操作系統清零常駐頁面被組織到時鐘循環中針臂指向其中的一個頁面5151時鐘算法查找一個要替換的頁面時: 查看正在被針臂指向的頁面訪問位=0: 較長時間內沒有被訪問 (自從上次輪詢),置換該頁訪問位=1: 自從上次輪詢后頁面被訪問過,重新置0,暫不換出5252時鐘算法5353除考慮頁面訪問情況外,還須考慮置換代價,即修改位 A:訪問位; M:修改位改進型時鐘算法5454工作集算法工作集是: 最近的k次訪問均涉及到的

27、頁面集合 在最近的 T 秒或者 T 次中的所有頁面w(k,t) 表示在時間 t 時 k 次訪問所涉及的頁面數量5555工作集算法工作集與最近訪問次數的關系k (最近訪問次數)5656工作集算法100311086120110203011680119981200912008011851最后使用時間訪問位R頁表當前時間:2220按下面方式掃描所有頁面:If(R=1) 將最后使用時間設置為當前時 間繼續掃描,并將訪問位清零if(R=0&ageT) 替換此頁面5757工作集時鐘算法將工作集算法和時鐘算法結合起來將內存里的頁面組織到時鐘圈里每個頁面有一個最近訪問時間和訪問位需要更換頁面時: 從針臂

28、指向的頁面開始考察 在工作集之外的訪問位為0的第一個頁面被替換5858 虛擬存儲器管理以進程運行的時間增長為代價換來系統更多的虛擬內存,是否值得付出這樣的代價則需要從缺頁率、頁面大缺頁率、頁面大小小等方面對系統性能的影響進行分析。頁面調度性能59591 1缺頁率對系統性能的影響缺頁率對系統性能的影響 用p表示缺頁率,如果p = 0,則不缺頁;如果p = 1,則始終缺頁。抖動:由于缺頁而引起的一種系統現象,即處理器頻繁地處理頁面的換出和調入,使得處理器實際處理程序的能力大大減小。“抖動”現象常在缺頁率非常高時發生。用st表示缺頁處理時間。缺頁處理時間包括從外存取相關頁面并將其放入內存的時間。 用

29、ma表示對內存一個頁面的訪問時間。 用vt表示有效訪問時間。 在非缺頁的情況下,vt =ma 在缺頁率為p的情況下,vt= (1 p) ma +p st 頁面調度對系統性能的影響分析6060 在任何情況下,缺頁處理時間由下面三個主要部分構成: (1)缺頁中斷服務時間; (2)讀頁面時間; (3)恢復進程時間。 通過精簡指令而減少缺頁中斷服務和恢復進程所花費的時間,使它們位于1ms-100ms之間。 頁面調度對系統性能的影響分析6161在實際應用中,缺頁不只使得缺頁的進程運行減慢,還會影響缺頁不只使得缺頁的進程運行減慢,還會影響其他進程的運行其他進程的運行。如果一個進程隊列阻塞等待某個設備,而該

30、設備正用于一個缺頁的進程,則等待設備的進程會等待更長的時間才能得到請求的設備。 可見,缺頁不只使得缺頁進程本身的運行減慢,還使得整個系統的運行效率降低,系統性能下降。因此,在分配進程物分配進程物理塊和選擇置換算法上,需要周全考慮理塊和選擇置換算法上,需要周全考慮。頁面調度對系統性能的影響分析62622 2對換空間處理對系統性能的影響對換空間處理對系統性能的影響 訪問磁盤上對換空間的速度比訪問磁盤上文件系統更快。因為對換空間比文件系統分配的磁盤塊更大磁盤塊更大,同時又不需要文不需要文件查詢件查詢和間接分配間接分配。這樣,系統可以采用在進程開始時將整個文件映像拷貝到對換區,然后再從對換區完成調入頁

31、面的方法。頁面換入時,直接從對換區調入。頁面換出時,如果被修改過,則需要寫入對換區;否則不需要寫入對換區。因此,利用硬盤上的對換空間,加快對換空間的訪問速度,可加快進程頁面的調入與調出,減少頁面置換時間,提高系統性能。頁面調度對系統性能的影響分析63633 3頁面大小對系統性能的影響頁面大小對系統性能的影響 頁面大小對性能的影響可以從以下幾個方面分析。 頁表 由于每個作業運行時,頁表都需要存放在內存,如果頁面大,則頁表會更小,頁表占用的內存小。 從磁盤讀寫頁面次數 除內存外,頁面也需要存放在磁盤上。如果頁面大,則系統從磁盤上讀入頁面到內存的次數少,有利于提高I/O的效率。頁面調度對系統性能的影

32、響分析6464 頁內碎片 在分頁的情況下,如果頁面小,則作業的內存碎片少。 在不考慮磁盤讀寫頁面對頁面大小的影響,只考慮頁表和作業占用的內存碎片情況下,理論上可以求得最佳頁面大小。如果用A表示用戶作業的平均長度(單位為字節),L為頁面長度(單位為字節),n為頁表項所需要的字節數,每個作業的頁表占用的字節數為nA/L。假定作業的平均碎片為L/2,則內存附加的開銷為: K =nA/L +L/2對該公式求極小值,即對L求一階導數,得到:0 2/1nA/L2頁面調度對系統性能的影響分析6565為最佳頁面長度。 通常情況下,頁表項所需要的字節數為常數,如為8或4,頁面大小L與用戶作業的平均長度成非線性增

33、長關系。如果系統運行的作業較長,則頁面會較大。 但是,通常意義下,頁面的基本大小由計算機處理器決定。如IBM 370系列的頁面大小為2 048B或4 096B,IBM 400的頁面大小為512B,Motorola 68040的頁面大小為4 096B,Pentium的頁面大小為4 096B。2nA L 頁面調度對系統性能的影響分析66664 4編制程序對缺頁率的影響編制程序對缺頁率的影響 在程序編制過程中,程序員應該注意程序的局部性。程序編制方法不同,產生缺頁率的不同,對系統性能的影響也不同。 如果程序員在編程時考慮了可能引起的缺頁中斷,并使系統運行時盡量少地產生缺頁中斷,則會提高系統的性能。

34、頁面調度對系統性能的影響分析6767請求分段存儲管理方式將用戶程序的所有段首先放在外存中,當用戶程序被執行時,系統再逐步從外存調入所需要的段進入內存。請求分段的硬件支持 段表機制 缺段中斷機制 地址變換機構6868請求分段存儲管理方式段表機制段名 段長 段基址 存取方式 訪問字段A 修改位M 存在位P 增補位 外存地址存取方式:標識段存取屬性訪問字段:段是否被訪問修改位:段進入內存后是否被修改過存在位:段是否在內存增補位:請求分段系統的特有字段請求分段系統的特有字段,標識在運行過程中是否有過動態增長外存地址:段在外存的起始地址6969請求分段存儲管理方式缺段中斷機構7070請求分段存儲管理方式

35、地址變化機構否否否是是是7171請求分段存儲管理方式分段的共享和保護 共享段表共享段表共享進程計數存取控制字段段號:不同的進程可以使用不同的段號去共享段段名段名段長段長內存地址內存地址狀態狀態外存地址外存地址共享進程計數共享進程計數狀態狀態進程名進程名進程號進程號段號段號存取控制存取控制7272請求分段存儲管理方式分段的共享和保護 共享段的分配與回收共享段的分配與回收分配: 第一次訪問:分配內存,(1)增加共享段表;(2)修改進程段表。第二次訪問:(1)修改共享段表;(2)修改進程段表。回收: (1)count=0 (2)count07373請求分段存儲管理方式分段的共享和保護 分段保護分段保

36、護越界檢查:段號越界檢查;段內偏移越界檢查。存取控制檢查:R;R/W;E環保護機構(1)內環可訪問外環數據;(2)外環可請求內環服務。7474 Windows 2000/XP運行在Intel Pentium CPU硬件平臺。下面介紹Intel Pentium 的工作模式。 Intel Pentium CPUIntel Pentium CPU提供三種工作模式提供三種工作模式:實地址模式(real mode)、虛地址模式(又稱為保護模式,protection mode)和虛擬模式(virtual mode)。 實地址模式實地址模式采用段式存儲器管理或單一連續存儲器管理,不啟用分頁機制,只能尋址1M

37、B地址空間。DOS操作系統采用這種模式。 虛地址模式虛地址模式采用三種內存管理方式:段式虛擬存儲器管理、頁式虛擬存儲器管理和段頁式虛擬存儲器管理。Linux和Windows操作系統采用這種模式。 虛擬模式虛擬模式是在保護方式下的實地址模式的仿真。Windows 2000/XP 系統存儲器管理實例7575Window 2000/XP采用請求頁式虛擬存儲管理請求頁式虛擬存儲管理,提供32位的虛擬地址,為每一個進程提供一個受保護的4G虛擬地址空間。虛擬地址空間布局為低2G的地址空間為用戶程序區用戶程序區,高2G的地址空間為操作系統區操作系統區,如圖所示。Windows系統虛擬存儲器地址布局基于分頁管

38、理的Windows 2000/XP7676系統區又分為固定頁面區、頁交換區和操作系統駐留區。固定頁面區中存放關鍵的系統代碼,頁面不可與外存對換;頁交換區存放非常駐系統代碼和數據,可以與外存進行頁面對換;操作系統駐留區存放操作系統內核、執行體和引導驅動程序以及硬件抽象代碼層,非常重要永不失效,為了加快運行速度,這一區的尋址由硬件直接映射。 另外,在操作系統引導時,也可以選擇另一種地址分配方式:3GB用戶程序區和1GB操作系統區。這種情況主要用于運行大的用戶程序。基于分頁管理的Windows 2000/XP77771 1頁表頁表在Windows 2000/XP系統中的頁表如下圖所示。Windows

39、 2000/XP系統中的頁表基于分頁管理的Windows 2000/XP78782 2邏輯地址到物理地址的變換邏輯地址到物理地址的變換l在Windows 2000/XP系統中的32位邏輯地址被劃分為:l 頁表目錄索引、頁表頁索引和頁面。其中頁表目錄索引占10位,頁表頁索引占10位,頁面占12位。l頁表機制為2級頁表,頁面大小為4K。分頁管理中采用了二級頁表結構實現進程的邏輯地址到物理地址的變換,如下圖所示。基于分頁管理的Windows 2000/XP7979Windows系統的二級頁表結構 物理塊號 塊內偏移第一級頁表頁表目錄邏輯地址 31 22 21 12 11 0頁表目錄索引 頁表頁索引 頁面第二級頁表頁表物理地址基于分頁管理的Windows 2000/XP8080l頁目錄用來指向進程頁表地址。每個進程都擁有自己的頁目錄。l在地址變換時,操作系統從運行進程的進程控制塊中得到進程頁進程頁目錄的起始地址目錄的起始地址,并將該地址放入頁目錄寄存器中。通過頁目錄寄存器尋址到頁目錄。l頁目錄的目錄項

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論