快取換頁機制

2021-07-10 22:22:14 字數 2450 閱讀 9161

快取是計算機體系中乙個比較重要的概念,如雜湊一致性、換頁機制就是有關快取的。在筆試中也經常考察採用fifo、lru、lfu等頁面淘汰機制和命中率。先了解下面幾個概念:

缺頁:如果需要訪問的頁面在快取中不存在時,就代表缺頁了。

命中:如果在快取中存在需要訪問的頁面時,就代表命中了,直接從快取中取出。

缺頁次數 + 命中次數 = 訪問次數。

命中率:命中次數/總共訪問次數

提到快取,有兩點是必須要考慮的:

(1)快取資料和目標資料的一致性問題。

(2)快取的過期策略(機制)。

其中,快取的過期策略涉及淘汰演算法。常用的淘汰演算法有下面幾種:

1. fifo(first in first out):先入先出機制。

先進入頁面的當作「舊」快取,後進入的當作「新」快取,當快取滿了的時候,根據「新舊」程度淘汰舊的。

lru(least recently used):最近最少使用

lfu(least frequently used):最不經常使用

在某個儲存系統中,假如系統分配給以個作業的記憶體物理塊數是3,並且此作業的頁面使用順序為2,3,2,1,5,2,4,5,3,2,5,2,若採用fifo和lru置換演算法,

fifo演算法:

m1、m2、m3代表快取的頁面存放方式(m1為最「舊」,m2其次,m3為最「新」),下面黑體表示(1/2/3空餘的為null)

訪問2 :2,3,2,1,5,2,4,5,3,2,5,2 缺頁2

訪問3 :2,3,2,1,5,2,4,5,3,2,5,2 缺頁3

訪問2 :2,3,2,1,5,2,4,5,3,2,5,2 命中2

訪問1 :2,3,1,5,2,4,5,3,2,5,2 缺頁2

訪問5 : 2,3,1,5,2,4,5,3,2,5,2 缺頁5

訪問2 : 2,3,1,5,2,4,5,3,2,5,2 缺頁2

訪問4 : 2,3,1,5,2,4,5,3,2,5,2 缺頁4

訪問5 : 2,3,1,5,2,4,3,2,5,2 命中5

訪問3 : 2,3,1,5,2,4,3,2,5,2 缺頁3

訪問2 : 2,3,1,5,2,4,3,5,2 命中2

訪問5 : 2,3,1,5,2,4,3,5,2 缺頁5

訪問2 : 2,3,1,5,2,4,3,5,2缺頁2

命中3次,缺頁9次,共訪問12次,命中率3/12

lru演算法:

訪問2 :2,3,2,1,5,2,4,5,3,2,5,2 缺頁2

訪問3 :2,3,2,1,5,2,4,5,3,2,5,2 缺頁3

訪問2 :3,2,1,5,2,4,5,3,2,5,2 命中2

訪問1 :3,2,1,5,2,4,5,3,2,5,2 缺頁2

訪問5 : 3,2, 1,5,2,4,5,3,2,5,2 缺頁5

訪問2 : 3,1,5,2,4,5,3,2,5,2 命中2

訪問4 : 3,1,5,2,4,5,3,2,5,2 缺頁4

訪問5 : 3,1,2,4,5,3,2,5,2 命中5

訪問3 : 3,1,2,4,5,3,2,5,2 缺頁3

訪問2 : 3,1,2,4,5,3,2,5,2 缺頁2

訪問5 : 3,1,2,4,3,2,5,2 命中5

訪問2 : 3,1,2,,4,3,5,2命中2

命中5次,缺頁7次,共訪問12次,命中率5/12

如果是演算法題,可以根據以上思路,很快寫出程式來。

如果遇到的是小題,不需要把步驟都列出來,有乙個小技巧,可以直接找出需要劃掉的黑體數字,代表直接從快取中取出。

對於fifo:2,3,2,1,5,2,4,5,3,2,5,2,命中時,是劃掉新進來的。

對於lru:

2,3,2,1,5,2,4,5,3,2,5,2,在命中時,則是劃掉先存進去的。

IOS 開發快取機制 記憶體快取機制

使用快取的目的是為了使用的應用程式能更快速的響應使用者輸入,是程式高效的執行。有時候我們需要將遠端 web伺服器獲取的資料快取起來,減少對同乙個 url多次請求。記憶體快取我們可以使用 sdk中的 nsurlcache類。nsurlrequest需要乙個快取引數來說明它請求的 url何如快取資料的,...

快取機制 全棧快取

1.配置檔案 cache middleware seconds 20 設定超時時間20秒 第一行和最後一行,位置不能放錯,只能放第一,和最後一行,又報錯是 modulenotfounderror no module named django.middleware.cache.updatecachem...

研究快取機制

asp.netforums中使用了兩級快取來處理乙個使用者在不同版面上的許可權,第一級使用httpruntime.cache,可是使用者在不同的請求中從執行時提供的快取機制中提高效率,第二級是httpcontext.current,它是建立在第一級快取之上,用於使用者在同乙個請求期間的快取,這個快取...