虛擬地址是什么?什么是虛擬地址空間?如何對(duì)其做定義?

常常接觸計(jì)算機(jī)的人也可能會(huì)被一些計(jì)算機(jī)的相關(guān)定義搞得頭尋目眩。但是理解這些定義卻是對(duì)我們使用計(jì)算機(jī)有很大的幫助。那么下面創(chuàng)新互聯(lián)建站小編就為大家介紹一下虛擬地址是什么?什么是虛擬地址空間?如何對(duì)其做定義?

為宜興等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及宜興網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、宜興網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!虛擬地址的定義
虛擬地址又叫虛擬內(nèi)存,虛擬內(nèi)存是內(nèi)存管理的一種方式, 它在磁盤(pán)上劃分出一塊空間由操作系統(tǒng)管理,當(dāng)物理內(nèi)存耗盡是充當(dāng)物理內(nèi)存來(lái)使用。它將多個(gè)物理內(nèi)存碎片和部分磁盤(pán)空間重定義為連續(xù)的地址空間,以此讓程序認(rèn)為自己擁有連續(xù)可用的內(nèi)存。當(dāng)物理內(nèi)存不足時(shí),操作系統(tǒng)會(huì)將處于不活動(dòng)狀態(tài)的程序以及它們的數(shù)據(jù)全部交換到磁盤(pán)上來(lái)釋放物理內(nèi)存,以供其它程序使用。

虛擬地址空間的定義
虛擬地址空間(virtual address space)是2018年公布的計(jì)算機(jī)科學(xué)技術(shù)名詞。
是由進(jìn)程的虛地址構(gòu)成的地址空間。
在多任務(wù)操作系統(tǒng)中,每個(gè)進(jìn)程都運(yùn)行在屬于自己的內(nèi)存沙盤(pán)中,這個(gè)沙盤(pán)就是虛擬地址空間(virtual address space)。虛擬地址空間由內(nèi)核空間(kernel space)和用戶(hù)模式空間(user mode space)兩部分組成。
虛擬地址會(huì)通過(guò)頁(yè)表(page table)映射到物理內(nèi)存,頁(yè)表由操作系統(tǒng)維護(hù)并被處理器引用,每個(gè)進(jìn)程都有自己的頁(yè)表。內(nèi)核空間在頁(yè)表中擁有較高特權(quán)級(jí),因此用戶(hù)態(tài)程序試圖訪問(wèn)這些頁(yè)是會(huì)導(dǎo)致一個(gè)頁(yè)錯(cuò)誤(page fault)。其中內(nèi)核空間是持續(xù)存在的,并且在所有進(jìn)程中都映射到同樣的物理內(nèi)存。與此相反,用戶(hù)模式空間的映射隨進(jìn)程切換的發(fā)生而不斷變化。

對(duì)虛擬地址空間的理解
1、創(chuàng)建一個(gè)進(jìn)程時(shí),操作系統(tǒng)會(huì)為該進(jìn)程分配一個(gè) 4GB 大小的虛擬 進(jìn)程地址空間。之所以是 4GB ,是因?yàn)樵?32 位的操作系統(tǒng)中,一個(gè)指針長(zhǎng)度是 4 字節(jié),而 4 字節(jié)指針的尋址能力是從 0x00000000~0xFFFFFFFF ,大值 0xFFFFFFFF 表示的即為 4GB 大小的容量。
2、每個(gè)進(jìn)程只能訪問(wèn)自己虛擬地址空間中的數(shù)據(jù),無(wú)法訪問(wèn)別的進(jìn)程中的數(shù)據(jù),通過(guò)這種方法實(shí)現(xiàn)了進(jìn)程間的地址隔離。
3、4GB 的虛擬地址被分成了 4 部分: NULL 指針區(qū)、用戶(hù)區(qū)、 64KB 禁入?yún)^(qū)、內(nèi)核區(qū)。應(yīng)用程序能使用的只是用戶(hù)區(qū)而已,大約 2GB 左右 ( 大可以調(diào)整到 3GB) 。內(nèi)核區(qū)為 2GB ,內(nèi)核區(qū)保存的是系統(tǒng)線程調(diào)度、內(nèi)存管理、設(shè)備驅(qū)動(dòng)等數(shù)據(jù),這部分?jǐn)?shù)據(jù)供所有的進(jìn)程共享,但應(yīng)用程序是不能直接訪問(wèn)的。
4、目前PC上頁(yè)面大小為4K,程序運(yùn)行到哪頁(yè)就為哪頁(yè)分配內(nèi)存,并建立虛擬地址空間頁(yè)和剛剛建立的物理內(nèi)存頁(yè)間的映射。
5、一個(gè)PE是一些編譯好的數(shù)據(jù)和指令的集合,也被分為很多頁(yè)。4G的地址空間并非真正創(chuàng)建,只是創(chuàng)建虛擬地址空間到物理地址空間映射的頁(yè)表。
6、PE文件中所有的段會(huì)一一映射到虛擬地址空間中相應(yīng)的頁(yè)。
7、當(dāng)CPU訪問(wèn)某一個(gè)虛擬地址時(shí),發(fā)現(xiàn)該地址并沒(méi)有相關(guān)聯(lián)的物理地址時(shí),產(chǎn)生一個(gè)缺頁(yè)錯(cuò)誤,于是CPU將控制權(quán)交回OS,OS為該頁(yè)面映射物理內(nèi)存。
8、當(dāng)CPU要訪問(wèn)的數(shù)據(jù)在內(nèi)存中時(shí),可以直接訪問(wèn)。
當(dāng)CPU要訪問(wèn)的數(shù)據(jù)不再內(nèi)存中,而位于頁(yè)交換文件中,OS會(huì)在內(nèi)存中找到一個(gè)閑置的頁(yè)面,如果找不到閑置的頁(yè)面,先釋放一個(gè)已分配的頁(yè)面。
9、頁(yè)交換文件的左右時(shí)物理內(nèi)存不夠時(shí),將部分?jǐn)?shù)據(jù)從內(nèi)存中移到頁(yè)交換文件中,否則要釋放物理內(nèi)存,刪除頁(yè)面映射關(guān)系。
什么是虛擬地址空間?相信對(duì)于這個(gè)問(wèn)題你已經(jīng)有了自己的答案。這些都是我們?cè)谑褂糜?jì)算機(jī)時(shí)需要學(xué)習(xí)的進(jìn)階內(nèi)容,了解這些可以幫助我們更好的使用計(jì)算機(jī),做到更多事情。想要學(xué)習(xí)更多有關(guān)知識(shí),歡迎長(zhǎng)期關(guān)注創(chuàng)新互聯(lián)!

名稱(chēng)欄目:虛擬地址是什么?什么是虛擬地址空間?如何對(duì)其做定義?
網(wǎng)站路徑:http://muchs.cn/article42/chichc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)微信公眾號(hào)、品牌網(wǎng)站制作響應(yīng)式網(wǎng)站、商城網(wǎng)站微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)