導航:首頁 > 物理學科 > 內核如何通過頁表訪問物理地址

內核如何通過頁表訪問物理地址

發布時間:2022-03-08 05:53:41

A. linux內核中虛擬內存是怎樣映射到物理內存的

當程序在運行的時候,會檢測到數據在虛擬內存中,並沒在物理內存中,這時候會產生一個缺頁中斷, 有缺頁中斷來映射。

B. 頁表的物理地址怎麼確定

邏輯地址:CPU所生成的地址。CPU產生的邏輯地址被分為 :p (頁號) 它包含每個頁在物理內存中的基址,用來作為頁表的索引;d (頁偏移),同基址相結合,用來確定送入內存設備的物理內存地址。
物理地址:內存單元所看到的地址。邏輯地址空間為2^m,且頁大小為2^n,那麼邏輯地址的高m-n位表示頁號,低n位表示頁偏移。
邏輯地址空間:由程序所生成的所有邏輯地址的集合。

C. 關於linux的問題

特點:開源 自由 穩定 安全 方便編程 網路功能強大
學起來 不算容易 關鍵是能不能適應它
如果你要從事 伺服器方面的工作 那肯定有用 和網路有關的工作 最好還是會Linux
關於發展 這個不好說 趨勢肯定是以發展為主 市場佔有率 也會增大
目前 中國的計算機行業在很多地方 都處於微軟的壟斷下
這是個很大的問題 不過有許多人已經意識到了

D. 請問個頁目錄與頁表的物理地址問題

內核自己一套頁目錄和頁表====================是整個內核只有一套頁目錄和頁表還是每個模塊都有呢?另外:內核中的模塊是不是相對於進程呢

E. 要想訪問物理地址0x326028,需要使用哪個虛擬地址

邏輯址(Logical Address) 指由程式產段相關偏移址部例進行C語言指針編程能讀取指針變數本身值(&操作)實際值邏輯址相於前進程數據段址絕物理址相干Intel實模式邏輯址才物理址相等(實模式沒段或頁機制,Cpu進行自址轉換);邏輯Intel保護模式程式執行代碼段限內偏移址(假定代碼段、數據段完全相同)應用程式員僅需邏輯址打交道段頁機制說完全透明僅由系統編程員涉及應用程式員雖自能直接操作內存能操作系統給配內存段操作
線性址(Linear Address) 邏輯址物理址變換間間層程式代碼產邏輯址或說段偏移址加相應段基址線性址啟用頁機制線性址能再經變換產物理址若沒啟用頁機制線性址直接物理址Intel 80386線性址空間容量4G(232即32根址匯流排定址)
物理址(Physical Address) 指目前CPU外部址匯流排定址物理內存址信號址變換終結址啟用頁機制線性址使用頁目錄頁表項變換物理址沒啟用頁機制線性址直接物理址
虛擬內存(Virtual Memory)指計算機呈現要比實際擁內存內存量允許程式員編制並運行比實際系統擁內存程式使許型項目能夠具限內存資源系統實現非恰比喻:必非軌道能讓列火車海北京需要足夠鐵軌(比說3公)能完任務採取面鐵軌即鋪火車前面要操作足夠快並能滿足需求列車能象條完整軌道運行虛擬內存管理需要完任務Linux0.11內核給每程式(進程)都劃總容量64MB虛擬內存空間程式邏輯址范圍0x00000000x4000000我邏輯址稱 虛擬址虛擬內存空間概念類似邏輯址實際物理內存容量關邏輯址物理址差距0xC0000000由於虛擬址->線性址->物理址映射差值值由操作系統指定機理 邏輯址(或稱虛擬址)線性址由CPU段機制自轉換沒啟頁管理則線性址物理址啟頁管理系統程式需要參線性址物理址轉換程具體通設置頁目錄表頁表項進行
建議查下資料.感覺這樣的提問沒有意義

F. arm中,建立頁表,通過虛擬地址訪問物理地址跟直接訪問物理地址有什麼區別有什麼好處麻煩大神講詳

沒法詳細,去看看計算機組成原理吧。最基礎的,如果直接訪問物理地址,那可定址范圍就太少了。比如,2^32才4G.

G. 內核不能直接訪問896MB以上的物理地址.怎麼回事

896MB以上的物理內存不能被內核直接訪問,是因為0~896MB的物理內存是與內核的3G~3G+896MB順序映射的,而內核剩下的虛擬地址空間還要為比如vmalloc區預留,所以不能再直接映射了,因此不能直接訪問。而大於896MB的物理內存若需訪問必須動態映射到內核空間里高端內存區。

