亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Linux > 正文

linux之虛擬內(nèi)存相關(guān)介紹

2020-05-27 13:50:51
字體:
供稿:網(wǎng)友

什么是虛存?為什么需要它? 我們知道程序代碼和數(shù)據(jù)必須駐留在內(nèi)存中才能得以運行,然而系統(tǒng)內(nèi) 存數(shù)量很有限,往往不能容納一個完整程序的所有代碼和數(shù)據(jù),更何況在多任務(wù)系統(tǒng)中,可能需要同時打開子處理程序,畫圖程序,瀏覽器等很多任務(wù),想讓內(nèi)存駐 留所有這些程序顯然不太可能。因此首先能想到的就是將程序分割成小份,只讓當(dāng)前系統(tǒng)運行它所有需要的那部分留在內(nèi)存,其它部分都留在硬盤。當(dāng)系統(tǒng)處理完當(dāng) 前任務(wù)片段后,再從外存中調(diào)入下一個待運行的任務(wù)片段。的確,老式系統(tǒng)就是這樣處理大任務(wù)的,而且這個工作是由程序員自行完成。但是隨著程序語言越來越高 級,程序員對系統(tǒng)體系的依賴程度降低了,很少有程序員能非常清楚的駕馭系統(tǒng)體系,因此放手讓程序員負(fù)責(zé)將程序片段化和按需調(diào)入輕則降低效率,重則使得機器 崩潰;再一個原因是隨著程序越來越豐富,程序的行為幾乎無法準(zhǔn)確預(yù)測,程序員自己都很難判斷下一步需要載入哪段程序。因此很難再靠預(yù)見性來靜態(tài)分配固定大 小的內(nèi)存,然后再機械地輪換程序片進(jìn)入內(nèi)存執(zhí)行。系統(tǒng)必須采取一種能按需分配而不需要程序員干預(yù)的新技術(shù)。 虛擬內(nèi)存(之所以稱為虛 擬內(nèi)存,是和系統(tǒng)中的邏輯內(nèi)存和物理內(nèi)存相對而言的,邏輯內(nèi)存是站在進(jìn)程角度看到的內(nèi)存,因此是程序員關(guān)心的內(nèi)容。而物理內(nèi)存是站在處理器角度看到的內(nèi) 存,由操作系統(tǒng)負(fù)責(zé)管理。虛擬內(nèi)存可以說是映射到這兩種不同視角內(nèi)存的一個技術(shù)手段。)技術(shù)就是一種由操作系統(tǒng)接管的按需動態(tài)內(nèi)存分配的方法,它允許程序 不知不覺中使用大于實際物理空間大小的存儲空間(其實是將程序需要的存儲空間以頁的形式分散存儲在物理內(nèi)存和磁盤上),所以說虛擬內(nèi)存徹底解放了程序員, 從此程序員不用過分關(guān)心程序的大小和載入,可以自由編寫程序了,繁瑣的事情都交給操作系統(tǒng)去做吧。 實現(xiàn)虛擬內(nèi)存 虛擬內(nèi)存是將系統(tǒng)硬盤空間和系統(tǒng)實際內(nèi)存聯(lián)合在一起供進(jìn)程使用,給進(jìn)程提供了一個比內(nèi)存大得多的虛擬空間。在程序運行時,只要把虛擬地址空間的一小部分 映射到內(nèi)存,其余都存儲在硬盤上(也就是說程序虛擬空間就等于實際物理內(nèi)存加部分硬盤空間)。當(dāng)被訪問的虛擬地址不在內(nèi)存時,則說明該地址未被映射到內(nèi) 存,而是被存貯在硬盤中,因此需要的虛擬存儲地址隨即被調(diào)入到內(nèi)存;同時當(dāng)系統(tǒng)內(nèi)存緊張時,也可以把當(dāng)前不用的虛擬存儲空間換出到硬盤,來騰出物理內(nèi)存空 間。系統(tǒng)如此周而復(fù)始地運轉(zhuǎn)——換入、換出,而用戶幾乎無法查覺,這都是拜虛擬內(nèi)存機制所賜。 Linux的swap分區(qū)就是硬盤專門為虛擬存儲空間預(yù)留的空間。經(jīng)驗大小應(yīng)該是內(nèi)存的兩倍左右。有興趣的話可以使用 swapon -s 查看交換分區(qū)大小。 大道理很好理解,無非是用內(nèi)存和硬盤空間合成為虛擬內(nèi)存空間。但是這一過程中反復(fù)運行的地址映射(虛擬地址映射到物理地址)和虛擬地址換入換出卻值得仔細(xì)推敲。系統(tǒng)到底是怎么樣把虛擬地址映射到物理地址上的呢?內(nèi)存又如何能不斷地和硬盤之間換入換出虛擬地址呢? 利用段機制能否回答上述問題呢?邏輯地址通過段機制后變?yōu)橐粋€32位的地址,足以覆蓋4G的內(nèi)存空間,當(dāng)程序需要的虛擬地址不在內(nèi)存時,只依靠段機制很 難進(jìn)行虛擬空間地?fù)Q入換出,因為不大方便把整段大小的虛擬空間在內(nèi)存和硬盤之間調(diào)來調(diào)去(老式系統(tǒng)中,會笨拙地?fù)Q出整段內(nèi)存甚至整個進(jìn)程,想想這樣做會有 那些惡果吧?。?。所以很有必要尋找一個更小更靈活的存儲表示單位,這樣才方便虛擬地址在硬盤和內(nèi)存之間調(diào)入調(diào)出。這個更小的存儲管理單位便是頁(4K大 ?。9芾眄摀Q入換出的機制被稱為頁機制。 因為使用頁機制的原因,通過段機制轉(zhuǎn)換得到的地址僅僅是作為一個中間地址——線性地址, 該地址不代表實際物理地址,而是代表整個進(jìn)程的虛擬空間地址。在線性地址的基礎(chǔ)上,頁機制接著會處理線性地址映射:當(dāng)需要的線性地址(虛擬空間地址)不在 內(nèi)存時,便以頁為單位從磁盤中調(diào)入需要的虛擬內(nèi)存;當(dāng)內(nèi)存不夠時,又會以頁為單位把內(nèi)存中虛擬空間的換出到磁盤上??梢?,利用頁來管理內(nèi)存和磁盤(虛擬內(nèi) 存)大大方便了內(nèi)存管理的工作。毫無疑問,頁機制和虛擬內(nèi)存管理簡直是“絕配”。 使用頁機制,4G空間被分成2的20次方個4K大小的 頁面(頁面也可定為4M大?。虼硕ㄎ豁撁嫘枰乃饕?頁表)中每個索引項至少需要20位,但是在頁表項中往往還需要附加一些頁屬性,所以頁表項實際 為32位,其中12位用來存放諸如“頁是否存在于內(nèi)存”或“頁的權(quán)限”等信息。 前面我們提到了線性地址是32位。它其中高20位是對頁表的索引,低12位則給出了頁面中的偏移。線性地址經(jīng)過頁表找到頁面基地址后和低12位偏移量相加就形成了最終需要的物理地址了。 在實際使用中,并非所有頁表項都是被存放在一個大頁表里,因為每個頁表項占4個字節(jié),如果要在一個表中存放2的20次方個頁表項,就需要4M的連續(xù)存儲空間。這么大的連續(xù)空間可不好找,因此往往會把頁表分級存儲,比如分兩級,那么每級頁表只需要4k連續(xù)空間了。 兩級頁表搜索如同看章回小說,先找到在哪一章里,然后在找在該章下的哪一節(jié)。具體過程看看下圖: linux之虛擬內(nèi)存相關(guān)介紹  武林網(wǎng)綜上所述,地址轉(zhuǎn)換工作需要兩種技術(shù),一是段機制,二是頁機制。段機制處理邏輯地址向線性地址的映射;頁機制則負(fù)責(zé)把線性地址映射為物理地址。兩級映射共同完成了從程序員看到的邏輯地址轉(zhuǎn)換到處理器看到的物理地址這一艱巨任務(wù)。 你可以將這兩種機制分別比作一個地址轉(zhuǎn)換函數(shù),段機制的變量是邏輯地址,函數(shù)值是線性地址;頁機制的變量是線性地址,函數(shù)值是物理地址。地址轉(zhuǎn)換過程如下所示。 邏輯地址——(段函數(shù))——>線性地址——(頁函數(shù))——>物理地址。 雖然段機制和頁機制都參與映射,但它們分工不同,而且相互獨立互不干擾,彼此之間不必知道對方是否存在。 下面我們結(jié)合Linux實例簡要地看看段頁機制如何使用。 Linux中的分段策略 段機制在Linux里用得有限,并沒有被完全利用。每個任務(wù)并未分別安排各自獨立的數(shù)據(jù)段,代碼段,而是僅僅最低限度的利用段機制來隔離用戶數(shù)據(jù)和系統(tǒng) 數(shù)據(jù)——Linux只安排了四個范圍一樣的段,內(nèi)核數(shù)據(jù)段,內(nèi)核代碼段,用戶數(shù)據(jù)段,用戶代碼段,它們都覆蓋0-4G的空間,所不同的是各段屬性不同,內(nèi) 核段特權(quán)級為0,用戶段特權(quán)級為3。這樣分段,避免了邏輯地址到線性地址的轉(zhuǎn)換步驟(邏輯地址就等于線性地址),但仍然保留了段的等級這層最基本保護。 每個用戶進(jìn)程都可以看到4G大小的線性空間,其中0-3G是用戶空間,用戶態(tài)進(jìn)程可以直接訪問;從3G-4G空間為內(nèi)核空間,存放內(nèi)核代碼和數(shù)據(jù),只有內(nèi)核態(tài)進(jìn)程能夠直接訪問,用戶態(tài)進(jìn)程不能直接訪問,只能通過系統(tǒng)調(diào)用和中斷進(jìn)入內(nèi)核空間,而這時就要進(jìn)行的特權(quán)切換。 說 到特權(quán)切換,就離不開任務(wù)門,陷阱門/中斷門等概念。陷阱門和中斷門是在發(fā)生陷阱和中斷時,進(jìn)入內(nèi)核空間的通道。調(diào)用門是用戶空間程序相互訪問時所需要的 通道,任務(wù)門比較特殊,它不含任何地址,而是服務(wù)于任務(wù)切換(但linux任務(wù)切換時并未真正采用它,它太麻煩了)。 對于各種門系統(tǒng)都會有對應(yīng)的門描述符,和段描述符結(jié)構(gòu)類似,門描述符也是由對應(yīng)的門選擇字索引,并且最終會產(chǎn)生一個指向特定段內(nèi)偏移地址的指針。這個指針指向的就是將要進(jìn)入的入口。利用門的目的就是保證入口可控,不至于進(jìn)入到內(nèi)核中不該訪問的位置。 Linux中的分頁策略 看看linux中如何使用分頁。 Linux中每個進(jìn)程都會有各自不同的頁表,也就是說進(jìn)程的映射函數(shù)互不相同,保證每個進(jìn)程虛擬地址不會映射到相同的物理地址上。這是因為進(jìn)程之間必須相互獨立,各自的數(shù)據(jù)必須隔離,防止信息泄漏。 需要注意的是,內(nèi)核作為必須保護的單獨部分,它有自己獨立的頁表來映射內(nèi)核空間(并非全部空間,僅僅是物理內(nèi)存大小的空間),該頁表 (swapper_pg_dir)被靜態(tài)分配,它只來映射內(nèi)核空間(swapper_pg_dir只用到768項以后的項——768個頁目錄可映射3G空 間)。這個獨立頁表保證了內(nèi)核虛擬空間獨立于其他用戶程序空間,也就是說其他進(jìn)程通常狀態(tài)下和內(nèi)核是沒有聯(lián)系的(在編譯內(nèi)核的時候,內(nèi)核代碼被指定鏈接到 3G以上空間),因而內(nèi)核數(shù)據(jù)也就自然被保護起來了。 那么在用戶進(jìn)程需要訪問內(nèi)核空間時如何做呢? Linux采用了個巧妙的方法:用戶進(jìn)程頁表的前768項映射進(jìn)程空間(<3G,因為LDT 中只指定基地址為0,范圍只能到0xc0000000),如果進(jìn)程要訪問內(nèi)核空間,如調(diào)用系統(tǒng)調(diào)用,則進(jìn)程的頁目錄中768項后的表項將指向 swapper_pg_dir的768項后的項,所以一旦用戶陷入內(nèi)核,就開始使用內(nèi)核的頁表swapper_pg_dir了,也就是說可以訪問內(nèi)核空間 了。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
精品一区二区三区在线播放视频| 爆操欧美美女| 日韩激情视频一区二区| 日韩精品久久久毛片一区二区| 欧美精品激情在线| 日韩一级二级三级| 欧美精品密入口播放| 国产一区二区不卡视频在线观看| 国产成人av片| 黄色免费在线播放| 欧美精品一区二区三区久久| h视频免费高清在线观看| 欧美午夜视频在线| 日韩av在线免费看| 国产欧美一区二区三区鸳鸯浴| 91麻豆成人精品国产| 国产精品成人va在线观看| 国产伦精品一区二区三毛| 蜜臀久久99精品久久久久久| 717影院理论午夜伦不卡久久| 亚洲最新永久在线观看| 国产精品女人网站| 日韩在线视频线视频免费网站| 日本一级片免费看| 精品国产白色丝袜高跟鞋| 法国空姐电影在线观看| 免费黄色av| 久色视频在线| 亚洲高清不卡一区| 麻豆传媒在线完整视频| 毛片aaaaa| 中文字幕亚洲综合久久五月天色无吗''| 97在线免费视频| 日韩欧美精品一区| 免费观看亚洲视频大全| 国产精品亚洲第一| 亚洲精品在线观看视频| 开心激情五月婷婷| 欧美妇性猛交视频| 国产精品一区二区欧美黑人喷潮水| 日本五十肥熟交尾| 精品综合久久久| 久久久久久久欧美精品| 91精品网站| 欧美最顶级丰满的aⅴ艳星| 国产美女高潮久久白浆| 黄色国产在线观看| 国产丝袜在线| 韩国av电影免费观看| 中文字幕av高清在线观看| 欧美国产1区2区| 色综合666| 九义人在线观看完整免费版电视剧| 国产综合精品久久| 狠狠综合久久av一区二区老牛| 日韩一区中文| 国产人妖ts一区二区| 在线视频cao| 国产伦精品一区二区三区视频黑人| 欧美日韩大尺度| 欧美黄色www| 欧美一卡二卡在线观看| 亚洲欧洲一区二区三区在线观看| 91精品国产色综合久久不卡98口| 亚洲人妻一区二区| 草草草在线视频| 黄色a级片免费| 亚洲永久精品视频| 91精品韩国| 欧美精品一区二区蜜桃| 免费成人毛片| 蜜桃臀一区二区三区| 欧美韩国一区| 欧美人善交videosg| 亚洲**毛片| 欧美日韩精品免费观看视完整| 狠狠干狠狠搞| 日韩三级小视频| 精品人妻一区二区三区浪潮在线| a黄色在线观看| 色啪啪.com| 亚洲日本视频在线| 九九夜夜操妹子| av成人免费在线| 99久久99热久久精品免费看| 人人在线97| 成人黄网18免费观看的网站| 黄网站免费在线播放| 922tv免费观看在线| 欧美人与性动交a欧美精品| 精品综合在线| 中文字幕av久久爽一区| 在线亚洲伦理| 国产精品国产精品国产专区蜜臀ah| 日本一本高清视频| 自拍视频在线观看一区二区| eeuss影院一区二区三区| 中国女人一级一次看片| 91精品国产综合久久精品性色| 一级特黄a大片免费| √资源天堂中文在线| 亚欧美无遮挡hd高清在线视频| xxxx日本免费| 亚洲理论在线| 91黄色小视频| 欧美日韩午夜在线视频| 99在线视频免费观看| 亚洲国产精品系列| 欧美视频精品全部免费观看| 春意影院普通入口| 精品亚洲一区二区| 国产裸体无遮挡| 男人添女荫道口喷水视频| 综合久久一区二区三区| 日韩精品一区二区三区在线| 国产精品久久久久久久久久10秀| 伊人久久综合视频| 亚洲丝袜一区在线| 欧美日韩在线观看成人| 久久综合99re88久久爱| 中日韩高清电影网| 国产中文字幕乱人伦在线观看| 欧美日韩国产免费| 午夜亚洲福利在线老司机| 美女又黄又免费的视频| 中文乱码人妻一区二区三区视频| 日韩欧美国产高清| 成人免费区一区二区三区| jlzzjlzzjlzz亚洲人| 免费观看黄色网| 中文字幕制服丝袜成人av| 精品国产网站地址| 九色在线网站| 超碰在线免费播放| 国产福利一区二区三区在线视频| 柠檬在线导航福利| 久久偷看各类女兵18女厕嘘嘘| 久久精品国产亚洲av麻豆| 欧美第一区第二区| 日韩在线理论| 黄色污网站在线观看| 日韩高清av电影| 99re6在线精品视频免费播放| 中文字幕一区二区三区四| 岛国精品一区二区| 性做久久久久久久| 国产精品萝li| 亚洲最大色图| 日本一二三四区视频| 国产精品三级美女白浆呻吟| 免费看黄色网| 日本天堂在线观看| 欧美高清无遮挡| 草草久视频在线观看电影资源| 无码日韩精品一区二区| 91精品一区二区三区四区| 亚洲系列在线观看| 草色在线视频| 欧美野外猛男的大粗鳮| 影音先锋中文在线视频| 91在线观看免费高清| 国产女人爽到高潮a毛片| 91av福利| 少妇一区二区三区| 亚洲国产果冻传媒av在线观看| 91性感美女视频| 亚洲成va人在线观看| 中文在线资源观看视频网站免费不卡| 99视频精品全部免费看| 超级白嫩亚洲国产第一| 中文字幕一区二区三区人妻在线视频| 国产精品欧美久久久久无广告| 撸视在线观看免费视频| 欧美成人video| 东方欧美亚洲色图在线| 成人午夜精品福利免费| 国产丝袜一区二区三区免费视频| 99青春婷婷视频| 在线观看中文字幕视频| 国产av无码专区亚洲av毛网站| 一本一道久久a久久精品综合| 一级毛片在线视频| 欧美系列日韩一区| 亚洲一区欧美在线| 蜜桃特黄a∨片免费观看| 亚洲精品1区| 国产精品性做久久久久久| 肥熟一91porny丨九色丨| 亚洲高清毛片| 国产麻豆乱码精品一区二区三区| av影院午夜一区| av中文天堂在线| 国产精品538一区二区在线| 欧美一级在线播放| 青青草91久久久久久久久| 午夜日韩影院| 国产成人一区二区在线观看| 国产黄网站在线观看| 国产精品美女久久久久aⅴ| 亚洲国产精品t66y| 99久久免费精品国产免费| 国产最新精品视频| 四虎影在永久在线观看| 污视频在线免费观看一区二区三区| 亚洲精品久久久久久久久久久久久久| 国模精品视频一区二区三区| 韩国福利视频一区| av免费观看网站| 亚洲怡红院av| 韩日精品一区| 黄网动漫久久久| 福利h视频在线| 夜夜嗨av一区二区三区网页| 在线播放豆国产99亚洲| 印度午夜性春猛xxx交| 夜夜骑日日射| 国产三级av在线播放| 亚洲高清福利| 国产福利微拍精品一区二区| 亚洲欧美中文在线视频| 国产人妖伪娘一区91| 亚洲精品成人a| 欧美精品18videosex性欧美| 日日摸夜夜爽人人添av| 免费在线激情视频| 国产精品免费人成网站| 人人干人人干人人干| 欧美做受xxxxxⅹ性视频| 成年人视频免费在线观看| 无码国产伦一区二区三区视频| 黄色片在线看| 亚洲高清视频一区| 88在线观看91蜜桃国自产| 欧美精品生活片| 色综合久久综合中文综合网| 美女色狠狠久久| 色婷婷亚洲精品| 亚洲欧美变态国产另类| 欧美激情精品| 一本色道88久久加勒比精品| 亚洲大尺度美女在线| 成人午夜福利视频| 国内一级毛片| 丰满放荡岳乱妇91ww| 6080亚洲理论片在线观看| 欧美一级黄色网| 亚洲蜜臀av乱码久久精品蜜桃| 熟女丰满老熟女熟妇| 亚洲最新永久在线观看| 亚洲精品永久免费视频| 欧美一二三区视频| 久久久久久高潮国产精品视| 亚洲欧美另类久久久精品| 亚洲最大福利视频| 欧美精品七区| 欧美精品aⅴ在线视频| 91av一区二区三区| 中文在线字幕观看| 密臀av在线播放| 91n在线视频| 激情久久久久久久久久久久久久久久| 黄色网址在线免费观看| 香蕉视频网站入口| 日韩免费福利电影在线观看| 欧美大片欧美激情性色a∨久久| 中文字幕在线影视资源| 亚洲精品国产一区二区精华液| 国产精品视频在线播放| 国产一区二区三区朝在线观看| 九色porny自拍视频在线观看| 狠狠色丁香婷婷综合影院| 天堂网av在线播放| jizz性欧美| 日韩一区二区三区视频在线| 日韩免费小视频| 国产一区二区三区四区老人| 成人免费在线电影网| 精品国产av色一区二区深夜久久| 国产女人水真多18毛片18精品视频| 日韩欧美中文字幕一区| 在线观看黄色国产| 国产成人在线免费视频| 国产又爽又黄ai换脸| 91欧美日韩麻豆精品| 亚洲日本视频| 9999热视频在线观看| 欧美影片第一页| 国产色综合天天综合网| 91美女免费看| www.五月婷| 国产一区国产二区国产三区| 国产毛片精品国产一区二区三区| www欧美xxxx| 五月天国产在线| 国产91丝袜美女在线播放| 日韩久久久久久久久久久| 国产一区高清在线| 色狠狠久久av综合| 国产乱子伦精品无码专区| 涩涩视频在线观看免费| 一本高清dvd不卡在线观看| 国产区亚洲区欧美区| 99精品在线看| 中文字幕欧美日韩va免费视频| 国产hs免费高清在线观看| 中文字幕精品久久| 激情aⅴ欧美一区二区欲海潮| 日韩精品中文字幕在线不卡尤物| 亚洲黄色av一区| 99久久99热这里只有精品| 成人看片在线| 中国日本在线视频中文字幕| 亚洲av成人精品一区二区三区| 激情五月婷婷小说| 91成人免费在线观看| 97国产精品videossex| 欧美在线免费视频| 福利一区福利二区| 黄页免费在线| 日本三级日本三级日本三级极| 在线观看av网| 第九色区aⅴ天堂久久香| 影视一区二区三区| seseavlu视频在线| 在线成人国产| 国产高清在线观看免费不卡| 在线不卡av电影| 一区二区日韩精品|