不論什麼時候,只要系統帶有多個設備,而這些設備的性能又各不相同,就存在從慢速設備到快速設備不斷更換工作地點以改善系統性能的可能性,這就是緩存的基本思想。即數據從一個地點拷貝到另一個地點,使之檢索起來更快。雖然這是一個簡單概念,但卻包含著許多奇思妙想。
簡單地說,為滿足某種預期的未來需要所做的准備即緩存。緩存是一種人類的本性,為了保證充分的物品供應量,需要預先進行計劃,然後選擇一個能夠提供最快服務的地方,存放它們,這就是所謂的可靠物資管理。它也是計算機系統的核心概念,即將需要的信息放在可以最快訪問的地方,其描述如圖。
緩存的概念可以用於幾種設備,這些設備包括:
• 比正常內存更快的高速內存緩存。
• 比磁盤驅動器更快的、由內存芯片組成的磁盤緩存。
• 比通過Internet訪問更快的、由磁盤實現的Internet緩存。
本專題主要涉及的是磁盤緩存。通常,用於緩存的內存是易失內存,假如電源切斷,存放在緩存中的數據內容將會丟失。從這個意義上說,緩存內存是一個臨時存儲,但磁盤設備和子系統所使用的緩存是非易失存儲。易失(內存)和非易失存儲關系如圖所示
本篇主題如下:
緩存命中和緩存未命中
緩存與緩沖間的差異
緩存命中和緩存未命中
當I / O操作開始從磁盤緩存而不是從非易失存儲中檢索數據時,(如磁盤設備或子系統)緩存命中發生。除了提供來自內存的快速響應之外,緩存命中還縮短了I / O路徑的距離。如圖所示。
另一種情況是,雖然搜索了緩存,但沒有發現數據,因此數據必須從非易失存儲讀取,這就是緩存未命中。由於搜索緩存時需要花費時間,所以緩存未命中增加了I / O操作的時間。緩存未命中工作過程如圖所示:
如果緩存實現不理想,將產生很高的未命中率,由於每次緩存未命中都需要花費額外的時間,所以導致系統性能的下降。用於描述緩存相對精確度的術語叫緩存命中率,緩存命中率是緩存命中數除以I / O請求總數所得的結果。對於開放系統服務器,如UNIX、Win NT及NETWare系統等,通常的命中率率不超過50 %。順便指出,由於大型計算機系統使用的數據訪問方法不同,它能到達更高的命中率(90 %)。
緩存命中率的計算如下:
緩存與緩沖間的差異
“緩存”和“內存”有時可以互換使用。然而,磁帶驅動器中的內存通常並不是緩存,而是緩沖。雖然它們的物理組成是一樣的,但緩沖只起臨時存儲數據的作用,由此數據從一個位置或設備傳到另一個位置或設備。一般地,緩沖是在生命期較短的進程控制下工作,一旦數據傳輸完畢,這些進程將立即釋放內存地址。一種常見類型的緩沖是F I F O緩沖,即一種先進先出結構,其結構如圖所示:
另一方面,緩存內存由一個或更多的系統算法所控制,這些算法在一個長時間裡維護和管理著內存資源,緩存的數據可以長時間地保存在緩存中。
在協調性能有差異的控制器和設備工作方面,緩沖常常能夠發揮作用,這種方式的緩沖可以看作是某種轉換器。主機I / O控制器上的芯片可以快速地通過I / O路徑傳輸數據,它們的性能可以達到納秒級,而對於磁盤和磁帶驅動器這樣一類的機電存儲設備,其數據的傳輸速度只能在微秒范圍內。因此,設備制造商把緩沖內存放入設備中,以減少訪問延遲,以適合主機控制器的性能。這樣,主機控制器可以同時地在多個設備上實施重疊操作,圖顯示了這種重疊過程。
緩存算法既可以在主機軟件中實現,也可以在存儲子系統或在主機控制器中實現。當緩存由一塊電子線路實現時,它被稱為緩存控制器,除了管理磁盤緩存內存中的內容外,它還可以控制子系統中的磁盤操作,這些操作的細節是下一章的主要論題。圖顯示了帶有一個緩存控制器和緩存內存的磁盤緩存結構:
之前在社區發布了一系列的文章,後來因為圖片問題,很多的文章無法看了,朋友都反應了這個問題,現在發布出來,持續的更新,請大家頂起來 :http://www.itpub.net/thread-1703788-1-1.html
按需下載 打包下載 http://www.jb51.net/books/59793.html
作者:小洋,燕洋天