深入理解Linux核心 程序位址空間

2022-04-30 14:15:09 字數 525 閱讀 7480

給核心分配記憶體和給使用者態程序分配記憶體是有區別的:

1、核心的優先順序最高,如果某個核心函式請求動態記憶體,不會被延時

2、核心信任自己,不必保護措施

3、使用者態程序對動態記憶體的請求被認為不是緊迫的,總是被盡量推遲分配

4、使用者程序總是不可信任的

程序的位址空間:

1、由允許程序使用的全部線性位址組成。

2、每個程序的線性位址集合是不同的。

3、每個程序允許有65536個不同的線性區

4、線性區由鍊錶和紅黑數儲存

5、記憶體的描述符:

核心執行緒的記憶體描述符:

線性區資料結構:

線性區的訪問許可權:

線性區的查詢、插入、分配、釋放

缺頁異常處理:

1、處理位址空間以外的錯誤位址

2、處理位址空間以內的錯誤位址

請求調頁

寫時複製:

處理非連續記憶體區訪問:

建立和刪除程序的位址空間:

堆的管理:

深入理解Linux核心 程序

1 程序的靜態特性 程序 程式執行時的乙個例項 程序描述符 task struct 程序的基本資訊 thread info 指向記憶體區描述符的指標 mm struct 程序相關的tty tty struct 當前目錄 fs struct 指向 檔案描述符的指標 files struct 所接收的訊...

深入理解Linux核心 核心同步

核心基本的同步機制 搶占核心的主要特點 乙個在核心態執行的程序,可能在執行核心函式期間被另外乙個程序取代。核心搶占 linux 2.6允許使用者在編譯核心的時候配置十分啟用 程序臨界區 每個程序中訪問臨界資源 一次僅允許乙個程序使用的共享資源 的那段 稱為臨界區。優化屏障 保證編譯程式不會混淆放在原...

深入理解linux核心手記

linux的段式管理是對應於程式結構的,是一種自然的想法,linux共有6個段暫存器,其中有3個專門的段暫存器 cs 段暫存器 ss 程式棧段暫存器 ds 資料段暫存器 程式需要6個段 bss 存放未初始化資料,只有名稱和大小 段 資料段 存放已初始化資料 棧段,堆段。段式管理段缺點 相比喻頁式管理...