簡單理解什麼是虛擬儲存器

2021-09-29 02:56:25 字數 2517 閱讀 6862

二、加快位址翻譯

三、虛擬儲存器作用

虛擬儲存器是非常重要的乙個概念。先抽絲剝繭的了解下什麼是虛擬儲存器,再理解下虛擬儲存器有什麼作用。

(1)虛擬儲存系統通過虛擬位址定址;

(2)虛擬位址和實體地址通過頁表實現一一對映;

(3)頁表存放在主存中;

物理定址和虛擬定址

存放在儲存器中每乙個位元組都有乙個位址,這個位址稱為實體地址(pa, physical address)。處理器通過實體地址訪問資料的方式稱為物理定址。處理器也可以通過虛擬位址(va, visual address)定址,稱為虛擬定址。處理器生成乙個虛擬位址來訪問處理器,在位址到達儲存器之前需要先轉換為實體地址。儲存器管理單元負責將虛擬位址轉換為實體地址。

頁表計算機的儲存結構包括:快取記憶體(sram),主儲存器(dram)以及磁碟(固態硬碟或者機械硬碟)。處理器從快取中取資料,如果快取沒命中,處理器從主存中取資料。如果主存也沒命中,處理器就先要把需要的資料從磁碟中搬運到主存中,再從主存中取資料。如何判斷資料是否在主存中,我們需要乙個東西,叫做頁表(pte, page table entry)來告訴我們資料是否在主存中。頁表由有效位和乙個n位位址字段組成。如果有效位為1,則位址段放置虛擬頁在磁碟上的起始實體地址,虛擬頁典型值為4k-2m。頁表只有三種狀態,a.未分配。位址段上沒有資料。b.已快取。位址段上有資料,有效位為1,表明該虛擬頁資料都快取在主存中。c.未快取。位址段上有資料,有效位為0。如下圖所示,頁表共有八項,其中pte0,pte5未分配,pte1,pte2,pte4, pte7已快取,pte3,pte6未快取。

位址翻譯

位址翻譯由以下幾個步驟組成:

(1)處理器生成虛擬位址,傳給mmu;

(2)mmu提取虛擬頁號vpn,傳送給快取記憶體/主存;

(3)通過快取記憶體/主存中頁表,查詢虛擬頁號對應的pte內容,並返還給mmu;

(4)如果有效位為0,進入第五步,有效位為1,進入第八步;

(5)mmu觸發異常,處理器進入缺頁異常處理程式;

(6)缺頁異常處理程式從磁碟中調入新的頁面,更新進pte頁表中;

(7)cpu重新傳送虛擬位址,進入第二步;

(8)mmu構造實體地址,並將位址送給快取記憶體/主存;

(9)快取記憶體/主存返回資料給處理器

tlb翻譯後備緩衝器(tlb,translation lookaside buffer)。tlb是乙個小的,虛擬位址快取,其功能相當於快取記憶體,特別的,作為頁表的快取記憶體。tlb存放在處理器中,因此,處理器可以非常快速的從tlb中取出pte。

tlb由標記位和索引位構成。相當於全相聯快取記憶體。處理器訪問資料步驟如下:

(1)處理器產生虛擬位址;

(2)如果tlb 命中,tlb返回pte給mmu;如果不命中,mmu從快取記憶體中取出pte,放在tlb中,覆蓋已經存在的條目。

(3)mmu根據pte生成實體地址,並將它傳送給快取記憶體或者主存;

(4)快取記憶體或者主存返回資料給處理器

多級頁表

tlb解決了訪問速度的問題,多級頁表可以解決頁表占用空間大小的問題。假設位址空間為32位,則處理器最高可訪問4gb的儲存器,假設儲存器物理頁大小為4k,每個pte占用4個位元組。則頁表大小為4mb,意味著主存中至少留下4mb空間用來存放頁表。這無疑是一種浪費,使用多級頁表可以壓縮頁表大小。

虛擬儲存器是硬體異常,硬體位址翻譯,主存,磁碟檔案和核心軟體的完美互動,為每個程序提供了乙個大的,一致的和私有的位址空間。主要有三個作用:

(3)保護程序的位址空間不被其他程序破壞。

虛擬儲存器作為快取的工具

在虛擬儲存系統中,可以將主存看成是乙個儲存在磁碟上的位址空間的快取記憶體。處理器通過頁表可以知道物理頁有沒有快取在主存中。

虛擬儲存器作為儲存器管理的工具

虛擬儲存器作為儲存器保護的工具

如果一條指令違反了許可條件,cpu將會觸發乙個保護故障,將控制傳遞給乙個核心中的異常處理程式。

什麼是儲存虛擬化

什麼是儲存虛擬化 那麼什麼是儲存虛擬化呢?不同的公司和企業有不同的定義。雖然虛擬化並不是乙個全新的概念,但是在被引入到儲存領域後卻發生了某些變化,被賦予了新的內涵。儲存虛擬化是通過儲存虛擬化的技術方法,將系統中各種異構的儲存裝置對映為乙個單一的儲存資源,對使用者完全透明,達到互操作性的目的。通過虛擬...

虛擬儲存器的理解

一 虛擬儲存器出現要解決的問題 傳統的儲存器,在執行程式時,要求程式一次性裝入記憶體,執行期間一直駐留在記憶體中 這兩個特性使得程式在執行過程 現不用或暫時不用的程式一直佔據著寶貴的記憶體資源 因此出現了記憶體不足的現象。二 虛擬儲存器出現成為可能的發現 程式執行時存在區域性性現象。程式在執行過程中...

簡單理解什麼是Tomcat

tomcat裡包含了html靜態頁面對web的請求處理,還有servlet來實現動態的請求,也屬於乙個servlet容器,所以綜合的來說tomcat 伺服器是乙個web輕量級應用伺服器,簡單理解,當專案部署到本地的tomcat之後,瀏覽器發出請求,則伺服器會對我們的請求作出響應。如果所示 1 沒有配...