常常接觸計算機的人也可能會被一些計算機的相關(guān)定義搞得頭尋目眩。但是理解這些定義卻是對我們使用計算機有很大的幫助。那么下面創(chuàng)新互聯(lián)建站小編就為大家介紹一下虛擬地址是什么?什么是虛擬地址空間?如何對其做定義?
為宜興等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及宜興網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站設計制作、
做網(wǎng)站、宜興網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!虛擬地址的定義
虛擬地址又叫虛擬內(nèi)存,虛擬內(nèi)存是內(nèi)存管理的一種方式, 它在磁盤上劃分出一塊空間由操作系統(tǒng)管理,當物理內(nèi)存耗盡是充當物理內(nèi)存來使用。它將多個物理內(nèi)存碎片和部分磁盤空間重定義為連續(xù)的地址空間,以此讓程序認為自己擁有連續(xù)可用的內(nèi)存。當物理內(nèi)存不足時,操作系統(tǒng)會將處于不活動狀態(tài)的程序以及它們的數(shù)據(jù)全部交換到磁盤上來釋放物理內(nèi)存,以供其它程序使用。
虛擬地址空間的定義
虛擬地址空間(virtual address space)是2018年公布的計算機科學技術(shù)名詞。
是由進程的虛地址構(gòu)成的地址空間。
在多任務操作系統(tǒng)中,每個進程都運行在屬于自己的內(nèi)存沙盤中,這個沙盤就是虛擬地址空間(virtual address space)。虛擬地址空間由內(nèi)核空間(kernel space)和用戶模式空間(user mode space)兩部分組成。
虛擬地址會通過頁表(page table)映射到物理內(nèi)存,頁表由操作系統(tǒng)維護并被處理器引用,每個進程都有自己的頁表。內(nèi)核空間在頁表中擁有較高特權(quán)級,因此用戶態(tài)程序試圖訪問這些頁是會導致一個頁錯誤(page fault)。其中內(nèi)核空間是持續(xù)存在的,并且在所有進程中都映射到同樣的物理內(nèi)存。與此相反,用戶模式空間的映射隨進程切換的發(fā)生而不斷變化。
對虛擬地址空間的理解
1、創(chuàng)建一個進程時,操作系統(tǒng)會為該進程分配一個 4GB 大小的虛擬 進程地址空間。之所以是 4GB ,是因為在 32 位的操作系統(tǒng)中,一個指針長度是 4 字節(jié),而 4 字節(jié)指針的尋址能力是從 0x00000000~0xFFFFFFFF ,大值 0xFFFFFFFF 表示的即為 4GB 大小的容量。
2、每個進程只能訪問自己虛擬地址空間中的數(shù)據(jù),無法訪問別的進程中的數(shù)據(jù),通過這種方法實現(xiàn)了進程間的地址隔離。
3、4GB 的虛擬地址被分成了 4 部分: NULL 指針區(qū)、用戶區(qū)、 64KB 禁入?yún)^(qū)、內(nèi)核區(qū)。應用程序能使用的只是用戶區(qū)而已,大約 2GB 左右 ( 大可以調(diào)整到 3GB) 。內(nèi)核區(qū)為 2GB ,內(nèi)核區(qū)保存的是系統(tǒng)線程調(diào)度、內(nèi)存管理、設備驅(qū)動等數(shù)據(jù),這部分數(shù)據(jù)供所有的進程共享,但應用程序是不能直接訪問的。
4、目前PC上頁面大小為4K,程序運行到哪頁就為哪頁分配內(nèi)存,并建立虛擬地址空間頁和剛剛建立的物理內(nèi)存頁間的映射。
5、一個PE是一些編譯好的數(shù)據(jù)和指令的集合,也被分為很多頁。4G的地址空間并非真正創(chuàng)建,只是創(chuàng)建虛擬地址空間到物理地址空間映射的頁表。
6、PE文件中所有的段會一一映射到虛擬地址空間中相應的頁。
7、當CPU訪問某一個虛擬地址時,發(fā)現(xiàn)該地址并沒有相關(guān)聯(lián)的物理地址時,產(chǎn)生一個缺頁錯誤,于是CPU將控制權(quán)交回OS,OS為該頁面映射物理內(nèi)存。
8、當CPU要訪問的數(shù)據(jù)在內(nèi)存中時,可以直接訪問。
當CPU要訪問的數(shù)據(jù)不再內(nèi)存中,而位于頁交換文件中,OS會在內(nèi)存中找到一個閑置的頁面,如果找不到閑置的頁面,先釋放一個已分配的頁面。
9、頁交換文件的左右時物理內(nèi)存不夠時,將部分數(shù)據(jù)從內(nèi)存中移到頁交換文件中,否則要釋放物理內(nèi)存,刪除頁面映射關(guān)系。
什么是虛擬地址空間?相信對于這個問題你已經(jīng)有了自己的答案。這些都是我們在使用計算機時需要學習的進階內(nèi)容,了解這些可以幫助我們更好的使用計算機,做到更多事情。想要學習更多有關(guān)知識,歡迎長期關(guān)注創(chuàng)新互聯(lián)!
當前名稱:虛擬地址是什么?什么是虛擬地址空間?如何對其做定義?
標題鏈接:
http://weahome.cn/article/chichc.html