第5章 設(shè)備管理與文件管理_第1頁
第5章 設(shè)備管理與文件管理_第2頁
第5章 設(shè)備管理與文件管理_第3頁
第5章 設(shè)備管理與文件管理_第4頁
第5章 設(shè)備管理與文件管理_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5章設(shè)備管理與文件管理在計(jì)算機(jī)系統(tǒng)中,除了需要有處理機(jī)和存儲(chǔ)器外,還需要有用于實(shí)現(xiàn)信息輸入、輸出和存儲(chǔ)的設(shè)備。設(shè)備管理程序便是用于對(duì)這類設(shè)備進(jìn)行控制和管理的一組程序。設(shè)備管理是操作系統(tǒng)中最繁雜且與硬件緊密相關(guān)的部分。這里只討論在計(jì)算機(jī)系統(tǒng)中,除CPU、主存儲(chǔ)器外的設(shè)備的管理。學(xué)習(xí)目標(biāo):掌握設(shè)備的分類。掌握設(shè)備管理的主要功能。掌握常見的數(shù)據(jù)I/O控制方式。掌握文件的分類。掌握文件管理的主要功能。了解文件的邏輯結(jié)構(gòu)方式及文件在外存上的分配存儲(chǔ)方式。了解Linux系統(tǒng)中的設(shè)備管理。5.1設(shè)備管理概述5.2數(shù)據(jù)輸入/輸出控制方式5.3文件管理概述5.4文件的邏輯結(jié)構(gòu)5.5外存分配方式5.6Linux中的設(shè)備管理5.1設(shè)備管理概述5.1.1設(shè)備的分類5.1.2設(shè)備管理的任務(wù)和功能5.1.3緩沖技術(shù)5.1.4設(shè)備驅(qū)動(dòng)5.1.1設(shè)備的分類

可以從不同的角度對(duì)I/O設(shè)備進(jìn)行分類。按其使用方式可分為: 輸入型設(shè)備(例如光電輸入機(jī)、鍵盤、鼠標(biāo)器等)

輸出型設(shè)備(例如打印機(jī)、繪圖儀、顯示器等)

輸入/輸出型設(shè)備(例如磁盤、磁帶等)按設(shè)備的所屬關(guān)系分類。(1)系統(tǒng)設(shè)備。系統(tǒng)設(shè)備是在系統(tǒng)生成時(shí)已登記于系統(tǒng)中的標(biāo)準(zhǔn)設(shè)備,屬于系統(tǒng)的基本配置。如磁盤、打印機(jī)等。(2)用戶設(shè)備。用戶設(shè)備是在系統(tǒng)生成時(shí)未登記在系統(tǒng)中的非標(biāo)準(zhǔn)設(shè)備,通常這類設(shè)備是由用戶提供的,并以適當(dāng)?shù)姆绞浇榻B給系統(tǒng),以便操作系統(tǒng)對(duì)其實(shí)施統(tǒng)一的管理。按設(shè)備的信息交換的單位分類:(1)字符設(shè)備字符設(shè)備是以字符為單位進(jìn)行輸入和輸出的設(shè)備。也就是說,這類設(shè)備每輸入/輸出一個(gè)字符就要請(qǐng)求CPU中斷一次以處理,所以也叫做低速字符設(shè)備??ㄆ喿x機(jī)、紙帶機(jī)、打印機(jī)、穿孔機(jī)等都屬于低速字符設(shè)備。(2)塊設(shè)備塊設(shè)備的輸入和輸出是以數(shù)據(jù)塊為單位的。數(shù)據(jù)塊也叫物理塊,在不同的系統(tǒng)中,數(shù)據(jù)塊的大小不同,例如可在8~1024B的范圍內(nèi)變化。磁盤、磁帶等都屬于塊設(shè)備。

按設(shè)備的共享屬性分類。(1)獨(dú)占設(shè)備所有的字符設(shè)備都是獨(dú)占設(shè)備。獨(dú)占設(shè)備是指一段時(shí)間內(nèi)只允許一個(gè)用戶(進(jìn)程)訪問的設(shè)備,即臨界資源。(2)共享設(shè)備塊設(shè)備都是共享設(shè)備。共享設(shè)備是指一段時(shí)間內(nèi)允許多個(gè)進(jìn)程同時(shí)訪問的設(shè)備。當(dāng)然,對(duì)于某一時(shí)刻而言,該類設(shè)備仍然只允許一個(gè)進(jìn)程訪問。(3)虛擬設(shè)備通過虛擬設(shè)備技術(shù)把一臺(tái)獨(dú)占設(shè)備變換為若干臺(tái)邏輯設(shè)備,供若干個(gè)用戶(進(jìn)程)同時(shí)使用,以提高設(shè)備的利用率。5.1.2設(shè)備管理的任務(wù)和功能設(shè)備管理的主要任務(wù)如下:(1)選擇和分配I/O設(shè)備以便進(jìn)行數(shù)據(jù)傳輸操作。(2)控制I/O設(shè)備和CPU(或內(nèi)存)之間交換數(shù)據(jù)。(3)為用戶提供一個(gè)友好的透明接口,把用戶和設(shè)備硬件特性分開,使得用戶在編制應(yīng)用程序時(shí)不必涉及具體設(shè)備,由系統(tǒng)按用戶的要求來對(duì)設(shè)備的工作進(jìn)行控制。另外,這個(gè)接口還為新增加的用戶設(shè)備提供一個(gè)和系統(tǒng)核心相連接的入口,以便用戶開發(fā)新的設(shè)備管理程序。(4)提高設(shè)備和設(shè)備之間、CPU和設(shè)備之間以及進(jìn)程和進(jìn)程之間的并行操作程度,以使操作系統(tǒng)獲得最佳效率。設(shè)備管理程序的功能(1)提供進(jìn)程管理系統(tǒng)的接口當(dāng)進(jìn)程要求設(shè)備時(shí),該接口將進(jìn)程的要求轉(zhuǎn)達(dá)給設(shè)備管理程序。(2)進(jìn)行設(shè)備分配選擇某種調(diào)度策略,從設(shè)備等待隊(duì)列中選擇一個(gè)等待進(jìn)程投入運(yùn)行,將I/O設(shè)備及相應(yīng)的設(shè)備控制器、通道分配給提出設(shè)備請(qǐng)求的進(jìn)程,并將未獲得分配的進(jìn)程排入設(shè)備等待隊(duì)列。當(dāng)一個(gè)進(jìn)程使用完一個(gè)設(shè)備后,系統(tǒng)應(yīng)將此設(shè)備及時(shí)回收。對(duì)多個(gè)進(jìn)程爭用同一設(shè)備的情況,則要按照某種分配策略進(jìn)行設(shè)備的分配。(3)實(shí)現(xiàn)設(shè)備和設(shè)備、設(shè)備和CPU等之間的并行操作這項(xiàng)功能需要系統(tǒng)中相應(yīng)的硬件地支持。除了設(shè)備控制器之外,對(duì)應(yīng)于不同的I/O控制方式,還需要有DMA控制器、I/O通道等硬件。在設(shè)備分配程序根據(jù)進(jìn)程要求分配了設(shè)備、控制器和通道(或DMA控制器)等配件之后,通道(或DMA控制器)將自動(dòng)完成設(shè)備和內(nèi)存之間的數(shù)據(jù)傳送工作,從而實(shí)現(xiàn)CPU和I/O設(shè)備的并行工作。在沒有通道(或DMA控制器)的系統(tǒng)中,則由設(shè)備管理程序利用中斷技術(shù)來完成上述并行操作。

