當前位置:首頁 » 服務存儲 » 虛頁存儲內存上
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

虛頁存儲內存上

發布時間: 2022-06-21 14:33:36

A. 頁表存放在內存還是磁碟上

頁表有單級和多級之分。

單級頁表:OS給進程所分配的內存空間並不大的話,就只需要幾張頁表,這樣也沒有占據很多的內存空間,所以這個時候頁表是全部在內存的。

多級頁表:給進程分配的內存空間很大的話,對應頁表也很大。於是就要建立多級頁表,把高層頁表(相對級別比較高的)放在內存,靠這個高層頁表找底層頁表,再在底層頁表裡找到對應的實頁號。部分底層頁表在內存,另外的一些就被塞在磁碟,被高層頁表點名之後,才調入內存。

作用

實現從頁號到物理塊號的地址映射。

邏輯地址轉換成物理地址的過程是:用頁號p去檢索頁表,從頁表中得到該頁的物理塊號,把它裝入物理地址寄存器中。同時,將頁內地址d直接送入物理地址寄存器的塊內地址欄位中。這樣,物理地址寄存器中的內容就是由二者拼接成的實際訪問內存的地址,從而完成了從邏輯地址到物理地址的轉換。

以上內容參考:網路-頁表

B. 虛擬頁式存儲系統

二維數組在內存中表現為連續的數據,100行 150列數據,則有15000個數據,存放在100個頁面中,因此,缺頁中斷為100次

C. 在虛擬頁式存儲管理方案中,下面哪一部分完成將頁面調入內存的工作

分配給改作業的共3頁,剛開始已經把第0頁裝進去了,按照FIFO演算法,
第一次尋找的字地址為115,在第一頁,但是他不在該作業的內存中,發生一次缺頁中斷,將第一頁調入內存;
第二次訪問228,所在的第二頁也不在內存中,發生缺頁中斷,並把第二頁調入內存;
第三次訪問88所在0頁在內存中,所以就沒發生缺頁中斷;
第四次訪問446,所在的4頁不在內存中,發生缺頁中斷,並把最早裝進去的0頁淘汰,用第四頁替換;
第五次訪問102,第一頁在內存中,所以就不發生缺頁中斷;
.
共訪問10次,發生了5次缺頁中斷,所以0.5的缺頁中斷率.
lru演算法累似.

D. 頁式虛擬存儲器有什麼作用

虛擬存儲器(Virtual Memory):在具有層次結構存儲器的計算機系統中,自動實現部分裝入和部分替換功能,能從邏輯上為用戶提供一個比物理貯存容量大得多,可定址的「主存儲器」。虛擬存儲區的容量與物理主存大小無關,而受限於計算機的地址結構和可用磁碟容量。虛擬內存的作用 內存在計算機中的作用很大,電腦中所有運行的程序都需要經過內存來執行,如果執行的程序很大或很多,就會導致內存消耗殆盡。為了解決這個問題,Window
虛擬存儲器

s中運用了虛擬內存技術,即拿出一部分硬碟空間來充當內存使用,當內存佔用完時,電腦就會自動調用硬碟來充當內存,以緩解內存的緊張。舉一個例子來說,如果電腦只有128MB物理內存的話,當讀取一個容量為200MB的文件時,就必須要用到比較大的虛擬內存,文件被內存讀取之後就會先儲存到虛擬內存,等待內存把文件全部儲存到虛擬內存之後,跟著就會把虛擬內存里儲存的文件釋放到原來的安裝目錄里了。下面,就讓我們一起來看看如何對虛擬內存進行設置吧。

E. 虛擬頁式存儲的 一對寄存器和其高速緩存,是放在哪裡的硬體

⑴ 虛擬存儲技術的基本思想

答:虛擬存儲技術的基本思想是利用大容量的外存來擴充內存,產生一個比有限的實際內存空間大得多的、邏輯的虛擬內存空間,以便能夠有效地支持多道程序系統的實現和大型作業運行的需要,從而增強系統的處理能力。

⑵ 虛擬存儲技術的理論基礎(局部性原理)

答:程序局部性原理:虛擬存儲管理的效率與程序局部性程序有很大關系。根據統計,進程運行時,在一段時間內,其程序的執行往往呈現出高度的局限性,包括時間局部性和空間局部性。

1、時間局部性:是指若一條指令被執行,則在不久的將來,它可能再被執行。

2、空間局部性:是指一旦一個存儲單元被訪問,那它附近的單元也將很快被訪問。

⑶ 虛擬存儲管理的基本原理

答:虛擬存儲的基本原理是:當進程要求運行時,不是將它的全部信息裝入內存,而將將其一部分先裝入內存,另一部分暫時留在外存。進程在運行過程中,要使用的信息不在內存時,發生中斷,由操作系統將它們調入內存,以保證進程的正常運行。

⑷ 虛擬存儲管理的分類

答:虛擬存儲管理分為:虛擬頁式、虛擬段式和虛擬段頁式。

⑸ 以虛擬頁式存儲管理為例介紹虛擬存儲管理的實現過程

