Linux知識點 -- 進程概念(補充)

Linux知識點 – 進程概念(補充)

文章目錄

  • Linux知識點 -- 進程概念(補充)
  • 一、進程地址空間的堆區
  • 二、虛擬地址到物理地址之間的轉化
  • 三、虛擬地址到物理地址之間的映射


一、進程地址空間的堆區

在用戶每次使用malloc等函數在進程的堆區申請地址時,用戶只需要指定空間的大小,并且會得到一個起始地址,而不會得到結束地址;

  • 因為堆區的結構都是由vm_area_struct管理的,每次malloc都會申請一個該結構體;在這里插入圖片描述

  • malloc在堆上申請空間時,只需要知道起始地址,不需要知道結束地址,就是因為vm_area_struct中保存了start和end;

  • 堆區申請的空間都是連續的;

二、虛擬地址到物理地址之間的轉化

  • 磁盤上的空間都是以4KB為單位的,我們的可執行程序存儲在磁盤上,其實它本來就是按照地址空間的方式進行編譯的,可執行程序也被劃分成了以4KB為單位的區域,存儲在磁盤上;
  • 物理內存也是按照4KB劃分的,OS是通過struct page結構體對物理內存的各個單元進行管理的;
  • 磁盤上的一個4KB單位叫做頁幀,物理內存上的一個4KB單位叫做頁框;
  • IO的時候,基本單位就是4KB,就是將頁幀裝進頁框;
  • 當OS通過頁表進行尋址時,發現對應地址的文件不在內存中,就需要引發缺頁中斷
    (1)申請對應的內存;
    (2)在磁盤中查找對應的文件;
    (3)加載到內存中指定的位置;
    (4)重新填充頁表;
    (5)返回到用戶;

三、虛擬地址到物理地址之間的映射

頁表中一個地址的映射叫做一個條目,假設一個條目大小為9byte(虛擬地址 + 物理地址 + 屬性),32位地址下一共2^32個條目,就是4GB個條目,一共就是36GB的頁表空間,內存中無法保存這么大的頁表;

  • 實際上,OS在虛擬地址到物理地址的映射上,是將虛擬地址劃分的:
    在這里插入圖片描述
    虛擬地址的前十個bit位在一級頁表進行索引,一級頁表的映射關系一共2^10,就是1024個;
    一級頁表映射到二級頁表,再在對應的二級頁表中檢索中間的10bit地址;
    二級頁表映射到物理內存的某個頁的起始地址;
    后12位地址代表這個地址的頁內偏移(因為2^12 = 4KB);

    這樣就能夠減小頁表的空間消耗;

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

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

相關文章

OBD接口引腳定義

汽車的OBD接口引腳定義分配如下圖所示,OBD接口共有16個引腳(可參考 ISO 15031-3)。 1、引腳1,3,8,9,11,12,13 引腳1,3,8,9,11,12,13由主機廠進行分配。 2、引腳2 如果車輛中使用SAE J1850 10,4 VPW(可變脈沖)來提供…

【React】精選10題

1.React Hooks帶來了什么便利? React Hooks是React16.8版本中引入的新特性,它帶來了許多便利。 更簡單的狀態管理 使用useState Hook可以在函數組件中方便地管理狀態,避免了使用類組件時需要繼承React.Component的繁瑣操作。 避免使用類組件…

小紅書運營 變現方法總結(精)

大家好,我是網媒智星,今天跟大家分享一下小紅書運營方面的知識,怎樣利用小紅書變現?全篇傾情干貨輸出,認真學習,保證您收獲多多。 首先,讓我們來分析一下小紅書平臺的優勢。關于賣東西&#xff…

Open3D (C++) 基于擬合高差的點云地面點提取

目錄 一、算法原理1、原理概述2、參考文獻二、代碼實現三、結果展示1、原始點云2、提取結果四、相關鏈接系列文章(連載中。。。): Open3D (C++) 基于高程的點云地面點提取Open3D (C++) 基于擬合平面的點云地面點提取Open3D (C++) 基于擬合高差的點云地面點提取</

vue + less 實現動態主題換膚功能

文章目錄 前言一、前提條件1. 初始化vue項目2. 安裝插件 二、新建文件夾主題theme1.style.less文件2.model.js文件3.theme.js文件theme文件夾最終效果 三、修改vue.config.js文件四、頁面上的具體使用1. index.vue 頁面2. index.vue 頁面注意點說明3. index.vue 效果 五、在js中…

VSCode使用SSH無密碼連接Ubuntu

VSCode使用SSH無密碼連接Ubuntu 前提條件&#xff1a; 1. 能夠正常使用vscode的Remote-ssh連接Ubuntu 2. Ubuntu配置靜態ip&#xff08;否則經常需要修改Remote-ssh的配置文件里的IP&#xff09; 鏈接-> ubuntun 18.04設為靜態ip&#xff08;.net模式&#xff0c;可連接…

shell使用總結

一、語法 數據類型 字符串 如果沒有特殊說明&#xff0c;數據類型默認都是字符串。常見字符串操作有&#xff1a; 已知變量strabcabc 1、切片 echo ${str:1:3} #${varName:offset:size},分頁取子串 echo ${str:2} #${varName:offset},偏移offset個字符取至末端 echo …

加載AB包程序集,反射獲取并實例化類調用方法