(4)進(jìn)行緩沖管理一般來說,CPU的執(zhí)行速度和內(nèi)存的訪問速度都較高,而I/O設(shè)備的數(shù)據(jù)流通速度則低得多。為了緩解I/O設(shè)備和內(nèi)存與CPU之間的速度不匹配的問題,系統(tǒng)中一般設(shè)有緩沖區(qū)來暫存數(shù)據(jù)。設(shè)備管理程序負(fù)責(zé)進(jìn)行緩沖區(qū)分配、釋放及有關(guān)的管理工作。(5)設(shè)備控制與驅(qū)動(dòng)按照I/O控制方式,對(duì)不同的設(shè)備完成相應(yīng)的I/O中斷、設(shè)備控制、讀寫等I/O操作。并針對(duì)不同的設(shè)備請(qǐng)求,通過設(shè)備驅(qū)動(dòng)程序完成對(duì)設(shè)備的直接控制。5.1.3緩沖技術(shù)在現(xiàn)代OS中,幾乎所有的I/O設(shè)備在與處理機(jī)(內(nèi)存)交換數(shù)據(jù)時(shí),都使用了緩沖區(qū)。因?yàn)樘岣逫/O速度和設(shè)備的利用率,在很大程度上都需要借助于緩沖技術(shù)來實(shí)現(xiàn)。緩沖管理的主要功能是組織好這些緩沖區(qū),并提供獲得和釋放緩沖區(qū)的手段。

引入緩沖區(qū)的主要原因:緩和CPU與I/O設(shè)備間速度不匹配的矛盾。減少CPU的中斷頻率,放寬對(duì)CPU中斷響應(yīng)時(shí)間的限制。提高CPU和I/O設(shè)備之間的并行性。例如,在CPU和打印機(jī)之間設(shè)置了緩沖區(qū)后,便可使CPU和打印機(jī)并行工作。緩沖的分類 根據(jù)系統(tǒng)設(shè)置緩沖區(qū)的個(gè)數(shù),可把緩沖分為單緩沖,多緩沖和緩沖池。單緩沖是在設(shè)備和處理機(jī)之間設(shè)置一個(gè)緩沖區(qū)。多緩沖是把多個(gè)緩沖區(qū)連接起來,這些緩沖區(qū)被分為兩個(gè)部分:一部分專門用于輸入,另一部分專門用于輸出。緩沖池則是把多個(gè)緩沖區(qū)連接起來統(tǒng)一管理,緩沖池中的緩沖區(qū)既可用于輸入又可用于輸出。單緩沖:最簡單。每當(dāng)用戶進(jìn)程發(fā)出一I/O請(qǐng)求時(shí),操作系統(tǒng)便在主存中為之分配一緩沖區(qū),如圖(a)。塊設(shè)備:緩沖區(qū)用于暫存塊設(shè)備輸入的一塊數(shù)據(jù)。數(shù)據(jù)塊處理時(shí)間:Max(C,T)+M字符設(shè)備:緩沖區(qū)用于暫存用戶輸入的一行數(shù)據(jù),或者輸出一行數(shù)據(jù)到緩沖區(qū)。

雙緩沖:也稱為緩沖對(duì)換方式。在設(shè)備輸入時(shí),先將數(shù)據(jù)輸入第一緩沖區(qū),裝滿后便轉(zhuǎn)入第二緩沖區(qū);然后操作系統(tǒng)從第一緩沖區(qū)中取數(shù)據(jù),等待CPU對(duì)數(shù)據(jù)進(jìn)行計(jì)算。如圖(b)。數(shù)據(jù)塊處理時(shí)間:Max(C,T)

