Linux-頁表如何對物理內存進行映射

1.1 頁框和頁幀

????????我們知道通過頁表可以將虛擬內存映射到對應的物理內存,而操作系統對于物理內存的管理并不是以字節為單位的,而是將物理內存分為許多大小為4KB的塊,稱為頁框頁幀,這就是為什么我們在創建共享內存是建議將大小設定為4096字節的整數倍,而4KB也是操作系統與磁盤交互的基本單位(8個扇區),對于文件來說,文件的內容被存放在磁盤的大小為4KB的塊中(Data Block),所以在進行磁盤級的IO操作時,就是將磁盤中的4KB的數據塊加載到物理內存對應的頁框中。

? ? ? ? 而由于物理內存中存在許多的4KB塊,OS為了管理好物理內存,需要知道每個塊的使用情況,用名字為struct page結構體對每個塊進行了描述,這樣只需要一個struct page類型的數組就可以管理整個物理內存了。

1.2 頁表的映射

? ? ? ? 目前我們對頁表的知識是有欠缺的,以32位機器為例,每一個字節的物理內存都需要虛擬內存與之對應,一個地址空間僅僅虛擬內存就占了2的32次方字節的大小,也就是4GB,所以頁表的映射關系并沒有這么簡單。

? ? ? ? 一個虛擬地址有32個比特位,OS將這32個比特位分為了10位、10位、12位,在每個進程中存在一張頁表目錄,該目錄保存著2的10次方張頁表,而前10位就是用來索引頁表目錄來找到對應的頁表的,頁表中存放的是對應頁框的起始地址。2的12次方正好是4KB對應著一個頁框的大小,最后12位是該虛擬內存在頁框中的地址偏移量,所以虛擬地址的前10位用于索引頁表,中間10位用于索引頁框的地址,最后的12位就可以鎖定具體的物理地址了。64位機器的原理和上述一樣

接下來我們大概計算一下按上述說法一個進程的頁表需要多大的內存,頁目錄1024*4也就是4Kb,頁表中索引的是頁框的地址,一個地址空間對應的物理內存有2的20次方個頁框,所以只需要20個字節就可以索引到所有的頁框,那么頁表的每個元素只需要3個字節接可以了,一個頁表需要3*1024個字節,一共有1024個頁表,所以一共需要的大小為4KB+3M的大小(上述大小是大概計算的并不準確)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/39784.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/39784.shtml
英文地址,請注明出處:http://en.pswp.cn/web/39784.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LTSPICE仿真電路:(十九)磁珠的一些簡單仿真

1.作用 簡單來說就是用來濾波的,將高頻信號轉化為熱量濾除掉,低頻有用信號正常通過 2.參數 上圖幾個參數比較簡單,就是字面上的意思,更重要的就是頻率阻抗圖 不同曲線代表不同型號的磁珠,實際上除了額定電流外&#…

基于springboot+vue+uniapp的語言課學習系統小程序

開發語言:Java框架:springbootuniappJDK版本:JDK1.8服務器:tomcat7數據庫:mysql 5.7(一定要5.7版本)數據庫工具:Navicat11開發軟件:eclipse/myeclipse/ideaMaven包&#…

藝活網DIY手工制作網站源碼 工藝制作教程平臺源碼,帶數據

帝國CMS仿《手藝活》DIY手工制作網源碼,仿手藝活自適應手機版模板。 帶數據庫和圖片資源,一共5個G大小,下載需耐心。 92開發 手藝活網DIY手工制作網站源碼 創意手工藝品制作教程平臺系統帝國h5自適應手機端 是一套展示各種 DIY 小物品精美又…

@react-google-maps/api實現谷歌地圖中添加多邊圍欄,并可編輯,編輯后可獲得圍欄各個點的經緯度

先上一張效果圖 看看是不是大家想要的效果~ ?? 由于該功能微微復雜一點,為了讓大家精準了解 我精簡了一下地圖代碼 大家根據自己的需求將center值和paths,用setState做活就可以了 1.第一步要加入項目package.json中或者直接yarn install它…

[激光原理與應用-97]:激光焊接焊中檢測系統系列介紹 - 1 - 什么是焊接以及傳統的焊接方法

目錄 一、什么是焊接 1.1 概述 1.2 基本原理 二、傳統的焊接技術與方法 2.1 手工電弧焊: 1、定義與原理 2、特點 3、焊條類型 4、應用領域 5、安全注意事項 2.2 氣體保護焊: 1、原理與特點 2、應用領域 3、氣體選擇 4、注意事項 2.3 電阻…

高級IO_多路轉接之Poll

文章目錄 前言一、poll二、poll使用步驟總結 前言 上一章我們學習了select,但是select作為早期的多路轉接接口,缺點十分明顯,于是又出現poll和epoll等接口,今天我們就來學習一下poll的使用 提示:以下是本篇文章正文內…

60種AI工具用法 學會探索AI的無限可能

