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

發(fā)布時(shí)間:2024-01-15
常常接觸計(jì)算機(jī)的人也可能會(huì)被一些計(jì)算機(jī)的相關(guān)定義搞得頭尋目眩。但是理解這些定義卻是對(duì)我們使用計(jì)算機(jī)有很大的幫助。那么下面小編就為大家介紹一下虛擬地址是什么?什么是虛擬地址空間?如何對(duì)其做定義?
虛擬地址的定義
虛擬地址又叫虛擬內(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)線(xiàn)程調(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)注我們!
上一個(gè):安沃馳齒輪泵*無(wú)桿氣缸rtc
下一個(gè):kuhse電磁閥

未安裝音頻設(shè)備紅叉怎么辦(未安裝音頻設(shè)備紅叉重新安裝驅(qū)動(dòng)也不行)
園林綠化養(yǎng)護(hù)之植物如何管理?
供應(yīng)西班牙utilcell顯示儀表
CC1206JRX7R9BB153,X7R 1206 15nF ±5% 50V
電腦如何加裝第二個(gè)硬盤(pán)驅(qū)動(dòng)系統(tǒng)
bios設(shè)置ahci模式開(kāi)機(jī)藍(lán)屏(bios設(shè)置ahci模式開(kāi)機(jī)提示重啟)
固態(tài)硬盤(pán)加機(jī)械硬盤(pán)安裝方法圖解,固態(tài)硬盤(pán)和機(jī)械硬盤(pán)一起裝機(jī)怎么裝怎么分區(qū)
怎么看蘋(píng)果id郵箱賬號(hào)(怎么查看蘋(píng)果id郵箱地址)
地下室底板設(shè)濾水層排水板做法是什么?
美國(guó)aavid thermalloy控制器
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos