多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > 初始操作系統(tǒng)中的虛擬內(nèi)存(上)

初始操作系統(tǒng)中的虛擬內(nèi)存(上)

來源:程序員人生   發(fā)布時(shí)間:2017-02-21 08:34:29 閱讀次數(shù):3868次

本文我們將會提到

  1. 物理和虛擬尋址
  2. 虛擬內(nèi)存作為緩沖工具
  3. 頁表
  4. 地址翻譯

為何要引入虛擬內(nèi)存

在1個操作系統(tǒng)中,不同的進(jìn)程之間都是同享cpu和主存資源的,但是,同享主存會產(chǎn)生1些意想不到的結(jié)果,例如當(dāng)前進(jìn)程有可能不謹(jǐn)慎寫了其它進(jìn)程的內(nèi)存。
為了更加有效管理內(nèi)存并且少出錯,便引入了1種對主存抽象的概念,稱為虛擬內(nèi)存(VM)。它將主存看成是1個存儲在磁盤上的地址空間的高速緩存;并且為每一個進(jìn)程提供了1致的進(jìn)程地址空間,從而簡化了進(jìn)程的內(nèi)存管理,保護(hù)了每一個進(jìn)程的地址空間不被其他進(jìn)程的地址空間所破壞。

物理尋址

這里寫圖片描述
物理地址就是cpu履行加在指令時(shí)會生成1個有效的物理地址,通過內(nèi)存總線,將其傳遞到主存,并從主存中取出數(shù)據(jù),返回給cpu的進(jìn)程。

虛擬尋址

這里寫圖片描述
虛擬尋址相對物理尋址,首先cpu產(chǎn)生的是1個虛擬地址,虛擬地址會經(jīng)過MMU地址翻譯后產(chǎn)生相應(yīng)的物理地址,從而再通過物理尋址來取出數(shù)據(jù),返回給cpu。
虛擬尋址相對物理尋址的好處是可以免訪問到主存中不存在的內(nèi)存,由于它可以在地址翻譯時(shí)就對虛擬地址進(jìn)行檢查,檢查其是不是有效,并且物理尋址必須依照順序來訪問,而且在虛擬尋址中,當(dāng)物理內(nèi)存不夠用時(shí)系統(tǒng)自動從硬盤空間劃分1些容量出來當(dāng)作虛擬內(nèi)存使用。

虛擬內(nèi)存作為緩存的工具

這里寫圖片描述
前面我們知道了虛擬內(nèi)存是1個自由寄存的磁盤上的單元,當(dāng)虛擬內(nèi)存作為物理內(nèi)存的緩沖工具時(shí),系統(tǒng)通過將虛擬內(nèi)存分割為虛擬頁,物理內(nèi)存分割為物理頁,通過將虛擬頁緩存到物理內(nèi)存中可以彌補(bǔ)物理內(nèi)存大小的不足;1定程度的提高反應(yīng)速度;減少對物理內(nèi)存的讀取從而保護(hù)內(nèi)存延長內(nèi)存使用壽命。

頁表

緩存需要引入1個具有某種方法來判定1個虛擬頁是不是緩存在DRAM中的某個地方。如果是,還必須肯定這個虛擬頁寄存在哪一個物理頁中,還需要能處理缺頁等現(xiàn)象。因而引入了頁表,它寄存在物理內(nèi)存中,和MMU中的地址翻譯硬件1起來管理內(nèi)存單元;頁表需要將虛擬頁映照到物理頁,每次翻譯硬件將1個虛擬地址轉(zhuǎn)換為物理地址時(shí),都會讀取頁表。
頁表的基本結(jié)構(gòu)以下:
這里寫圖片描述

頁命中

頁命中表示的是1個進(jìn)程,當(dāng)通過虛擬地址查找到頁表中的相干頁面時(shí),設(shè)置了有效位,此時(shí)就會產(chǎn)生頁命中,地址翻譯硬件將虛擬地址作為1個索引在頁表中定位,通過拿到頁表的物理頁號中的內(nèi)容,從而在內(nèi)存中讀取它。

缺頁

缺頁就是DRAM緩存不命中這個進(jìn)程,下圖展現(xiàn)了頁表如何處理缺頁。
這里寫圖片描述

地址翻譯

地址翻譯是將虛擬地址空間轉(zhuǎn)換成物理地址空間的映照關(guān)系,首先我們來介紹1下地址翻譯中的虛擬地址的結(jié)構(gòu):
這里寫圖片描述
由上圖可知,虛擬n為的虛擬地址中包括了p位的虛擬頁偏移量vpo,和n-p位的虛擬頁號vpn,地址翻譯進(jìn)程中,通過將虛擬地址中的獲得虛擬頁號vpn,從而在頁表中定義到相干頁面,取出來的物理頁號ppn和虛擬頁偏移量進(jìn)行合并便構(gòu)成了物理地址。
全部進(jìn)程以下,下圖介紹了TLB加速地址翻譯,它對普通的地址翻譯進(jìn)行了優(yōu)化,可以看看圖中的虛擬地址的構(gòu)成:
這里寫圖片描述
得到了物理地址后便會根據(jù)物理地址正在高速緩存中讀取相應(yīng)的塊如果命中便會將相應(yīng)的數(shù)據(jù)返回給cpu,如果沒有命中就會產(chǎn)生缺頁,內(nèi)核會調(diào)用缺頁異常處理程序并調(diào)入適合的頁面重新加載有關(guān)引發(fā)缺頁的指令。

總結(jié)

虛擬內(nèi)存是真實(shí)的存在在硬盤當(dāng)中的,它使每一個進(jìn)程都能有自己獨(dú)立的地址空間,避免正在履行的進(jìn)程對其他進(jìn)程的地址空間進(jìn)行寫入操作,同時(shí)虛擬內(nèi)存經(jīng)常使用來作為主存的緩存,作為內(nèi)存管理和內(nèi)存保護(hù)工具,另外,有時(shí)候需要某種方法來檢測虛擬地址的合法性,便引入了頁表,它通過相干機(jī)制優(yōu)化了虛擬內(nèi)存,使虛擬內(nèi)存更加高效。后面還會介紹虛擬內(nèi)存的有關(guān)知識,希望能夠延續(xù)關(guān)注。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产中日韩一区二区三区 | 激情 黄 +色+成+人 | 免费一级毛片私人影院a行 免费一级毛片一级毛片aa | yellow字幕网在线91zmw | 国产免费播放一区二区 | 免费观看亚洲视频 | 97精品伊人久久久大香线焦 | 久久久久久久久久久大尺度免费视频 | 精品一区二区三区在线视频观看 | 亚洲精品国产字幕久久不卡 | 毛片大全在线 | 亚洲色图第三页 | 欧美俄罗斯一级毛片激情 | 亚洲综合无码一区二区 | 久久久国产这里有的是精品 | 欧美3区 | 成人免费观看视频久爱网 | 日本中文在线视频 | 久久不卡一区二区三区 | 中文字幕亚洲高清综合 | 欧美一区中文字幕 | 国产日韩精品欧美一区喷 | 国产呦合第一系 | 亚洲一区二区三区国产精品 | 黄色网址www | 欧美一级高清片在线 | 性猛交xxxxx按摩中国 | 亚洲欧洲网站 | 亚洲 日本 欧美 日韩精品 | 欧美色图偷窥自拍 | 密桃av | 亚洲人成亚洲人成在线观看 | 偷自拍第一页 | 伊人首页 | 亚洲综合亚洲综合网成人 | 亚洲专区一区 | jizz在线免费 | 亚洲一区二区在线成人 | 亚欧精品一区二区三区四区 | 国内自拍视频在线播放 | 一区二区在线欧美日韩中文 |