日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Binder 机制】进程通信 | 用户空间与内核空间 | MMU 与虚拟内存地址

發布時間:2025/6/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Binder 机制】进程通信 | 用户空间与内核空间 | MMU 与虚拟内存地址 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、進程通信
  • 二、用戶空間與內核空間
  • 三、MMU 與虛擬內存地址





一、進程通信



進程隔離概念 : 系統中的進程存在 " 進程隔離 " , 出于對進程運行的保護 , 兩個進程的內存是隔離的 , 并且不允許進行直接通信 ;

內核自帶通信機制 : 內核提供了 pipe 管道 , socket 等通信機制 , 可以進行跨進程通信 ;

Binder 機制 : Android 中的進程間的通信 , 是通過 " Binder " 機制 完成的 ; Binder 機制不是內核自帶的機制 , 而是 Android 可以動態進行 Binder 注冊 , 然后進程間通過 Binder 進行通信 ;





二、用戶空間與內核空間



系統中的內存分為 222 部分 , 用戶空間 和 內核空間 , 內核空間一般是運行操作系統 , 用戶空間一般運行應用 ;

操作 內核空間 時的狀態稱為 " 內核態 " ;

操作 用戶空間 時的狀態稱為 " 用戶態 " ;





三、MMU 與虛擬內存地址



每個 應用進程 的 內存空間 使用的地址都是 獨立的 , 連續的 , 虛擬地址 ;

內存管理單元 ( MMU - Memory Management Unit ) 的作用就是進行 內存映射的 ;

MMU 的作用是將真實的 內存 物理地址 轉為 虛擬地址 , 虛擬地址 又稱為 邏輯地址 , 一般情況下虛擬地址大小遠遠大于物理地址 ;

MMU 可以讓每個進程都擁有獨立的連續的內存空間 ;

323232 位的操作系統的 尋址空間是 000 ~ 2322^{32}232 , 大小 444 GB ;

323232 位操作系統 , 使用的是 二級分頁 ;

646464 位的操作系統的 尋址空間是 000 ~ 2642^{64}264 , 這個尋址空間很大 , 一般是使用前 404040 位 , 大概是 181818 TB ;

646464 位操作系統 , 使用的是 四級分頁 ;


323232 位的系統中 , MMU 會讓每個應用都有 111444 GB 大小的空間 ,


Linux 系統內核空間占 111 GB , 用戶空間 333 GB ; 000 ~ 333 GB 是用戶空間地址 , 333 ~ 444 是內核空間地址 ;

Windows 系統內核空間占 222 GB , 用戶空間 222 GB ;


虛擬地址的必要性 : 代碼編譯完成之后 , 地址是分配好的 , 都是從 000 地址開始計數的 , 因此如果要保證程序的運行 , 必須保證應用進程的內存從 000 開始 ; 這里將實際的物理內存地址映射為虛擬內存地址 , 這個虛擬內存地址可以保證每個程序都按照相同的初始地址運行 ;

匯編指令 需要直接操作 虛擬內存地址 ;

總結

以上是生活随笔為你收集整理的【Binder 机制】进程通信 | 用户空间与内核空间 | MMU 与虚拟内存地址的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。