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