第九章 虛擬儲存器

2022-05-15 13:33:10 字數 2231 閱讀 8970

計算機系統的主存被組織成乙個由m個連續的位元組大小的單元組成的陣列。每位元組都有乙個惟一的實體地址(physical address,pa)。第乙個位元組位址是0,接下來的位元組位址為1

早期的pc使用物理定址,而且諸如數字訊號處理器,嵌入式微控制器以及cray超級計算機這樣的系統仍然繼續使用這種定址方式。而為通用計算機設計師的現代處理器使用的是虛擬定址

cpu晶元上叫做儲存器管理單元

如果位址是連續的,則稱為線性位址空間。如果計算機有n位位址匯流排,在乙個帶有虛擬儲存器的系統中,cpu從乙個有n = 2n個位址的位址空間中生成虛擬位址,這個位址稱為虛擬位址空間:{0,1,2,...,n-1}

實體地址空間,與物理儲存器的m個位元組相對應:{0,1,2,...m-1}

m不要求是2的冪。

概念上言,虛擬儲存器被組織為乙個由存放在磁碟上的n個連續的位元組大小的單元組成的陣列。

每位元組都有乙個惟一的虛擬位址,這個惟一的虛擬位址是作為到陣列的索引的。磁碟上陣列的內容被快取到主存中。和儲存器層次結構中其他快取一樣,磁碟(較低層)上的資料被分成塊,這些塊作為磁碟和主存(較高層)之間的傳輸單元。vm系統通過將虛擬儲存器分割成稱為虛擬頁(virtual page,vp)的大小固定的塊,來處理這個問題。

在任意時刻,虛擬頁面的集合都分為三個不相交的子集:

緩衝存:當前快取在物理儲存器中的已分配頁。

未快取的:沒有快取在物理儲存器中的已分配頁。

存放在物理儲存器乙個資料結構,叫做頁表(page table)。頁表將虛擬頁對映到物理頁。

頁表就是乙個pte(page table entry,頁表條目)的陣列。虛擬位址空間中的每個頁在頁表中的乙個固定偏移量處都有乙個pte。

定義:dram快取不命中稱為缺頁

cpu中的乙個控制暫存器,叫做頁表基址暫存器(page table base register,ptbr)指向當前頁表。n位的虛擬位址包含兩個部分:乙個p位的vpo(virtual page offset,虛擬頁面偏移)和乙個n-p位的vpn(virtual page number)。mmu利用vpn來選擇適當的pte。如vpn0選擇pte0。因為物理和虛擬頁面都是p位元組的,所以ppo(physical page offset物理頁面偏移)和vpo是相同的,所以,將頁表條目中ppn(physical page number,物理頁號)和虛擬位址中的vpo串聯起來,就是相應的實體地址。

首先,在既使用sram快取記憶體又使用虛擬儲存器的系統中,大多數系統選擇物理定址

主要思路是位址翻譯發生在快取記憶體之前

tlb:翻譯後備緩衝器,是乙個小的、虛擬儲存的快取,其中每一行都儲存著乙個由單個pte組成的塊

linux虛擬儲存器

虛擬儲存器區域可以對映到兩種型別的物件:

共享物件

乙個物件可以被對映到虛擬儲存器的乙個區域,要麼作為共享物件,或作為私有物件。
需要額外的虛擬儲存器時,使用一種動態儲存器分配器(dynamic memory allocator)。乙個動態儲存器分配器維護著乙個程序的虛擬儲存器區域,稱為堆(heap)。在大多數的unix系統中,堆是乙個請求二進位制0的區域;對於每個程序,核心維護著乙個變數brk,它指向堆的頂部。

這是本學期最後一次強制發部落格的內容,內容很多,也很難,雖然在作業系統中學過虛擬儲存的一些皮毛,但是相對於深入理解計算機系統中涉及的內容,那就是小巫見大巫了。書本不僅從原理上講解了虛擬儲存器。而且更多的是講一些細節上的東西,所以看起來非常吃力。但是最後看完時覺得有非常大的成就感。我覺得通過這門課學到的不僅僅是一門知識,更重要的是一種對學習的態度,以及學習的方法,希望這種習慣能延續到我以後的學習中去。

第九章 優化器

優化器的作用是在ast中找出靜態子樹並打上標記,有以下兩個好處 每次重新渲染時,不需要為靜態子樹建立新節點 在虛擬dom中打補丁的過程可以跳過 優化器的內部實現主要分為兩個步驟 在ast中找出所有靜態節點並打上標記 在ast中找出所有靜態根節點並打上標記 通過遞迴的方式從上向下標記靜態節點時,如果乙...

第九章 虛擬記憶體

計算機的主存被組織成乙個由m個連續的位元組大小的單元組成的陣列。每個位元組都有乙個唯一的實體地址 pa 第乙個位元組位址為0,接下來為1,再接下來為2,依次類推。cpu訪問記憶體的最自然方式就是使用實體地址。我們把這種方式稱為物理定址。如圖所示。現代處理器使用一種稱為虛擬位址的定址方式。使用虛擬定址...

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...