答:虛擬頁式存儲管理的基本思想是,在進程開始執行之前,不是裝全部頁面,而是只裝一個(甚至0個)頁面,然後根據進程執行的需要,動態地裝入其它頁面。

1、頁表 2、缺頁中斷處理 3、頁面淘汰

⑹ 在虛存中,頁面在內存與外存中頻繁地調試,系統效率急劇下降,

F. 在虛擬存儲器中頁應多大

具體步驟如下:右鍵單擊「我的電腦」→屬性→高級→性能 設置→高級→虛擬內存 更改→選擇虛擬內存(頁面文件)存放的分區→自定義大喧確定最大值和最小值→設置。一般來說,虛擬內存為物理內存的1.5倍,稍大一點也可以,如果你不想虛擬內存頻繁改動

G. 磁碟緩存,虛擬內存,頁面文件,和物理內存的關系

如果它不存在,但是你能看見它 -- 它是虛擬的(IBM宣傳虛擬內存之用語)。虛擬內存技術是計算機發展史上的一項重要的技術,它幫助應用程序擺脫了「體積」的限制。

記得上大學時,有一本書好像叫做「計算機網路 - 自頂向下」,全名記不太清了。書中從人們接觸最多也最熟悉的「應用層」開始講,一直講到「物理層」,看完這本書後感覺效果不錯。所以按照這種方法我也嘗試著自上而下的去學習「虛存」,從我們最熟悉的C庫介面調用說起,一直談到底層的硬體支持設施。

1、初學者的疑惑
初學者往往都會寫出以下這樣的例子程序來學習malloc和free的使用。
int main() {
int *p = malloc(10000);
printf("p's address is 0x%p\n", p);
free(p);
return 0;
}
但往往結果讓這些初學者們感到疑惑。比如上述的例子,在SUN SPARC 64編譯後其輸出如下:
p's address is 0x100100dc0
看到這樣的結果,初學者往往心裡嘀咕,「這台機器物理內存才4G,其地址空間總共才4294967296(dec),而0x100100dc0轉換十進制為4296019392(dec),這個地址明顯已經超出了我的物理內存的限制,這是怎麼回事呢?」。其實這里的解釋很簡單:因為我們看到的都是「虛擬內存地址」。

2、「堆」為何物
malloc是個極其常見的內存分配介面函數,它主要負責運行時在「堆」上為程序動態分配內存空間。我們總是在口頭上談論著「堆」,那麼「堆」到底為何物呢?我們已經知道了有「虛擬地址」這個東西的存在,想必「堆」和「虛擬地址」有著千絲萬縷的聯系^_^。我們來翻看一些經典書籍中的描述。在CS.APP[注1]中的描述是這樣的:「堆是進程地址空間中的一段「虛擬地址」空間。在大多數的Unix系統中,堆是映射「二進制零區域(demand-zero)」實現的。其位置在bss段後,其增長方向為高地址方向」。

3、內存映射
前面談到「demand-zero」這個新名詞,那麼什麼叫「映射到demand-zero」呢?這里蘊含著一個極其重要的概念「內存映射」。內存映射好似一道橋梁,將放在物理磁碟上的對象和一段進程「虛擬地址」空間連接起來。磁碟上的對象,主要指的就是文件,在多數Unix的實現中支持兩種文件的內存映射,分別為Regular File和匿名文件(如demand-zero)。映射的過程大致為將文件分成若干「虛擬內存基本單元(頁)」大小存於「交換區」,直到CPU指令第一次訪問到某個單元時,這個單元才真正被載入到物理內存中。

4、虛擬內存,何方神聖
看到這是不是有些「雲里霧里」的感覺亞^_^。其實對於用戶進程來說,它是看不到CPU和OS是如何相互配合完成內存管理的。它只認為它面前的是一個這樣的情景:「一個完全被我擁有的CPU、一個從擁有M地址空間的物理內存(M = 2的n次方,n為地址匯流排寬度)...」。這里的用戶進程眼中的「物理內存」實際就是「虛擬內存」。虛擬意味著假象,我們知道一個用戶進程運行時可能僅僅佔用的物理內存的一小部分。看來用戶進程被欺騙了。而這個騙局是由操作系統和CPU共同布置的。為了讓這個騙局一直維持下去,CPU和OS還是做了很多工作的,究竟有哪些工作呢?我們一一來看看。

1) 交換區(swap)
為了支持虛擬內存,操作系統在物理內存、磁碟之間交換數據的基本單元為「頁」。頁的大小是固定的,其因操作系統而異。這樣一個用戶進程在被載入之前首先要被分成若干個「頁」,這些頁存儲在磁碟上。那麼是不是進程啟動後所有的頁都被載入到物理內存中呢?答案是NO。在當前的Unix操作系統中,都有一個叫「交換區」的地方,「交換區」在磁碟上,它存儲的是「已分配的虛擬內存頁」。又有些糊塗是吧,什麼叫已分配的頁呢?一個進程虛擬內存頁的載入流程大致是這樣的:一旦用戶進程一虛擬頁需要被載入,則操作系統會在「交換區」中為該頁分配一個頁,一旦CPU訪問的虛擬地址落入該頁地址空間,則該頁才被換入到物理內存中。在這個過程中虛擬頁有多個狀態,分別如下:
未分配的 - 進程虛擬頁未得到載入指令,仍安靜的待在磁碟上;
未緩存的 - OS為該進程虛擬頁在交換區分配了一個空間,但是該虛擬頁還未被引用;
已緩存的 - 該虛擬頁被引用,被載入到物理內存中。

