操作系統(tǒng)原理和應用Linux設備管理_第1頁
操作系統(tǒng)原理和應用Linux設備管理_第2頁
操作系統(tǒng)原理和應用Linux設備管理_第3頁
操作系統(tǒng)原理和應用Linux設備管理_第4頁
操作系統(tǒng)原理和應用Linux設備管理_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6章設備管理學習目標I/O設備是計算機系統(tǒng)一個主要組成部分。伴隨計算機技術發(fā)展以及計算機應用推廣,I/O設備日趨多樣化、復雜化和智能化。因為I/O設備種類種類繁多,它們特征和操作方式差異很大,這使得設備管理成為操作系統(tǒng)中最繁雜且與硬件關系最親密部分。經過本章學習,讀者應該掌握以下內容:數據傳輸方式中止技術緩沖技術設備分配技術設備獨立性設備驅動第六章設備管理1第1頁教學內容6.1I/O系統(tǒng)組成6.2數據傳輸控制方式6.3中止技術6.4緩沖技術6.5設備分配6.6SPOOLING系統(tǒng)6.7I/O控制過程6.8磁盤I/O6.9LINUX系統(tǒng)設備管理

本章小結

第2頁6.1I/O系統(tǒng)組成I/O系統(tǒng)是計算機系統(tǒng)中完成數據輸入、輸出子系統(tǒng)。它包含輸入/輸出設備、對應于各設備設備控制器,在大、中型計算機中,還配置了I/O通道。第六章設備管理3第3頁6.1.1I/O設備從不一樣角度,能夠對設備進行不一樣分類。1.按使用特征分類(1)存放設備(2)輸入/輸出設備2.按傳輸速率分類(1)低速設備(2)中速設備(3)高速設備3.按信息傳輸單位分類(1)塊設備(2)字符設備4.按資源分配方式分類(1)獨占設備(2)共享設備(3)虛擬設備第六章設備管理4第4頁6.1.2設備控制器設備控制器是CPU和I/O設備之間接口,它接收從CPU發(fā)來命令,并去控制I/O設備工作,并向CPU發(fā)送中止信號。1.設備控制器功效(1)接收并識別來自CPU命令(2)數據傳輸(3)統(tǒng)計設備狀態(tài)(4)識別設備地址和存放器地址(5)差錯控制第六章設備管理5第5頁2.設備控制器組成第六章設備管理6存放器數據存放器CPU與控制器接口數據線地址線控制線I/O邏輯控制器與設備接口1控制器與設備接口i數據狀態(tài)控制數據狀態(tài)控制控制器與設備接口…控制/狀態(tài)存放器第6頁6.1.3I/O通道I/O通道是一個專門負責I/O操作小型處理機,它接收CPU命令,獨立地管理I/O操作過程,實現(xiàn)內存和設備之間成批數據傳輸。通道相當于一個協(xié)處理器,類似于以前微機中配置數學協(xié)處理器。通道有自己一套簡單指令系統(tǒng),能夠組成通道程序,經過獨立執(zhí)行通道程序來完成CPU交付I/O操作。第六章設備管理7第7頁6.2數據傳輸控制方式6.2.1程序直接控制方式由程序直接控制內存與I/O設備之間數據傳輸,又稱為“忙等”方式或循環(huán)測試方式。詳細而言,即當要在內存和I/O設備之間進行信息傳輸時,由CPU向對應設備控制器發(fā)出命令,由設備控制器控制I/O設備進行實際操作。在I/O設備工作時,CPU執(zhí)行一段循環(huán)測試程序,不停測試I/O設備完成情況——“忙等”,以決定是否繼續(xù)傳輸下一個數據。若設備未完成此次數據傳輸,則繼續(xù)測試,若設備完成了此次數據傳輸,則進行下一次數據傳輸或繼續(xù)執(zhí)行程序。第六章設備管理8第8頁6.2.2中止控制方式當要在主機和I/O設備之間進行信息傳輸時,由CPU向對應設備控制器發(fā)出命令,由設備控制器控制I/O設備進行實際操作,每次數據傳輸單位是設備控制器數據緩沖存放器容量。在I/O設備工作時,對應進程放棄處理機,處于等候狀態(tài),由操作系統(tǒng)調度其它就緒進程占用CPU。I/O操作完成時,由設備控制器向CPU發(fā)出中止信號,通知CPU此次I/O操作完成,然后由CPU執(zhí)行一個中止處理程序,對此情況做出對應反應。中止處理過程普通是這么:首先保護現(xiàn)場;然后將等候I/O操作完成進程喚醒,使其進入就緒狀態(tài);然后轉進程調度。第六章設備管理9第9頁6.2.3DMA方式

