虛擬內存調度介紹
時間:2023-02-14 18:00:01 | 來源:營銷百科
時間:2023-02-14 18:00:01 來源:營銷百科
虛擬內存調度介紹:
頁式調度1、頁式虛存地址映射頁式虛擬存儲系統(tǒng)中,虛地址空間被分成等長大小的頁,稱為邏輯頁;主存空間也被分成同樣大小的頁,稱為物理頁。相應地,虛地址分為兩個字段:高字段為邏輯頁號,低字段為頁內地址(偏移量);實存地址也分兩個字段:高字段為物理頁號,低字段為頁內地址。通過頁表可以把虛地址(邏輯地址)轉換成物理地址。
在大多數系統(tǒng)中,每個進程對應一個頁表。頁表中對應每一個虛存頁面有一個表項,表項的內容包含該虛存頁面所在的主存頁面的地址(物理頁號),以及指示該邏輯頁是否已調入主存的有效位。地址變換時,用邏輯頁號作為頁表內的偏移地址索引頁表(將虛頁號看作頁表數組下標)并找到相應物理頁號,用物理頁號作為實存地址的高字段,再與虛地址的頁內偏移量拼接,就構成完整的物理地址?,F(xiàn)代的中央處理機通常有專門的硬件支持地址變換。
2、轉換后援緩沖器由于頁表通常在主存中,因而即使邏輯頁已經在主存中,也至少要訪問兩次物理存儲器才能實現(xiàn)一次訪存,這將使虛擬存儲器的存取時間加倍。為了避免對主存訪問次數的增多,可以對頁表本身實行二級緩存,把頁表中的最活躍的部分存放在高速存儲器中,組成快表。這個專用于頁表緩存的高速存儲部件通常稱為轉換后援緩沖器(TLB)。保存在主存中的完整頁表則稱為慢表。
3、內頁表是虛地址到主存物理地址的變換表,通常稱為內頁表。與內頁表對應的還有外頁表,用于虛地址與輔存地址之間的變換。當主存缺頁時,調頁操作首先要定位輔存,而外頁表的結構與輔存的尋址機制密切相關。例如對磁盤而言,輔存地址包括磁盤機號、磁頭號、磁道號和扇區(qū)號等。
段式調度[4]段是按照程序的自然分界劃分的長度可以動態(tài)改變的區(qū)域。通常,程序員把子程序、操作數和常數等不同類型的數據劃分到不同的段中,并且每個程序可以有多個相同類型的段。在段式虛擬存儲系統(tǒng)中,虛地址由段號和段內地址(偏移量)組成。虛地址到實主存地址的變換通過段表實現(xiàn)。每個程序設置一個段表,段表的每一個表項對應一個段。每個表項至少包含下面三個字段:
(1)有效位:指明該段是否已經調入實存。
(2)段起址:指明在該段已經調入實存的情況下,該段在實存中的首地址。
(3)段長:記錄該段的實際長度。設置段長字段的目的是為了保證訪問某段的地址空間時,段內地址不會超出該段長度導致地址越界而破壞其他段。段表本身也是一個段,可以存在輔存中,但一般駐留在主存中。
段式虛擬存儲器有許多優(yōu)點:
①段的邏輯獨立性使其易于編譯、管理、修改和保護,也便于多道程序共享。②段長可以根據需要動態(tài)改變,允許自由調度,以便有效利用主存空間。段式虛擬存儲器也有一些缺點:
①因為段的長度不固定,主存空間分配比較麻煩。②容易在段間留下許多外碎片,造成存儲空間利用率降低。
③由于段長不一定是2的整數次冪,因而不能簡單地像分頁方式那樣用虛地址和實地址的最低若干二進制位作為段內偏移量,并與段號進行直接拼接,必須用加法操作通過段起址與段內偏移量的求和運算求得物理地址。因此,段式存儲管理比頁式存儲管理方式需要更多的硬件支持。
段頁式調度[4]段頁式虛擬存儲器是段式虛擬存儲器和頁式虛擬存儲器的結合。實存被等分成頁。每個程序則先按邏輯結構分段,每段再按照實存的頁大小分頁,程序按頁進行調入和調出操作,但可按段進行編程、保護和共享。它把程序按邏輯單位分段以后,再把每段分成固定大小的頁。程序對主存的調入調出是按頁面進行的,但它又可以按段實現(xiàn)共享和保護,兼?zhèn)漤撌胶投问降膬?yōu)點。缺點是在映象過程中需要多次查表。在段頁式虛擬存儲系統(tǒng)中,每道程序是通過一個段表和一組頁表來進行定位的。段表中的每個表目對應一個段,每個表目有一個指向該段的頁表起始地址及該段的控制保護信息。由頁表指明該段各頁在主存中的位置以及是否已裝入、已修改等狀態(tài)信息。如果有多個用戶在機器上運行,多道程序的每一道需要一個基號,由它指明該道程序的段表起始地址。虛擬地址格式如下:
基號 段號 頁號 頁內地址