循環(huán)緩沖:當(dāng)輸入、輸出或生產(chǎn)者--消費(fèi)者的速度相差甚遠(yuǎn)時(shí),雙緩沖的效果則不夠理想,但可以增加緩沖區(qū)數(shù)量而使情況有所改善。因此,引入了多緩沖,并將多緩沖組織成循環(huán)緩沖形式。如圖(c):緩沖池循環(huán)緩沖只適用于特定的I/O進(jìn)程和計(jì)算進(jìn)程,屬于專用緩沖,顯然若系統(tǒng)中進(jìn)程數(shù)目很多,則需要很多這樣的循環(huán)緩沖,這是不合理的,引入緩沖池(公用)。組成:三個(gè)隊(duì)列:空緩沖隊(duì)列emq、輸入隊(duì)列inq、輸出隊(duì)列outq。四種工作緩沖區(qū):用于收容輸入/出數(shù)據(jù)的工作緩沖區(qū);用于提取輸入/出數(shù)據(jù)的工作緩沖區(qū)。工作方式:先看示意圖,在看下頁文字說明收容輸入工作方式:在輸入進(jìn)程需要輸入數(shù)據(jù)時(shí),便調(diào)用Getbuf(emq)過程,從emq隊(duì)列的隊(duì)首摘下一空緩沖區(qū),把它作為收容輸入工作緩沖區(qū)hin。然后,把數(shù)據(jù)輸入其中,裝滿后再調(diào)用Putbuf(inq,hin)過程,將該緩沖區(qū)掛在輸入隊(duì)列inq的隊(duì)尾。提取輸入工作方式:當(dāng)計(jì)算進(jìn)程需要輸入數(shù)據(jù)時(shí),調(diào)用Getbuf(inq)過程,從輸入隊(duì)列取得一緩沖區(qū)作為提取輸入工作緩沖區(qū),計(jì)算進(jìn)程從中提取數(shù)據(jù)。計(jì)算進(jìn)程用完該數(shù)據(jù)后,再調(diào)用Putbuf(emq,sin)過程,將該緩沖掛到空緩沖隊(duì)列emq上。

收容輸出工作方式:當(dāng)計(jì)算進(jìn)程需要輸出時(shí)調(diào)用Getbuf(emq)過程,從空緩沖隊(duì)列emq的隊(duì)首取得一空緩沖區(qū),作為收容輸出工作緩沖區(qū)hout。當(dāng)其中裝滿輸出數(shù)據(jù)后,又調(diào)用Putbuf(outq,hout)過程,將該緩沖區(qū)掛在outq末尾。提取輸出工作方式:當(dāng)要輸出時(shí),由輸出進(jìn)程調(diào)用Getbuf(outq)過程,從輸出隊(duì)列的隊(duì)首取得一裝滿輸出數(shù)據(jù)的緩沖區(qū),作為提取輸出工作緩沖區(qū)sout。在數(shù)據(jù)提取完后,再調(diào)用Putbuf(emq,sout)過程,將它掛在空緩沖隊(duì)列的末尾。5.1.4設(shè)備驅(qū)動(dòng)設(shè)備驅(qū)動(dòng)程序又稱為設(shè)備處理程序,它是I/O進(jìn)程與設(shè)備控制器之間的通信程序,是一種低級(jí)的系統(tǒng)例程。設(shè)備驅(qū)動(dòng)程序的主要任務(wù)是接受上層軟件發(fā)來的抽象要求,如read或write命令,再把它轉(zhuǎn)換為具體要求,發(fā)送給設(shè)備控制器。此外,它也將由設(shè)備控制器發(fā)來的信號(hào)傳送給上層軟件,從而完成兩者間的相互通信。設(shè)備驅(qū)動(dòng)程序的處理過程(1)將抽象要求轉(zhuǎn)換為具體要求通常在每個(gè)設(shè)備控制器中都含有若干個(gè)寄存器,它們分別用于暫存命令、數(shù)據(jù)和參數(shù)等。用戶及上層軟件對(duì)設(shè)備控制器的具體情況毫不了解,因而只能向它發(fā)出抽象的要求(命令),但這些命令無法傳送給設(shè)備控制器。因此,就需要設(shè)備驅(qū)動(dòng)程序?qū)⑦@些抽象要求轉(zhuǎn)換為具體要求。(2)檢查I/O請(qǐng)求的合法性對(duì)于任何輸入設(shè)備,都是只能完成一組特定的功能,若該設(shè)備不支持這次的I/O請(qǐng)求,則認(rèn)為這次I/O請(qǐng)求非法。(3)讀出和檢查設(shè)備的狀態(tài)在啟動(dòng)某個(gè)獨(dú)占設(shè)備進(jìn)行I/O操作時(shí),其前提條件應(yīng)是該設(shè)備正處于空閑狀態(tài)。因此在啟動(dòng)設(shè)備之前,要從設(shè)備控制器的狀態(tài)寄存器中,讀出設(shè)備的狀態(tài)。只有設(shè)備處于就緒狀態(tài)時(shí),才能啟動(dòng)其設(shè)備控制器,否則只能等待。(4)傳送必要的參數(shù)對(duì)于許多設(shè)備,除必須向設(shè)備控制器發(fā)出啟動(dòng)命令外,還需傳送必要的參數(shù)。例如,在啟動(dòng)磁盤進(jìn)行寫之前,應(yīng)將本次要傳送的字節(jié)和數(shù)據(jù)要傳送的內(nèi)存始址,送入控制器的相應(yīng)寄存器中。(5)工作方式的設(shè)置有些設(shè)備可具有多種工作方式,典型情況是利用RS-232接口進(jìn)行異步通信。在啟動(dòng)該接口之間,應(yīng)先按通信規(guī)程設(shè)定下述參數(shù):波特率、奇偶校驗(yàn)方式、停止位數(shù)目及數(shù)據(jù)字節(jié)長度等。(6)啟動(dòng)I/O設(shè)備在完成上述各項(xiàng)準(zhǔn)備工作后,驅(qū)動(dòng)程序可以向控制器中的命令寄存器傳送相應(yīng)的控制命令。對(duì)于字符設(shè)備,若發(fā)出的是寫命令,驅(qū)動(dòng)程序?qū)岩粋€(gè)數(shù)據(jù)傳送給控制器;若發(fā)出的是讀命令,則驅(qū)動(dòng)程序等待接收數(shù)據(jù),并通過從控制器中的狀態(tài)寄存器讀入狀態(tài)字的方法,來確定數(shù)據(jù)是否到達(dá)。驅(qū)動(dòng)程序發(fā)出I/O命令后,基本的I/O操作是在設(shè)備控制器的控制下進(jìn)行的。通常,I/O操作所要完成的工作較多,需要一定的時(shí)間,如讀/寫一個(gè)盤塊中的數(shù)據(jù),此時(shí)驅(qū)動(dòng)(程序)進(jìn)程把自己阻塞起來,直到中斷到來才被喚醒。5.2數(shù)據(jù)輸入輸出控制方式5.2.1程序直接控制方式5.2.2中斷控制方式5.2.3DMA方式5.2.4通道控制方式5.2.1程序直接控制方式在處理機(jī)向設(shè)備控制器發(fā)出一條I/O指令啟動(dòng)輸入設(shè)備輸入數(shù)據(jù)時(shí),要同時(shí)把狀態(tài)寄存器中的忙/閑標(biāo)志busy置1,然后便不斷的循環(huán)測(cè)試busy。當(dāng)busy=1時(shí),表示輸入機(jī)尚未輸完一個(gè)字(符),處理機(jī)應(yīng)繼續(xù)對(duì)該標(biāo)志進(jìn)行測(cè)試,直至busy=0,表明輸入機(jī)已將輸入數(shù)據(jù)送入控制器的數(shù)據(jù)寄存器中,于是處理機(jī)將數(shù)據(jù)寄存器中的數(shù)據(jù)取出,送入內(nèi)存指定單元中,接著,再啟動(dòng)去讀下一個(gè)數(shù)據(jù),并置busy=1。5.2.2中斷控制方式