外面還在賣的課程,學會探索AI的無限可能,從構建精準的提示詞到獲取個性化新聞,從快速制作PPT到短視頻內容的智能提煉,再到編程、股市分析和視頻剪輯,AI工具助您工作學習效率飛躍提升! 百度網盤 請輸入提取…

2024 世界人工智能大會暨人工智能全球治理高級別會議全體會議在上海舉辦,推動智能向善造福全人類

2024 年 7 月 4 日,2024 世界人工智能大會暨人工智能全球治理高級別會議-全體會議在上海世博中心舉辦。聯合國以及各國政府代表、專業國際組織代表,全球知名專家、企業家、投資家 1000 余人參加了本次會議,圍繞“以共商促共享,以善…

【圖像分割】mask2former:通用的圖像分割模型詳解

最近看到幾個項目都用mask2former做圖像分割,雖然是1年前的論文,但是其attention的設計還是很有借鑒意義,同時,mask2former參考了detr的query設計,實現了語義和實例分割任務的統一。 1.背景 1.1 detr簡介 detr算是第…

基于github.com/emmansun/gmsm庫編寫的SM2對C 開放的庫

go-gmsm cgo庫 介紹 基于github.com/emmansun/gmsm庫編寫的SM2對C 開放的庫 特性:非對稱加密、不支持跨平臺編譯 git地址:https://gitee.com/state-secret-series/go-gmsm.git 軟件架構 Go、Cgo、mod 安裝教程 克隆倉庫 git clone https://gite…

香橙派AIpro實測:YOLOv8便捷檢測,算法速度與運行速度結合

香橙派AIpro實測:YOLOv8便捷檢測,算法速度與運行速度結合 文章目錄 香橙派AIpro實測:YOLOv8便捷檢測,算法速度與運行速度結合一、引言二、香橙派AIpro簡介三、YOLOv8檢測效果3.1 目標檢測算法介紹3.1.1 YOLO家族3.1.2 YOLOv8算法理…

NDT配準收斂問題

GitHub - abougouffa/ndtpso_slam: ROS package for NDT-PSO, a 2D Laser scan matching algorithm for SLAM SRG NDT Das_Arun_2013.pdf;jsessionid97F7EDB4E8805EFE68D1E46687EF593F (uwaterloo.ca)

上海計算機考研炸了,這所學校慎報!上海大學計算機考研考情分析!

上海大學(Shanghai University),簡稱“上大”,是上海市屬、國家“211工程”重點建設的綜合性大學,教育部與上海市人民政府共建高校,國防科技工業局與上海市人民政府共建高校,國家“雙一流”世界…

【微信小程序開發】微信小程序界面彈窗,數據存儲相關操作代碼邏輯實現

?? 歡迎大家來到景天科技苑?? 🎈🎈 養成好習慣,先贊后看哦~🎈🎈 🏆 作者簡介:景天科技苑 🏆《頭銜》:大廠架構師,華為云開發者社區專家博主,…

ArcGIS Pro SDK (七)編輯 12 編輯模版

ArcGIS Pro SDK (七)編輯 12 編輯模版 文章目錄 ArcGIS Pro SDK (七)編輯 12 編輯模版1 在圖層上按名稱查找編輯模板2 查找屬于獨立表的表模板3 當前模板4 更改模板的默認編輯工具5 隱藏或顯示模板上的編輯工具6 使用圖層創建新模…

how to use Xcode

Xcode IDE概覽 Xcode 頁面主要分為以下四個部分: 工具欄(ToolBar area):主要負責程序運行調試,編輯器功能區域的顯示 / 隱藏;編輯區(Editor area):代碼編寫區域&#xf…

140. 好二叉樹(卡碼網周賽第二十四期(23年騰訊音樂筆試真題))

140. 好二叉樹&#xff08;卡碼網周賽第二十四期&#xff08;23年騰訊音樂筆試真題&#xff09;&#xff09; 題目描述 小紅定義一個二叉樹為“好二叉樹”&#xff0c;當且僅當該二叉樹所有節點的孩子數量為偶數(0 或者 2)。 小紅想知道&#xff0c;n&#xff08;1< n <…

vue table表格 ( parseTime-格式化時間)

<el-table-column label"發布時間" width"420px" prop"bidPublishDatetime"><template slot-scope"scope"><span>{{ parseTime(scope.row.bidPublishDatetime, {y}-{m}-{d}) }}</span></template></…

若依代碼生成

在若依框架中&#xff0c;以下是這些代碼的作用及它們在程序運行中的關聯方式&#xff1a; 1. domain.java&#xff1a;通常用于定義實體類&#xff0c;它描述了與數據庫表對應的對象結構&#xff0c;包含屬性和對應的訪問方法。作用是封裝數據&#xff0c;為數據的操作提供基…

Richtek立锜科技車規級器件選型

芯片按照應用場景&#xff0c;通常可以分為消費級、工業級、車規級和軍工級四個等級&#xff0c;其要求依次為軍工>車規>工業>消費。 所謂“車規級元器件”--即通過AEC-Q認證 汽車不同于消費級產品&#xff0c;會運行在戶外、高溫、高寒、潮濕等苛刻的環境&#xff0c…