引入原因:降低中止次數,提升CPU利用率。降低中止次數,有兩種方法:(1)增大數據緩沖存放器容量。(2)另外配置一個數據傳輸控制器件,進行成批數據傳輸。DMA方式數據傳輸單位是數據塊,僅在數據塊傳輸結束時才向CPU發(fā)出中止信號,從而降低了中止次數。第六章設備管理10第10頁6.2.4通道控制方式

為了提升計算機系統(tǒng)運行效率,就要使CPU擺脫繁忙I/O事務,而配置專門處理I/O事務機構——通道。通道是一個專門進行I/O操作處理機,它接收主機命令,獨立地執(zhí)行通道程序,對外部設備I/O操作進行控制,在內存和外設之間直接進行數據傳送。當主機交付I/O任務完成后,通道向中央處理機發(fā)出中止信號,請求CPU處理。第六章設備管理11第11頁6.3中止技術6.3.1中止概念

所謂中止,是指處理機在執(zhí)行進程過程中,因為一些事件出現(xiàn),中止當前進程運行,轉而去處理出現(xiàn)事件,待處理完成后返回原來被中止處繼續(xù)執(zhí)行或調度其它進程執(zhí)行。第六章設備管理12第12頁6.3.2中止源引發(fā)中止事件稱為中止源。計算機中中止源種類有很多,大致可分為:1.強迫性中止源(1)硬件故障如電源故障、主存放器故障,等等。(2)程序性錯誤由執(zhí)行機器指令引發(fā)錯誤,如除數為零、操作數溢出、非法指令、目態(tài)下使用特權指令、地址越界等等。(3)外部事件時鐘中止、重開啟中止等。(4)I/O中止事件外設完成I/O操作或I/O操作犯錯,如打印完成、打印缺紙等。2.自愿性中止源指進程執(zhí)行訪管指令請求OS服務,如請求分配外設、請求I/O等。由訪管指令引發(fā)中止稱為訪管中止。第六章設備管理13第13頁6.3.3中止響應

