目錄
4.1 進(jìn)程管理
4.1.1 操作系統(tǒng)概述
4.1.2 進(jìn)程組成和狀態(tài)
4.1.3 前趨圖
4.1.4?進(jìn)程同步與互斥
4.1.5?進(jìn)程調(diào)度
4.1.6?死鎖
4.1.7?線程
4.2 存儲(chǔ)管理
4.2.1 分區(qū)存儲(chǔ)管理
4.2.3?分頁(yè)存儲(chǔ)管理
4.2.4?分段存儲(chǔ)管理
4.2.5?段頁(yè)式存儲(chǔ)管理
4.3 設(shè)備管理
4.3.1 設(shè)備管理概述
4.3.2?I/0軟件
4.3.3?設(shè)備管理技術(shù)
4.4 文件管理
4.4.1 文件管理概述
4.4.2?索引文件結(jié)構(gòu)
4.4.3?文件目錄
4.4.4?文件存儲(chǔ)空間管理
前言:
筆記來(lái)自《文老師軟考數(shù)據(jù)庫(kù)》教材精講,精講視頻在b站,某寶都可以找到,個(gè)人感覺(jué)通俗易懂。
4.1 進(jìn)程管理
4.1.1 操作系統(tǒng)概述
- 操作系統(tǒng)定義:能有效地組織和管理系統(tǒng)中的各種軟/硬件資源,合理地組織計(jì)算機(jī)系統(tǒng)工作流程,控制程序的執(zhí)行,并且向用戶提供一個(gè)良好的工作環(huán)境和友好的接口。
- 操作系統(tǒng)有兩個(gè)重要的作用:
第一,通過(guò)資源管理提高計(jì)算機(jī)系統(tǒng)的效率;
第二,改善人機(jī)界面向用戶提供友好的工作環(huán)境。 - 操作系統(tǒng)的4個(gè)特征是并發(fā)性、共享性、虛擬性和不確定性。
-
操作系統(tǒng)的功能
(1)進(jìn)程管理。實(shí)質(zhì)上是對(duì)處理機(jī)的執(zhí)行“時(shí)間”進(jìn)行管理采用多道程序等技術(shù)將CPU的時(shí)間合理地分配給每個(gè)任務(wù),主要包括進(jìn)程控制.進(jìn)程同步、進(jìn)程通信和進(jìn)程調(diào)度。
(2)文件管理。主要包括文件存儲(chǔ)空間管理、目錄管理、文件的讀/寫(xiě)管理和存取控制。
(3)存儲(chǔ)管理。存儲(chǔ)管理是對(duì)主存器“空間”進(jìn)行管理,主要包括存儲(chǔ)分配與回收、存儲(chǔ)保護(hù)、地址映射 (變換)和主存擴(kuò)充。
(4)設(shè)備管理。實(shí)質(zhì)是對(duì)硬件設(shè)備的管理,包括對(duì)輸入/輸出設(shè)備的分配、啟動(dòng)、完成和回收。
(5)作業(yè)管理。包括任務(wù)、界面管理、人機(jī)交互、圖形界面、語(yǔ)音控制和虛擬現(xiàn)實(shí)等。 -
操作系統(tǒng)的分類:
(1)批處理操作系統(tǒng):?jiǎn)蔚琅幚砗投嗟琅幚?主機(jī)與外設(shè)可并行)。
(2)分時(shí)操作系統(tǒng):一個(gè)計(jì)算機(jī)系統(tǒng)與多個(gè)終端設(shè)備連接。將CPU的工作時(shí)間劃分為許多很短的時(shí)間片,輪流為各個(gè)終端的用戶服務(wù)。
(3)實(shí)時(shí)操作系統(tǒng):實(shí)時(shí)是指計(jì)算機(jī)對(duì)于外來(lái)信息能夠以足夠快的速度進(jìn)行處理并在被控對(duì)象允許的時(shí)間范圍內(nèi)做出快速反應(yīng)。實(shí)時(shí)系統(tǒng)對(duì)交互能力要求不高但要求可靠性有保障。
(4)網(wǎng)絡(luò)操作系統(tǒng):是使聯(lián)網(wǎng)計(jì)算機(jī)能方便而有效地共享網(wǎng)絡(luò)資源,為網(wǎng)絡(luò)用戶提供各種服務(wù)的軟件和有關(guān)協(xié)議的集合。三種模式:集中模式、客戶端/服務(wù)器模式、對(duì)等模式。
(5)分布式操作系統(tǒng):分布式計(jì)算機(jī)系統(tǒng)是由多個(gè)分散的計(jì)算機(jī)經(jīng)連接而成的計(jì)算機(jī)系統(tǒng),系統(tǒng)中的計(jì)算機(jī)無(wú)主、次之分,任意兩臺(tái)計(jì)算機(jī)可以通過(guò)通信交換信息。
(6)微型計(jì)算機(jī)操作系統(tǒng):簡(jiǎn)稱微機(jī)操作系統(tǒng),常用的有Windows、Mac os、LinuX。? -
嵌入式操作系統(tǒng)主要特點(diǎn):
(1)微型化。從性能和成本角度考慮,希望占用的資源和系統(tǒng)代碼量少,如內(nèi)存少、字長(zhǎng)短、運(yùn)行速度有限、能源少(用微小型電池)
(2)可定制。從減少成本和縮短研發(fā)周期考慮,要求嵌入式操作系統(tǒng)能運(yùn)行在不同的微處理器平臺(tái)上,能針對(duì)硬件變化進(jìn)行結(jié)構(gòu)與功能上的配置,以滿足不同應(yīng)用需要。
(3)實(shí)時(shí)性。嵌入式操作系統(tǒng)主要應(yīng)用于過(guò)程控制、數(shù)據(jù)采集、傳輸通信、多媒體信息及關(guān)鍵要害領(lǐng)域需要迅速響應(yīng)的場(chǎng)合,所以對(duì)實(shí)時(shí)性要求較高。
(4)可靠性。系統(tǒng)構(gòu)件、模塊和體系結(jié)構(gòu)必須達(dá)到應(yīng)有的可靠性,對(duì)關(guān)鍵要害應(yīng)用還要提供容錯(cuò)和防故障措施。
(5)易移植性。為了提高系統(tǒng)的易移植性,通常采用硬件抽象層和板級(jí)支撐包的底層設(shè)計(jì)技術(shù)。 - 嵌入式系統(tǒng)初始化過(guò)程按照自底向上、從硬件到軟件的次序依次為:片級(jí)初始化>板級(jí)初始化>系統(tǒng)初始化。?
4.1.2 進(jìn)程組成和狀態(tài)
- 進(jìn)程的組成:進(jìn)程控制塊PCB(唯一標(biāo)志)、程序(描述進(jìn)程要做什么)、數(shù)據(jù)(存放進(jìn)程執(zhí)行時(shí)所需數(shù)據(jù))。
- 進(jìn)程基礎(chǔ)的狀態(tài)是下左圖中的三態(tài)圖。需要熟練掌握左下圖中的進(jìn)程三態(tài)之間的轉(zhuǎn)換。
4.1.3 前趨圖
- 用來(lái)表示哪些任務(wù)可以并行執(zhí)行,哪些任務(wù)之間有順序關(guān)系,具體如下圖可知,ABC可以并行執(zhí)行,但是必須AB C都執(zhí)行完后,才能執(zhí)行D,這就確定了兩點(diǎn):任務(wù)間的并行、任務(wù)間的先后順序。
4.1.4?進(jìn)程同步與互斥
- 臨界資源:各進(jìn)程間需要以互斥方式對(duì)其進(jìn)行訪問(wèn)的資源。
- 臨界區(qū):指進(jìn)程中對(duì)臨界資源實(shí)施操作的那段程序。本質(zhì)是一段程序代碼。
- 互斥:某資源(即臨界資源)在同一時(shí)間內(nèi)只能由一個(gè)任務(wù)單獨(dú)使用,使用時(shí)需要加鎖,使用完后解鎖才能被其他任務(wù)使用;如打印機(jī)。
- 同步:多個(gè)任務(wù)可以并發(fā)執(zhí)行,只不過(guò)有速度上的差異,在一定情況下停下等待,不存在資源是否單獨(dú)或共享的問(wèn)題;如自行車(chē)和汽車(chē)
- 互斥信號(hào)量:對(duì)臨界資源采用互斥訪問(wèn),使用互斥信號(hào)量后其他進(jìn)程無(wú)法訪問(wèn),初值為1。同步信號(hào)量:對(duì)共享資源的訪問(wèn)控制,初值一般是共享資源的數(shù)量
【PV操作】
- P操作:申請(qǐng)資源,S=S-1,若S>=0,則執(zhí)行P操作的進(jìn)程繼續(xù)執(zhí)行;若S<0,則置該進(jìn)程為阻塞狀態(tài)(因?yàn)闊o(wú)可用資源)并將其插入阻塞隊(duì)列。
- V操作:釋放資源,S=S+1,若S>0,則執(zhí)行V操作的進(jìn)程繼續(xù)執(zhí)行;若S<=0并將其插入就緒隊(duì)列(此時(shí)因?yàn)槿鄙儋Y源被P操作則從阻塞狀態(tài)喚醒一個(gè)進(jìn)程,阻塞的進(jìn)程可以繼續(xù)執(zhí)行),然后執(zhí)行V操作的進(jìn)程繼續(xù)。
- 經(jīng)典問(wèn)題:生產(chǎn)者和消費(fèi)者的問(wèn)題三個(gè)信號(hào)量:互斥信號(hào)量S0(倉(cāng)庫(kù)獨(dú)立使用權(quán)),同步信號(hào)量S1(倉(cāng)庫(kù)空閑個(gè)數(shù)),同步信號(hào)量S2(倉(cāng)庫(kù)商品個(gè)數(shù))
4.1.5?進(jìn)程調(diào)度
- 進(jìn)程調(diào)度方式是指當(dāng)有更高優(yōu)先級(jí)的進(jìn)程到來(lái)時(shí)如何分配CPU。分為可剝奪和不可剝奪兩種,可剝奪指當(dāng)有更高優(yōu)先級(jí)進(jìn)程到來(lái)時(shí),強(qiáng)行將正在運(yùn)行進(jìn)程的CPU分配給高優(yōu)先級(jí)進(jìn)程;不可剝奪是指高優(yōu)先級(jí)進(jìn)程必須等待當(dāng)前進(jìn)程自動(dòng)釋放CPU。
- 在某些操作系統(tǒng)中,一個(gè)作業(yè)從提交到完成需要經(jīng)歷高、中、低三級(jí)調(diào)度
(1)高級(jí)調(diào)度。高級(jí)調(diào)度又稱“長(zhǎng)調(diào)度”“作業(yè)調(diào)度”或“接納調(diào)度”,它決定處于輸入池中的哪個(gè)后備作業(yè)可以調(diào)入主系統(tǒng)做好運(yùn)行的準(zhǔn)備,成為一個(gè)或一組就緒進(jìn)程。在系統(tǒng)中一個(gè)作業(yè)只需經(jīng)過(guò)一次高級(jí)調(diào)度。
(2)中級(jí)調(diào)度。中級(jí)調(diào)度又稱“中程調(diào)度”或“對(duì)換調(diào)度”,它決定處于交換區(qū)中的哪個(gè)就緒進(jìn)程可以調(diào)入內(nèi)存,以便直接參與對(duì)CPU的競(jìng)爭(zhēng)。
(3)低級(jí)調(diào)度。低級(jí)調(diào)度又稱“短程調(diào)度”或“進(jìn)程調(diào)度”它決定處于內(nèi)存中的哪個(gè)就緒進(jìn)程可以占用CPU。低級(jí)調(diào)度是操作系統(tǒng)中最活躍、最重要的調(diào)度程序,對(duì)系統(tǒng)的影響很大。 - 調(diào)度算法:
(1)先來(lái)先服務(wù)FCFS:先到達(dá)的進(jìn)程優(yōu)先分配CPU。用于宏觀調(diào)度。
(2)時(shí)間片輪轉(zhuǎn):分配給每個(gè)進(jìn)程CPU時(shí)間片,輪流使用CPU,每個(gè)進(jìn)程時(shí)間片大小相同,很公平,用于微觀調(diào)度優(yōu)先級(jí)調(diào)度:每個(gè)進(jìn)程都擁有一個(gè)優(yōu)先級(jí),優(yōu)先級(jí)大的先分配CPU。
(3)多級(jí)反饋調(diào)度:時(shí)間片輪轉(zhuǎn)和優(yōu)先級(jí)調(diào)度結(jié)合而成,設(shè)置多個(gè)就緒隊(duì)列1,2,3...n,每個(gè)隊(duì)列分別賦予不同的優(yōu)先級(jí),分配不同的時(shí)間片長(zhǎng)度;新進(jìn)程先進(jìn)入隊(duì)列1的末屬,按FCFS原則,執(zhí)行隊(duì)列1的時(shí)間片:若未能執(zhí)行完進(jìn)程,則轉(zhuǎn)入隊(duì)列2的末尾,如此重復(fù)。
4.1.6?死鎖
- 當(dāng)一個(gè)進(jìn)程在等待永遠(yuǎn)不可能發(fā)生的事件時(shí),就會(huì)產(chǎn)生死鎖,若系統(tǒng)中有多個(gè)進(jìn)程處于死鎖狀態(tài),就會(huì)造成系統(tǒng)死鎖。
- 死鎖產(chǎn)生的四個(gè)必要條件: 資源互斥、每個(gè)進(jìn)程占有資源并等待其他資源系統(tǒng)不能剝奪進(jìn)程資源、進(jìn)程資源圖是一個(gè)環(huán)路。
- 死鎖產(chǎn)生后解決措施是打破四大條件,有下列方法:
(1)死鎖預(yù)防采用某種策略限制并發(fā)進(jìn)程對(duì)于資源的請(qǐng)求,破壞死鎖產(chǎn)生的四個(gè)條件之一使系統(tǒng)任何時(shí)刻都不滿足死鎖的條件。
(2)死鎖避免一般采用銀行家算法來(lái)避免,銀行家算法,就是提前計(jì)算出一條不會(huì)死鎖的資源分配方法,才分配資源,否則不分配資源,相當(dāng)于借貸,考慮對(duì)方還得起才借錢(qián),提前考慮好以后,就可以避免死鎖。
(3)死鎖檢測(cè):允許死鎖產(chǎn)生,但系統(tǒng)定時(shí)運(yùn)行一個(gè)檢測(cè)死鎖的程序,若檢測(cè)到系統(tǒng)中發(fā)生死鎖,則設(shè)法加以解除。
(4)死鎖解除:即死鎖發(fā)生后的解除方法,如強(qiáng)制剝奪資源,撤銷(xiāo)進(jìn)程等。 - 死鎖資源計(jì)算:系統(tǒng)內(nèi)有n個(gè)進(jìn)程,每個(gè)進(jìn)程都需要R個(gè)資源,那么其發(fā)生死鎖的最大資源數(shù)為n*(R-1)。其不發(fā)生死鎖的最小資源數(shù)為n*(R-1)+1。
4.1.7?線程
- 傳統(tǒng)的進(jìn)程有兩個(gè)屬性:可擁有資源的獨(dú)立單位;可獨(dú)立調(diào)度和分配的基本單位。
- 引入線程的原因是進(jìn)程在創(chuàng)建、撤銷(xiāo)和切換中,系統(tǒng)必須為之付出較大的時(shí)空開(kāi)銷(xiāo),故在系統(tǒng)中設(shè)置的進(jìn)程數(shù)目不宜過(guò)多,進(jìn)程切換的頻率不宜太高,這就限制了并發(fā)程度的提高。引入線程后,將傳統(tǒng)進(jìn)程的兩個(gè)基本屬性分開(kāi),線程作為調(diào)度和分配的基本單位,進(jìn)程作為獨(dú)立分配資源的單位。。用戶可以通過(guò)創(chuàng)建線程來(lái)完成任務(wù),以減少程序并發(fā)執(zhí)行時(shí)付出的時(shí)空開(kāi)銷(xiāo)。
- 線程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立分配和調(diào)度的基本單位。線程基本上不擁有資源,只擁有一點(diǎn)運(yùn)行中必不可少的資源(如程序計(jì)數(shù)器、一組寄存器和棧),它可與同屬一個(gè)進(jìn)程的其他線程共享進(jìn)程所擁有的全部資源,例如進(jìn)程的公共數(shù)據(jù)、全局變量、代碼、文件等資源,但不能共享線程獨(dú)有的資源如線程的棧指針等標(biāo)識(shí)數(shù)據(jù)。
4.2 存儲(chǔ)管理
4.2.1 分區(qū)存儲(chǔ)管理
- 所謂分區(qū)存儲(chǔ)組織,就是整存,將某進(jìn)程運(yùn)行所需的內(nèi)存整體一起分配給它然后再執(zhí)行。有三種分區(qū)方式:固定分區(qū):靜態(tài)分區(qū)方法,將主存分為若千個(gè)固定的分區(qū),將要運(yùn)行的作業(yè)裝配進(jìn)去,由于分區(qū)固定,大小和作業(yè)需要的大小不同,會(huì)產(chǎn)生內(nèi)部碎片
- 可變分區(qū):動(dòng)態(tài)分方法,主存空間的分區(qū)是在作業(yè)轉(zhuǎn)入時(shí)劃分,正好劃分為作業(yè)需要的大小,這樣就不存在內(nèi)部碎片,但容易將整片主存空間切割成許多塊,會(huì)產(chǎn)生外部碎片??勺兎謪^(qū)的算法如下系統(tǒng)分配內(nèi)存的算法有很多,如下圖所示,根據(jù)分配前的內(nèi)存情況,還需要分配9K空間,對(duì)不同算法的結(jié)果介紹如下:
- 可重定位分區(qū)可以解決碎片問(wèn)題,移動(dòng)所有已經(jīng)分配好的區(qū)域,使其成為個(gè)連續(xù)的區(qū)域,這樣其他外部細(xì)小的分區(qū)碎片可以合并為大的分區(qū),滿足作業(yè)要求。只在外部作業(yè)請(qǐng)求空間得不到滿足時(shí)進(jìn)行。
4.2.3?分頁(yè)存儲(chǔ)管理
- 邏輯頁(yè)分為頁(yè)號(hào)和頁(yè)內(nèi)地址,頁(yè)內(nèi)地址就是物理偏移地址,而頁(yè)號(hào)與物理塊號(hào)并非按序?qū)?yīng)的,需要查詢頁(yè)表,才能得知頁(yè)號(hào)對(duì)應(yīng)的物理塊號(hào),再用物理塊號(hào)加上偏移地址才得出了真正運(yùn)行時(shí)的物理地址。
優(yōu)點(diǎn):利用率高,碎片小,分配及管理簡(jiǎn)單
缺點(diǎn):增加了系統(tǒng)開(kāi)銷(xiāo),可能產(chǎn)生抖動(dòng)現(xiàn)象。
- 頁(yè)面置換算法:
(1)最優(yōu)算法:OPT,理論上的算法無(wú)法實(shí)現(xiàn),是在進(jìn)程執(zhí)行完后進(jìn)行的最佳效率計(jì)算,用來(lái)讓其他算法比較差距。原理是選擇未來(lái)最長(zhǎng)時(shí)間內(nèi)不被訪問(wèn)的頁(yè)面置換,這樣可以保證未來(lái)執(zhí)行的都是馬上要訪問(wèn)的。
(2)先進(jìn)先出算法:FIFO,先調(diào)入內(nèi)存的頁(yè)先被置換淘汰,會(huì)產(chǎn)生抖動(dòng)現(xiàn)象,即分配的頁(yè)數(shù)越多,缺頁(yè)率可能越多(即效率越低)
(3)最近最少使用:LRU,在最近的過(guò)去,進(jìn)程執(zhí)行過(guò)程中,過(guò)去最少使用的頁(yè)面被置換淘汰,,根據(jù)局部性原理,這種方式效率高,且不會(huì)產(chǎn)生抖動(dòng)現(xiàn)象,使用大量計(jì)數(shù)器但是沒(méi)有LFU多
(4)淘汰原則:優(yōu)先淘汰最近未訪問(wèn)的,而后淘汰最近未被修改的頁(yè)面
【快表】
- 是一塊小容量的相聯(lián)存儲(chǔ)器,由快速存儲(chǔ)器組成,按內(nèi)容訪問(wèn),速度快,并且可以從硬件上保證按內(nèi)容并行查找,一般用來(lái)存放當(dāng)前訪問(wèn)最頻繁的少數(shù)活動(dòng)頁(yè)面的頁(yè)號(hào)。
- 快表是將頁(yè)表存于cache中;慢表是將頁(yè)表存于內(nèi)存上。慢表需要訪問(wèn)兩次內(nèi)存才能取出頁(yè),而快表是訪問(wèn)一次cache和一次內(nèi)存,因此更快。
4.2.4?分段存儲(chǔ)管理
- 將進(jìn)程空間分為一個(gè)個(gè)段,每段也有段號(hào)和段內(nèi)地址,與頁(yè)式存儲(chǔ)不同的是每段物理大小不同,分段是根據(jù)邏輯整體分段的,因此,段表也與頁(yè)表的內(nèi)容不同,頁(yè)表中直接是邏輯頁(yè)號(hào)對(duì)應(yīng)物理塊號(hào),而下圖所示,段表有段長(zhǎng)和基址兩個(gè)屬性,才能確定一個(gè)邏輯段在物理段中的位置。
?
4.2.5?段頁(yè)式存儲(chǔ)管理
- 對(duì)進(jìn)程空間先分段,后分頁(yè),具體原理圖和優(yōu)缺點(diǎn)如下!優(yōu)點(diǎn):空間浪費(fèi)小、存儲(chǔ)共享容易、存儲(chǔ)保護(hù)容易、能動(dòng)態(tài)鏈接缺點(diǎn):由于管理軟件的增加,復(fù)雜性和開(kāi)銷(xiāo)也隨之增加,需要的硬件以及占用的內(nèi)容也有所增加,使得執(zhí)行速度大大下降
4.3 設(shè)備管理
4.3.1 設(shè)備管理概述
-
設(shè)備是計(jì)算機(jī)系統(tǒng)與外界交互的工具,具體負(fù)責(zé)計(jì)算機(jī)與外部的輸入/輸出工作所以常稱為外部設(shè)備(簡(jiǎn)稱外設(shè))。在計(jì)算機(jī)系統(tǒng)中,將負(fù)責(zé)管理設(shè)備和輸入/輸出的機(jī)構(gòu)稱為I/0系統(tǒng)。因此,i/0 系統(tǒng)由設(shè)備、控制器、通道(具有通道的計(jì)算I0 設(shè)香機(jī)系統(tǒng))、總線和I/0 軟件組成。
-
設(shè)備的分類:
(1)按數(shù)據(jù)組織分類:塊設(shè)備、字符設(shè)備;
(2)按照設(shè)備功能分類:輸入設(shè)備、輸出設(shè)備、存儲(chǔ)設(shè)備、網(wǎng)絡(luò)聯(lián)網(wǎng)設(shè)備、供電設(shè)備;
(3)源分配角度分類:獨(dú)占設(shè)備資共享設(shè)備和虛擬設(shè)備;
(4)數(shù)據(jù)傳輸速率分類:低速設(shè)備、中速設(shè)備、高速設(shè)備。 -
設(shè)備管理的任務(wù)是保證在多道程序環(huán)境下,當(dāng)多個(gè)進(jìn)程競(jìng)爭(zhēng)使用設(shè)備時(shí),按定的策略分配和管理各種設(shè)備,控制設(shè)備的各種操作,完成//0 設(shè)備與主存之間的數(shù)據(jù)交換。
-
設(shè)備管理的主要功能是動(dòng)態(tài)地掌握并記錄設(shè)備的狀態(tài)、設(shè)備分配和釋放、緩沖區(qū)管理、實(shí)現(xiàn)物理1/0 設(shè)備的操作、提供設(shè)備使用的用戶接口及設(shè)備的訪問(wèn)和控制
4.3.2?I/0軟件
- I/O設(shè)備管理軟件的所有層次及每一層功能如下圖:
實(shí)例:當(dāng)用戶程序試圖讀一個(gè)硬盤(pán)文件時(shí),需要通過(guò)操作系統(tǒng)實(shí)現(xiàn)這一操作與設(shè)備無(wú)關(guān)軟件檢查高速緩存中有無(wú)要讀的數(shù)據(jù)塊,若沒(méi)有,則調(diào)用設(shè)備驅(qū)動(dòng)程序,向i/0 硬件發(fā)出一個(gè)請(qǐng)求。然后,用戶進(jìn)程阻塞并等待磁盤(pán)操作的完成當(dāng)磁盤(pán)操作完成時(shí),硬件產(chǎn)生一個(gè)中斷,轉(zhuǎn)入中斷處理程序。中斷處理程序檢查中斷的原因,認(rèn)識(shí)到這時(shí)磁盤(pán)讀取操作已經(jīng)完成,于是喚醒用戶進(jìn)程取回從磁盤(pán)讀取的信息,從而結(jié)束此次I/0 請(qǐng)求。用戶進(jìn)程在得到了所需的硬盤(pán)文件內(nèi)容之,后繼續(xù)運(yùn)行。
4.3.3?設(shè)備管理技術(shù)
- 一臺(tái)獨(dú)占設(shè)備,在同一時(shí)間只能由一個(gè)進(jìn)程使用,其他進(jìn)程只能等待,且不知道什么時(shí)候打印機(jī)空閑,此時(shí),極大的浪費(fèi)了外設(shè)的工作效率。
- 引入SPOOLING (外圍設(shè)備聯(lián)機(jī)操作)技術(shù),就是在外設(shè)上建立兩個(gè)數(shù)據(jù)緩沖區(qū),分別稱為輸入井和輸出井,這樣,無(wú)論多少進(jìn)程,都可以共用這一臺(tái)打印機(jī),只需要將打印命令發(fā)出,數(shù)據(jù)就會(huì)排隊(duì)存儲(chǔ)在緩沖區(qū)中,打印機(jī)會(huì)自動(dòng)按順序打印,實(shí)現(xiàn)了物理外設(shè)的共享,使得每個(gè)進(jìn)程都感覺(jué)在使用一個(gè)打印機(jī),這就是物理設(shè)備的虛擬化。如下圖所示
4.4 文件管理
4.4.1 文件管理概述
- 文件是具有符號(hào)名的、在邏輯上具有完整意義的一組相關(guān)信息項(xiàng)的集合。
- 信息項(xiàng)是構(gòu)成文件內(nèi)容的基本單位,可以是一個(gè)字符,也可以是一個(gè)記錄記錄可以等長(zhǎng),也可以不等長(zhǎng)。一個(gè)文件包括文件體和文件說(shuō)明。文件體是文件真實(shí)的內(nèi)容。文件說(shuō)明是操作系統(tǒng)為了管理文件所用到的信息,包括文件名文件內(nèi)部標(biāo)識(shí)文件的類型、文件存儲(chǔ)地址、文件的長(zhǎng)度、訪問(wèn)權(quán)限、建立時(shí)間和訪問(wèn)時(shí)間等。
- 文件管理系統(tǒng),就是操作系統(tǒng)中實(shí)現(xiàn)文件統(tǒng)一管理的一組軟件和相關(guān)數(shù)據(jù)的集合,專門(mén)負(fù)責(zé)管理和存取文件信息的軟件機(jī)構(gòu),簡(jiǎn)稱文件系統(tǒng)。文件系統(tǒng)的功能包括按名存取;統(tǒng)一的用戶接口;并發(fā)訪問(wèn)和控制;安全性控制;優(yōu)化性能;差錯(cuò)恢復(fù)。
- 文件的類型:
(1)按文件性質(zhì)和用途可將文件分為系統(tǒng)文件、庫(kù)文件和用戶文件;
(2)按信息保存期限分類可將文件分為臨時(shí)文件、檔案文件和永久文件;
(3)按文件的保護(hù)方式分類可將文件分為只讀文件、讀/寫(xiě)文件、可執(zhí)行文件和不保護(hù)文件;(4) UNIX 系統(tǒng)將文件分為普通文件、目錄文件和設(shè)備文件 (特殊文件)。 - 文件的邏輯結(jié)構(gòu)可分為兩大類:有結(jié)構(gòu)的記錄式文件;無(wú)結(jié)構(gòu)的流式文件
- 文件的物理結(jié)構(gòu)是指文件在物理存儲(chǔ)設(shè)備上的存放方法,包括:
(1)連續(xù)結(jié)構(gòu)。連續(xù)結(jié)構(gòu)也稱順序結(jié)構(gòu),它將邏輯上連續(xù)的文件信息 (如記錄)依次存放在連續(xù)編號(hào)的物理塊上。
(2)鏈接結(jié)構(gòu)。鏈接結(jié)構(gòu)也稱串聯(lián)結(jié)構(gòu),它是將邏輯上連續(xù)的文件信息 (如記錄)存放在不連續(xù)的物理塊上,每個(gè)物理塊設(shè)有一個(gè)指針指向下一個(gè)物理塊。
(3)索引結(jié)構(gòu)。將邏輯上連續(xù)的文件信息 (如記錄)存放在不連續(xù)的物理塊中系統(tǒng)為每個(gè)文件建立一張索引表。索引表記錄了文件信息所在的邏輯塊號(hào)對(duì)應(yīng)的物理塊號(hào),并將索引表的起始地址放在與文件對(duì)應(yīng)的文件目錄項(xiàng)中。
(4)多個(gè)物理塊的索引表。索引表是在文件創(chuàng)建時(shí)由系統(tǒng)自動(dòng)建立的,并與文件一起存放在同一文件卷上。根據(jù)一個(gè)文件大小的不同,其索引表占用物理塊的個(gè)數(shù)不等,一般占一個(gè)或幾個(gè)物理塊。?
4.4.2?索引文件結(jié)構(gòu)
- 如圖所示,系統(tǒng)中有13個(gè)索引節(jié)點(diǎn),0-9為直接索引,即每個(gè)索引節(jié)點(diǎn)存放的是內(nèi)容,假設(shè)每個(gè)物理盤(pán)大小為4KB,共可存4KB*10=40KB數(shù)據(jù);
- 10號(hào)索引節(jié)點(diǎn)為一級(jí)間接索引節(jié)點(diǎn),大小為4KB,存放的并非直接數(shù)據(jù),而是鏈接到直接物理盤(pán)塊的地址,假設(shè)每個(gè)地址占4B,則共有1024個(gè)地址,對(duì)應(yīng)1024個(gè)物理盤(pán),可存1024*4KB=4096KB數(shù)據(jù)。
- 二級(jí)索引節(jié)點(diǎn)類似,直接盤(pán)存放一級(jí)地址,一級(jí)地址再存放物理盤(pán)快地址,而后鏈接到存放數(shù)據(jù)的物理盤(pán)塊,容量又?jǐn)U大了一個(gè)數(shù)量級(jí),為1024*1024*4KB數(shù)據(jù)。
4.4.3?文件目錄
- 文件控制塊中包含以下三類信息:基本信息類、存取控制信息類和使用信息類。
(1)基本信息類。例如文件名、文件的物理地址、文件長(zhǎng)度和文件塊數(shù)等。
(2)存取控制信息類。文件的存取權(quán)限,像UNIX 用戶分成文件主、同組用戶和一般用戶三類,這三類用戶的讀/寫(xiě)執(zhí)行RWX權(quán)限。
(3)使用信息類。文件建立日期、最后一次修改日期、最后一次訪問(wèn)的日期、當(dāng)前使用的信息(如打開(kāi)文件的進(jìn)程數(shù)在文件上的等待隊(duì)列)等。 - 文件控制塊的有序集合稱為文件目錄
- 相對(duì)路徑:是從當(dāng)前路徑開(kāi)始的路徑
絕對(duì)路徑:是從根目錄開(kāi)始的路徑。
全文件名=絕對(duì)路徑+文件名。要注意,絕對(duì)路徑和相對(duì)路徑是不加最后的文件名的,只是單純的路徑序列。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-458135.html
4.4.4?文件存儲(chǔ)空間管理
- 文件的存取方法是指讀/寫(xiě)文件存儲(chǔ)器上的一個(gè)物理塊的方法。通常有順序存取和隨機(jī)存取兩種方法。順序存取片法是指對(duì)文件中的信息按順序依次進(jìn)行讀寫(xiě);隨機(jī)存取方法是指對(duì)文件中的信息可以按任意的次序隨機(jī)地讀/寫(xiě)
- 文件存儲(chǔ)空間的管理:
(1)空閑區(qū)表。將外存空間上的一個(gè)連續(xù)的未分配區(qū)域稱為“空閑區(qū)”。操作系統(tǒng)為磁盤(pán)外存上的所有空閑區(qū)建立一張空閑表,每個(gè)表項(xiàng)對(duì)應(yīng)一個(gè)空閑區(qū)適用于連續(xù)文件結(jié)構(gòu)。
(2)位示這種方法是在外存上建立一張位示圖(Bitmap),記錄文件存儲(chǔ)每一位對(duì)應(yīng)文件存儲(chǔ)器上的一個(gè)物理塊,取值0 和1 分別表示空閑和暫用。
(3)空閑塊鏈。每個(gè)空閑物理塊中有指向下-個(gè)空閑物理塊的指針,所有空閑物理塊構(gòu)成一個(gè)鏈表,鏈表的頭指針?lè)旁谖募鎯?chǔ)器的特定位置上(如管理塊中),不需要磁盤(pán)分配表,節(jié)省空間。
(4)成組鏈接法。例如,在實(shí)現(xiàn)時(shí)系統(tǒng)將空閑塊分成若干組,每100個(gè)空閑塊為一組,每組的第一個(gè)空閑塊登記了下一組空閑塊的物理盤(pán)塊號(hào)和空閑塊總數(shù)假如某個(gè)組的第一個(gè)空閑塊號(hào)等于0,意味著該組是最后一組,無(wú)下一組空閑塊
【軟考數(shù)據(jù)庫(kù)】第一章 計(jì)算機(jī)系統(tǒng)基礎(chǔ)知識(shí)
【軟考數(shù)據(jù)庫(kù)】第二章 程序語(yǔ)言基礎(chǔ)知識(shí)
【軟考數(shù)據(jù)庫(kù)】第三章 數(shù)據(jù)結(jié)構(gòu)與算法文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-458135.html
到了這里,關(guān)于【軟考數(shù)據(jù)庫(kù)】第四章 操作系統(tǒng)知識(shí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!