當(dāng)某進(jìn)程要啟動(dòng)某個(gè)I/O設(shè)備工作時(shí),便由CPU向相應(yīng)的設(shè)備控制器發(fā)出一條I/O命令,然后立即返回繼續(xù)執(zhí)行原來的任務(wù)。設(shè)備控制器按照該命令的要求去控制指定的I/O設(shè)備,此時(shí),CPU和I/O設(shè)備并行操作。數(shù)據(jù)進(jìn)入數(shù)據(jù)寄存器之后,控制器通過控制線向CPU發(fā)送中斷信號(hào),由CPU檢查輸入是否出錯(cuò),若無錯(cuò),便向控制器發(fā)送取走數(shù)據(jù)的信號(hào),然后再通過控制器及數(shù)據(jù)線將數(shù)據(jù)寫入指定的內(nèi)存單元。5.2.3DMA方式特點(diǎn):數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊;所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的;僅在傳送下一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。

控制/狀態(tài)寄存器CR

內(nèi)存地址寄存器MAR

數(shù)據(jù)緩沖寄存器DR

數(shù)據(jù)計(jì)數(shù)器DC

DMA控制器中設(shè)置四類寄存器:以磁盤讀入數(shù)據(jù)為例。當(dāng)CPU要從磁盤讀入數(shù)據(jù)塊時(shí),便向磁盤控制器發(fā)送一條讀命令,該命令被送入其中的命令寄存器CR中。同時(shí),還需將本次要將數(shù)據(jù)讀入的內(nèi)存起始目標(biāo)地址送入內(nèi)存地址寄存器MAR中;本次要讀的數(shù)據(jù)的字(節(jié))數(shù)則送至數(shù)據(jù)計(jì)數(shù)器DC中,還需將要從中讀取數(shù)據(jù)的磁盤源地址,直接送至DMA控制器的I/O控制邏輯上。然后啟動(dòng)DMA控制器進(jìn)行數(shù)據(jù)傳送,以后,CPU便可去處理其它任務(wù),整個(gè)的數(shù)據(jù)傳送便由DMA控制器進(jìn)行控制。5.2.4通道控制方式是DMA方式的延伸。引入:把對(duì)一個(gè)數(shù)據(jù)塊的讀(或?qū)懀閱挝坏母深A(yù),減少為對(duì)一組數(shù)據(jù)塊的讀(或?qū)懀┘坝嘘P(guān)的控制和管理為單位的干預(yù),可實(shí)現(xiàn)CPU、通道和I/O設(shè)備三者的并行工作,從而有效的提高了整個(gè)系統(tǒng)的資源利用率;通道程序: 通道是通過執(zhí)行通道程序,并與設(shè)備控制器來共同實(shí)現(xiàn)對(duì)I/O設(shè)備的控制的。通道程序是由一系列的通道指令所構(gòu)成。通道控制方式的數(shù)據(jù)輸入處理過程:當(dāng)進(jìn)程要求設(shè)備輸入數(shù)據(jù)時(shí),CPU發(fā)start指令指明I/O操作、設(shè)備號(hào)和對(duì)應(yīng)通道。對(duì)應(yīng)通道接收到CPU發(fā)來的啟動(dòng)指令start之后,把存放在內(nèi)存中的通道指令程序讀出,并設(shè)置對(duì)應(yīng)設(shè)備的I/O控制器中的控制狀態(tài)寄存器。設(shè)備根據(jù)通道指令的要求,把數(shù)據(jù)送往內(nèi)存中指定區(qū)域。若數(shù)據(jù)傳送結(jié)束,I/O控制器通過中斷請(qǐng)求線發(fā)出一個(gè)中斷信號(hào),請(qǐng)求CPU做中斷處理。中斷處理結(jié)束后CPU返回被中斷進(jìn)程處繼續(xù)執(zhí)行。