中止源向CPU發(fā)出請求中止處理信號稱為中止請求。當中央處理機發(fā)覺有中止請求信號時,中止當前途序執(zhí)行,并自動進入對應中止處理程序過程稱為中止響應。中止響應由硬件中止機構完成。第六章設備管理14第14頁中止響應過程:(1)保護被中止進程現(xiàn)場。為了在以后能從斷點處繼續(xù)執(zhí)行被中止進程,系統(tǒng)必須保留當前途序狀態(tài)字PSW和程序計數器PC值。(2)分析中止原因,轉入對應中止處理子程序。只要將中止處理程序入口地址送入程序計數器,將程序狀態(tài)字送入程序狀態(tài)字存放器,便轉入了中止處理程序。第六章設備管理15第15頁6.4緩沖技術6.4.1緩沖引入引入緩沖技術原因:(1)降低讀塊設備次數(2)降低對CPU中止次數,放寬對中止響應時間限制。(3)用于無法直接通信設備間中轉站(4)處理程序所請求邏輯統(tǒng)計大小和設備物理統(tǒng)計大小不匹配問題。(5)加緊進程(作業(yè))推進速度在需要采取緩沖技術場所,能夠采取以下幾個不一樣緩沖技術:單緩沖、雙緩沖、循環(huán)緩沖、緩沖池。第六章設備管理16第16頁6.4.2單緩沖在單緩沖方式中,當用戶進程發(fā)出I/O請求時,操作系統(tǒng)便在內存中為其分配一個緩沖區(qū)。其數據輸入過程是這么:當一個用戶進程要求輸入數據時,操作系統(tǒng)控制輸入設備將數據送往緩沖區(qū)存放,再送往用戶進程數據存放區(qū)。第六章設備管理17第17頁6.4.3雙緩沖為輸入或輸出操作設置兩個緩沖區(qū)buffer1和buffer2。當進程要求輸入數據時,首先輸入設備將數據送往緩沖區(qū)buffer1,然后進程從buffer1中取出數據進行處理;在進程從buffer1中取數據同時,輸入設備可向緩沖區(qū)buffer2中送入數據。當buffer1中數據取完時,進程又可不需等候地從buffer2中提取數據,同時輸入設備又可將數據送往buffer1。如此交替使用buffer1和buffer2兩個緩沖區(qū)。當進程進行輸出時操作與輸入類似。第六章設備管理18第18頁6.4.4循環(huán)緩沖循環(huán)緩沖技術是在內存中分配大小相等存放區(qū)作為緩沖區(qū),并將這些緩沖區(qū)連接起來,每個緩沖區(qū)中有一個指向下一個緩沖區(qū)指針,最終一個緩沖區(qū)指針指向第一個緩沖區(qū)第六章設備管理19第19頁6.4.5緩沖池上述緩沖機制是針對某特定I/O進程和計算進程,是專用緩沖結構,而不是針對整個系統(tǒng)公用緩沖結構。當系統(tǒng)較大時,會有很多這么緩沖結構,這不但要消耗大量內存空間,而且其利用率不高。為了提升緩沖區(qū)利用率,當前普遍采取公用緩沖池結構,在緩沖池中設置了可供多個并發(fā)進程共享緩沖區(qū)。第六章設備管理20第20頁6.5設備分配6.5.1與設備分配相關原因1.I/O設備固有屬性獨占設備:這類設備被分配給一個進程后,就被該進程獨占使用,其它任何進程不能使用,直到該進程使用完成(不再使用)主動釋放為止。共享設備:是指能夠由多個進程交替使用設備。如磁盤機。第六章設備管理21第21頁2.I/O設備分配算法(1)先來先服務算法在先來先服務算法中,對同一設備,按并發(fā)進程中I/O請求發(fā)出時間先后,將I/O請求塊排隊。當設備可用(能夠分配)時,則將設備分配給隊首元素對應進程,即最先對此設備提出I/O請求進程。(2)優(yōu)先級算法按一定標準設置進程優(yōu)先級,按進程優(yōu)先級由高到低次序對各并發(fā)進程對同一設備I/O請求塊排隊。當設備可用(能夠分配)時,則將設備分配給隊首元素對應進程——在對同一設備提出I/O請求并發(fā)進程中優(yōu)先級最高進程。第六章設備管理22第22頁3.設備分配安全性對獨占設備靜態(tài)分配不會引發(fā)死鎖。在對共享設備進行動態(tài)分配時,從系統(tǒng)安全性角度看,有兩種分配方式。(1)安全分配方式(2)不安全分配方式第六章設備管理234.設備無關性設備無關性是指,當在應用程序中使用某類設備時,不直接指定詳細使用哪個設備,而只指定使用哪類設備,由操作系統(tǒng)來為進程分配詳細一個該類設備。第23頁6.5.2虛擬設備技術用一共享設備——高速存放設備(如高速磁盤機)上存放區(qū)域模擬獨占設備。虛擬設備技術關鍵是預輸入、緩輸出。預輸入:在作業(yè)執(zhí)行前,操作系統(tǒng)先將作業(yè)信息從獨占設備預先輸入到高速外存中。今后,作業(yè)執(zhí)行中不再占有獨占輸入設備,使用數據時無須再從獨占設備輸入,而是從高速外存中讀取。緩輸出:在作業(yè)執(zhí)行過程中,當要進行輸出操作時,無須直接開啟獨占設備輸出數據,而能夠先將作業(yè)輸出數據寫入高速外存中,在作業(yè)執(zhí)行完成后,再由操作系統(tǒng)來組織信息輸出。第六章設備管理24第24頁6.6SPOOLING系統(tǒng)6.6.1什么是SPOOLING系統(tǒng)SPOOLING(SimultaneausPeripheralOperatingOnLine)含義是外圍設備同時聯(lián)機操作,又稱為假脫機操作。它不需要額外配置衛(wèi)星機,而是將輸入輸出設備同時連接在主機上。它是對脫機輸入輸出模擬。用一道輸入程序模擬脫機輸入時衛(wèi)星機,經過通道把低速I/O設備上數據傳送到高速磁盤上;用另一道程序模擬脫機輸出時衛(wèi)星機,經過通道把數據從磁盤傳送到低速輸出設備上。第六章設備管理25第25頁6.6.2SPOOLING系統(tǒng)組成第六章設備管理26輸出設備輸入設備輸入緩沖區(qū)輸出緩沖區(qū)內存磁盤輸入井輸出井圖6-8SPOOLING系統(tǒng)輸入進程輸出進程第26頁6.7I/O控制過程當用戶進程經過系統(tǒng)調用提出I/O請求時,從系統(tǒng)響應此請求開始,至系統(tǒng)完成用戶要求I/O操作,并喚醒對應等候I/O完成進程為止,這整個過程稱為I/O控制過程。I/O控制過程包含以下步驟:(1)響應I/O請求,為在詳細物理設備上進行I/O操作做準備。包含將邏輯設備名轉換為物理設備名(設備分配)、I/O請求正當性等。(2)設備驅動,控制設備完成I/O操作,對每類設備分別設置不一樣設備驅動程序。(3)中止處理,I/O操作完成之后,設備控制器向CPU發(fā)送中止信號,CPU響應后轉向對應中止處理程序進行善后處理。第六章設備管理27第27頁6.8磁盤I/O6.8.1磁盤存放格式磁盤可包含一個或多個圓形盤片,每片有兩面。每面首先劃分為若干半徑不一樣同心磁道,然后將每個磁道等分為若干扇區(qū)。各磁道即使周長不一樣,但存放容量相同,各扇區(qū)存放容量也相同,普通每個扇區(qū)容量為512字節(jié),內層磁道存放密度比外層磁道高。磁盤存放空間分配以整數N個扇區(qū)為單位,稱為簇,在不一樣操作系統(tǒng)中,N可有不一樣取值。這么一個文件在磁盤上占有整數個簇,一個簇只能分配給一個文件使用。磁盤I/O以扇區(qū)為單位,一次傳送一個扇區(qū)。第六章設備管理28第28頁6.8.2磁盤I/O性能普通以磁盤存取速度來衡量磁盤I/O性能。對磁盤存取操作包含三個步驟:首先磁頭徑向運動到指定磁道,然后旋轉盤片,將指定要訪問扇區(qū)旋轉到磁頭下,使磁頭處于扇區(qū)開始位置,然后開始讀或寫數據。所以磁盤訪問時間能夠分為以下三部分。(1)尋道時間Ts這是把磁頭移到指定磁道上用時間。(2)旋轉延遲Tr這是指定扇區(qū)旋轉到磁頭下經歷時間。第六章設備管理29第29頁(3)傳輸時間Tt這是指把數據從磁盤讀出或向磁盤寫入數據所經歷時間。由讀寫字節(jié)數和磁盤旋轉速度決定。其中,b為一次讀寫字節(jié)數,r為磁盤每秒轉數,N為每條磁道字節(jié)數對磁盤訪問時間為三部分時間之和:T=Ts+Tr+Tt。在這三個時間中,尋道時間和旋轉延遲與讀寫字節(jié)數無關,尋道時間所占百分比最大。第六章設備管理30第30頁6.8.3磁盤調度1.先來先服務算法這種調度算法按進程請求訪問磁盤時間先后次序進行調度。此算法優(yōu)點是實現(xiàn)簡單,且公平,每個進程磁盤I/O請求都能依次得處處理,不會出現(xiàn)某一進程請求長時間得不到滿足情況。缺點是未對尋道進行優(yōu)化,平均尋道時間較長。第六章設備管理31第31頁2.最短尋道時間優(yōu)先算法

