在线亚洲黄色-在线亚洲观看-在线亚洲电影-在线亚洲成人-岛国大片在线观看免费版-岛国大片在线播放高清

Linux系統虛擬內存空間

導讀首先借用網上一張圖,感覺這個比較清晰。Linux系統虛擬內存空間一般布局示意圖。1.1線性空間;線性地址空間:是指Linux系統中從0x00000000到0xFFFFFFFF整個4GB虛擬存儲空間。線性空間又分為用戶空間和內核空間。1.1.1用戶空間(進程地址空間)。用戶空間是指從0x00000000到0xBFFFFFFF共3GB的線性地址空間,每個進程都有一個獨立的3GB用戶空間,所以用戶空間由每個進程獨有,但是內核線程沒有用戶空間,因為它不產生用戶空間地址。另外子進程共享(繼承)父進程的用戶空間只是使用與父進程相同的用戶線性地址到物理內存地址的映射關系,而不是共享父進程用戶空間。運行在用戶態和內核態的進程都可以訪問用戶空間。

系統大全為您提供首先借用網上一張圖,感覺這個比較清晰:Linux系統虛擬內存空間一般布局示意圖1.1線性空間線性地址空間:是指Linux系統中從0x00000000到0xFFFFFFFF整個4GB虛擬存儲空間。線性空間又分為用戶空間和內核空間。1.1.1用戶空間(進程地址空間)用戶空間是指從0x00000000到0xBFFFFFFF共3GB的線性地址空間,每個進程都有一個獨立的3GB用戶空間,所以用戶空間由每個進程獨有,但是內核線程沒有用戶空間,因為它不產生用戶空間地址。另外子進程共享(繼承)父進程的用戶空間只是使用與父進程相同的用戶線性地址到物理內存地址的映射關系,而不是共享父進程用戶空間。運行在用戶態和內核態的進程都可以訪問用戶空間。linux采用虛擬內存管理技術,每一個進程都有一個3G大小的獨立的進程地址空間,這個地址空間就是用戶空間。每個進程的用戶空間都是完全獨立、互不相干的。進程訪問內核空間的方式:系統調用和中斷。創建進程等進程相關操作都需要分配內存給進程。這時進程申請和獲得的不是物理地址,僅僅是虛擬地址。實際的物理內存只有當進程真的去訪問新獲取的虛擬地址時,才會由“請頁機制”產生“缺頁”異常,從而進入分配實際頁框的程序。該異常是虛擬內存機制賴以存在的基本保證,它會告訴內核去為進程分配物理頁,并建立對應的頁表,這之后虛擬地址才實實在在的映射到了物理地址上。1.1.2內核空間內核空間表示運行在處理器最高級別的超級用戶模式(supervisormode)下的代碼或數據,內核空間占用從0xC0000000到0xFFFFFFFF的1GB線性地址空間,內核線性地址空間由所有進程共享,但只有運行在內核態的進程才能訪問,用戶進程可以通過系統調用切換到內核態訪問內核空間,進程運行在內核態時所產生的地址都屬于內核空間。內核空間又可分為以下幾個線性空間:1.內核邏輯地址空間是指從PAGE_OFFSET(3G)3G+896)之間的線性地址空間,是系統物理內存映射區,它映射了全部或部分(如果系統包含高端內存)物理內存。內核邏輯地址空間中的地址與RAM內存物理地址空間中對應的地址只差一個固定偏移量(3G),如果RAM內存物理地址空間從0x00000000地址編址,那么這個偏移量就是PAGE_OFFSET。2.高端線性地址空間:從high_memory(3G+896M)到0xFFFFFFFF之間的線性地址空間屬于高端線性地址空間,其中VMALLOC_START~VMALLOC_END之間線性地址:(1)被vmalloc()函數用來分配物理上不連續但線性地址空間連續的高端物理內存,或者(2)被vmap()函數用來映射高端或低端物理內存,或者(3)由ioremap()函數來重新映射I/O物理空間。其中PKMAP_BASE開始的LAST_PKMAP(一般等于1024)頁線性地址空間:被kmap()函數用來永久映射高端物理內存。FIXADDR_START開始的KM_TYPE_NR*NR_cpuS頁線性地址空間:被kmap_atomic()函數用來臨時映射高端物理內存,其他未用高端線性地址空間可以用來在系統初始化期間永久映射I/O地址空間。?1.2物理空間1.2.1低端內存(物理內存)內核邏輯地址空間所映射物理內存就是低端內存(實際物理內存的大小,但是小于896),低端內存在Linux線性地址空間中始終有永久的一一對應的內核邏輯地址,系統初始化過程中將低端內存永久映射到了內核邏輯地址空間,為低端內存建立了虛擬映射頁表。低端內存內物理內存的物理地址與線性地址之間的轉換可以通過__pa(x)和__va(x)兩個宏來進行,#define__pa(x)((unsignedlong)(x)-PAGE_OFFSET)__pa(x)將內核邏輯地址空間的地址x轉換成對應的物理地址,相當于__virt_to_phys((unsignedlong)(x)),__va(x)則相反,把低端物理內存空間的地址轉換成對應的內核邏輯地址,相當于((void*)__phys_to_virt((unsignedlong)(x)))。1.2.2高端內存(物理內存)低端內存地址之上的物理內存是高端內存(物理內存896之上),高端內存在Linux線性地址空間中沒有沒有固定的一一對應的內核邏輯地址,系統初始化過程中不會為這些內存建立映射頁表將其固定映射到Linux線性地址空間,而是需要使用高端內存的時候才為分配的高端物理內存建立映射頁表,使其能夠被內核使用,否則不能被使用。高端內存的物理地址于線性地址之間的轉換不能使用上面的__pa(x)和__va(x)宏。高端內存概念的由來:如上所述,Linux將4GB的線性地址空間劃分成兩部分,從0x00000000到0xBFFFFFFF共3GB空間作為用戶空間由用戶進程獨占,這部分線性地址空間并沒有固定映射到物理內存空間上;從0xC0000000到0xFFFFFFFF的第4GB線性地址空間作為內核空間,在嵌入式系統中,這部分線性地址空間除了映射物理內存空間之外還要映射處理器內部外設寄存器空間等I/O空間。0xC0000000~high_memory之間的內核邏輯地址空間專用來固定映射系統中的物理內存,也就是說0xC0000000~high_memory之間空間大小與系統的物理內存空間大小是相同的(當然在配置了CONfig_disCONTIGMEMD選項的非連續內存系統中,內核邏輯地址空間和物理內存空間一樣可能存在內存孔洞),如果系統中的物理內存容量遠小于1GB,那么內核線性地址空間中內核邏輯地址空間之上的high_memory~0xFFFFFFFF之間還有足夠的空間來固定映射一些I/O空間??墒牵绻到y中的物理內存容量(包括內存孔洞)大于1GB,那么就沒有足夠的內核線性地址空間來固定映射系統全部物理內存以及一些I/O空間了,為了解決這個問題,在x86處理器平臺設置了一個經驗值:896MB,就是說,如果系統中的物理內存(包括內存孔洞)大于896MB,那么將前896MB物理內存固定映射到內核邏輯地址空間0xC0000000~0xC0000000+896MB(=high_memory)上,而896MB之后的物理內存則不建立到內核線性地址空間的固定映射,這部分內存就叫高端物理內存。此時內核線性地址空間high_memory~0xFFFFFFFF之間的128MB空間就稱為高端內存線性地址空間,用來映射高端物理內存和I/O空間。896MB是x86處理器平臺的經驗值,留了128MB線性地址空間來映射高端內存以及I/O地址空間,在嵌入式系統中可以根據具體情況修改這個閾值,比如,MIPS中將這個值設置為0x20000000B(512MB),那么只有當系統中的物理內存空間容量大于0x20000000B時,內核才需要配置CONfig_HIGHMEM選項,使能內核對高端內存的分配和映射功能。什么情況需要劃分出高端物理內存以及高端物理內存閾值的設置原則見上面的內存頁區(zone)概念說明。???以上就是系統大全給大家介紹的如何使的方法都有一定的了解了吧,好了,如果大家還想了解更多的資訊,那就趕緊點擊系統大全官網吧。??本文來自系統大全http:///如需轉載請注明!推薦:win7純凈版

