免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Cache與Buffer區(qū)別

1. 磁盤高速緩存(Disk Cache)

操作系統(tǒng)中使用磁盤高速緩存技術(shù)來提高磁盤的I/O速度,對高速緩存復制的訪問要比原始數(shù)據(jù)訪問更為高效。例如,正在運行的進程的指令既存儲在磁盤上,也存儲在物理內(nèi)存上,也被復制到CPU的二級和一級高速緩存中。

不過,磁盤高速緩存技術(shù)不同于通常意義下的介于CPU與內(nèi)存之間的小容量高速存儲器,而是指利用內(nèi)存中的存儲空間來暫存從磁盤中讀出的一系列盤塊中的信息。因此,磁盤高速緩存在邏輯上屬于磁盤,物理上則是駐留在內(nèi)存中的盤塊。

高速緩存在內(nèi)存中分為兩種形式:一種是在內(nèi)存中開辟一個單獨的存儲空間作為磁速緩存,大小固定;另一種是把未利用的內(nèi)存空間作為一個緩沖池,供請求分頁系統(tǒng)和磁盤I/O時共享。

2. 緩沖區(qū)(Buffer)

在設(shè)備管理子系統(tǒng)中,引入緩沖區(qū)的目的主要有:
  • 緩和CPU與I/O設(shè)備間速度不匹配的矛盾。
  • 減少對CPU的中斷頻率,放寬對CPU中斷響應時間的限制。
  • 解決基本數(shù)據(jù)單元大?。磾?shù)據(jù)粒度)不匹配的問題。
  • 提高CPU和I/O設(shè)備之間的并行性。

其實現(xiàn)方法有:
  • 釆用硬件緩沖器,但由于成本太高,除一些關(guān)鍵部位外,一般不釆用硬件緩沖器
  • 釆用緩沖區(qū)(位于內(nèi)存區(qū)域)。

根據(jù)系統(tǒng)設(shè)置緩沖器的個數(shù),緩沖技術(shù)可以分為:

1) 單緩沖

在設(shè)備和處理機之間設(shè)置一個緩沖區(qū)。設(shè)備和處理機交換數(shù)據(jù)時,先把被交換數(shù)據(jù)寫入緩沖區(qū),然后需要數(shù)據(jù)的設(shè)備或處理機從緩沖區(qū)取走數(shù)據(jù)。

如圖5-5所示,在塊設(shè)備輸入時,假定從磁盤把一塊數(shù)據(jù)輸入到緩沖區(qū)的時間為T,操作系統(tǒng)將該緩沖區(qū)中的數(shù)據(jù)傳送到用戶區(qū)的時間為M,而CPU對這一塊數(shù)據(jù)處理的時間為 C。由于T和C是可以并行的,當T>C時,系統(tǒng)對每一塊數(shù)據(jù)的處理時間為M十T,反之則為M+C,故可把系統(tǒng)對每一塊數(shù)據(jù)的處理時間表示為Max(C, T)+M。


圖5-5  單緩沖工作示意圖

2) 雙緩沖

根據(jù)單緩沖的特點,CPU在傳送時間M內(nèi)處于空閑狀態(tài),由此引入雙緩沖。 I/O設(shè)備輸入數(shù)據(jù)時先裝填到緩沖區(qū)1,在緩沖區(qū)1填滿后才開始裝填緩沖區(qū)2,與此同時處理機可以從緩沖區(qū)1中取出數(shù)據(jù)放入用戶進程處理,當緩沖區(qū)1中的數(shù)據(jù)處理完后,若緩沖區(qū)2已填滿,則處理機又從緩沖區(qū)2中取出數(shù)據(jù)放入用戶進程處理,而I/O設(shè)備又可以裝填緩沖區(qū)1。雙緩沖機制提高了處理機和輸入設(shè)備的并行操作的程度。

如圖5-6所示,系統(tǒng)處理一塊數(shù)據(jù)的時間可以粗略地認為是MAC(C, T)。如果C<T,可使塊設(shè)備連續(xù)輸入(圖中所示情況);如果C>T,則可使CPU不必等待設(shè)備輸入。對于字符設(shè)備,若釆用行輸入方式,則釆用雙緩沖可使用戶在輸入完第一行之后,在CPU執(zhí)行第一行中的命令的同時,用戶可繼續(xù)向第二緩沖區(qū)輸入下一行數(shù)據(jù)。而單緩沖情況下則必須等待一行數(shù)據(jù)被提取完畢才可輸入下一行的數(shù)據(jù)。


圖5-6  雙緩沖工作示意圖

如果兩臺機器之間通信僅配置了單緩沖,如圖5-7(a)所示。那么,它們在任一時刻都只能實現(xiàn)單方向的數(shù)據(jù)傳輸。例如,只允許把數(shù)據(jù)從A機傳送到B機,或者從B機傳送到A 機,而絕不允許雙方同時向?qū)Ψ桨l(fā)送數(shù)據(jù)。為了實現(xiàn)雙向數(shù)據(jù)傳輸,必須在兩臺機器中都設(shè)置兩個緩沖區(qū),一個用做發(fā)送緩沖區(qū),另一個用做接收緩沖區(qū),如圖5-7(b)所示。