該算法選擇這么磁盤I/O請求,其要訪問磁道與當前磁頭所在磁道距離最近,以使每次尋道時間最短。此算法只從當前角度考慮,沒有考慮全局,表面看來平均尋道時間應該最短,不過不一定。第六章設備管理32第32頁3.掃描算法掃描算法不但考慮到要訪問磁道與當前磁道間距離,更優(yōu)先考慮是磁頭當前移動方向。比如,當磁頭正在從里向外移動時,掃描算法選擇下一個訪問對象,是在當前磁頭所在磁道之外距離當前磁道最近磁道。這么從里向外地訪問,直至再無更外磁道需要訪問時,磁頭才返回從外向里移動,一樣每次也是選擇當前磁道之內距離最近磁道,到頭后再返回,從里向外移動訪問。因為此算法中磁頭移動規(guī)律很象電梯運行,所以又稱為電梯調度算法。第六章設備管理33第33頁4.循環(huán)掃描算法要求磁頭單向移動。比如,只從里向外移動,當磁頭移到最外磁道并訪問后,磁頭馬上返回到最里要訪問磁道,再從里向外移動。第六章設備管理34第34頁6.8.4磁盤高速緩存當進程從磁盤讀取數據時,為了提升讀盤速度,能夠采取緩沖技術。即在內存中開辟一個緩沖區(qū)用于接收從磁盤讀取數據,這個緩沖區(qū)稱為磁盤高速緩存,緩沖區(qū)大小與磁盤塊相匹配。其工作原理類似于內存和CPU之間高速緩存。當有一進程請求訪問某盤塊中數據時,先去查看磁盤高速緩存,看其中是否有進程所需訪問盤塊數據拷貝。若有,則直接從磁盤高速緩存中提取數據,而無須訪問磁盤;若沒有,則先將所需盤塊讀到磁盤高速緩存,然后從中提取數據送往請求進程數據存放區(qū)。第六章設備管理35第35頁6.9LINUX系統(tǒng)設備管理6.9.1LINUX系統(tǒng)設備管理特點LINUX系統(tǒng)把設備分為兩類:(1)塊設備。用于存放信息,它對信息存取是以信息塊為單位,如通常使用磁盤、磁帶等。(2)字符設備。通慣用于輸入輸出,作為人和計算機之間接口,它對信息俄存取是以字符為單位進行,如鍵盤、鼠標、顯示器、打印機等。LINUX系統(tǒng)把I/O設備看作文件,稱為尤其文件。第六章設備管理36第36頁6.9.2LINUX設備驅動程序接口1.文件系統(tǒng)與設備驅動程序接口第六章設備管理37對字符設備特殊文件系統(tǒng)調用