補(bǔ)充:磁盤設(shè)備的特性及其調(diào)度只有內(nèi)存才可以被CPU直接訪問,而磁盤存儲(chǔ)器是作為一種設(shè)備,由CPU通過訪問磁盤控制器來實(shí)現(xiàn)對(duì)它的訪問。一、磁盤簡介

1、磁盤系統(tǒng)的組成:磁盤+驅(qū)動(dòng)機(jī)構(gòu)+磁盤控制器

格式化后盤片的俯視示意圖,可以清楚的看到盤片被化分成等分的扇區(qū)(實(shí)際扇區(qū)當(dāng)然比這密得多)中心圓孔扇區(qū)間隙最外緣的磁道為0磁道,向中心靠近的第二條磁道為1磁道,依次類推扇區(qū)界限標(biāo)志,存放標(biāo)識(shí)扇區(qū)的編號(hào)地址等信息。存儲(chǔ)數(shù)據(jù)2、磁盤盤面的基本構(gòu)造固定頭磁盤:固定頭磁盤是每個(gè)磁道都有一個(gè)磁頭,這種磁盤的磁道轉(zhuǎn)速快,但價(jià)格較貴主要用于大容量磁盤上。移動(dòng)頭磁盤:每個(gè)盤面只有一個(gè)磁頭,此磁頭在徑向移動(dòng)以存取不同磁道上的信息,需要磁頭控制部件支持,造價(jià)較低,廣泛應(yīng)用于中小型磁盤設(shè)備。溫徹斯特盤,移動(dòng)頭磁盤,簡稱溫盤。其它劃分:軟盤+硬盤單片盤+多片盤(如A盤分單面和雙面)3、磁盤分類磁頭移動(dòng)到指定柱面的機(jī)械運(yùn)動(dòng)時(shí)間m—常數(shù)n—磁道數(shù)。因?yàn)榇蓬^移過每一條磁道的時(shí)間是相同的,所以可以用磁道數(shù)來模擬s—磁臂啟動(dòng)時(shí)間1、磁頭定位時(shí)間(尋道時(shí)間、柱面定位時(shí)間)二、溫盤的磁盤訪問時(shí)間Ta構(gòu)成磁盤旋轉(zhuǎn)到指定扇區(qū)的機(jī)械運(yùn)動(dòng)時(shí)間;它與磁盤轉(zhuǎn)速相關(guān),如:軟盤轉(zhuǎn)速可為600rpm(每分鐘轉(zhuǎn)速),硬盤可為7200—15000rpm2、扇區(qū)定位時(shí)間(即旋轉(zhuǎn)延遲時(shí)間)3、實(shí)際信息傳輸時(shí)間從指定扇區(qū)讀寫數(shù)據(jù)的時(shí)間。由于柱面定位時(shí)間在訪問時(shí)間中占主要部分,合理組成磁盤數(shù)據(jù)的存儲(chǔ)位置可提高磁盤I/O性能。4、例題精選:讀一個(gè)128KB大小的文件:例1設(shè)文件由8個(gè)連續(xù)磁道(每個(gè)磁道32個(gè)扇區(qū))上的256個(gè)扇區(qū)構(gòu)成:若柱面定位時(shí)間為20ms,旋轉(zhuǎn)延遲時(shí)間為8.3ms,32個(gè)扇區(qū)數(shù)據(jù)傳送時(shí)間為16.7ms。則總時(shí)間為:20ms+(8.3ms+16.7ms)*8=220ms例2文件由256個(gè)隨機(jī)分布的扇區(qū)構(gòu)成,每個(gè)扇區(qū)數(shù)據(jù)傳送時(shí)間為0.5ms。則總時(shí)間為:(20ms+8.3ms+0.5ms)*256=7373ms;★隨機(jī)分布時(shí)的訪問時(shí)間為連續(xù)分布時(shí)的33.5倍??梢姡m當(dāng)?shù)丶袛?shù)據(jù)存放,將有利于提高傳輸效率。(例如,系統(tǒng)工具提供的磁盤碎片整理工具)三、硬盤的調(diào)度

應(yīng)采用一種合適的調(diào)度算法來使各進(jìn)程對(duì)磁盤的訪問時(shí)間最小,考慮到在訪問磁盤的過程中,主要是磁頭的移動(dòng),即尋道時(shí)間,所以:磁盤調(diào)度的目標(biāo):就是使磁盤的平均尋道時(shí)間最少;尋道時(shí)間的衡量指標(biāo):磁頭移動(dòng)的磁道數(shù)來衡量。FCFS算法:根據(jù)進(jìn)程請(qǐng)求訪問磁盤的先后次序來進(jìn)行調(diào)度;最短尋道時(shí)間優(yōu)先算法SSTF(ShortestSeekTimeFirst):其要求訪問的磁道與當(dāng)前所在的磁道距離最短;掃描算法(SCAN):與當(dāng)前磁道距離最近,并且是在當(dāng)前掃描方向上的;循環(huán)掃描算法(CSCAN):規(guī)定磁頭單向掃描,然后立即返回重新開始。磁盤調(diào)度算法四、硬盤高速緩存

