Unix操作系統(tǒng)塊知識講解
首先讓大家了解下Unix操作系統(tǒng)中設(shè)備的知識,然后全面介紹Unix操作系統(tǒng)中設(shè)備功能分析,希望對大家對Unix操作系統(tǒng)的學(xué)習(xí)有所幫助。
設(shè)備分為面向塊的設(shè)備和面向字符的設(shè)備,塊的如磁盤、磁帶等字符的如紙帶輸入/穿孔輸出機、打印機等。塊設(shè)備通過一層緩沖軟件管理,字符設(shè)備通過字符緩沖實現(xiàn)。
塊設(shè)備中存儲的信息從Unix操作系統(tǒng)硬件組織上是有結(jié)構(gòu)的,由若干固定大小的塊所組成,信息的存取通常是以塊為單位的,從塊設(shè)備的用戶方面看。
有三種用法:
(1)程序?qū)Q系統(tǒng)使用,它有自己的數(shù)據(jù)結(jié)構(gòu)和管理程序。
(2)文件系統(tǒng)使用,為了有效支持文件系統(tǒng),利用了多重緩沖技術(shù)。
(3)將磁盤當(dāng)作字符設(shè)備來使用,從塊設(shè)備管理系統(tǒng)的實現(xiàn)方式和程序組成看,可分為三個層次:***層為設(shè)備驅(qū)動程序,它的主要數(shù)據(jù)結(jié)構(gòu)是磁盤的各種控制寄存器和設(shè)備表;第二層是緩沖區(qū)的管理,包括申請、釋放、摘鏈、查鏈、清零、寫回和初啟,主要數(shù)據(jù)結(jié)構(gòu)是15個緩沖首部和一個作為鏈頭的緩沖首部,主要有文件系統(tǒng)使用。最上層是與使用方式有關(guān)的程序,相當(dāng)于塊設(shè)備與外部的接口。
Unix操作系統(tǒng)設(shè)備功能分析
塊設(shè)備除了用作程序?qū)Q空間之外,主要用于Unix操作系統(tǒng)文件系統(tǒng)。為了克服慢速外部設(shè)備和快速處理機加工速度之間的不匹配問題。Unix操作系統(tǒng)采用了多重緩沖技術(shù),以便給文件系統(tǒng)以有效的服務(wù),為此系統(tǒng)維持了一個緩沖池,內(nèi)含15個緩沖,這些緩沖起著虛擬存儲器的作用,而getblk函數(shù)正是為了申請一塊指定設(shè)備,塊號的緩沖,其主要應(yīng)用于:
1系統(tǒng)調(diào)用(exec())執(zhí)行一個文件,為將要執(zhí)行的文件申請新的緩沖。
2進程的自我終止(exit()),getblk為將要終止的進程查找相應(yīng)的緩沖。
3讀一塊到緩沖(bread()),為其申請一塊緩沖。
4讀當(dāng)前塊到緩沖,再預(yù)讀一塊(breada()),為將要讀的塊申請緩沖。
5從空閑盤區(qū)鏈中獲得一空閑盤塊(alloc()),函數(shù)根據(jù)分配到的盤塊號申請一緩沖區(qū)。
6將釋放的盤塊號記入專用的空閑塊棧中(free()),申請一緩沖區(qū),將空閑塊棧中的信息復(fù)制到該緩沖區(qū)中。
7文件系統(tǒng)初啟(iinit()),申請一塊不與任何設(shè)備有聯(lián)系的內(nèi)存專用區(qū),存放專用塊。
8完成轉(zhuǎn)儲任務(wù)(update())為superblock復(fù)制回文件卷而申請緩沖區(qū)。
9系統(tǒng)文件卷的安裝(smount()),為存儲文件卷的superblock申請緩沖區(qū)。
10把文件復(fù)制到I/O緩沖區(qū)然后再記到外存(writei()),為I/O設(shè)備申請緩沖區(qū)。
這樣,我們對Unix操作系統(tǒng)的設(shè)備以及其功能分析就到這里了。謝謝大家的閱讀。
【編輯推薦】