圖5-7  雙機通信時緩沖區(qū)的設(shè)置

3) 循環(huán)緩沖

包含多個大小相等的緩沖區(qū),每個緩沖區(qū)中有一個鏈接指針指向下一個緩沖區(qū),最后一個緩沖區(qū)指針指向第一個緩沖區(qū),多個緩沖區(qū)構(gòu)成一個環(huán)形。

循環(huán)緩沖用于輸入/輸出時,還需要有兩個指針in和out。對輸入而言,首先要從設(shè)備接收數(shù)據(jù)到緩沖區(qū)中,in指針指向可以輸入數(shù)據(jù)的第一個空緩沖區(qū);當運行進程需要數(shù)據(jù)時,從循環(huán)緩沖區(qū)中取一個裝滿數(shù)據(jù)的緩沖區(qū),并從此緩沖區(qū)中提取數(shù)據(jù),out指針指向可以提取數(shù)據(jù)的第一個滿緩沖區(qū)。輸出則正好相反。

4) 緩沖池

由多個系統(tǒng)公用的緩沖區(qū)組成,緩沖區(qū)按其使用狀況可以形成三個隊列:空緩沖隊列、裝滿輸入數(shù)據(jù)的緩沖隊列(輸入隊列)和裝滿輸出數(shù)據(jù)的緩沖隊列(輸出隊列)。還應具有四種緩沖區(qū):用于收容輸入數(shù)據(jù)的工作緩沖區(qū)、用于提取輸入數(shù)據(jù)的工作緩沖區(qū)、 用于收容輸出數(shù)據(jù)的工作緩沖區(qū)及用于提取輸出數(shù)據(jù)的工作緩沖區(qū),如圖5-8所示。


圖5-8  緩沖區(qū)的工作方式

當輸入進程需要輸入數(shù)據(jù)時,便從空緩沖隊列的隊首摘下一個空緩沖區(qū),把它作為收容輸入工作緩沖區(qū),然后把輸入數(shù)據(jù)輸入其中,裝滿后再將它掛到輸入隊列隊尾。當計算進程需要輸入數(shù)據(jù)時,便從輸入隊列取得一個緩沖區(qū)作為提取輸入工作緩沖區(qū),計算進程從中提取數(shù)據(jù),數(shù)據(jù)用完后再將它掛到空緩沖隊列尾。當計算進程需要輸出數(shù)據(jù)時,便從空緩沖隊列的隊首取得一個空緩沖區(qū),作為收容輸出工作緩沖區(qū),當其中裝滿輸出數(shù)據(jù)后,再將它掛到輸出隊列隊尾。當要輸出時,由輸出進程從輸出隊列中取得一個裝滿輸出數(shù)據(jù)的緩沖區(qū),作為提取輸出工作緩沖區(qū),當數(shù)據(jù)提取完后,再將它掛到空緩沖隊列的隊尾。

3. 高速緩存與緩沖區(qū)的對比

高速緩存是可以保存數(shù)據(jù)拷貝的高速存儲器,訪問高速緩存比訪問原始數(shù)據(jù)更高效速度更快。其對比見表5-1。
表5-1 高速緩存和緩沖區(qū)的對比
 高速緩存緩沖區(qū)
 相同點都是介于高速設(shè)備和低速設(shè)備之間
區(qū)別存放數(shù)據(jù)存放的是低速設(shè)備上的某些數(shù)據(jù)的復制數(shù)據(jù),也就是高速緩存上有的低速設(shè)備上面必然有存放的是低速設(shè)備傳遞給高速設(shè)備的數(shù)據(jù)(或者是高速設(shè)備傳送給低速設(shè)備的數(shù)據(jù)),而這些數(shù)據(jù)在低速設(shè)備(或者高速設(shè)備)卻不一定有備份,這些數(shù)據(jù)在從緩存區(qū)傳送到髙速設(shè)備(或者低速設(shè)備)
目的高速緩存存放的是高速設(shè)備經(jīng)常要訪問的數(shù)據(jù),如果高速設(shè)備要訪問的數(shù)據(jù)不在高速緩存中,高速設(shè)備就需要訪問低速設(shè)備高速設(shè)備和低速設(shè)備的通信都要經(jīng)過緩存區(qū),高速設(shè)備永遠不會直接去訪問低速設(shè)備

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
cache 和 buffer的區(qū)別
設(shè)備管理(五)
【操作系統(tǒng)】輸入輸出系統(tǒng)
C語言緩沖區(qū)(緩存)詳解
Disruptor的并發(fā)優(yōu)化
Linux高速緩存
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服