磁盤I/O速度遠(yuǎn)低于內(nèi)存的訪問速度,通常低4-6個(gè)數(shù)量級(jí)。提高磁盤I/O速度的最主要的技術(shù)便是采用磁盤高速緩存:利用內(nèi)存中的存儲(chǔ)空間來暫存從磁盤中讀出的一系列盤塊中的信息。邏輯上屬于磁盤,物理上駐留在內(nèi)存。5.3文件管理概述計(jì)算機(jī)系統(tǒng)中所使用的數(shù)據(jù)要以文件的形式存放到外存,所以對(duì)數(shù)據(jù)的使用需要涉及到文件的邏輯組織(面向用戶)以及文件在外存上的組織形式(物理組織,面向系統(tǒng)),因此操作系統(tǒng)給我們提供了文件管理功能。5.3.1文件類型和文件屬性5.3.2文件系統(tǒng)的功能5.3.1文件類型和文件屬性1.文件的類型(1)按用途分類①系統(tǒng)文件:是指系統(tǒng)軟件構(gòu)成的文件。②庫文件:是指由系統(tǒng)提供給用戶使用的各種標(biāo)準(zhǔn)過程、函數(shù)和應(yīng)用程序文件。這類文件允許用戶調(diào)用執(zhí)行,但不允許用戶修改。③用戶文件:是指用戶委托文件系統(tǒng)保存的文件。如源程序、目標(biāo)程序、原始數(shù)據(jù)等。這類文件只能由文件所有者或所有者授權(quán)用戶使用。(2)按保護(hù)級(jí)別分類①只讀文件:允許所有者或授權(quán)用戶對(duì)文件進(jìn)行讀,但不允許改寫。②讀寫文件:允許所有者或授權(quán)用戶對(duì)文件進(jìn)行讀寫,但但禁止未核準(zhǔn)用戶讀寫。③執(zhí)行文件:允許核準(zhǔn)用戶調(diào)用執(zhí)行,但不允許對(duì)它進(jìn)行讀寫。④不保護(hù)文件:不加任何訪問限制的文件。(3)按數(shù)據(jù)形式分類①源文件:是指由源程序和數(shù)據(jù)構(gòu)成的文件。通常由終端或輸入設(shè)備輸入的源程序和數(shù)據(jù)所形成的文件都屬于源文件。源文件一般由ASCII碼或漢字組成。②目標(biāo)文件:指源文件經(jīng)過編譯以后,但尚未鏈接的目標(biāo)代碼形成的文件。目標(biāo)文件屬于二進(jìn)制文件。③可執(zhí)行文件:編譯后的目標(biāo)代碼經(jīng)鏈接程序鏈接后形成的可以運(yùn)行的文件。(4)按文件性質(zhì)分類①普通文件:一般的系統(tǒng)文件及用戶文件。②目錄文件:文件目錄組成的文件。③特殊文件:將設(shè)備看成是特殊文件。2.文件的屬性①文件類型:表示文件的所屬類型。如文本類型、圖像類型、應(yīng)用程序類型等。②文件長度:記錄文件的大小。③文件的位置:表示在哪個(gè)設(shè)備或設(shè)備的什么位置可以找到它或存放它。④文件的存取控制:表示對(duì)文件的讀、寫或執(zhí)行等的控制。⑤文件的建立時(shí)間:記錄文件最后一次的修改時(shí)間。5.3.2文件系統(tǒng)的功能1.文件存儲(chǔ)空間的管理,即磁盤的管理;2.目錄管理:允許用戶用符號(hào)名訪問文件,并實(shí)現(xiàn)文件共享;3.文件的讀/寫管理;4.提供有效的存取控制功能。5.4文件的邏輯結(jié)構(gòu)可以用兩種不同的觀點(diǎn)去進(jìn)行研究文件結(jié)構(gòu):用戶觀點(diǎn)是研究用戶“思維”中的抽象文件,或稱邏輯文件,其研究的側(cè)重點(diǎn)在于為用戶提供一種邏輯結(jié)構(gòu)清晰、使用簡便的邏輯文件形式。用戶將按照這種形式去存儲(chǔ)、檢索和加工有關(guān)文件中的信息。實(shí)現(xiàn)觀點(diǎn)是研究駐留在設(shè)備“介質(zhì)”中的實(shí)際文件,或稱物理文件。它研究的側(cè)重點(diǎn)是選擇一些工作性能良好、設(shè)備利用率高的物理文件形式。系統(tǒng)將按照這種形式同外部設(shè)備打交道并控制信息的傳輸。文件的邏輯結(jié)構(gòu)可以分為兩種形式:一種是無結(jié)構(gòu)的流式文件一種是有結(jié)構(gòu)的記錄式文件流式文件是由一系列字符組成的無結(jié)構(gòu)文件,其內(nèi)部信息不再劃分結(jié)構(gòu),整個(gè)文件就是一個(gè)不可分割的整體,每次讀寫訪問流式文件可以指定任意數(shù)據(jù)長度,是當(dāng)前操作系統(tǒng)中常用的文件組織形式。如源程序文件、可執(zhí)行文件常采用這種結(jié)構(gòu)形式。

記錄式文件是一種有結(jié)構(gòu)的文件,它由一組相關(guān)記錄組成。記錄式文件記錄的是若干個(gè)對(duì)象的具體描述,每個(gè)對(duì)象的具體描述占用一條記錄,而記錄是一個(gè)具有特定意義的信息單位。記錄式文件又可分為等長記錄文件和變長記錄文件,等長記錄文件記錄的長度相等,變長記錄文件中記錄的長度可以不相等。