加載AB包文件&#xff0c;加載bytes程序集資源&#xff0c;通過反射獲取類&#xff0c;實例化添加組件&#xff0c;調用方法 public class LoadAB : MonoBehaviour {private void Update(){if (Input.GetKeyDown(KeyCode.H)){Load();}}void Load(){string classname "ID…

如何解決docker中出現的“bash: vim: command not found”

目錄 問題描述&#xff1a; 問題解決&#xff1a; 問題描述&#xff1a; 在docker中&#xff0c;想要執行vim編輯文件&#xff0c;彈出“docker bash: vim: command not found“&#xff08;如下圖&#xff09;&#xff0c;請問該如何解決&#xff1f; 問題解決&#xff1a; …

FPGA應用學習筆記------系統復位一(同異復位)

要滿足復位恢復時間才能正常復位&#xff0c;不然會產生輸出準穩態&#xff0c;輸出邏輯錯誤 復位恢復時間只會存在復位釋放時刻&#xff0c;不會出現在確立時刻&#xff0c;則不推薦完全異步復位 完全同步復位&#xff0c;肯定是同步于時鐘滴&#xff0c;并將總是滿足時鐘條件…

研發工程師玩轉Kubernetes——就緒探針(Readiness Probe)和服務(Service)

在《研發工程師玩轉Kubernetes——啟動、存活和就緒探針》中&#xff0c;我們講了就緒探針和服務之間的特殊關系。就緒探針檢測失敗并不代表整個程序處于“非存活”狀態&#xff0c;可能只是短暫臨時的不可以提供服務&#xff0c;比如CPU階段性占滿&#xff0c;導致就緒探針檢測…

【Spring MVC】Spring MVC基于注解的程序開發

目錄 一、什么是Spring MVC 二、Spring MVC項目的創建和使用 1、實現客戶端和服務器端之間的連接 1.1、RequsestMapping注解 1.2、RequestMapper的簡單使用 1.3、使用GetMapping和POSTMapping注解來實現HTTP連接 三、獲取參數 1、實現獲取單個參數 2、實現獲取對象 3…

解決ubantu驅動掉了的問題

這里寫自定義目錄標題 解決ubuntu驅動掉了的問題 解決ubuntu驅動掉了的問題 首先確定是否有驅動&#xff1a; ls /usr/src | grep nvidia若有&#xff0c;則大概率是驅動版本與內核版本對應不上&#xff0c;則把內核版本切換為初始版本即可。參照&#xff1a;https://blog.cs…

書寫自動智慧:探索Python文本分類器的開發與應用:支持二分類、多分類、多標簽分類、多層級分類和Kmeans聚類

書寫自動智慧&#xff1a;探索Python文本分類器的開發與應用&#xff1a;支持二分類、多分類、多標簽分類、多層級分類和Kmeans聚類 文本分類器&#xff0c;提供多種文本分類和聚類算法&#xff0c;支持句子和文檔級的文本分類任務&#xff0c;支持二分類、多分類、多標簽分類…

nodejs+vue+elementui+express智慧社區小區物業管理系統的設計與實現_2p760

開發語言 node.js 框架&#xff1a;Express 前端:Vue.js 數據庫&#xff1a;mysql 數據庫工具&#xff1a;Navicat 開發軟件&#xff1a;VScode 前端nodejsvueelementuiexpress vue的文件結構其實就是一個index.html 中間的內容&#xff0c;用的是vue&#xff0c;但最終都會轉…

OpenCV圖像處理——形態學操作

目錄 連通性形態學操作腐蝕和膨脹開閉運算禮帽和黑帽 連通性 形態學操作 形態學轉換是基于圖像形狀的一些簡單操作。它通常在二進制圖像上執行。腐蝕和膨脹時兩個基本的形態學運算符。然后它的變體形式如開運算&#xff0c;閉運算&#xff0c;禮帽黑帽等 腐蝕和膨脹 cv.erode…

費曼學習法

費曼學習法 費曼學習法&#xff08;Feynman Technique&#xff09;是一種學習和理解復雜概念的方法&#xff0c;以理查德費曼&#xff08;Richard Feynman&#xff09;這位著名的理論物理學家命名。該方法的核心思想是通過將學習內容簡化并用自己的話解釋給別人&#xff0c;來…

Node.js學習筆記-04

這第九章也是個大重點 九、玩轉進程 Node在選型時決定在V8引擎之上構建&#xff0c;也就意味著它的模型與瀏覽器類似。 本章關于進程的介紹和討論將會解決如下兩個問題&#xff1a; 單進程單線程并非完美&#xff0c;如今CPU基本均是多核的&#xff0c;真正的服務器&#xf…

背上小書包準備面試之TypeScript篇

目錄 typescript是啥&#xff1f;與javascript的區別&#xff1f; typescript數據類型&#xff1f; typescript中枚舉類型&#xff1f;應用場景&#xff1f; typescript中接口的理解&#xff1f;應用場景&#xff1f; typescript中泛型的理解&#xff1f;應用場景&#xf…

輕薄的ESL電子標簽有哪些特性?

在智慧物聯逐漸走進千萬家的當下&#xff0c;技術變革更加日新月異。ESL電子標簽作為科技物聯的重要組成部分&#xff0c;是推動千行百業數字化轉型的重要技術&#xff0c;促進物聯網產業的蓬勃發展。在智慧零售、智慧辦公、智慧倉儲等領域&#xff0c;ESL電子標簽在未來是不可…