說明一些概念:
虛擬頁面:指虛擬空間中,一段固定大小、邊界與頁面大小對齊的區間及其內容。
物理頁面:虛擬頁面對映到的介質上,可以在記憶體上(記憶體頁面),也可以在磁碟上(盤上頁面)。
頁面的換進換出指的是頁面內容
頁面的換進換出也需要乙個資料結構
核心定義了swap_infp_struct,用來描述用以管理頁面交換的檔案和裝置
49
struct
swap_info_struct
;
頁面的周**
周轉主要包括兩部分
第一,頁面的分配、使用和**,不涉及交換
第二,頁面的交換,交換的最終是頁面的**
notice:只有使用者空間的頁面才會換進換出,而核心頁面則不會,核心空間可以訪問所有的物理頁面
使用者空間頁面:
1 普通的使用者空間頁面:包括程序的**、資料、堆疊,以及動態堆
2 通過mmap對映的檔案內容
3 程序的共享記憶體區
這些頁面涉及頁面周轉的兩部分
核心空間頁面:
核心中使用的記憶體頁面只涉及第一部分,也就是
頁面的分配、使用和**,但是不涉及交換(只在記憶體中)
1 使用直接釋放
都是一些使用kmalloc和vmalloc申請的臨時性結構
2 使用完後仍有保留價值
其內容有保留的價值。條件允許時,把這些頁面「養起來」,可以提高以後的操作效率
比如一些快取的檔案目錄結構、
快取的一些inode結構、
檔案讀寫的緩衝區等等
這些頁面釋放後立即**亦可,但是會付出更多代價
頁面交換:
1 消極的頁面交換:
有空閒的頁面就直接分配;
當沒有沒有空閒時,將乙個或幾個記憶體頁面換到磁碟上
notice:這種做法比較消極,忙碌的時候沒有排程的餘地
2 積極的頁面交換
定期的,或者在系統比較空閒的時候挑選一些頁面進行換進換出
挑選的規則一般都是lru(最近最久未使用),但是這樣也帶來一些問題,因為實際上沒有一種方法可以準確的**對頁面的訪問,所以完全有可能發生抖動(剛換出就被訪問)
3 帶有暫存的積極頁面交換
26 linux啟動流程
linux系統 kernel rootfs 程式和glibc 支援模組化 ko 核心物件 cpio tv 預覽io檔案 mkinitrd boot initramfs uname r img uname r1.加點自檢 2.讀取第乙個啟動裝置的mbr的引導載入grub的啟動資訊 3.載入核心作業系統...
2 6linux核心的啟動
計算機在啟動時都是先加電,然後進行硬體檢測並引導作業系統的初始化程式,然後作業系統的初始化程式程負責讀入系統核心並建產系統的執行環境.一這過程相對來說比較復而且與cpu體系結構相關,這裡我們通過linux並以i386的體系結構對這一過程進行較為詳細的說明.一 硬體檢測 當機器加電後它首先執行bios...
天天學Linux命令26 linux檔案屬性詳解
linux 檔案或目錄的屬性主要包括 檔案或目錄的節點 種類 許可權模式 鏈結數量 所歸屬的使用者和使用者組 最近訪問或修改的時間等內容 具體情況如下 命令 ls lih 輸出 root localhost test ls lih 總計 316k 2095120 lrwxrwxrwx 1 root ...