国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Windows文件緩沖處理技術概述

2018-12-21 21:23陳亦欣江漢大學數(shù)學與計算機科學學院
數(shù)碼世界 2018年2期
關鍵詞:緩沖區(qū)驅動程序管理器

陳亦欣 江漢大學 數(shù)學與計算機科學學院

1 Windows緩存管理器

緩存管理器是Windows系統(tǒng)中的一個組件,提供一個與I/O管理器、虛擬內存管理器和文件系統(tǒng)協(xié)同作業(yè)的數(shù)據(jù)緩沖,這個緩沖在整個操作系統(tǒng)的存儲設備上保持一致。緩存管理器把可用內存空間分割為跟頁面一樣大的緩沖區(qū),磁盤中的數(shù)據(jù)可讀入緩沖區(qū),緩沖區(qū)數(shù)據(jù)可寫入磁盤。緩存管理器以及文件系統(tǒng)二者可互相調用,前者為后者提供一些調用,并發(fā)出IRP請求,后者則為前者注冊回調函數(shù)。

當有程序首次發(fā)出讀文件請求時,緩存管理器就把文件數(shù)據(jù)讀取到文件系統(tǒng)緩存之中,接著用戶態(tài)進程把緩沖區(qū)中的數(shù)據(jù)復制到自己的進程空間里;而當進程完成了自身的工作后,數(shù)據(jù)先被寫入文件系統(tǒng)緩存,最后再由緩存管理器將緩沖區(qū)中的數(shù)據(jù)寫回磁盤文件中。

由于被緩沖文件的一切I/O請求全部需要通過緩存管理器,對于緩存管理器的策略會根據(jù)用戶態(tài)進程的數(shù)據(jù)訪問模式的不同而進行調整。對于一個請求讀文件的應用程序,緩存管理器會預先將其請求之后的數(shù)據(jù)也讀入緩沖區(qū),從而使得當應用程序接下來請求后面的數(shù)據(jù)時可以快速響應,縮短了等待時間。對于一個請求寫文件的應用程序,緩存管理器會將數(shù)據(jù)寫入緩沖區(qū)并保留一段時間暫時不寫入磁盤,延遲一段時間再將緩沖區(qū)數(shù)據(jù)一起寫入磁盤中。這樣就能使多個寫操作合并成為一次寫操作,更有效率,也降低了重復修改同一塊數(shù)據(jù)時對磁盤反復寫的負載。

2 緩沖文件讀寫

緩存管理器將文件映射到內存中實現(xiàn)緩沖文件數(shù)據(jù)。一個由用戶態(tài)進程發(fā)起的讀操作被I/O管理器傳遞到文件系統(tǒng)時,緩存管理器協(xié)同I/O管理器、虛擬內存管理器和文件系統(tǒng)共同工作,流程如下:

(1)用戶應用程序執(zhí)行一個讀操作,它使控制被轉移到內核中的I/O管理器中。

(2)I/O管理器使用IRP來把一個讀請求傳遞給合適的文件系統(tǒng)驅動。

(3)文件系統(tǒng)驅動接收到讀請求并發(fā)現(xiàn)是該讀操作是針對一個以緩沖方式打開的文件。如果緩沖尚未初始化,那么緩存管理器就會被文件系統(tǒng)驅動調用從而將其初始化。反過來,緩存管理器請求虛擬內存管理器為被緩存的文件創(chuàng)建一個文件映射(段對象)。

(4)文件系統(tǒng)驅動程序調用CcCopyRead將讀取請求傳遞給緩存管理器。緩存管理器此時負責將數(shù)據(jù)傳輸?shù)接脩艟彌_區(qū)的一系列必要步驟。

(5)緩存管理器檢查它的數(shù)據(jù)結構,以確定是否存在含有用戶所請求的字節(jié)范圍的文件的映射視圖。如果沒有映射視圖存在,則由緩存管理器創(chuàng)建一個。

(6)緩存管理器從映射視圖復制數(shù)據(jù)到用戶緩沖區(qū)。

(7)如果文件的映射視圖不在包含所需數(shù)據(jù)的物理頁中,則產生一個頁錯誤,且控制轉移到虛擬內存管理器。

(8)虛擬內存管理器為頁錯誤分配物理頁面,它們會被用來包含被請求的數(shù)據(jù)。然后通過I/O管理器向文件系統(tǒng)驅動發(fā)出一個非緩存分頁I/O讀操作。

(9)在接收到非緩沖的讀請求時,文件系統(tǒng)驅動程序創(chuàng)建一個相應的I / O請求從二級存儲介質獲取數(shù)據(jù)并將該I / O請求傳給較低層驅動程序。

(10)文件系統(tǒng)下的設備驅動程序從二級存儲(或通過網(wǎng)絡)得到數(shù)據(jù)并完成請求。

(11)文件系統(tǒng)驅動程序完成來自虛擬內存管理器的分頁I/O請求。

(12)導致頁錯誤的指令被重新執(zhí)行。

(13)緩存管理器完成從映射視圖到用戶緩沖區(qū)的復制操作。

(14)緩沖數(shù)據(jù)被復制到用戶緩沖區(qū)中后,緩存管理器將控制返回給文件系統(tǒng)驅動程序。這些數(shù)據(jù)也將為緩存管理器繼續(xù)保留在虛擬地址空間里。虛擬內存管理器能隨時將其從內存里拋棄。

(15)文件系統(tǒng)驅動完成由I/O管理器發(fā)送給它的原始IRP請求。

(16)I/O管理器完成用戶原始的讀取請求。

3 結束語

緩沖寫操作的步驟也要依照一定的順序來滿足寫入請求,和讀操作是基本類似的。Windows操作系統(tǒng)通過文件緩沖機制大大提高了系統(tǒng)文件的讀寫相應效率。

[1]方旺盛等.2004.一種基于文件緩沖方式的操作大數(shù)據(jù)量數(shù)據(jù)的方法[J]. 計算技術與自動化, 23(4).

[2]陳煒,曹斌.基于雙緩沖文件系統(tǒng)過濾驅動技術研究[J].信息安全與技術,2013,4(11):44-47.

猜你喜歡
緩沖區(qū)驅動程序管理器
避免Windows系統(tǒng)更新反復安裝顯示驅動
啟動Windows11任務管理器的幾種方法
應急狀態(tài)啟動磁盤管理器
阻止Windows Update更新驅動程序
緩沖區(qū)溢出漏洞攻擊及其對策探析
用好Windows 10任務管理器
初涉緩沖區(qū)
本期導讀
Linux系統(tǒng)下緩沖區(qū)溢出漏洞攻擊的防范
在Win 7下利用憑據(jù)管理器提高訪問速度等
田东县| 永昌县| 阳泉市| 新沂市| 和静县| 兰考县| 平陆县| 五华县| 铁岭县| 揭西县| 建平县| 襄城县| 龙山县| 九龙坡区| 香格里拉县| 合肥市| 武汉市| 宁乡县| 永春县| 孝义市| 酉阳| 鹤庆县| 仪陇县| 内江市| 京山县| 定陶县| 勃利县| 乐山市| 洛阳市| 灵丘县| 民乐县| 武穴市| 晋州市| 宜昌市| 乌鲁木齐县| 诸城市| 乳源| 平陆县| 临安市| 乌兰察布市| 新余市|