linux核心設計與實現讀書筆記 頁快取記憶體

2021-06-28 02:38:34 字數 743 閱讀 4578

一、頁快取記憶體

內容對應磁碟上的物理塊的記憶體物理頁面。

寫快取實現策略:

1)nonwrite:直接寫磁碟,同時將快取中資料失效。

2)write-through cache:自動更新記憶體快取同時更新磁碟檔案。

3)寫回:寫到快取中並標記頁面為臟,加入髒頁鍊錶中,由寫回程序週期性寫回磁碟。(linux使用的方法)

快取**策略:

1)最近最少使用lru:跟蹤頁面的訪問(或按照訪問時間順序的頁鍊錶)

2)雙鏈策略:修改的lru。維護活躍鍊錶和非活躍鍊錶。以佇列的形式換出。(linux使用)

二、laddress_space

linux頁快取記憶體可以快取任何基於頁的物件,可以包含多個不連續的物理磁碟塊。

i_mmap :優先搜尋樹,將堆與radix樹結合的快速檢索書,搜尋範圍包括address_space中所有共享與私有的對映頁面。

基樹radixtree:每個address_space都對應唯一基樹,是i二叉樹,可以根據偏移量檢索頁。

操作: 提供了與頁快取記憶體互動的方法,包括讀頁、更新等。

三、fulsher執行緒

髒頁寫回的情況:

1)空閒記憶體低於特定閾值

2)臧曄在記憶體中駐留時間超過某個閾值

3)程序呼叫sync和fsync系統呼叫時

髒頁寫回由一群核心執行緒執行flusher。不同的flusher執行緒處理不同的裝置佇列,避免了乙個忙磁碟其它飢餓的情況。現在flusher和每個裝置關聯。

Linux核心設計與實現讀書筆記 1

我現在要做的科研專案涉及到核心程式設計的知識,所以在學校的圖書館借了一本 linux核心設計與實現 英文名 linux kernel development 打算通過這本書來了解一下linux核心各部分的原理。我選擇這本書的原因很簡單 薄。全書只有二百多頁,但內容還是很全面的。翻譯質量還可以,譯者還...

linux核心設計與實現讀書筆記 記憶體管理

一 頁 記憶體管理的基本單位 頁。核心中用struct page表示物理頁,位於,屬性包括flag頁狀態 count頁的引用計數,virtual頁虛擬位址。目的在於描述物理記憶體本身而非其中的資料。1 獲得頁 核心 alloc pages gft t gft mask,order 連續分配2n個連續...

《Linux核心設計與實現》讀書筆記 程序排程

程序排程程式負責決定將哪個程序投入執行,何時執行以及執行多長時間。在執行態程序之間分配有限的處理器時間資源。多工系統分為搶占式和非搶占式。linux使用搶占式。大部分現代系統都是搶占式 io消耗型 處理器消耗型程序 把大多時間用於執行 的程序。程序優先順序 nice值 20 19,值越大優先順序越低...