openclosereadwrite文件系統(tǒng)

openclosereadwrite對塊設備文件系統(tǒng)調用對普通文件系統(tǒng)調用

字符設備開關表

塊設備開關表

openclosereadwrite

字符設備驅動程序

設備中止處理程序

openclose

strategy塊設備驅動程序設備中止處理程序塊設備字符設備中止向量表高速緩沖模塊設備驅動設備中止設備中止設備驅動圖6-9文件系統(tǒng)與設備驅動程序接口第37頁2.設備開關表LINUX系統(tǒng)把塊設備和字符設備又分別細分為若干類。如:塊設備可分為硬盤、軟盤、磁帶、光盤等類,字符設備可分為終端設備、打印機等。為指定一類設備,將設備類從0開始次序編號,稱為主設備號;同一類設備可能有許多,為了指定一臺詳細設備,需要一個次設備號來標識。所以,在指定一臺詳細設備時要給出:塊設備/字符設備、主設備號、次設備號。第六章設備管理38第38頁設備開關表相當于一個二維矩陣,每一行含有同一類設備驅動程序入口地址,主設備號與行號一一對應;每一列是完成不一樣操作(open、close、read、write)驅動程序入口地址。第六章設備管理39第39頁6.9.3LINUX磁盤高速緩存1.磁盤高速緩存對文件系統(tǒng)一切存取操作,都能經過直接從磁盤上讀或往磁盤上寫來實現(xiàn),但磁盤I/O速度較慢,所以使系統(tǒng)性能較低。為了降低對磁盤存取頻率,LINUX使用了磁盤高速緩存技術。LINUX磁盤緩沖管理策略是試圖把盡可能多有用數據保留在緩沖區(qū)中。磁盤緩沖管理模塊位于文件系統(tǒng)與塊設備驅動程序之間。第六章設備管理40第40頁當從磁盤中讀數據時,文件系統(tǒng)先從磁盤高速緩存中讀,假如數據已在高速緩存中,則能夠無須開啟磁盤I/O,假如數據不在高速緩存中,則開啟磁盤I/O,從磁盤讀取數據送往高速緩存,進程再從高速緩存中讀取數據。當進程往磁盤上寫數據時,先往高速緩存中寫,方便隨即又讀它時,能從高速緩存中讀取,而無須開啟磁盤讀取。LINUX采取了“延遲寫”策略,即:假如緩沖區(qū)還沒有寫滿,則不急于把緩沖區(qū)內容寫到磁盤上,而是在緩沖管理數據結構中對該緩沖區(qū)設置延遲寫標志,當高速緩存中數據延遲到必須往磁盤上寫時候才進行寫盤操作。第六章設備管理41第41頁2.磁盤緩沖管理數據結構LINUX中使用多個內存緩沖區(qū)進行磁盤緩沖,為了合理有效地使用這些緩沖區(qū),必須按一定策略進行管理。管理依據是緩沖區(qū)相關信息,為了能訪問這些信息,必須將其按一定數據結構進行組織。首先,對每個緩沖區(qū),建立“緩沖首部”來存放該緩沖區(qū)相關信息。其內容有:設備號dev:緩沖區(qū)內包含信息所屬設備設備號。塊號blkno:該緩沖區(qū)對應磁盤物理塊號。狀態(tài)flag:描述了緩沖區(qū)當前狀態(tài)。包含:第六章設備管理42第42頁忙標志位BUSY:緩沖區(qū)當前是否正忙。有效位AVE:緩沖區(qū)包含數據是否有效。延遲寫位DELWR:是否延遲寫。寫標志位WRITE:是否正在把緩沖區(qū)內容寫到磁盤上。讀標志位READ:是否從磁盤往緩沖區(qū)讀取信息。等候位WAIT:是否有一個進程正在等候該緩沖區(qū)。設備緩沖區(qū)隊列前向指針b-forw設備緩沖區(qū)隊列后向指針b-back空閑緩沖區(qū)隊列前向指針av-forw空閑緩沖區(qū)隊列后向指針av-back第六章設備管理43第43頁要對全部緩沖區(qū)進行管理,必須將全部緩沖首部組織成一定數據結構,LINUX建立了兩個緩沖區(qū)隊列:空閑緩沖區(qū)隊列和設備緩沖區(qū)隊列。為了對緩沖區(qū)進行分配,把全部空閑緩沖區(qū)組織成一個隊列。此隊列中全部緩沖區(qū)忙標志位BUSY均為0。該隊列是一個雙向循環(huán)鏈表。設備號dev塊號blkno狀態(tài)flagb-forwb-backav-forwav-back第六章設備管理44第44頁對于每類設備都建立一個設備緩沖區(qū)隊列,是與該類設備相關全部緩沖區(qū)組成隊列。此隊列中全部緩沖區(qū)首部忙標志位BUSY均為1。該隊列是一個雙向循環(huán)鏈表。任何緩沖區(qū)首部,要么位于空閑緩沖區(qū)隊列中,要么位于設備緩沖區(qū)隊列中。第六章設備管理45第45頁3.LINUX磁盤緩沖區(qū)管理算法LINUX提供磁盤高速緩沖區(qū)不屬于某進程專用,而是由多進程共享,由操作系統(tǒng)進行統(tǒng)一管理。為了提升使用效率,必須采取適當管理策略。當某進程要從一個磁盤讀取數據時,先檢驗要讀取磁盤塊是否包含在某緩沖區(qū)中,假如不在,則從空閑緩沖區(qū)隊列中分配給它一個空閑緩沖區(qū);當某進程要將數據寫入磁盤時,先看一下要寫磁盤塊是否在某緩沖區(qū)中,假如不在則為這個磁盤塊分配一個空閑緩沖區(qū)。被分配空閑緩沖區(qū)從空閑緩沖區(qū)隊列中退出,進入對應設備設備緩沖區(qū)隊列,該緩沖區(qū)BUSY位置1。

