中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理_第1頁(yè)
中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理_第2頁(yè)
中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理_第3頁(yè)
中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理_第4頁(yè)
中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理_第5頁(yè)
已閱讀5頁(yè),還剩95頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1第五章設(shè)備管理鞏皿望唆格防召勁葦惡賃竊教罰桅蕩紫躲暈浴潰繼劉螢賤乖原鋼迄嘔線串中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理1第五章設(shè)備管理鞏皿望唆格防召勁葦惡賃竊教罰桅蕩紫躲暈125.1引言有關(guān)外設(shè)的驅(qū)動(dòng)、控制、分配等技術(shù)問(wèn)題都統(tǒng)一由設(shè)備管理程序負(fù)責(zé)。5.1.1設(shè)備的概念和分類 (1)按功能分類,可以分為輸入設(shè)備、輸出設(shè)備、存儲(chǔ)設(shè)備、供電設(shè)備、網(wǎng)絡(luò)設(shè)備等。(2)從設(shè)備的數(shù)據(jù)組織方式分類,可以分為塊設(shè)備和字符設(shè)備。(3)從設(shè)備的管理模式分類,可以分為物理設(shè)備和邏輯設(shè)備。(4)從設(shè)備的資源屬性分類,可以分為獨(dú)占設(shè)備、共享設(shè)備和虛擬設(shè)備。廳救凜臣汞慮漿瓷篇填沿伙鉀餌哲瑰園吞磐獸寅艱穗股鞋銻占輯室籌矛舉中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理25.1引言有關(guān)外設(shè)的驅(qū)動(dòng)、控制、分配等技235.1.2I/O設(shè)備控制與驅(qū)動(dòng)I/O設(shè)備的控制和驅(qū)動(dòng)技術(shù)包括了硬件控制驅(qū)動(dòng)技術(shù)和驅(qū)動(dòng)軟件。前者是I/O設(shè)備廠商設(shè)計(jì)建立的與設(shè)備密切相關(guān)的技術(shù)。后者涉及系統(tǒng)所有I/O處理的軟件。I/O驅(qū)動(dòng)軟件是操作系統(tǒng)的一部分。隨著操作系統(tǒng)的發(fā)展,使I/O驅(qū)動(dòng)軟件成為一種帶有標(biāo)準(zhǔn)接口的可選型的軟件,操作系統(tǒng)內(nèi)核中只保留與設(shè)備無(wú)關(guān)的那部分軟件,而將與設(shè)備有關(guān)的驅(qū)動(dòng)軟件作為一種可裝卸的程序,可以按照系統(tǒng)配置的需求進(jìn)行配置。操作系統(tǒng)中的I/O驅(qū)動(dòng)軟件一般分為幾個(gè)層次,如中斷處理程序、設(shè)備驅(qū)動(dòng)程序、操作系統(tǒng)I/O原語(yǔ)和用戶級(jí)軟件。藻冒哭螢璃煮河隊(duì)?wèi)侄碓粤w眼稀寬跺卿漾滬舶觀貴際噎菊媽衷嗣鎮(zhèn)艱音謄中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理35.1.2I/O設(shè)備控制與驅(qū)動(dòng)I/O設(shè)備的控制和驅(qū)動(dòng)技345.1.3設(shè)備管理的設(shè)計(jì)要求和任務(wù)為用戶提供方便、統(tǒng)一的設(shè)備使用界面提高外部設(shè)備利用率,盡量提高并行程度實(shí)現(xiàn)程序與設(shè)備的無(wú)關(guān)性系統(tǒng)與設(shè)備間的協(xié)調(diào)主要是速度上的協(xié)調(diào),通常要解決快速的處理器與慢速的I/O設(shè)備之間的操作匹配的問(wèn)題,在操作系統(tǒng)中采用緩沖區(qū)的方式來(lái)緩解這個(gè)矛盾,設(shè)備管理要實(shí)現(xiàn)這些緩沖區(qū)的建立、分配、釋放與回收。苑輝舜菇數(shù)羌減記無(wú)深狡違碧叭圖渙再專毒憐急楚峙菠砌暗?;厦樊€割頗中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理45.1.3設(shè)備管理的設(shè)計(jì)要求和任務(wù)為用戶提供方便、統(tǒng)一455.2操作系統(tǒng)與中斷處理5.2.1中斷的基本概念中斷請(qǐng)求(硬件)中斷響應(yīng)(硬件)查找中斷源、保護(hù)現(xiàn)場(chǎng)(軟、硬件)系統(tǒng)繼續(xù)運(yùn)行中斷處理子程序(軟件)中斷返回、恢復(fù)現(xiàn)場(chǎng)(軟件)朔夸緣菏肝陌艱侈傈翌戶儲(chǔ)嘉泅寫(xiě)治蠕諱拙戳收扮凱蜂惡卸租馳得朗閃傘中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理55.2操作系統(tǒng)與中斷處理5.2.1中斷的基本概念中565.2.2中斷的類型中斷機(jī)構(gòu)處理外部設(shè)備的I/O中斷。陷入機(jī)構(gòu)處理指令的陷入(自陷)和由于軟、硬件故障或錯(cuò)誤造成的陷入。系統(tǒng)調(diào)用是UNIX操作系統(tǒng)面向在用戶的程序的界面。在匯編級(jí)上,系統(tǒng)調(diào)用使用trp指令。I/O中斷時(shí)鐘中斷系統(tǒng)請(qǐng)求中斷報(bào)警中斷程序錯(cuò)誤中斷機(jī)器錯(cuò)誤中斷牛曝旅獅倚跺擦砂或矽垮尿舌擒臟炭浴嘎琴弘哥就屏齊透佃氫褥尼貞希侗中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理65.2.2中斷的類型中斷機(jī)構(gòu)處理外部設(shè)備的I/O中斷。67UNIX中的系統(tǒng)調(diào)用與進(jìn)程管理和控制有關(guān)的系統(tǒng)調(diào)用fork、exit、wit、signl、kill。semget、semop、semctl。與文件系統(tǒng)有關(guān)的系統(tǒng)調(diào)用cret、open、close、red、write。遠(yuǎn)程進(jìn)程通信socket、connect其它系統(tǒng)調(diào)用times橡笑椿輕賽蛙兢患搓臟披投咳陽(yáng)釋裝淺隋判仕侍第鑄攣窟盛次曙簇算零杯中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理7UNIX中的系統(tǒng)調(diào)用與進(jìn)程管理和控制有關(guān)的系統(tǒng)調(diào)用橡笑椿輕785.2.3中斷的響應(yīng)和實(shí)現(xiàn)過(guò)程每當(dāng)執(zhí)行完一條指令,檢測(cè)有無(wú)中斷請(qǐng)求。不同的中斷類型規(guī)定了不同的優(yōu)先級(jí),中斷嵌套。根據(jù)中斷源找出相應(yīng)的中斷處理程序入口地址,以便轉(zhuǎn)去執(zhí)行。中斷矢量存放中斷處理程序的地址。保護(hù)現(xiàn)場(chǎng),指令斷點(diǎn),運(yùn)行參數(shù)和條件,現(xiàn)運(yùn)行程序狀態(tài)寄存器PS的內(nèi)容以及累加器或通用寄存器的內(nèi)容和標(biāo)記中斷屏蔽。終悲街烏此哀鞋號(hào)置寧旋勃篷鰓腰苞饋膳占淀豫贓倫褒薊艇伐浸涅認(rèn)偵檄中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理85.2.3中斷的響應(yīng)和實(shí)現(xiàn)過(guò)程每當(dāng)執(zhí)行完一條指令,檢測(cè)895.2.4中斷處理程序和驅(qū)動(dòng)程序UNIX把設(shè)備作為一種虛擬的文件對(duì)待,每個(gè)設(shè)備有一個(gè)象文件名那樣的名字,可以對(duì)它象一個(gè)文件那樣存取在UNIX系統(tǒng)中,將設(shè)備分成兩類:塊設(shè)備和字符設(shè)備。核心與驅(qū)動(dòng)程序的接口是由塊設(shè)備開(kāi)關(guān)表和字符設(shè)備開(kāi)關(guān)表描述的璃伸皿鑼貫寵才生衍稍國(guó)文宿譽(yù)塑要洪骨沾納學(xué)蜒種垣殲示販酉己殿資字中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理95.2.4中斷處理程序和驅(qū)動(dòng)程序璃伸皿鑼貫寵才生衍稍9105.2.5中斷的返回與恢復(fù)UNIX的中斷處理都是在核心態(tài)下進(jìn)行的。如果中斷前處理機(jī)狀態(tài)為核心態(tài),則在執(zhí)行完設(shè)備處理子程序后就恢復(fù)現(xiàn)場(chǎng),然后用中斷返回指令回到中斷前狀態(tài),繼續(xù)執(zhí)行被中斷的操作系統(tǒng)程序。如果中斷前為用戶態(tài),則在執(zhí)行完設(shè)備處理子程序后,先要檢查標(biāo)志runrun是否設(shè)置。旋媒抖佰闖貪捶廓烷刷子預(yù)益尺翅撩捕廳馳吱嗓伏膩卡遙扯淆篩菜郎德派中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理105.2.5中斷的返回與恢復(fù)UNIX的中斷處理都是在核10115.3操作系統(tǒng)與時(shí)鐘系統(tǒng)在計(jì)算機(jī)系統(tǒng)中可分為三類時(shí)鐘:系統(tǒng)時(shí)鐘(systemclock)、日歷時(shí)鐘(timeofdyclock)實(shí)時(shí)時(shí)鐘(reltimeclock)5.3.1時(shí)鐘的概念系統(tǒng)時(shí)鐘主要用于控制系統(tǒng)處理器執(zhí)行指令的速率。日歷時(shí)鐘產(chǎn)生一個(gè)精確的時(shí)間計(jì)數(shù),程序?qū)Υ诉M(jìn)行轉(zhuǎn)換,給出與日歷相符的日期和時(shí)間。實(shí)時(shí)時(shí)鐘每秒提供若干個(gè)時(shí)鐘中斷,提醒處理器有重要的事情要做。溫臭潘矮匈均均漠勁效譴簽人攢芬占苗腐晌徘褒啦柔蠅棧搏磐言稀花排約中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理115.3操作系統(tǒng)與時(shí)鐘系統(tǒng)在計(jì)算機(jī)系統(tǒng)中可分為三類時(shí)鐘11125.3.2UNIX系統(tǒng)中的時(shí)鐘管理每隔20ms處理的工作如下:計(jì)算當(dāng)前進(jìn)程在用戶態(tài)或核心態(tài)下的累計(jì)運(yùn)行時(shí)間,將u.u_utime++或u.u_stime++。當(dāng)前運(yùn)行進(jìn)程p_cpu加1。處理延時(shí)啟動(dòng)終端打印機(jī)的工作。clock若發(fā)現(xiàn)延遲時(shí)間到了,則重新啟動(dòng)對(duì)應(yīng)的輸出驅(qū)動(dòng)程序。每秒一次處理的工作如下:日歷時(shí)鐘變量time加1。所有進(jìn)程的內(nèi)存或?qū)Q區(qū)的駐留時(shí)間p_time++,所有目前未運(yùn)行進(jìn)程的p_cpu除以2。獅鱗湍尿悶操掀明頃迢嘛停贓拒柑億鉑龐垢空銑莎婪聞拿蔫塔楊餃苔膀盛中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理125.3.2UNIX系統(tǒng)中的時(shí)鐘管理每隔20ms12135.4操作系統(tǒng)對(duì)I/O的控制5.4.1I/O設(shè)備的資源分配I/O地址進(jìn)行正確的I/O地址設(shè)置I/O中斷請(qǐng)求爭(zhēng)用剩余的中斷請(qǐng)求號(hào),也會(huì)產(chǎn)生沖突。DM數(shù)據(jù)傳輸通道對(duì)爭(zhēng)用同一個(gè)DM通道的I/O設(shè)備需要進(jìn)行協(xié)調(diào)和重新配置。I/O緩沖區(qū)這個(gè)系統(tǒng)資源也是I/O設(shè)備爭(zhēng)用的。潘培淫絲慨蹈墳冗札答知炸諱疙爬砌袍塞臺(tái)呢瞬坑邑涉嘯耽晤采乃慨萬(wàn)膝中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理135.4操作系統(tǒng)對(duì)I/O的控制5.4.1I/O設(shè)備13145.4.2I/O通道技術(shù)I/O通道是一種硬件設(shè)施,帶有專用處理器的、有很強(qiáng)I/O處理功能的智能部件??梢元?dú)立地完成系統(tǒng)處理器交付的I/O操作任務(wù),通道具有自己專門(mén)的指令集,即通道指令。通道執(zhí)行來(lái)自處理器的通道程序,完成后只需向系統(tǒng)處理器發(fā)出中斷,請(qǐng)求結(jié)束。字節(jié)多路通道主要用于連接大量低、中速、以字節(jié)作為傳輸單位的I/O設(shè)備。選擇通道主要用以支持高速設(shè)備(如磁盤(pán)),每次只對(duì)一個(gè)設(shè)備進(jìn)行數(shù)據(jù)傳輸。成組多路通道以分時(shí)方式同時(shí)執(zhí)行幾道通道程序,每條通道指令可以傳送一組數(shù)據(jù),塹討洲誅亂墮團(tuán)羔程跋酚朵撇糧四翼攬蟄鷹偉塵貧式態(tài)廣補(bǔ)壹姚猖瓣搞旦中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理145.4.2I/O通道技術(shù)I/O通道是一種硬件設(shè)施,帶14155.4.3I/O緩沖技術(shù)提高中央處理器與外設(shè)的并行程度可以采用硬件緩沖和軟件緩沖兩種方式軟件緩沖是借助操作系統(tǒng)的管理,采用內(nèi)存中的一個(gè)或者多個(gè)區(qū)域作為緩沖區(qū)。緩沖區(qū)的數(shù)量可根據(jù)不同的系統(tǒng)和操作來(lái)確定,常用的緩沖技術(shù)有三種:雙緩沖、環(huán)形緩沖和緩沖池。事酒林肖甜吏著哺每褒鉀齋敏囚秉峙鍛平戰(zhàn)肅櫻疲獄抄臻剪稅唯欄哉左板中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理155.4.3I/O緩沖技術(shù)提高中央處理器與外設(shè)的并行程15165.5設(shè)備管理的數(shù)據(jù)結(jié)構(gòu)5.5.1設(shè)備控制表(DCT)提供若干高級(jí)I/O系統(tǒng)調(diào)用,用這些抽象的I/O操作把用戶與復(fù)雜的I/O設(shè)備操作隔離,隱藏設(shè)備操作的細(xì)節(jié),有利于編寫(xiě)與設(shè)備無(wú)關(guān)的程序。要完成抽象到實(shí)際的映射,通常采用稱為設(shè)備控制表(DCT)的數(shù)據(jù)結(jié)構(gòu)來(lái)完成。它記錄每一個(gè)抽象設(shè)備描述、對(duì)應(yīng)的實(shí)際設(shè)備地址、所使用的設(shè)備驅(qū)動(dòng)程序等參數(shù)。英絳捐急閃臣擯剮興止帥恕濤余揩他幫凋鶴偽盧沽參畢叭斡晝鱉姐蕭逸弦中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理165.5設(shè)備管理的數(shù)據(jù)結(jié)構(gòu)5.5.1設(shè)備控制表(D1617設(shè)備讀red抽象操作red(dvcrp,buf,size)intdvcrp,size; /*設(shè)備標(biāo)識(shí)符、數(shù)據(jù)塊大小*/chr*buf; /*緩沖區(qū)指針*/{ structdevtb*devptr;/*指向設(shè)備表的指針*/if(isbddev(dvcrp))//確認(rèn)設(shè)備標(biāo)識(shí)符是否有效return(SYSERR);/*無(wú)效,系統(tǒng)返回出錯(cuò)*/devptr=&dct[dvcrp];/*有效,找到對(duì)應(yīng)設(shè)備表項(xiàng)*/return((*devptrdvred)(devptr,buf,size)) /*將參數(shù)傳向設(shè)備驅(qū)動(dòng)程序并返回*/}尸撼廈旱歲姓蚜盞僚墅經(jīng)墜暇旁向柬箋塌葛梯對(duì)殉障坐巫廖纂芬諜撈雁令中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理17設(shè)備讀red抽象操作red(dvcrp,buf,si17185.5.2設(shè)備開(kāi)關(guān)表針對(duì)各類設(shè)備不同的物理特性,系統(tǒng)為它們各自設(shè)置了一套子程序,它們包括打開(kāi)、關(guān)閉和啟動(dòng)子程序。系統(tǒng)為每類設(shè)備又設(shè)置了一數(shù)據(jù)結(jié)構(gòu),存放這些程序的入口地址,該數(shù)據(jù)結(jié)構(gòu)稱為設(shè)備開(kāi)關(guān)。摸公數(shù)柏盛許混澆莢緯理嚴(yán)虐卸糧興矗貼后疥邱宣泵箍瑟禱斬肋舵竅墮等中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理185.5.2設(shè)備開(kāi)關(guān)表針對(duì)各類設(shè)備不同的物理特性,系統(tǒng)18195.6磁盤(pán)的調(diào)度5.6.1物理特性磁盤(pán)一般用于文件存儲(chǔ),盤(pán)上信息的地址是多重編址的,包括驅(qū)動(dòng)器號(hào)、面號(hào)、道號(hào)、扇區(qū)號(hào)。存取盤(pán)塊中信息的時(shí)間:尋道時(shí)間100ms等待時(shí)間10ms傳送時(shí)間1ms仿毯稱筆羹戎膀擄韻搶匆捏去涎鹼軟唐梧庶垢測(cè)鏟蕊始磺凄諷殲楊嗓紉蹬中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理195.6磁盤(pán)的調(diào)度5.6.1物理特性仿毯稱筆羹戎膀19205.6.2磁盤(pán)調(diào)度算法先來(lái)先服務(wù)調(diào)度(FCFS)最短尋道時(shí)間優(yōu)先法(SSTF)寬億措您嚎磺倫宏課輥壺若唱揚(yáng)即捎凄旗芝肺咱榴鵬飯乞僧環(huán)凳伏摹者喪中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理205.6.2磁盤(pán)調(diào)度算法先來(lái)先服務(wù)調(diào)度(FCFS)寬億20215.6.2磁盤(pán)調(diào)度算法(續(xù))掃描法(SCN和C-SCN)隨鴦疤辛葷蹤蔫敬載核葡嚎努叁懦歐茁峨逼公布矣合杖染趁勘么靡呼鴦些中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理215.6.2磁盤(pán)調(diào)度算法(續(xù))掃描法(SCN和C-SC21225.7UNIX系統(tǒng)V的設(shè)備管理1.緩沖控制塊buf在系統(tǒng)初啟時(shí),核心根據(jù)內(nèi)存大小和系統(tǒng)性能要求分配若干緩沖區(qū)。一個(gè)緩沖區(qū)由兩部分組成:存放數(shù)據(jù)的內(nèi)存區(qū)(一般稱為緩沖區(qū))和一個(gè)緩沖控制塊。緩沖區(qū)和緩沖控制塊是一一對(duì)應(yīng)的。系統(tǒng)通過(guò)緩沖控制塊實(shí)現(xiàn)對(duì)緩沖區(qū)的管理。5.7.1UNIX塊設(shè)備管理的主要數(shù)據(jù)結(jié)構(gòu)哥森戎緞蔣抗射播凡康幢楊愈佳德焊瞄夾異嘯地胺隙情戀剔鐳駐皂罐狠君中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理225.7UNIX系統(tǒng)V的設(shè)備管理1.緩沖控制塊buf2223 structbuf { int b_flgs; /*緩沖區(qū)標(biāo)志*/ structbuf*b_forw; /*設(shè)備隊(duì)列前向指針*/ structbuf*b_bck; /*設(shè)備隊(duì)列后向指針*/ structbuf*v_forw; /*自由隊(duì)列前向指針*/ structbuf*v_bck; /*自由隊(duì)列后向指針*/ dev_t b_dev; /*邏輯設(shè)備號(hào)*/ unsignedb_bcount; /*傳送數(shù)據(jù)字節(jié)數(shù)*/ union{ cddr_t b_ddr;/*緩沖區(qū)內(nèi)存首地址*/ structfilsys*b_filsys; /*超級(jí)塊*/ }b_un; dddr_tb_blkno; /*在磁盤(pán)上數(shù)據(jù)的塊號(hào)*/ }buf[NBUF];迎向恐紡玖慚頓邊懇讒哨陽(yáng)霞扦瓢閑袱捷零礦笨花耐泳獻(xiàn)誨撲交剪唱樁諧中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理23 structbuf迎向恐紡玖慚頓邊懇讒哨陽(yáng)霞扦瓢閑袱2324b_flgs反映緩沖區(qū)的使用情況和I/O方式,如忙或閑、數(shù)據(jù)有效性、“延遲寫(xiě)”、正在讀/寫(xiě)、等待緩沖區(qū)空閑等。從buf的組成可見(jiàn),它不僅包含了與使用緩沖區(qū)有關(guān)的信息,也記錄了I/O請(qǐng)求及其執(zhí)行結(jié)果。所以一般而言,buf既是緩存控制塊,同時(shí)又可以是針對(duì)該緩存進(jìn)行的I/O請(qǐng)求塊。為管理方便,系統(tǒng)還設(shè)置了自由緩存隊(duì)列控制塊bfreelist和進(jìn)程圖像傳送控制塊swbuf。這兩個(gè)塊結(jié)構(gòu)與buf結(jié)構(gòu)相同,但只用部分項(xiàng),其余則棄之不用。浦棘號(hào)高黨涌界窘闌糊應(yīng)砧帥秸然芋末您剁才沮敲脾衷年算語(yǔ)夾稍斂廁癟中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理24b_flgs反映緩沖區(qū)的使用情況和I/O方式,如忙或閑、24252.塊設(shè)備表 structiobuf { intb_flgs; /*該設(shè)備隊(duì)列的狀況標(biāo)志*/ structbuf*b_forw;/*指向本設(shè)備的第一個(gè)緩沖區(qū)*/ structbuf*b_bck;//指向本設(shè)備的最后一個(gè)緩沖區(qū) structbuf*b_ctf;/*指向本設(shè)備I/O請(qǐng)求隊(duì)列中第一個(gè)緩沖區(qū)*/ structbuf*b_ctl;/*指向本設(shè)備I/O請(qǐng)求隊(duì)列中最后一個(gè)緩沖區(qū)*/ dev_tb_dev; /*設(shè)備名*/ chrb_ctive;//設(shè)備正在執(zhí)行一個(gè)I/O請(qǐng)求的標(biāo)志 chtb_errcnt; /*出錯(cuò)計(jì)數(shù)*/ };饑蟹骨顛貴然輪糞措別炔總息價(jià)簡(jiǎn)姐棋蒼搞極桑芒福抱捐補(bǔ)瘸含杯碌承鉸中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理252.塊設(shè)備表 structiobuf饑蟹骨顛貴然輪糞25263.塊設(shè)備開(kāi)關(guān)表存放各類塊設(shè)備管理程序的入口地址 structbdevsw { int(*d_open)(); /*打開(kāi)函數(shù)入口*/ int(*d_close)(); /*關(guān)閉函數(shù)入口*/ int(*d_strtegy)(); /*啟動(dòng)函數(shù)入口*/ int(*d_print)(); /*打印函數(shù)入口*/ };設(shè)備表和設(shè)備開(kāi)關(guān)表集中了與設(shè)備有關(guān)的特性及其管理、使用的信息,也體現(xiàn)了UNIX中把設(shè)備的物理特性和使用情況與設(shè)備管理的基本方式分隔開(kāi)來(lái)的主要思想。捧替霓慮瞞紛廳凌追徽惜趁饅魔躬愛(ài)爽驢技柒賄香班捆算癸龜仆辛鶴蹬睹中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理263.塊設(shè)備開(kāi)關(guān)表存放各類塊設(shè)備管理程序的入口地址捧替霓慮26275.7.2UNIX系統(tǒng)V的緩沖區(qū)管理1.多種緩沖區(qū)管理隊(duì)列系統(tǒng)設(shè)置了多種隊(duì)列對(duì)所有緩沖區(qū)進(jìn)行管理,因?yàn)閎uf記錄了與緩沖區(qū)有關(guān)的各種管理信息,所以緩沖區(qū)管理隊(duì)列實(shí)際上是緩存控制塊buf隊(duì)列。(1)自由buf隊(duì)列系統(tǒng)把空閑緩沖區(qū)的buf組成空閑buf隊(duì)列,即自由buf隊(duì)列。這個(gè)隊(duì)列是雙向鏈結(jié)構(gòu),隊(duì)首塊為bfreelist,bfreelist和自由buf通過(guò)v_forw和v_bck作為雙向指針,見(jiàn)圖5-9。豫載矛玲俗含號(hào)倦乃吭也賊啤檸褒契納宣項(xiàng)普涸締氖飛滋冊(cè)擺娩怠畢任輸中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理275.7.2UNIX系統(tǒng)V的緩沖區(qū)管理1.多種緩沖2728bfreelistbuf[…]buf[…]buf[…]…………av_forwav_forwav_forwav_forwav_backav_backav_backav_back…………圖5-9自由buf隊(duì)列奧瑞瞧搬宇豢憊粳效籽澤遇詐驗(yàn)惜臻尤砂新邑屢銑及黍腎嗽默襲裸韻品宇中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理28bfreelistbuf[…]buf[…]buf[…]…2829(2)設(shè)備緩沖區(qū)隊(duì)列設(shè)備緩沖區(qū)隊(duì)列連接所有各類設(shè)備使用過(guò)的緩沖區(qū),這也是一個(gè)雙向隊(duì)列,buf中的b_forw和b_bck分別為該隊(duì)列的前指針和后指針,頭部為hbuf,共64個(gè)隊(duì)列。如圖5-10所示。一個(gè)緩沖區(qū)被分配用于讀、寫(xiě)某個(gè)設(shè)備的字符塊時(shí),其相應(yīng)的buf就進(jìn)入該設(shè)備的設(shè)備buf隊(duì)列,并一直保留在該設(shè)備buf隊(duì)列中,除非被移作它用。系統(tǒng)V與第六版有所不同,不是每個(gè)塊設(shè)備一個(gè)緩沖隊(duì)列,同一個(gè)塊設(shè)備的緩沖區(qū)可以分布在不同的散列隊(duì)列,不同設(shè)備的緩沖分布均勻,加快緩沖區(qū)的搜索速度。友鱗紗凰概燦斥情利刁科鴻認(rèn)雙諒狽命檢踏股榷棘埠查喘糙礎(chǔ)廖貫賺牟膀中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理29(2)設(shè)備緩沖區(qū)隊(duì)列設(shè)備緩沖區(qū)隊(duì)列連接所有各類設(shè)備使用過(guò)2930hbufbuf[…]buf[…]buf[…]…………b_forwb_forwb_forwb_forwb_backb_backb_backb_back…………圖5-10設(shè)備buf隊(duì)列絹鮑筷材蹄寒帛搪柳準(zhǔn)蝗迪棚疲鮑隕固味郭坷冊(cè)悠圖擴(kuò)宗俗封迄擻竊袱劫中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理30hbufbuf[…]buf[…]buf[…]…………b_3031(3)空設(shè)備隊(duì)列(NODEV隊(duì)列)NODEV隊(duì)列是一個(gè)特殊的設(shè)備buf隊(duì)列。當(dāng)系統(tǒng)需要緩存,但它不與特定的設(shè)備字符塊相關(guān)聯(lián)時(shí),將分配到的緩存控制塊buf送入NODEV隊(duì)列。其隊(duì)列控制塊也是bfreelist,用的指針是b_forw和b_bck。在UNIX中有兩種情況將buf送入NODEV隊(duì)列。一種是在進(jìn)程執(zhí)行一個(gè)目標(biāo)程序的開(kāi)始階段,它用緩存存放傳向該目標(biāo)程序的參數(shù);另一種情況是用緩存存放文件系統(tǒng)的資源管理塊。在系統(tǒng)初啟時(shí),所有空閑緩沖區(qū)的buf既在自由buf隊(duì)列,又在NODEV的設(shè)備buf隊(duì)列中。巷在客敵呸官逆畏撈逼亮掛宇賠撅搐郊撒眷萄謀庇曼歷狹佃佐飛橋陶丈朵中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理31(3)空設(shè)備隊(duì)列(NODEV隊(duì)列)NODEV隊(duì)列是一個(gè)特3132(4)設(shè)備I/O請(qǐng)求隊(duì)列每個(gè)塊設(shè)備有一個(gè)設(shè)備I/O請(qǐng)求隊(duì)列,單向連接,頭部為iobuf,b_ctf和b_ctl分別指向隊(duì)首和隊(duì)尾。四個(gè)隊(duì)列所屬緩沖區(qū)之間的關(guān)系總結(jié)(1)任何一個(gè)緩沖區(qū)在穩(wěn)定的狀態(tài)下,同時(shí)屬于二個(gè)隊(duì)列。(2)在自由buf隊(duì)列中緩沖區(qū)可能同時(shí)屬于NODEV隊(duì)列(未分配給指定設(shè)備),也可能屬于設(shè)備buf隊(duì)列(已經(jīng)分配給某設(shè)備用過(guò),因I/O結(jié)束而釋放)。(3)在設(shè)備buf隊(duì)列中的緩沖區(qū),可能掛在自由buf隊(duì)列(已用過(guò)被釋放),也可能掛在設(shè)備I/O請(qǐng)求隊(duì)列(正在使用)。(4)在NODEV隊(duì)列中的緩沖區(qū)如已用過(guò)被釋放,肯定在自由buf隊(duì)列中。(5)在設(shè)備I/O請(qǐng)求隊(duì)列中的緩沖區(qū)則肯定屬于設(shè)備buf隊(duì)列。糯憾答役窩癰箋櫥雷浴搪鼻床鍵鈔遷本追灘樣灤巴纏大檢堵女安娥帶孽炮中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理32(4)設(shè)備I/O請(qǐng)求隊(duì)列每個(gè)塊設(shè)備有一個(gè)設(shè)備I/O請(qǐng)求32332.緩沖區(qū)管理算法1.

一個(gè)緩存剛分配用于讀寫(xiě)某一塊設(shè)備,buf的b_flgs含有B_BUSY標(biāo)志。它一定位于相應(yīng)設(shè)備buf隊(duì)列,不在自由隊(duì)列。2.

一旦讀寫(xiě)完成,就釋放緩存,清B_BUSY標(biāo)志。送入自由隊(duì)列尾,但仍留在原設(shè)備隊(duì)列。3.特點(diǎn)和好處:一個(gè)緩存既在設(shè)備隊(duì)列,又在自由隊(duì)列,只要還要重復(fù)使用原設(shè)備隊(duì)列中該緩存內(nèi)容,就只要簡(jiǎn)單地將其從自由隊(duì)列抽出即可,避免了重復(fù)I/O。有必要可將緩存重新分配它用,將它從自由隊(duì)列首和原設(shè)備隊(duì)列同時(shí)抽出,送入新的設(shè)備隊(duì)列。操作完成后仍留在新的設(shè)備隊(duì)列并送入自由隊(duì)列。偵羹填傅忘懦菊靜菜屎椎企檢瞅出樂(lè)峙鷗態(tài)斷腮日軟奄明咬夠茹估瑣屠碉中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理332.緩沖區(qū)管理算法1.

一個(gè)緩存剛分配用于讀33344.為使一個(gè)已釋放地緩存盡可能長(zhǎng)地保持原先內(nèi)容,以增加重復(fù)使用可能,將其送入自由隊(duì)列尾,分配作它用緩存從自由隊(duì)列首?。‵IFO)。5.當(dāng)一個(gè)buf在自由隊(duì)列中移動(dòng)時(shí),只要原設(shè)備隊(duì)列又重新使用它,立即將其從自由隊(duì)列中間抽取,使用完畢,再次送入自由隊(duì)列尾(LRU算法)。6.對(duì)于寫(xiě),如一塊未寫(xiě)滿,在b_flgs中設(shè)置B_DELWRI標(biāo)志,推遲寫(xiě),再清B_BUSY,釋放至自由隊(duì)列尾。7.當(dāng)設(shè)置B_DELWRI標(biāo)志的緩存排到自由隊(duì)列首時(shí),不能立即淘汰,它作重新分配處理,而是提出I/O,將其內(nèi)容復(fù)制到塊設(shè)備后,再次釋放到自由隊(duì)列尾(也有釋放到自由隊(duì)列首),也清B_DELWRI標(biāo)志。汽果藹銘話師繩何窒警擦結(jié)晤澳糧喂祥拜球婆瘤惜日掣泊輾鑄系燒煩唱磨中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理344.為使一個(gè)已釋放地緩存盡可能長(zhǎng)地保持原先內(nèi)容,以增3435…………b_backb_backb_backb_backb_forwb_forwb_forwb_forw…………buf[…]buf[…]buf[…]hbuf…………av_backav_backav_backav_backav_forwav_forwav_forwav_forw…………buf[…]buf[…]buf[…]bfreelist自由隊(duì)列設(shè)備隊(duì)列狼厚蹤元札坍乒車(chē)頑級(jí)佳豁詛埃四渙挎食級(jí)荷伙燼惠拭命亮霞王此喲潤(rùn)烙中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理35…………b_backb_backb_backb_back35363.緩沖區(qū)的分配和釋放getblk(dev,blkno){while(未找到相應(yīng)buf){ if(盤(pán)塊在設(shè)備buf隊(duì)列中){ if(buf忙){ //b_flgs&B_BUSY sleep(buf成為空閑);//B_WNTED continue;/*回到while循環(huán)*/ } 標(biāo)記buf忙; 從自由buf隊(duì)列中移走該buf; return(buf); }else { /*盤(pán)塊不在設(shè)備buf隊(duì)列中*/ if(自由隊(duì)列中已無(wú)buf){//bfreelist& sleep(任一buf成為空閑);//B_WNTED continue; /*回到while循環(huán)*/ }寺晤潤(rùn)砸皿仗肪爬遞陪怔篇卒仇漸腥貍擊語(yǔ)鎢纏仰競(jìng)屜栽顫姐孺限敘夕肥中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理363.緩沖區(qū)的分配和釋放getblk(dev,blk3637 從自由隊(duì)列中移走該buf; if(buf標(biāo)志為“延遲寫(xiě)”){//B_DELWRI 異步寫(xiě)buf到相應(yīng)設(shè)備上; continue; /*回到while循環(huán)*/ } 從原來(lái)的設(shè)備buf隊(duì)列中移走該buf; /*找到空閑的buf*/ 把它放在新的設(shè)備buf隊(duì)列中; return(buf); } }}慚逼辟兩御傘崔灣奔針嘴充吩搗鎊小紋瘍咕尉撮稱糙森元邢的碌量肝貿(mào)畸中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理37 從自由隊(duì)列中移走該buf;慚逼辟兩御傘崔灣奔3738 brelse(bp) { 喚醒所有等待自由隊(duì)列成為“非空”的進(jìn)程; 喚醒所有等待本buf成為空閑的進(jìn)程; 提升處理機(jī)執(zhí)行級(jí)別,屏蔽中斷; if(buf內(nèi)容有效且不是過(guò)時(shí)的) 把本buf放入自由隊(duì)列末尾; /*以備 將來(lái)使用*/ else /*如偶爾遇到出錯(cuò)*/ 把本buf放入自由隊(duì)列的開(kāi)頭; /*以后很少使用它*/ 降低處理機(jī)執(zhí)行級(jí)別,開(kāi)放中斷; 解除封鎖(buf); }摧光畜緬炮說(shuō)吾手軋薦純頤哲栗郴仰矛呵均激權(quán)盅朔絡(luò)蔬俏夷鴦象尾侖篩中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理38 brelse(bp)摧光畜緬炮說(shuō)吾手軋薦純頤哲栗郴仰矛38395.7.3塊設(shè)備管理bred(dev,blkno) { 為邏輯塊找一個(gè)緩沖區(qū)(getblk); if(緩沖區(qū)數(shù)據(jù)有效) return(buf); 啟動(dòng)磁盤(pán)讀; sleep(盤(pán)塊讀完);/*等待盤(pán)I/O完成中斷*/ return(buf); }詳蛙欄跟駛激韭蒜多股寺豹煌晌樊恰菱亡妙餃論胸察遼乏瓣敬迫洼靳蠕我中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理395.7.3塊設(shè)備管理bred(dev,blkno)3940預(yù)讀盤(pán)塊程序bred當(dāng)一個(gè)進(jìn)程順序讀取文件時(shí),為加快它的前進(jìn)速度,提高CPU和塊設(shè)備工作的并行程度核心檢查第一塊是否在緩沖區(qū)中,如不在,則調(diào)用磁盤(pán)驅(qū)動(dòng)程序讀該塊。如第二塊不在緩沖區(qū)中,核心指示盤(pán)驅(qū)動(dòng)程序異步讀它。然后進(jìn)程睡眠,等待第一塊I/O完成。該進(jìn)程被喚醒后就返回第一塊的buf,而不管第二塊是否讀完。以后,當(dāng)?shù)诙K讀完后,產(chǎn)生盤(pán)I/O中斷,由中斷處理程序識(shí)別異步讀完成,并釋放相應(yīng)的buf。探冗乳妨巾支潘蔽貝滑惦識(shí)稻否悶墟一予瘋猩肄劣瓜踴閏悠凜況拭偶橇淫中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理40預(yù)讀盤(pán)塊程序bred當(dāng)一個(gè)進(jìn)程順序讀取文件時(shí),為加快它的40415.8設(shè)備分配1.設(shè)備分配方式靜態(tài)分配作業(yè)運(yùn)行之前由系統(tǒng)一次分配滿足需要的全部設(shè)備動(dòng)態(tài)分配在進(jìn)程運(yùn)行的過(guò)程中進(jìn)行分配的,當(dāng)進(jìn)程需要使用設(shè)備時(shí),系統(tǒng)按一定的分配策略給進(jìn)程分配所需設(shè)備,一旦使用完畢立即釋放。胺腹坪換狂和精稗劉冠悶即獄搭寡蜒閑寧悔塘勤白盔樸倔意垂鄰鍘摳端斌中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理415.8設(shè)備分配1.設(shè)備分配方式胺腹坪換狂和精41422.設(shè)備分配的原則先請(qǐng)求先服務(wù)和按請(qǐng)求I/O的進(jìn)程的優(yōu)先級(jí)決定。要使用設(shè)備時(shí)必須提供進(jìn)行I/O操作的有關(guān)信息,指出執(zhí)行I/O的邏輯設(shè)備名(如設(shè)備號(hào))、操作類型、傳送數(shù)據(jù)的數(shù)目、信息源或目的地址等。存放進(jìn)行I/O操作的信息的結(jié)構(gòu)稱為I/O請(qǐng)求塊。如在UNIX系統(tǒng)中,系統(tǒng)的I/O請(qǐng)求塊的內(nèi)容是包含在緩沖區(qū)控制塊buf中。在請(qǐng)求I/O時(shí),首先請(qǐng)求分配緩沖區(qū),然后把與操作有關(guān)的信息寫(xiě)到buf中,并把這個(gè)buf掛到請(qǐng)求設(shè)備的I/O請(qǐng)求隊(duì)列中去如圖5-13所示。版損恰絹孵斌垮喧雷侶十酪饞埠公翻片戚廣章膜拇怪賦飛墳縱跪槳相詐遷中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理422.設(shè)備分配的原則先請(qǐng)求先服務(wù)和按請(qǐng)求I/O的進(jìn)程的優(yōu)4243b_ctfb_ctlv_forwv_forwv_forwiobufbuf[…]buf[…]swbuf圖5-13設(shè)備I/O請(qǐng)求隊(duì)列條己棟蹄瑟役紗晃蓑躊召掉俞績(jī)?cè)估沁|牧葫雹掏拄奄宮泳拽半但穩(wěn)疚衍心中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理43b_ctfv_forwv_forwv_forwio43445.10Solris的I/O子系統(tǒng)內(nèi)核為應(yīng)用程序提供了一組系統(tǒng)調(diào)用,其中某些系統(tǒng)調(diào)用將調(diào)用設(shè)備驅(qū)動(dòng)程序執(zhí)行I/O操作。在Solris操作系統(tǒng)中,設(shè)備驅(qū)動(dòng)程序(devicedriver)是可加載的內(nèi)核模塊,負(fù)責(zé)管理I/O設(shè)備,并且使操作系統(tǒng)的其余部分與設(shè)備硬件隔離開(kāi)來(lái)。Solris的設(shè)計(jì)也遵循了UNIX系統(tǒng)理念。把設(shè)備看成文件,可以將設(shè)備與文件統(tǒng)一管理,例如,采用統(tǒng)一的命名方式和統(tǒng)一的權(quán)限管理方式,這樣可以簡(jiǎn)化設(shè)備管理過(guò)程。在塊設(shè)備驅(qū)動(dòng)程序和字符設(shè)備驅(qū)動(dòng)程序之上都有一層文件系統(tǒng),這體現(xiàn)了將設(shè)備與文件統(tǒng)一管理的設(shè)計(jì)思想。聳反貼哥學(xué)程篩步魯肛渙擂慌丘普定首概愧勵(lì)炊郭酸灤晶拜戀忱庇站久坊中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理445.10Solris的I/O子系統(tǒng)內(nèi)核為應(yīng)用程序提供4445對(duì)干不同的設(shè)備,其文件系統(tǒng)層的“厚度”是不同的。對(duì)于磁盤(pán)這類結(jié)構(gòu)性很強(qiáng)、操作很復(fù)雜的設(shè)備,其文件系統(tǒng)很“厚”,這是因?yàn)橄到y(tǒng)中存在著兩層抽象:一層抽象是將柱面、磁道、扇區(qū)表示的磁盤(pán)物理空間抽象成由數(shù)據(jù)塊組成的線性空間,另一層抽象是將數(shù)據(jù)塊組織成文件。下一層抽象由磁盤(pán)設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn),上一層抽象由文件系統(tǒng)(如UFS)實(shí)現(xiàn)。對(duì)于串行端口這類簡(jiǎn)單的字符設(shè)備,其文件系統(tǒng)很“薄”,它只是提供了訪問(wèn)設(shè)備的一個(gè)接口而已。5.10Solris的I/O子系統(tǒng)5.10.1I/O子系統(tǒng)與內(nèi)核的關(guān)系英惜編郵瞎氓程重炸瞇乓傷抿緊倡清丙冊(cè)優(yōu)騾紛野亭棺橇亢俞兔糾潛件具中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理45對(duì)干不同的設(shè)備,其文件系統(tǒng)層的“厚度”是不同的。5.104546圖5-17Solris的內(nèi)核和I/O子系統(tǒng)髓礙籃擻入賤釋褪設(shè)兼徒衙羔頰屑境勾命豹毒娠濕眷條犬耪粟漳暫藻汁涂中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理46圖5-17Solris的內(nèi)核和I/O子系統(tǒng)髓礙籃擻入46475.10.2設(shè)備文件與設(shè)備文件系統(tǒng)So1ris操作系統(tǒng)有兩個(gè)目錄用于保存設(shè)備文件。/dev目錄是UNIX標(biāo)準(zhǔn),而/devices目錄是Solris操作系統(tǒng)特有的。采用/dev目錄存放設(shè)備文件存在一些不足。/dev目錄確實(shí)存儲(chǔ)在磁盤(pán)上,占據(jù)磁盤(pán)空間。過(guò)去/dev目錄下的設(shè)備文件都是在需要用到時(shí)手工創(chuàng)建的,因此常常發(fā)生驅(qū)動(dòng)程序已經(jīng)安裝,卻由于設(shè)備文件未創(chuàng)建而導(dǎo)致設(shè)備不能正常工作的情況。Solris操作系統(tǒng)引入了設(shè)備文件系統(tǒng)devfs。devfs只是一個(gè)虛擬的文件系統(tǒng),并不存在于磁盤(pán)上,不占用磁盤(pán)空間。devfs可以自己維護(hù)設(shè)備文件,所有文件節(jié)點(diǎn)的創(chuàng)建、刪除操作都可以在驅(qū)動(dòng)程序安裝或卸載時(shí)自動(dòng)完成。devfs在系統(tǒng)引導(dǎo)時(shí)被掛接在/devices目錄下,其內(nèi)容是動(dòng)態(tài)的,反映了系統(tǒng)當(dāng)前可訪問(wèn)的設(shè)備的狀態(tài)。在Solris操作系統(tǒng)中,為了維護(hù)傳統(tǒng)UNIX應(yīng)用程序的兼容性,仍然提供了/dev目錄,但是/dev下的文件其實(shí)是到/devices的符號(hào)鏈接。闊趟卒酪渠初涉灼秩者挽嫩華才匪狙蠢使徹?fù)裢⑤S模桶氏斡閥欺簽遏耍疆中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理475.10.2設(shè)備文件與設(shè)備文件系統(tǒng)So1ris操作系47485.10.3設(shè)備樹(shù)在Solris內(nèi)核中,設(shè)備由設(shè)備信息結(jié)構(gòu)dev_info來(lái)描述。所有設(shè)備的dev_info結(jié)構(gòu)組織成一棵樹(shù)狀的結(jié)構(gòu),稱為設(shè)備信息樹(shù)(structdev_info)。設(shè)備信息樹(shù)展示了設(shè)備間的相互關(guān)系。在設(shè)備信息樹(shù)中,內(nèi)部節(jié)點(diǎn)稱為總線連接節(jié)點(diǎn)(busnexusnode),它表示總線控制器或適配器,而葉子節(jié)點(diǎn)(1efnode)表示設(shè)備,根節(jié)點(diǎn)(rootnode)表示的是機(jī)器平臺(tái)。設(shè)備信息樹(shù)是在系統(tǒng)引導(dǎo)時(shí)構(gòu)建起來(lái)的。主要由crete_devinfo_tree函數(shù)完成。勺暇插姐抹斟楊錘爵外祟餞桅數(shù)儲(chǔ)躲祟冰谷帶頂藹叼詳昨攆卉罵鴻濘擦認(rèn)中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理485.10.3設(shè)備樹(shù)在Solris內(nèi)核中,設(shè)備由設(shè)備信4849圖5-18設(shè)備信息樹(shù)的例子遠(yuǎn)薄媳苞響泡械憎呼安穆捆慷送藥異裂孵虛絆又拔稠挨臆捅餃滓旋稍迷測(cè)中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理49圖5-18設(shè)備信息樹(shù)的例子遠(yuǎn)薄媳苞響泡械憎呼安穆捆49謝謝各位50真芳雹聰硬鑒謹(jǐn)種皋雀鋸隴能差鄧祭鎂屏儒纂姆化處鉻唉斤疹痙化紋占舊中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理謝謝各位50真芳雹聰硬鑒謹(jǐn)種皋雀鋸隴能差鄧祭鎂屏儒纂姆化處鉻5051第五章設(shè)備管理鞏皿望唆格防召勁葦惡賃竊教罰桅蕩紫躲暈浴潰繼劉螢賤乖原鋼迄嘔線串中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理1第五章設(shè)備管理鞏皿望唆格防召勁葦惡賃竊教罰桅蕩紫躲暈51525.1引言有關(guān)外設(shè)的驅(qū)動(dòng)、控制、分配等技術(shù)問(wèn)題都統(tǒng)一由設(shè)備管理程序負(fù)責(zé)。5.1.1設(shè)備的概念和分類 (1)按功能分類,可以分為輸入設(shè)備、輸出設(shè)備、存儲(chǔ)設(shè)備、供電設(shè)備、網(wǎng)絡(luò)設(shè)備等。(2)從設(shè)備的數(shù)據(jù)組織方式分類,可以分為塊設(shè)備和字符設(shè)備。(3)從設(shè)備的管理模式分類,可以分為物理設(shè)備和邏輯設(shè)備。(4)從設(shè)備的資源屬性分類,可以分為獨(dú)占設(shè)備、共享設(shè)備和虛擬設(shè)備。廳救凜臣汞慮漿瓷篇填沿伙鉀餌哲瑰園吞磐獸寅艱穗股鞋銻占輯室籌矛舉中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理25.1引言有關(guān)外設(shè)的驅(qū)動(dòng)、控制、分配等技52535.1.2I/O設(shè)備控制與驅(qū)動(dòng)I/O設(shè)備的控制和驅(qū)動(dòng)技術(shù)包括了硬件控制驅(qū)動(dòng)技術(shù)和驅(qū)動(dòng)軟件。前者是I/O設(shè)備廠商設(shè)計(jì)建立的與設(shè)備密切相關(guān)的技術(shù)。后者涉及系統(tǒng)所有I/O處理的軟件。I/O驅(qū)動(dòng)軟件是操作系統(tǒng)的一部分。隨著操作系統(tǒng)的發(fā)展,使I/O驅(qū)動(dòng)軟件成為一種帶有標(biāo)準(zhǔn)接口的可選型的軟件,操作系統(tǒng)內(nèi)核中只保留與設(shè)備無(wú)關(guān)的那部分軟件,而將與設(shè)備有關(guān)的驅(qū)動(dòng)軟件作為一種可裝卸的程序,可以按照系統(tǒng)配置的需求進(jìn)行配置。操作系統(tǒng)中的I/O驅(qū)動(dòng)軟件一般分為幾個(gè)層次,如中斷處理程序、設(shè)備驅(qū)動(dòng)程序、操作系統(tǒng)I/O原語(yǔ)和用戶級(jí)軟件。藻冒哭螢璃煮河隊(duì)?wèi)侄碓粤w眼稀寬跺卿漾滬舶觀貴際噎菊媽衷嗣鎮(zhèn)艱音謄中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理35.1.2I/O設(shè)備控制與驅(qū)動(dòng)I/O設(shè)備的控制和驅(qū)動(dòng)技53545.1.3設(shè)備管理的設(shè)計(jì)要求和任務(wù)為用戶提供方便、統(tǒng)一的設(shè)備使用界面提高外部設(shè)備利用率,盡量提高并行程度實(shí)現(xiàn)程序與設(shè)備的無(wú)關(guān)性系統(tǒng)與設(shè)備間的協(xié)調(diào)主要是速度上的協(xié)調(diào),通常要解決快速的處理器與慢速的I/O設(shè)備之間的操作匹配的問(wèn)題,在操作系統(tǒng)中采用緩沖區(qū)的方式來(lái)緩解這個(gè)矛盾,設(shè)備管理要實(shí)現(xiàn)這些緩沖區(qū)的建立、分配、釋放與回收。苑輝舜菇數(shù)羌減記無(wú)深狡違碧叭圖渙再專毒憐急楚峙菠砌暗?;厦樊€割頗中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理45.1.3設(shè)備管理的設(shè)計(jì)要求和任務(wù)為用戶提供方便、統(tǒng)一54555.2操作系統(tǒng)與中斷處理5.2.1中斷的基本概念中斷請(qǐng)求(硬件)中斷響應(yīng)(硬件)查找中斷源、保護(hù)現(xiàn)場(chǎng)(軟、硬件)系統(tǒng)繼續(xù)運(yùn)行中斷處理子程序(軟件)中斷返回、恢復(fù)現(xiàn)場(chǎng)(軟件)朔夸緣菏肝陌艱侈傈翌戶儲(chǔ)嘉泅寫(xiě)治蠕諱拙戳收扮凱蜂惡卸租馳得朗閃傘中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理55.2操作系統(tǒng)與中斷處理5.2.1中斷的基本概念中55565.2.2中斷的類型中斷機(jī)構(gòu)處理外部設(shè)備的I/O中斷。陷入機(jī)構(gòu)處理指令的陷入(自陷)和由于軟、硬件故障或錯(cuò)誤造成的陷入。系統(tǒng)調(diào)用是UNIX操作系統(tǒng)面向在用戶的程序的界面。在匯編級(jí)上,系統(tǒng)調(diào)用使用trp指令。I/O中斷時(shí)鐘中斷系統(tǒng)請(qǐng)求中斷報(bào)警中斷程序錯(cuò)誤中斷機(jī)器錯(cuò)誤中斷牛曝旅獅倚跺擦砂或矽垮尿舌擒臟炭浴嘎琴弘哥就屏齊透佃氫褥尼貞希侗中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理65.2.2中斷的類型中斷機(jī)構(gòu)處理外部設(shè)備的I/O中斷。5657UNIX中的系統(tǒng)調(diào)用與進(jìn)程管理和控制有關(guān)的系統(tǒng)調(diào)用fork、exit、wit、signl、kill。semget、semop、semctl。與文件系統(tǒng)有關(guān)的系統(tǒng)調(diào)用cret、open、close、red、write。遠(yuǎn)程進(jìn)程通信socket、connect其它系統(tǒng)調(diào)用times橡笑椿輕賽蛙兢患搓臟披投咳陽(yáng)釋裝淺隋判仕侍第鑄攣窟盛次曙簇算零杯中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理7UNIX中的系統(tǒng)調(diào)用與進(jìn)程管理和控制有關(guān)的系統(tǒng)調(diào)用橡笑椿輕57585.2.3中斷的響應(yīng)和實(shí)現(xiàn)過(guò)程每當(dāng)執(zhí)行完一條指令,檢測(cè)有無(wú)中斷請(qǐng)求。不同的中斷類型規(guī)定了不同的優(yōu)先級(jí),中斷嵌套。根據(jù)中斷源找出相應(yīng)的中斷處理程序入口地址,以便轉(zhuǎn)去執(zhí)行。中斷矢量存放中斷處理程序的地址。保護(hù)現(xiàn)場(chǎng),指令斷點(diǎn),運(yùn)行參數(shù)和條件,現(xiàn)運(yùn)行程序狀態(tài)寄存器PS的內(nèi)容以及累加器或通用寄存器的內(nèi)容和標(biāo)記中斷屏蔽。終悲街烏此哀鞋號(hào)置寧旋勃篷鰓腰苞饋膳占淀豫贓倫褒薊艇伐浸涅認(rèn)偵檄中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理85.2.3中斷的響應(yīng)和實(shí)現(xiàn)過(guò)程每當(dāng)執(zhí)行完一條指令,檢測(cè)58595.2.4中斷處理程序和驅(qū)動(dòng)程序UNIX把設(shè)備作為一種虛擬的文件對(duì)待,每個(gè)設(shè)備有一個(gè)象文件名那樣的名字,可以對(duì)它象一個(gè)文件那樣存取在UNIX系統(tǒng)中,將設(shè)備分成兩類:塊設(shè)備和字符設(shè)備。核心與驅(qū)動(dòng)程序的接口是由塊設(shè)備開(kāi)關(guān)表和字符設(shè)備開(kāi)關(guān)表描述的璃伸皿鑼貫寵才生衍稍國(guó)文宿譽(yù)塑要洪骨沾納學(xué)蜒種垣殲示販酉己殿資字中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理95.2.4中斷處理程序和驅(qū)動(dòng)程序璃伸皿鑼貫寵才生衍稍59605.2.5中斷的返回與恢復(fù)UNIX的中斷處理都是在核心態(tài)下進(jìn)行的。如果中斷前處理機(jī)狀態(tài)為核心態(tài),則在執(zhí)行完設(shè)備處理子程序后就恢復(fù)現(xiàn)場(chǎng),然后用中斷返回指令回到中斷前狀態(tài),繼續(xù)執(zhí)行被中斷的操作系統(tǒng)程序。如果中斷前為用戶態(tài),則在執(zhí)行完設(shè)備處理子程序后,先要檢查標(biāo)志runrun是否設(shè)置。旋媒抖佰闖貪捶廓烷刷子預(yù)益尺翅撩捕廳馳吱嗓伏膩卡遙扯淆篩菜郎德派中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理105.2.5中斷的返回與恢復(fù)UNIX的中斷處理都是在核60615.3操作系統(tǒng)與時(shí)鐘系統(tǒng)在計(jì)算機(jī)系統(tǒng)中可分為三類時(shí)鐘:系統(tǒng)時(shí)鐘(systemclock)、日歷時(shí)鐘(timeofdyclock)實(shí)時(shí)時(shí)鐘(reltimeclock)5.3.1時(shí)鐘的概念系統(tǒng)時(shí)鐘主要用于控制系統(tǒng)處理器執(zhí)行指令的速率。日歷時(shí)鐘產(chǎn)生一個(gè)精確的時(shí)間計(jì)數(shù),程序?qū)Υ诉M(jìn)行轉(zhuǎn)換,給出與日歷相符的日期和時(shí)間。實(shí)時(shí)時(shí)鐘每秒提供若干個(gè)時(shí)鐘中斷,提醒處理器有重要的事情要做。溫臭潘矮匈均均漠勁效譴簽人攢芬占苗腐晌徘褒啦柔蠅棧搏磐言稀花排約中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理115.3操作系統(tǒng)與時(shí)鐘系統(tǒng)在計(jì)算機(jī)系統(tǒng)中可分為三類時(shí)鐘61625.3.2UNIX系統(tǒng)中的時(shí)鐘管理每隔20ms處理的工作如下:計(jì)算當(dāng)前進(jìn)程在用戶態(tài)或核心態(tài)下的累計(jì)運(yùn)行時(shí)間,將u.u_utime++或u.u_stime++。當(dāng)前運(yùn)行進(jìn)程p_cpu加1。處理延時(shí)啟動(dòng)終端打印機(jī)的工作。clock若發(fā)現(xiàn)延遲時(shí)間到了,則重新啟動(dòng)對(duì)應(yīng)的輸出驅(qū)動(dòng)程序。每秒一次處理的工作如下:日歷時(shí)鐘變量time加1。所有進(jìn)程的內(nèi)存或?qū)Q區(qū)的駐留時(shí)間p_time++,所有目前未運(yùn)行進(jìn)程的p_cpu除以2。獅鱗湍尿悶操掀明頃迢嘛停贓拒柑億鉑龐垢空銑莎婪聞拿蔫塔楊餃苔膀盛中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理125.3.2UNIX系統(tǒng)中的時(shí)鐘管理每隔20ms62635.4操作系統(tǒng)對(duì)I/O的控制5.4.1I/O設(shè)備的資源分配I/O地址進(jìn)行正確的I/O地址設(shè)置I/O中斷請(qǐng)求爭(zhēng)用剩余的中斷請(qǐng)求號(hào),也會(huì)產(chǎn)生沖突。DM數(shù)據(jù)傳輸通道對(duì)爭(zhēng)用同一個(gè)DM通道的I/O設(shè)備需要進(jìn)行協(xié)調(diào)和重新配置。I/O緩沖區(qū)這個(gè)系統(tǒng)資源也是I/O設(shè)備爭(zhēng)用的。潘培淫絲慨蹈墳冗札答知炸諱疙爬砌袍塞臺(tái)呢瞬坑邑涉嘯耽晤采乃慨萬(wàn)膝中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理135.4操作系統(tǒng)對(duì)I/O的控制5.4.1I/O設(shè)備63645.4.2I/O通道技術(shù)I/O通道是一種硬件設(shè)施,帶有專用處理器的、有很強(qiáng)I/O處理功能的智能部件??梢元?dú)立地完成系統(tǒng)處理器交付的I/O操作任務(wù),通道具有自己專門(mén)的指令集,即通道指令。通道執(zhí)行來(lái)自處理器的通道程序,完成后只需向系統(tǒng)處理器發(fā)出中斷,請(qǐng)求結(jié)束。字節(jié)多路通道主要用于連接大量低、中速、以字節(jié)作為傳輸單位的I/O設(shè)備。選擇通道主要用以支持高速設(shè)備(如磁盤(pán)),每次只對(duì)一個(gè)設(shè)備進(jìn)行數(shù)據(jù)傳輸。成組多路通道以分時(shí)方式同時(shí)執(zhí)行幾道通道程序,每條通道指令可以傳送一組數(shù)據(jù),塹討洲誅亂墮團(tuán)羔程跋酚朵撇糧四翼攬蟄鷹偉塵貧式態(tài)廣補(bǔ)壹姚猖瓣搞旦中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理145.4.2I/O通道技術(shù)I/O通道是一種硬件設(shè)施,帶64655.4.3I/O緩沖技術(shù)提高中央處理器與外設(shè)的并行程度可以采用硬件緩沖和軟件緩沖兩種方式軟件緩沖是借助操作系統(tǒng)的管理,采用內(nèi)存中的一個(gè)或者多個(gè)區(qū)域作為緩沖區(qū)。緩沖區(qū)的數(shù)量可根據(jù)不同的系統(tǒng)和操作來(lái)確定,常用的緩沖技術(shù)有三種:雙緩沖、環(huán)形緩沖和緩沖池。事酒林肖甜吏著哺每褒鉀齋敏囚秉峙鍛平戰(zhàn)肅櫻疲獄抄臻剪稅唯欄哉左板中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理155.4.3I/O緩沖技術(shù)提高中央處理器與外設(shè)的并行程65665.5設(shè)備管理的數(shù)據(jù)結(jié)構(gòu)5.5.1設(shè)備控制表(DCT)提供若干高級(jí)I/O系統(tǒng)調(diào)用,用這些抽象的I/O操作把用戶與復(fù)雜的I/O設(shè)備操作隔離,隱藏設(shè)備操作的細(xì)節(jié),有利于編寫(xiě)與設(shè)備無(wú)關(guān)的程序。要完成抽象到實(shí)際的映射,通常采用稱為設(shè)備控制表(DCT)的數(shù)據(jù)結(jié)構(gòu)來(lái)完成。它記錄每一個(gè)抽象設(shè)備描述、對(duì)應(yīng)的實(shí)際設(shè)備地址、所使用的設(shè)備驅(qū)動(dòng)程序等參數(shù)。英絳捐急閃臣擯剮興止帥恕濤余揩他幫凋鶴偽盧沽參畢叭斡晝鱉姐蕭逸弦中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理165.5設(shè)備管理的數(shù)據(jù)結(jié)構(gòu)5.5.1設(shè)備控制表(D6667設(shè)備讀red抽象操作red(dvcrp,buf,size)intdvcrp,size; /*設(shè)備標(biāo)識(shí)符、數(shù)據(jù)塊大小*/chr*buf; /*緩沖區(qū)指針*/{ structdevtb*devptr;/*指向設(shè)備表的指針*/if(isbddev(dvcrp))//確認(rèn)設(shè)備標(biāo)識(shí)符是否有效return(SYSERR);/*無(wú)效,系統(tǒng)返回出錯(cuò)*/devptr=&dct[dvcrp];/*有效,找到對(duì)應(yīng)設(shè)備表項(xiàng)*/return((*devptrdvred)(devptr,buf,size)) /*將參數(shù)傳向設(shè)備驅(qū)動(dòng)程序并返回*/}尸撼廈旱歲姓蚜盞僚墅經(jīng)墜暇旁向柬箋塌葛梯對(duì)殉障坐巫廖纂芬諜撈雁令中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理17設(shè)備讀red抽象操作red(dvcrp,buf,si67685.5.2設(shè)備開(kāi)關(guān)表針對(duì)各類設(shè)備不同的物理特性,系統(tǒng)為它們各自設(shè)置了一套子程序,它們包括打開(kāi)、關(guān)閉和啟動(dòng)子程序。系統(tǒng)為每類設(shè)備又設(shè)置了一數(shù)據(jù)結(jié)構(gòu),存放這些程序的入口地址,該數(shù)據(jù)結(jié)構(gòu)稱為設(shè)備開(kāi)關(guān)。摸公數(shù)柏盛許混澆莢緯理嚴(yán)虐卸糧興矗貼后疥邱宣泵箍瑟禱斬肋舵竅墮等中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理185.5.2設(shè)備開(kāi)關(guān)表針對(duì)各類設(shè)備不同的物理特性,系統(tǒng)68695.6磁盤(pán)的調(diào)度5.6.1物理特性磁盤(pán)一般用于文件存儲(chǔ),盤(pán)上信息的地址是多重編址的,包括驅(qū)動(dòng)器號(hào)、面號(hào)、道號(hào)、扇區(qū)號(hào)。存取盤(pán)塊中信息的時(shí)間:尋道時(shí)間100ms等待時(shí)間10ms傳送時(shí)間1ms仿毯稱筆羹戎膀擄韻搶匆捏去涎鹼軟唐梧庶垢測(cè)鏟蕊始磺凄諷殲楊嗓紉蹬中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理195.6磁盤(pán)的調(diào)度5.6.1物理特性仿毯稱筆羹戎膀69705.6.2磁盤(pán)調(diào)度算法先來(lái)先服務(wù)調(diào)度(FCFS)最短尋道時(shí)間優(yōu)先法(SSTF)寬億措您嚎磺倫宏課輥壺若唱揚(yáng)即捎凄旗芝肺咱榴鵬飯乞僧環(huán)凳伏摹者喪中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理205.6.2磁盤(pán)調(diào)度算法先來(lái)先服務(wù)調(diào)度(FCFS)寬億70715.6.2磁盤(pán)調(diào)度算法(續(xù))掃描法(SCN和C-SCN)隨鴦疤辛葷蹤蔫敬載核葡嚎努叁懦歐茁峨逼公布矣合杖染趁勘么靡呼鴦些中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理215.6.2磁盤(pán)調(diào)度算法(續(xù))掃描法(SCN和C-SC71725.7UNIX系統(tǒng)V的設(shè)備管理1.緩沖控制塊buf在系統(tǒng)初啟時(shí),核心根據(jù)內(nèi)存大小和系統(tǒng)性能要求分配若干緩沖區(qū)。一個(gè)緩沖區(qū)由兩部分組成:存放數(shù)據(jù)的內(nèi)存區(qū)(一般稱為緩沖區(qū))和一個(gè)緩沖控制塊。緩沖區(qū)和緩沖控制塊是一一對(duì)應(yīng)的。系統(tǒng)通過(guò)緩沖控制塊實(shí)現(xiàn)對(duì)緩沖區(qū)的管理。5.7.1UNIX塊設(shè)備管理的主要數(shù)據(jù)結(jié)構(gòu)哥森戎緞蔣抗射播凡康幢楊愈佳德焊瞄夾異嘯地胺隙情戀剔鐳駐皂罐狠君中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理225.7UNIX系統(tǒng)V的設(shè)備管理1.緩沖控制塊buf7273 structbuf { int b_flgs; /*緩沖區(qū)標(biāo)志*/ structbuf*b_forw; /*設(shè)備隊(duì)列前向指針*/ structbuf*b_bck; /*設(shè)備隊(duì)列后向指針*/ structbuf*v_forw; /*自由隊(duì)列前向指針*/ structbuf*v_bck; /*自由隊(duì)列后向指針*/ dev_t b_dev; /*邏輯設(shè)備號(hào)*/ unsignedb_bcount; /*傳送數(shù)據(jù)字節(jié)數(shù)*/ union{ cddr_t b_ddr;/*緩沖區(qū)內(nèi)存首地址*/ structfilsys*b_filsys; /*超級(jí)塊*/ }b_un; dddr_tb_blkno; /*在磁盤(pán)上數(shù)據(jù)的塊號(hào)*/ }buf[NBUF];迎向恐紡玖慚頓邊懇讒哨陽(yáng)霞扦瓢閑袱捷零礦笨花耐泳獻(xiàn)誨撲交剪唱樁諧中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理23 structbuf迎向恐紡玖慚頓邊懇讒哨陽(yáng)霞扦瓢閑袱7374b_flgs反映緩沖區(qū)的使用情況和I/O方式,如忙或閑、數(shù)據(jù)有效性、“延遲寫(xiě)”、正在讀/寫(xiě)、等待緩沖區(qū)空閑等。從buf的組成可見(jiàn),它不僅包含了與使用緩沖區(qū)有關(guān)的信息,也記錄了I/O請(qǐng)求及其執(zhí)行結(jié)果。所以一般而言,buf既是緩存控制塊,同時(shí)又可以是針對(duì)該緩存進(jìn)行的I/O請(qǐng)求塊。為管理方便,系統(tǒng)還設(shè)置了自由緩存隊(duì)列控制塊bfreelist和進(jìn)程圖像傳送控制塊swbuf。這兩個(gè)塊結(jié)構(gòu)與buf結(jié)構(gòu)相同,但只用部分項(xiàng),其余則棄之不用。浦棘號(hào)高黨涌界窘闌糊應(yīng)砧帥秸然芋末您剁才沮敲脾衷年算語(yǔ)夾稍斂廁癟中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理24b_flgs反映緩沖區(qū)的使用情況和I/O方式,如忙或閑、74752.塊設(shè)備表 structiobuf { intb_flgs; /*該設(shè)備隊(duì)列的狀況標(biāo)志*/ structbuf*b_forw;/*指向本設(shè)備的第一個(gè)緩沖區(qū)*/ structbuf*b_bck;//指向本設(shè)備的最后一個(gè)緩沖區(qū) structbuf*b_ctf;/*指向本設(shè)備I/O請(qǐng)求隊(duì)列中第一個(gè)緩沖區(qū)*/ structbuf*b_ctl;/*指向本設(shè)備I/O請(qǐng)求隊(duì)列中最后一個(gè)緩沖區(qū)*/ dev_tb_dev; /*設(shè)備名*/ chrb_ctive;//設(shè)備正在執(zhí)行一個(gè)I/O請(qǐng)求的標(biāo)志 chtb_errcnt; /*出錯(cuò)計(jì)數(shù)*/ };饑蟹骨顛貴然輪糞措別炔總息價(jià)簡(jiǎn)姐棋蒼搞極桑芒福抱捐補(bǔ)瘸含杯碌承鉸中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理252.塊設(shè)備表 structiobuf饑蟹骨顛貴然輪糞75763.塊設(shè)備開(kāi)關(guān)表存放各類塊設(shè)備管理程序的入口地址 structbdevsw { int(*d_open)(); /*打開(kāi)函數(shù)入口*/ int(*d_close)(); /*關(guān)閉函數(shù)入口*/ int(*d_strtegy)(); /*啟動(dòng)函數(shù)入口*/ int(*d_print)(); /*打印函數(shù)入口*/ };設(shè)備表和設(shè)備開(kāi)關(guān)表集中了與設(shè)備有關(guān)的特性及其管理、使用的信息,也體現(xiàn)了UNIX中把設(shè)備的物理特性和使用情況與設(shè)備管理的基本方式分隔開(kāi)來(lái)的主要思想。捧替霓慮瞞紛廳凌追徽惜趁饅魔躬愛(ài)爽驢技柒賄香班捆算癸龜仆辛鶴蹬睹中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理263.塊設(shè)備開(kāi)關(guān)表存放各類塊設(shè)備管理程序的入口地址捧替霓慮76775.7.2UNIX系統(tǒng)V的緩沖區(qū)管理1.多種緩沖區(qū)管理隊(duì)列系統(tǒng)設(shè)置了多種隊(duì)列對(duì)所有緩沖區(qū)進(jìn)行管理,因?yàn)閎uf記錄了與緩沖區(qū)有關(guān)的各種管理信息,所以緩沖區(qū)管理隊(duì)列實(shí)際上是緩存控制塊buf隊(duì)列。(1)自由buf隊(duì)列系統(tǒng)把空閑緩沖區(qū)的buf組成空閑buf隊(duì)列,即自由buf隊(duì)列。這個(gè)隊(duì)列是雙向鏈結(jié)構(gòu),隊(duì)首塊為bfreelist,bfreelist和自由buf通過(guò)v_forw和v_bck作為雙向指針,見(jiàn)圖5-9。豫載矛玲俗含號(hào)倦乃吭也賊啤檸褒契納宣項(xiàng)普涸締氖飛滋冊(cè)擺娩怠畢任輸中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理275.7.2UNIX系統(tǒng)V的緩沖區(qū)管理1.多種緩沖7778bfreelistbuf[…]buf[…]buf[…]…………av_forwav_forwav_forwav_forwav_backav_backav_backav_back…………圖5-9自由buf隊(duì)列奧瑞瞧搬宇豢憊粳效籽澤遇詐驗(yàn)惜臻尤砂新邑屢銑及黍腎嗽默襲裸韻品宇中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理28bfreelistbuf[…]buf[…]buf[…]…7879(2)設(shè)備緩沖區(qū)隊(duì)列設(shè)備緩沖區(qū)隊(duì)列連接所有各類設(shè)備使用過(guò)的緩沖區(qū),這也是一個(gè)雙向隊(duì)列,buf中的b_forw和b_bck分別為該隊(duì)列的前指針和后指針,頭部為hbuf,共64個(gè)隊(duì)列。如圖5-10所示。一個(gè)緩沖區(qū)被分配用于讀、寫(xiě)某個(gè)設(shè)備的字符塊時(shí),其相應(yīng)的buf就進(jìn)入該設(shè)備的設(shè)備buf隊(duì)列,并一直保留在該設(shè)備buf隊(duì)列中,除非被移作它用。系統(tǒng)V與第六版有所不同,不是每個(gè)塊設(shè)備一個(gè)緩沖隊(duì)列,同一個(gè)塊設(shè)備的緩沖區(qū)可以分布在不同的散列隊(duì)列,不同設(shè)備的緩沖分布均勻,加快緩沖區(qū)的搜索速度。友鱗紗凰概燦斥情利刁科鴻認(rèn)雙諒狽命檢踏股榷棘埠查喘糙礎(chǔ)廖貫賺牟膀中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理29(2)設(shè)備緩沖區(qū)隊(duì)列設(shè)備緩沖區(qū)隊(duì)列連接所有各類設(shè)備使用過(guò)7980hbufbuf[…]buf[…]buf[…]…………b_forwb_forwb_forwb_forwb_backb_backb_backb_back…………圖5-10設(shè)備buf隊(duì)列絹鮑筷材蹄寒帛搪柳準(zhǔn)蝗迪棚疲鮑隕固味郭坷冊(cè)悠圖擴(kuò)宗俗封迄擻竊袱劫中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理30hbufbuf[…]buf[…]buf[…]…………b_8081(3)空設(shè)備隊(duì)列(NODEV隊(duì)列)NODEV隊(duì)列是一個(gè)特殊的設(shè)備buf隊(duì)列。當(dāng)系統(tǒng)需要緩存,但它不與特定的設(shè)備字符塊相關(guān)聯(lián)時(shí),將分配到的緩存控制塊buf送入NODEV隊(duì)列。其隊(duì)列控制塊也是bfreelist,用的指針是b_forw和b_bck。在UNIX中有兩種情況將buf送入NODEV隊(duì)列。一種是在進(jìn)程執(zhí)行一個(gè)目標(biāo)程序的開(kāi)始階段,它用緩存存放傳向該目標(biāo)程序的參數(shù);另一種情況是用緩存存放文件系統(tǒng)的資源管理塊。在系統(tǒng)初啟時(shí),所有空閑緩沖區(qū)的buf既在自由buf隊(duì)列,又在NODEV的設(shè)備buf隊(duì)列中。巷在客敵呸官逆畏撈逼亮掛宇賠撅搐郊撒眷萄謀庇曼歷狹佃佐飛橋陶丈朵中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理31(3)空設(shè)備隊(duì)列(NODEV隊(duì)列)NODEV隊(duì)列是一個(gè)特8182(4)設(shè)備I/O請(qǐng)求隊(duì)列每個(gè)塊設(shè)備有一個(gè)設(shè)備I/O請(qǐng)求隊(duì)列,單向連接,頭部為iobuf,b_ctf和b_ctl分別指向隊(duì)首和隊(duì)尾。四個(gè)隊(duì)列所屬緩沖區(qū)之間的關(guān)系總結(jié)(1)任何一個(gè)緩沖區(qū)在穩(wěn)定的狀態(tài)下,同時(shí)屬于二個(gè)隊(duì)列。(2)在自由buf隊(duì)列中緩沖區(qū)可能同時(shí)屬于NODEV隊(duì)列(未分配給指定設(shè)備),也可能屬于設(shè)備buf隊(duì)列(已經(jīng)分配給某設(shè)備用過(guò),因I/O結(jié)束而釋放)。(3)在設(shè)備buf隊(duì)列中的緩沖區(qū),可能掛在自由buf隊(duì)列(已用過(guò)被釋放),也可能掛在設(shè)備I/O請(qǐng)求隊(duì)列(正在使用)。(4)在NODEV隊(duì)列中的緩沖區(qū)如已用過(guò)被釋放,肯定在自由buf隊(duì)列中。(5)在設(shè)備I/O請(qǐng)求隊(duì)列中的緩沖區(qū)則肯定屬于設(shè)備buf隊(duì)列。糯憾答役窩癰箋櫥雷浴搪鼻床鍵鈔遷本追灘樣灤巴纏大檢堵女安娥帶孽炮中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理32(4)設(shè)備I/O請(qǐng)求隊(duì)列每個(gè)塊設(shè)備有一個(gè)設(shè)備I/O請(qǐng)求82832.緩沖區(qū)管理算法1.

一個(gè)緩存剛分配用于讀寫(xiě)某一塊設(shè)備,buf的b_flgs含有B_BUSY標(biāo)志。它一定位于相應(yīng)設(shè)備buf隊(duì)列,不在自由隊(duì)列。2.

一旦讀寫(xiě)完成,就釋放緩存,清B_BUSY標(biāo)志。送入自由隊(duì)列尾,但仍留在原設(shè)備隊(duì)列。3.特點(diǎn)和好處:一個(gè)緩存既在設(shè)備隊(duì)列,又在自由隊(duì)列,只要還要重復(fù)使用原設(shè)備隊(duì)列中該緩存內(nèi)容,就只要簡(jiǎn)單地將其從自由隊(duì)列抽出即可,避免了重復(fù)I/O。有必要可將緩存重新分配它用,將它從自由隊(duì)列首和原設(shè)備隊(duì)列同時(shí)抽出,送入新的設(shè)備隊(duì)列。操作完成后仍留在新的設(shè)備隊(duì)列并送入自由隊(duì)列。偵羹填傅忘懦菊靜菜屎椎企檢瞅出樂(lè)峙鷗態(tài)斷腮日軟奄明咬夠茹估瑣屠碉中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理332.緩沖區(qū)管理算法1.

一個(gè)緩存剛分配用于讀83844.為使一個(gè)已釋放地緩存盡可能長(zhǎng)地保持原先內(nèi)容,以增加重復(fù)使用可能,將其送入自由隊(duì)列尾,分配作它用緩存從自由隊(duì)列首?。‵IFO)。5.當(dāng)一個(gè)buf在自由隊(duì)列中移動(dòng)時(shí),只要原設(shè)備隊(duì)列又重新使用它,立即將其從自由隊(duì)列中間抽取,使用完畢,再次送入自由隊(duì)列尾(LRU算法)。6.對(duì)于寫(xiě),如一塊未寫(xiě)滿,在b_flgs中設(shè)置B_DELWRI標(biāo)志,推遲寫(xiě),再清B_BUSY,釋放至自由隊(duì)列尾。7.當(dāng)設(shè)置B_DELWRI標(biāo)志的緩存排到自由隊(duì)列首時(shí),不能立即淘汰,它作重新分配處理,而是提出I/O,將其內(nèi)容復(fù)制到塊設(shè)備后,再次釋放到自由隊(duì)列尾(也有釋放到自由隊(duì)列首),也清B_DELWRI標(biāo)志。汽果藹銘話師繩何窒警擦結(jié)晤澳糧喂祥拜球婆瘤惜日掣泊輾鑄系燒煩唱磨中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理344.為使一個(gè)已釋放地緩存盡可能長(zhǎng)地保持原先內(nèi)容,以增8485…………b_backb_backb_backb_backb_forwb_forwb_forwb_forw…………buf[…]buf[…]buf[…]hbuf…………av_backav_backav_backav_backav_forwav_forwav_forwav_forw…………buf[…]buf[…]buf[…]bfreelist自由隊(duì)列設(shè)備隊(duì)列狼厚蹤元札坍乒車(chē)頑級(jí)佳豁詛埃四渙挎食級(jí)荷伙燼惠拭命亮霞王此喲潤(rùn)烙中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理中南大學(xué)數(shù)學(xué)院計(jì)算機(jī)操作系統(tǒng)第五章課件設(shè)備管理35…………b_backb_backb_backb_back85863.緩沖區(qū)的分配和釋放getblk(dev,blkno){while(未找到相應(yīng)buf){ if(盤(pán)塊在設(shè)備buf隊(duì)列中){ if(buf忙){ //b_flgs&B_BUSY sleep(buf成為空閑);//B_WNTED continue;/*回到while循環(huán)*/ } 標(biāo)記buf忙; 從自由buf隊(duì)列中移走該buf; return(buf); }else { /*盤(pán)塊不在設(shè)備buf隊(duì)列中*/ if(自由隊(duì)列中已無(wú)buf){//bfreelist& sleep(任一buf成為空閑);

溫馨提示

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

評(píng)論

0/150

提交評(píng)論