2) 換入換出
物理內存容量有限,當物理內存無空間存儲新的內存頁的時候,就需要將某些內存頁從物理內存中移出以為新頁騰出空間。這個過程對於那些被移出的頁來說,就叫「換出」;相反對於那些新加入到物理內存中的頁來說就叫做「換入」。

5、從緩存角度看虛存
現代計算機的存儲體系是呈金字塔狀的。越接近頂層,速度越快,容量越小,價格越貴;越接近底層,速度越慢,容量越大,價格越低。這樣就形成了一個逐級緩存的機制。第K層設備永遠是第K+1層設備的緩存。按照這種說法,在早期計算機中,主存是磁碟的緩存,CPU內的高級Cache是主存的緩存。現代計算機基本都支持虛擬內存機制,而虛存頁是存儲在磁碟上的,虛存頁在主存中換入換出。按照緩存的概念,虛存屬於容量大,速度慢的第K+1層,而處於第K層的主存就可以看作是虛擬內存的緩存。那麼一切緩存理論就都可以應用在虛存和物理內存之間了,比如換入換出演算法等。

6、硬體支持
在支持虛擬內存機制的計算機中,CPU都是以虛擬地址形式生成指令地址或者數據地址的,而這個虛擬地址對於物理內存來說是不可見的,那麼是誰來屏蔽這個差異的呢?答案是MMU(Memory Management Unit)。MMU負責將CPU發出的虛擬地址轉換成相應的物理內存地址。MMU不是孤立工作的,OS為其提供了很好的支持,OS在物理內存中為MMU維護著一張全局的頁表,來幫助MMU找到正確地物理內存地址。

H. 虛存和內存有什麼區別

虛擬空間:即虛擬主機。 虛擬主機(Virtual Host Virtual Server)是使用特殊的軟硬體技術,把一台計算機主機分成一台台"虛擬"的主機,每一台虛擬主機都具有獨立的域名和IP地址(或共享的IP地址),具有完整的Internet伺服器功能。

虛存空間:把內存與外存有機的結合起來使用的空間,從而得到一個容量很大的「內存」空間,這就是虛存空間。

虛擬儲存器:虛擬存儲器只是一個容量非常大的存儲器的邏輯模型,不是任何實際的物理存儲器.它藉助於磁碟等輔助存儲器來擴大主存容量,使之為更大或更多的程序所使用.
希望我的回答對你有幫助!
1) 內存的基本概念
內存(內存儲器)是微型計算機主機的組成部分,用來存放當前正在使用的或隨時要使用的程序或數據。
CPU可以直接訪問內存。
微機以位元組為單位線性地組織內存儲器,每個存儲單元(一個位元組)都有一個唯一的編號。24位地址匯流排可以提供的地址編號為224=16M位元組。
內存儲器按其工作特點分為:只讀存儲器ROM(Read-Only Memory)和隨機存取存儲器RAM(Random Access Memory)。
虛擬存儲器的工作原理

虛擬存儲器可以分為三類:頁式、段式和段頁式。本節我們主要學習頁式虛擬存儲器。

在頁式虛擬存儲器中通過把主存空間和程序空間都機械等分成固定大小的頁(頁面大小隨機器而定,一般為4KB到4MB),按頁順序編號,用相應的映像表機構來指明該程序的某頁是否已經裝入主存。若已經裝入主存,則應同時指明其在主存中所處的位置;如果未裝入主存,則去輔存中調頁,並建立起程序空間和實存空間的地址映像關系。這樣,程序執行時通過查映像表將程序地址(虛擬地址)變換成實際主存地址(物理地址)再訪問主存。

此存儲系統具有主存的速度和輔存的容量,提高了存儲器系統的性能價格比。CPU直接訪問主存,主存與輔存之間的信息交換由操作系統和硬體來完成,這種把輔存看作是主存的一部分,以擴大主存容量的技術,稱之為虛擬技術。用虛擬技術設計的存儲器,稱為虛擬存儲器。

這些主存與輔存之間實際存在的操作和輔助軟、硬體,對應用程序設計者來講是透明的。但虛擬存儲器對系統程序員來講基本上是不透明的,只是某些部分(如虛擬地址到主存地址的變換)由於採用硬體實現才是透明的。

虛擬地址----又稱邏輯地址,是指訪問虛擬空間的地址。由於指令中給出的地址碼是按虛存空間來統一編址的,因此指令的地址碼實際上是虛擬地址。