定長記錄文件示例例如:學(xué)生登記表文件xsdjb.dbf姓名學(xué)號(hào)籍貫通信地址郵政編碼李銘925678武昌武昌關(guān)山街125號(hào)430074馬樂925679北京北京海軍路88號(hào)100034記錄式文件的分類順序文件。文件體中的記錄長度大小相同,并按某個(gè)關(guān)鍵字項(xiàng)排序了的等長記錄文件叫順序文件。索引文件。索引文件的每個(gè)索引項(xiàng)指向一條記錄,記錄大小不必相同,記錄按輸入次序排列,不必排序,索引項(xiàng)按照記錄中的某個(gè)關(guān)鍵字項(xiàng)排序。對(duì)同一個(gè)文件,可以針對(duì)不同的關(guān)鍵字項(xiàng)建立多個(gè)索引。索引文件的記錄項(xiàng)通常較小,查找速度快,便于隨機(jī)訪問。索引順序文件。在順序文件的基礎(chǔ)上,另外建立索引文件,此即索引順序文件5.5外存分配方式一個(gè)文件存儲(chǔ)介質(zhì),格式化后就分成許多大小相等的單位--存儲(chǔ)塊(物理盤塊),在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,一般來說,每個(gè)物理塊是一個(gè)磁盤的扇區(qū),512字節(jié)。并給每個(gè)存儲(chǔ)塊有個(gè)編號(hào),稱為物理塊號(hào)。文件的物理結(jié)構(gòu)指文件在存儲(chǔ)介質(zhì)上的結(jié)構(gòu),目前有三種基本結(jié)構(gòu),即連續(xù)文件結(jié)構(gòu)鏈接文件結(jié)構(gòu)索引文件結(jié)構(gòu)1、連續(xù)文件 連續(xù)分配是最簡單的磁盤空間分配策略,該方法要求為文件分配連續(xù)的磁盤區(qū)域。 連續(xù)分配的優(yōu)點(diǎn)是,知道文件物理存儲(chǔ)位置的起始?jí)K號(hào)和文件的長度后就能快速存取,文件存取的速度比其他方法要快。其主要缺點(diǎn)是容易產(chǎn)生碎片問題,需要定期進(jìn)行存儲(chǔ)空間的緊縮。2.鏈接分配對(duì)于文件長度需要?jiǎng)討B(tài)增減及用戶不知道文件有多大的情況,往往采用鏈接分配法。文件的連接分配是用非連續(xù)的物理塊來存放信息,物理塊之間沒有物理塊號(hào)的順序要求,其中每個(gè)物理塊中有一個(gè)指針指向下一個(gè)連接的物理塊,從而使存放該文件的物理塊連接成一個(gè)鏈接隊(duì)列,文件的最后一個(gè)物理塊的指針標(biāo)記為“∧”,表示文件至本塊結(jié)束。(1)以扇區(qū)為單位的鏈接分配按文件的要求分配若干個(gè)磁盤扇區(qū),這些扇區(qū)在磁盤上可以不相鄰,屬于同一個(gè)文件的各扇區(qū)按文件記錄的邏輯次序用鏈接指針連接出來。鏈接分配的優(yōu)點(diǎn)是消除了碎片問題,能提高效率地利用外存空間,易于對(duì)文件進(jìn)行擴(kuò)充,調(diào)整指針可實(shí)現(xiàn)刪除或插入物理快的操作。鏈接分配的缺點(diǎn)是只能按隊(duì)列中的指針順序搜索,效率較低,同時(shí)鏈接指針的維護(hù)有一些開銷,且鏈接指針也要占用存儲(chǔ)空間。鏈接分配只能采用順序存取方式,不宜隨機(jī)存取。鏈接分配有以下兩種實(shí)現(xiàn)方案:(2)以區(qū)段為單位的鏈接分配

這是一種廣為使用的分配策略,其實(shí)質(zhì)是連續(xù)分配和非連續(xù)分配的結(jié)合。在每個(gè)區(qū)段內(nèi)采用連續(xù)分配,區(qū)段間則采用鏈接分配或后面介紹的索引分配。區(qū)段是由若干個(gè)(在一個(gè)特定系統(tǒng)中其數(shù)目是固定的)連續(xù)扇區(qū)組成的存儲(chǔ)塊。這種分配策略集中了連續(xù)分配與非連續(xù)分配的優(yōu)點(diǎn),所以廣為使用。

3.索引分配在索引分配方式中,系統(tǒng)為每個(gè)文件分配一個(gè)索引塊,索引塊中存放索引列表,索引表中存放的是分配該文件的物理號(hào)。文件目錄中只需要記錄索引塊的塊號(hào)即可。如果需要訪問文件中的某一個(gè)記錄時(shí),則不需從第一個(gè)物理塊開始按鏈接指針依次進(jìn)行查找,從而提高了查找速度。索引分配方式不僅支持直接訪問,而且不會(huì)產(chǎn)生碎片現(xiàn)象,文件長度受限的問題也得到了解決。其缺點(diǎn)是由于索引塊的分配增加了系統(tǒng)存儲(chǔ)空間的開銷。索引塊的大小選擇是個(gè)很重要的問題,為了節(jié)約磁盤空間,希望索引塊越小越好,但索引塊太小又無法支持大文件。該分配方式存取文件需要兩次訪問外存。首先要讀取索引塊內(nèi)容,然后再訪問存放文件的物理塊,因而降低了文件的存取速度。為了提高速度,可以在訪問文件時(shí)將索引表調(diào)入內(nèi)存中,這樣文件的存取就只需要訪問外存一次。當(dāng)文件很大時(shí),索引表也會(huì)很大,如果索引表大到一個(gè)索引塊裝不下時(shí),可以將索引表本身作為一個(gè)文件,再為它建立一個(gè)“索引表”,從而構(gòu)成了二級(jí)索引。(UNIX系統(tǒng)文件映射)補(bǔ)充:文件存儲(chǔ)空間的管理無論是程序還是數(shù)據(jù),所有信息都是以文件形式存放在外存上。外存上文件存放的空間也叫作“文件存儲(chǔ)空間”。文件存儲(chǔ)空間是系統(tǒng)與多個(gè)用戶共享的資源,用戶只要給出文件名就可以實(shí)現(xiàn)按名存取。系統(tǒng)將外存空間分成若干大小相等的物理塊,以塊為單位來交換信息。因此,需要對(duì)外存的物理塊進(jìn)行管理。比如,建立空閑管理表,標(biāo)出哪些塊正在使用,以便建立文件時(shí)能迅速、合理、方便地找出空白存儲(chǔ)塊進(jìn)行分配。將文件釋放出來的存儲(chǔ)塊回收,歸還給系統(tǒng)。文件存儲(chǔ)空間的管理,實(shí)際上就是一個(gè)空閑塊的組織和管理問題。三種常用的管理方法:空閑塊表或空閑塊鏈,位示圖,空閑塊成組鏈接法與可變分區(qū)存儲(chǔ)管理方式中的空閑塊表和空閑塊鏈?zhǔn)峭耆嗨频?。空閑塊表表目的內(nèi)容至少包括:第一空白塊地址(物理塊號(hào))、空白塊個(gè)數(shù)。一、空閑塊表和空閑塊鏈