第六章設備管理46第46頁當緩沖區(qū)信息讀到對應進程內存區(qū)后,或進程信息寫到緩沖區(qū)后,便釋放進程使用緩沖區(qū),將flag中BUSY位置0,送入空閑緩沖區(qū)隊尾,即使置為延遲寫緩沖區(qū)也送入空閑緩沖區(qū)隊列。這么能夠使有限緩沖區(qū)得到充分利用,滿足多個并發(fā)進程需求。當一個緩沖區(qū)被送往空閑緩沖區(qū)隊尾時,并不退出設備緩沖區(qū)隊列,而依然留在原隊列中。這么做原因是:此次使用完成送往空閑緩沖區(qū)隊列緩沖區(qū),其保留信息可能被再次訪問。假如將其保留在設備緩沖區(qū)隊列中,當以后要讀取磁盤數據依然保留在此緩沖區(qū)中時,能夠直接從此緩沖區(qū)讀,而無須開啟磁盤I/O,提升了讀盤速度。這正是使用磁盤高速緩存目標。第六章設備管理47第47頁假如要將一個使用完成送入空閑緩沖區(qū)隊列緩沖區(qū)重新分配給其它設備,則能夠將該緩沖區(qū)同時從空閑緩沖區(qū)隊列和原設備緩沖區(qū)隊列中抽出,送入新設備緩沖區(qū)隊列。因為被使用過緩沖區(qū)放在空閑緩沖區(qū)隊列末尾,伴隨不停地從空閑緩沖區(qū)隊列上摘下緩沖區(qū),后面緩沖區(qū)會不停向隊首移動。假如一個延遲寫標志位為1緩沖區(qū)移到空閑緩沖區(qū)隊列頭部,當其被重新分配之前,要先把其內容寫到對應設備指定磁盤塊中。第六章設備管理48第48頁6.9.4LINUX字符設備緩沖區(qū)管理1.字符緩沖區(qū)及其隊列LINUX中為字符設備數據傳輸設置了一個公用字符緩沖池,該緩沖池內含有若干個緩沖區(qū),但每個緩沖區(qū)很小,只含幾個或幾十個字節(jié)。為合理使用這些緩沖區(qū),將其組織成為一定數據結構。同塊設備緩沖區(qū)管理類似,建立了空閑字符緩沖區(qū)隊列和設備字符緩沖區(qū)隊列。每個字符緩沖區(qū)由四部分組成:該緩沖區(qū)第一個字符位置、最終一個字符位置、指向下一個字符緩沖區(qū)指針、字符緩存區(qū)。第六章設備管理49第49頁第六章設備管理50首字符位置末字符位置指向下一字符緩沖區(qū)字符緩存區(qū)字符緩沖區(qū)第50頁對字符緩沖區(qū)操作是每次送入一個字符或取出一個字符。送入字符在字符緩存區(qū)尾部進行,即放在最終一個字符后面;取出字符從字符緩存區(qū)首部進行,即取第一個字符。最終一個字符位置不一定是字符緩存區(qū)末尾,伴隨不停往字符緩存區(qū)中放入字符,最終一個字符位置會向

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論