H. 在分頁系統中頁面大小由誰決定頁表的作用是什麼如何將邏輯地址轉換成物理地址

答:
在分頁系統中頁面大小由硬體決定。頁表的作用是實現從頁號到物理塊號的地址映射。邏輯地址轉換成物理地址的過程是:用頁號p去檢索頁表,從頁表中得到該頁的物理塊號,把它裝人物理地址寄存器中。同時,將頁內地址d直接送人物理地址寄存器的塊內地址欄位中。這樣,物理地址寄存器中的內容就是由二者拼接成的實際訪問內存的地址,從而完成了從邏輯地址到物理地址的轉換。

I. 內核空間怎麼訪問物理地址

初中物理只介紹一些較為簡單的知識,高中物理則注重更深層次的研究。如物體的運動,初中只介紹到速度及平均速度的概念,高中對速度概念的描述更深,速度是矢量,速度的改變必然有加速度,而加速度又有加速和減速之分。又如摩擦力,高中僅其方向的判定就是一個難點,「摩擦力總是阻礙物體的相對運動或相對運動趨勢 」。首先要分清是相對哪個面,其次要用運動學的知識來判斷相對運動?或相對運動趨勢的方向,然後才能找出力的方向,有一些問題中還要用物體平衡的知識能才得出結論。例如:在水平面上有一物體B,其上有一物體A,今用一水平力F拉B物體,它們剛好在水平面上做勻速直線運動,求A和B之間的摩擦力。分析:A物體作勻速直線運動?受力平衡),在水平方向不受力的作用,故A和B之間的摩擦力為零。

J. 關於虛擬內存中頁目錄與頁表在物理內存中載入的問題

我對Linux操作系統的具體情況不是很熟,回答僅供參考。

首先,物理內存無所謂內核區用戶區,所有地址都一樣。虛擬的地址空間才分內核區用戶區。
處理器通過查看頁目錄和頁表,把虛擬地址換算成物理地址。用戶區與內核區的兩個不同的虛擬地址對應同一個物理地址也不要緊。
內核區與用戶區的真正區別在於普通進程能不能訪問該區域中的地址。
在正常情況下,操作系統肯定會把頁目錄和頁表保護起來,可以把它們看作存放在內核區的東西。

編寫操作系統時,頁目錄確實可以放在物理內存中的任何地方(當然偏移必須是1000h的倍數),只要把偏移量填進CR3的高20位就可以了。
Linux內核的頁目錄放在物理地址0h處,頁表緊隨其後。0.11版Linux中,所有用戶進程和內核用的都是這張頁目錄。切換進程時,改改頁目錄項就行了。新版的Linux內核我不太了解,抱歉……
每個頁目錄項有4位元組,高20位儲存頁表的物理地址,低12位儲存頁表的屬性。

一張頁表4KB,這4KB必須是連續的。但是各張頁表之間不必連續。Linux創建新進程時,僅僅調用了get_free_page找到一頁空內存,把進程頁表塞進去而已。
頁表不能被普通進程直接訪問。訪問用戶區虛擬地址是看不到進程頁表的。
內核的頁表前面提到過。它就在內核頁目錄的後面,物理地址為1000h,虛擬地址為C0001000h。訪問用戶區的虛擬地址不會看到它。

個人不大擅長表述,恐怕解釋得不是很清楚。歡迎追問。

閱讀全文

與內核如何通過頁表訪問物理地址相關的資料

熱點內容
word中化學式的數字怎麼打出來 瀏覽:705
乙酸乙酯化學式怎麼算 瀏覽:1372
沈陽初中的數學是什麼版本的 瀏覽:1318
華為手機家人共享如何查看地理位置 瀏覽:1010
一氧化碳還原氧化鋁化學方程式怎麼配平 瀏覽:848
數學c什麼意思是什麼意思是什麼 瀏覽:1369
中考初中地理如何補 瀏覽:1260
360瀏覽器歷史在哪裡下載迅雷下載 瀏覽:671
數學奧數卡怎麼辦 瀏覽:1350
如何回答地理是什麼 瀏覽:989
win7如何刪除電腦文件瀏覽歷史 瀏覽:1023
大學物理實驗干什麼用的到 瀏覽:1449
二年級上冊數學框框怎麼填 瀏覽:1659
西安瑞禧生物科技有限公司怎麼樣 瀏覽:832
武大的分析化學怎麼樣 瀏覽:1213
ige電化學發光偏高怎麼辦 瀏覽:1301
學而思初中英語和語文怎麼樣 瀏覽:1608
下列哪個水飛薊素化學結構 瀏覽:1388
化學理學哪些專業好 瀏覽:1452
數學中的棱的意思是什麼 瀏覽:1017