1、空閑塊表

空閑塊表適合于連續(xù)組織的文件,因?yàn)樵诜峙湮募r(shí)按文件尺寸申請(qǐng)一組連續(xù)的空閑塊,撤消文件時(shí)歸還這組連續(xù)的空閑塊區(qū)。與可變分區(qū)分配算法相似,可采用最先適應(yīng)、最壞適應(yīng)、最佳適應(yīng)算法。由于空閑塊區(qū)的個(gè)數(shù)是動(dòng)態(tài)改變的,導(dǎo)致空閑塊表目個(gè)數(shù)不能預(yù)先確定,因此可能會(huì)產(chǎn)生表目溢出(表較小時(shí))或表目浪費(fèi)(表較大時(shí))。分配:當(dāng)請(qǐng)求的塊數(shù)正好等于表目中的塊數(shù)時(shí),就把這些塊全部分配給該文件并把該項(xiàng)標(biāo)記為空項(xiàng)。如果該項(xiàng)中的塊數(shù)多余請(qǐng)求的塊數(shù),則把多余的塊號(hào)留在表中,并修改該表中的各項(xiàng)。回收:如果被釋放的物理塊號(hào)與某一目錄項(xiàng)中的物理塊號(hào)相鄰,還要進(jìn)行合并空白文件。空閑塊鏈把文件存儲(chǔ)設(shè)備上的所有空閑塊連接在一起,這是非連續(xù)結(jié)構(gòu)。適用于各種物理組織的文件。注意,對(duì)空閑塊鏈操作時(shí)應(yīng)互斥。當(dāng)需要分配空白塊時(shí)從鏈?zhǔn)走M(jìn)行,所以在主存中要保存一個(gè)鏈?zhǔn)字羔?,它指向第一個(gè)空白塊,當(dāng)回收時(shí),把回收塊掛在空白塊鏈尾上。

2、空閑塊鏈位示圖是外存空間的存儲(chǔ)映射圖。位示圖是系統(tǒng)在內(nèi)存中劃分出的若干字節(jié)的集合,用來指示磁盤存儲(chǔ)情況。位示圖中的每一位(bit)對(duì)應(yīng)外存空間的一個(gè)物理塊。若該位為“1”,表示對(duì)應(yīng)塊被占用;若該位為“0”,表示對(duì)應(yīng)物理塊空閑。設(shè)整個(gè)文件空間有n塊,那么可用n位構(gòu)成位示圖二、位示圖(bitmap)例:設(shè)想一個(gè)磁盤組共有16個(gè)柱面,每個(gè)柱面有16個(gè)磁頭尋道,每個(gè)磁道分為16個(gè)扇區(qū),那么整個(gè)磁盤空間的扇區(qū)數(shù)為:

16*16*16=4096(個(gè))如果一個(gè)扇區(qū)被定義為一個(gè)存儲(chǔ)塊,那么,用字長位16位的存儲(chǔ)單元來構(gòu)造位示圖,共需要256個(gè)字。0位1位15位4095位0/10/10/1………分配:順序掃描位示圖,找到一組為0的盤塊,將其轉(zhuǎn)換成對(duì)應(yīng)的盤塊號(hào),并置狀態(tài)為1?;厥眨簩⒈P塊號(hào)轉(zhuǎn)換成行號(hào)和列號(hào),修改狀態(tài)為0。注意:系統(tǒng)工作時(shí)位示圖應(yīng)駐留主存,但必須定時(shí)地把主存中的位示圖復(fù)制到外存保存。這樣,萬一文件系統(tǒng)發(fā)生故障,可以依據(jù)外存的位示圖副本修復(fù)文件系統(tǒng)。三、成組鏈接法1、UNIX系統(tǒng)采用空閑塊成組鏈接法對(duì)磁盤空間的空閑塊加以組織2、思路:100個(gè)空閑塊劃歸1組,將各組中的盤塊號(hào)存放在其前組中的第1個(gè)空閑塊中,第1組的空閑盤塊號(hào)放入系統(tǒng)專用的超級(jí)塊(superblock)中。

最后組99塊,第1組不足100塊,其他各組均為100塊。文件存儲(chǔ)空間不會(huì)恰好為100的整數(shù)倍,所以第1組小于100。各組(最后組除外?)第1塊和超級(jí)塊內(nèi)設(shè)置一個(gè)容量為100

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論