為你推薦
資訊專欄
熱門視頻
相關推薦
Win8系統鍵盤上Power鍵策略如何關閉方法怎么關掉 linux下通過命令啟動多個終端執行相應的命令和程 U盤安裝linuxubuntu 怎么更改windows7系統硬盤圖標 Win8SmartScreen阻止下載軟件應該如何 linuxulimit命令用法解析 如何查看Win8Metro已安裝軟件的大小方法 Linux中的壓縮解壓命令小記 debianubuntu安裝QQ reboot命令Linux命令應用大詞典729個命令解讀 linuxcentos解決Tomcat內存溢出 Linux修改hostname的兩個辦法 windows7系統下在關機時如何自動清理垃圾文件 win8系統在桌面創建應用程序快捷方式的方法 ubuntu14安裝jdk17 快速學會使用Git和遠程代碼庫 linux打開端口圖 linux下對一個文件設置多個組的權限setfaclgetfac linux普通賬戶綁定1024以下端口 win8系統關機快捷鍵是什么 18張圖看盡Windows9提升解讀Win9亮點 電腦cmd設置手機無線 linux之系統啟動 Win8系統首次啟動出現黑屏硬盤燈不亮處理方法 愛奇藝播放器邊選邊看如何設置愛奇藝播放器邊 你應該知道的16個Linux服務器監控命令2 win8創建降溫模式的操作技巧如何設置為筆記本開 ubuntu環境變量配置文件 linuxweb目錄文件全備腳本 linux服務配置之linux系統路由配置辦法 Linux系統啟動流程 Linux文件管理與bash特性有哪些 win81快速啟動失效怎么辦win81快速啟動失效解 Linux相關問題CentOS65x64版本下Tomcat無法自啟動的 Windowsold詳細介紹解決方法 RACK為TCPBBR提供動力源 大家趕緊看看吧解決方法方法一掃描文件 win8語音識別如何使用 用WPS制作密封線怎么制作用WPS制作密封線的方法 Win8系統控制面板中管理工具的其他快速啟動技巧
Top 主站蜘蛛池模板: 亚洲欧美国产日本 | 国产资源一区 | 亚洲综合日韩在线亚洲欧美专区 | 亚洲一区二区三区在线播放 | 欧区一欧区二欧区三免费 | 国产麻豆精品 | 国内精品伊人久久久久 | 亚洲午夜视频 | 一道精品视频一区二区三区男同 | 亚洲 欧美 中文 日韩欧美 | 99视频九九精品视频在线观看 | 国产日韩在线看 | 精品久久亚洲一级α | 精品国产乱码一区二区三区麻豆 | 在线观看国产欧美 | 国产精品亚洲国产三区 | 99视频在线免费看 | 欧美日韩亚洲综合另类ac | 亚洲一区色图 | 91精品一区二区三区在线播放 | 99精品国产成人一区二区 | 国产在线观看网站 | 人与禽一级一级毛片 | 国内精品视频在线观看 | 韩国一区 | 国产在线精品成人一区二区三区 | 永久在线观看 | 国产精品成人久久久久久久 | 黄色毛片免费在线观看 | 久久久久久综合一区中文字幕 | 天天做天天摸天天爽天天爱 | 国产高清美女一级a毛片久久 | 在线精品欧美日韩 | 国产三级91 | 日韩专区第一页 | 欧美国产日韩在线观看 | 国产高清不卡一区二区 | 日韩欧美一区二区三区免费看 | 亚洲色图88| 成人日韩在线 | 日韩精品一区二区三区不卡 |