操作系統(tǒng)主要知識(shí)點(diǎn)
下面小編為大家講解操作系統(tǒng)主要知識(shí)點(diǎn),歡迎大家閱讀,一起跟著小編來(lái)學(xué)習(xí)啦,多學(xué)點(diǎn)知識(shí),終身受益。
掌握操作系統(tǒng)的類型、功能、層次結(jié)構(gòu)和進(jìn)程概念,以及作業(yè)、處理機(jī)、存儲(chǔ)、文件和設(shè)備等管理的原理和方法。
1.1 操作系統(tǒng)類型和功能
根據(jù)使用環(huán)境和對(duì)用戶作業(yè)的處理方式劃分,操作系統(tǒng)的基本類型可以分為批處理操作系統(tǒng)、分析操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng)3大類型。
分時(shí)操作系統(tǒng)使多個(gè)用戶同時(shí)以會(huì)話方式控制自己程序的運(yùn)行,每個(gè)用戶都感到似乎各自有一臺(tái)獨(dú)立的、支持自己請(qǐng)求服務(wù)的系統(tǒng)。
實(shí)時(shí)系統(tǒng)往往是專用的,系統(tǒng)與應(yīng)用很難分離,常常緊密結(jié)合在一起。實(shí)時(shí)系統(tǒng)并不強(qiáng)調(diào)資源利用率,而更關(guān)心及時(shí)性(時(shí)間緊迫性)、可靠性和完整性。實(shí)時(shí)系統(tǒng)又分成實(shí)時(shí)過(guò)程控制與實(shí)時(shí)信息處理兩種。
網(wǎng)絡(luò)環(huán)境下的操作系統(tǒng)又分成網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)。分布式操作系統(tǒng)要求一個(gè)統(tǒng)一的操作系統(tǒng),負(fù)責(zé)全系統(tǒng)的資源分配和調(diào)度,為用戶提供統(tǒng)一的界面。它是一個(gè)邏輯上緊密耦合的系統(tǒng)。而網(wǎng)絡(luò)操作系統(tǒng)用戶則需指明欲使用哪一臺(tái)計(jì)算機(jī)上的哪個(gè)資源。
操作系統(tǒng)主要有5個(gè)功能模塊:處理器管理、存儲(chǔ)管理、設(shè)備管理、文件管理和用戶接口。
1.2 進(jìn)程和進(jìn)程管理
(1)進(jìn)程
進(jìn)程是一個(gè)程序關(guān)于某個(gè)數(shù)據(jù)集的一次運(yùn)行。也就是說(shuō),進(jìn)程是運(yùn)行中的程序,是程序的一次運(yùn)行活動(dòng)。相對(duì)于程序,進(jìn)程是一個(gè)的概念,而程序是靜態(tài)的概念,是指令的集合,因而進(jìn)程具有動(dòng)態(tài)性和并發(fā)性。
在操作系統(tǒng)中進(jìn)程是進(jìn)行系統(tǒng)資源分配、調(diào)度和管理的最小單位,注意,現(xiàn)代操作系統(tǒng)中還引入了線程(Thread)這一概念,它是處理器分配資源的最小單位。
(2)進(jìn)程的狀態(tài)及其轉(zhuǎn)換
多道系統(tǒng)中,進(jìn)程的運(yùn)行是時(shí)走時(shí)停的。它在處理器上的交替運(yùn)行,使它的運(yùn)行狀態(tài)不斷地變化著,最基本的狀態(tài)有3種,即運(yùn)行、就緒和阻塞。
·運(yùn)行:正占用處理器。
·就緒:只要獲得處理器即可運(yùn)行。
·阻塞:正等待某個(gè)事件的發(fā)生。
(3)進(jìn)程控制塊
進(jìn)程是一個(gè)動(dòng)態(tài)的概念,在操作系統(tǒng)中,引入數(shù)據(jù)結(jié)構(gòu)--進(jìn)程控制塊(簡(jiǎn)記為PCB)來(lái)標(biāo)記進(jìn)程。PCB是進(jìn)程存在的唯一標(biāo)志,PCB描述了進(jìn)程的基本情況。從靜態(tài)的觀點(diǎn)看,進(jìn)程由程序、數(shù)據(jù)和進(jìn)程控制塊組成;從動(dòng)態(tài)的觀點(diǎn)看,進(jìn)程是計(jì)算機(jī)狀態(tài)的一個(gè)有序集合。
程序是進(jìn)程運(yùn)行所對(duì)應(yīng)的運(yùn)行代碼,一個(gè)進(jìn)程對(duì)應(yīng)于一個(gè)程序,一個(gè)程序可以同時(shí)對(duì)應(yīng)于多個(gè)進(jìn)程,這個(gè)程序代碼在運(yùn)行過(guò)程中不會(huì)被改變,常稱為純碼程序或可重入程序,他們是可共享的程序。
進(jìn)程控制塊保存進(jìn)程狀態(tài)、進(jìn)程性質(zhì)(如優(yōu)先程度)、與進(jìn)程有關(guān)的控制信息(如參數(shù)、信號(hào)量和消息等)、相應(yīng)隊(duì)列和現(xiàn)場(chǎng)保護(hù)區(qū)域等。進(jìn)程控制塊隨著進(jìn)程的建立而產(chǎn)生,隨著進(jìn)程的完成而撤消。
PCB是操作系統(tǒng)核心中最主要的數(shù)據(jù)結(jié)構(gòu)之一,它既是進(jìn)程存在的標(biāo)志和調(diào)度的依據(jù),又是進(jìn)程可以被打斷并能恢復(fù)運(yùn)行的基礎(chǔ)。操作系統(tǒng)核心通過(guò)PCB管理進(jìn)程,一般PCB是常駐內(nèi)存的,尤其是調(diào)度信息必須常駐內(nèi)存。
(4)進(jìn)程管理
在操作系統(tǒng)中有許多進(jìn)程,它們對(duì)應(yīng)著不同的或相同的程序,競(jìng)爭(zhēng)地使用著系統(tǒng)的資源。進(jìn)程管理涉及到進(jìn)程控制、隊(duì)列管理和進(jìn)程調(diào)度等。
進(jìn)程的生命過(guò)程從它被創(chuàng)建時(shí)開始,直至任務(wù)終止而撤消,其間會(huì)經(jīng)歷各種狀態(tài)的轉(zhuǎn)換,它們都是在操作系統(tǒng)控制下完成的。操作系統(tǒng)提供了對(duì)進(jìn)程的基本操作,也稱為原語(yǔ)。這些原語(yǔ)包括創(chuàng)建原語(yǔ)、阻塞原語(yǔ)、終止原語(yǔ)、優(yōu)先級(jí)原語(yǔ)和調(diào)度原語(yǔ)。
進(jìn)程調(diào)度即處理器調(diào)度,它的主要功能是確定在什么時(shí)候分派處理器,并確定分給哪一個(gè)進(jìn)程。在分時(shí)系統(tǒng)中,一般有一個(gè)確定的時(shí)間單位(時(shí)間片)。當(dāng)一進(jìn)程用完一個(gè)時(shí)間單位時(shí),就發(fā)生進(jìn)程調(diào)度,即讓正在運(yùn)行的進(jìn)程改變狀態(tài)并轉(zhuǎn)入就緒隊(duì)列的隊(duì)尾,再由調(diào)度原語(yǔ)將緒隊(duì)列的首進(jìn)程取出,投入運(yùn)行。
進(jìn)程調(diào)度的方法基本上分為兩類:非剝奪調(diào)度與剝奪調(diào)度。所謂非剝奪調(diào)度是指一旦某個(gè)作業(yè)或進(jìn)程占有了處理器,別的進(jìn)程就不能把處理器從這個(gè)進(jìn)程手中奪走;相反,如果別的進(jìn)程可將處理器從這個(gè)進(jìn)程手中奪走則是剝奪調(diào)度。
進(jìn)程調(diào)度的算法采用服務(wù)于系統(tǒng)目標(biāo)的策略,對(duì)于不同的系統(tǒng)與系統(tǒng)目標(biāo),常采用不同的調(diào)度算法,如先來(lái)先服務(wù)、優(yōu)先數(shù)調(diào)度和輪轉(zhuǎn)法等。
(5)管程
管程是一種并發(fā)性的構(gòu)造,包括用于分配一個(gè)特定的共享資源或一組共享資源的數(shù)據(jù)和過(guò)程。為了完成分配資源的功能,進(jìn)程必須調(diào)用特定的管程入口。許多進(jìn)程可能打算在不同的時(shí)間進(jìn)入管程,但在管程邊界上嚴(yán)格地實(shí)施互斥,在某一時(shí)刻,只允許一個(gè)進(jìn)程進(jìn)入。當(dāng)管程中已有一個(gè)進(jìn)程時(shí),其他希望進(jìn)入管程的進(jìn)程必須等待。這種等待是由管程自動(dòng)管理的。
管程中的數(shù)據(jù)或者是管程中所有的全局變量,或者是某個(gè)特定過(guò)程的局部變量。所有這些數(shù)據(jù)只能在管程內(nèi)訪問(wèn),在管程外的進(jìn)程無(wú)法訪問(wèn)管程內(nèi)的數(shù)據(jù),這叫做信息掩蔽。
1.3 存儲(chǔ)管理
現(xiàn)代計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)系統(tǒng)常是多級(jí)存儲(chǔ)體系,至少有主存(內(nèi)存)和輔存(外存)兩級(jí),有的系統(tǒng)有更多級(jí)數(shù)。主存大小由系統(tǒng)硬件決定,是實(shí)實(shí)在在的存儲(chǔ),它的存儲(chǔ)容量受到實(shí)際存儲(chǔ)單元的限制。虛擬存儲(chǔ)(簡(jiǎn)稱虛存)不考慮實(shí)際主存的大小和數(shù)據(jù)存取的實(shí)際地址,只考慮相互有關(guān)的數(shù)據(jù)這間的相對(duì)位置,其容量由計(jì)算機(jī)的地址的位數(shù)決定。
1.4 設(shè)備管理
設(shè)備管理是對(duì)計(jì)算機(jī)輸入/輸出系統(tǒng)的管理。其主要任務(wù)有:實(shí)現(xiàn)對(duì)外部設(shè)備的分配和回收;啟動(dòng)外部設(shè)備;控制輸入/輸出設(shè)備與處理器或主存間交換數(shù)據(jù);實(shí)現(xiàn)對(duì)磁盤的調(diào)度;處理設(shè)備的中斷;實(shí)現(xiàn)虛擬設(shè)備等。
外部和主存之間常用的傳輸控制方式有4種:程序控制方式、中斷方式、直接存儲(chǔ)訪問(wèn)(DMA)方式和通道方式。
1.5 文件管理
(1)文件系統(tǒng)
操作系統(tǒng)的文件系統(tǒng)包括兩個(gè)方面:一方面包括負(fù)責(zé)管理文件的一組系統(tǒng)軟件,另一方面包括被管理的對(duì)象文件。文件系統(tǒng)的主要目標(biāo)是提高存儲(chǔ)器的利用率,接受用戶的委托,實(shí)施對(duì)文件的操作。主要問(wèn)題是管理輔助存儲(chǔ)器,實(shí)現(xiàn)文件叢名字空間到輔存地址空間的轉(zhuǎn)換,決定文件信息的存放位置、存放形式和存放權(quán)限,實(shí)現(xiàn)文件和目錄的操作,提供文件共享能力和安全設(shè)施,提供友好的用戶接口。
(2)文件的結(jié)構(gòu)和組織
文件的結(jié)構(gòu)是指文件的組織形式。從用戶觀點(diǎn)所看到的文件組織形式,稱為文件的邏輯結(jié)構(gòu);從實(shí)現(xiàn)觀點(diǎn)考查文件在輔助存儲(chǔ)器上的存放方式,常稱為文件的物理結(jié)構(gòu)。
文件的邏輯組織是為了方便用戶使用。一般文件的邏輯結(jié)構(gòu)可以分為兩種:無(wú)結(jié)構(gòu)的字符流
文件和有結(jié)構(gòu)的記錄文件,后者也稱為有格式文件。優(yōu)化文件的物理結(jié)構(gòu)是為了提高存儲(chǔ)器的利用效率和降低存取時(shí)間。文件的存儲(chǔ)設(shè)備通常被劃分為大小相同的物理塊,物理塊是分配和傳輸信息的基本單位。文件的物理結(jié)構(gòu)是指文件在存儲(chǔ)設(shè)備上的存儲(chǔ)主法。文件的物理結(jié)構(gòu)涉及文件存儲(chǔ)設(shè)備的組塊策略和文件分配策略,決定文件信息在存儲(chǔ)設(shè)備上的存儲(chǔ)位置。
1.6 作業(yè)管理和用戶界面
作業(yè)(Job)是系統(tǒng)為完成一個(gè)用戶的計(jì)算任務(wù)或一次事務(wù)處理所做的工作的總和。操作系統(tǒng)中用來(lái)控制作業(yè)的進(jìn)入、執(zhí)行和撤消的一組程序稱為作業(yè)管理程序,這些控制功能也能通過(guò)把作業(yè)步細(xì)化、通過(guò)進(jìn)程的執(zhí)行來(lái)實(shí)現(xiàn)。
用戶的作業(yè)可以通過(guò)直接的方式,由用戶自己按照作業(yè)步順序操作;也可以通過(guò)間接的方式,由用戶事先編寫作業(yè)步依次執(zhí)行的說(shuō)明,一次交給操作系統(tǒng),由系統(tǒng)按照說(shuō)明依次處理。前者稱為聯(lián)機(jī)方式,后者稱為脫機(jī)方式。
一般操作系統(tǒng)提供兩種作業(yè)控制方式,一種為聯(lián)機(jī)作業(yè)方式,另一種為脫機(jī)作業(yè)方式。聯(lián)機(jī)作業(yè)方式是通過(guò)直接輸入作業(yè)控制命令來(lái)提交和運(yùn)行用戶作業(yè)。脫機(jī)作業(yè)方式是通過(guò)作業(yè)控制語(yǔ)言(JCL,也稱為作業(yè)控制命令)編寫用戶作業(yè)說(shuō)明書。在這種方式中,用戶不直接干預(yù)作業(yè)的運(yùn)行,而是把作業(yè)與作業(yè)說(shuō)明書一起交給系統(tǒng)(稱為提交)。
作業(yè)調(diào)度主要是從后備狀態(tài)的作業(yè)中挑選一個(gè)(或一些)作業(yè)投入運(yùn)行。根據(jù)不同的調(diào)度目標(biāo),有不同的算法。作業(yè)調(diào)度算法有許多種,它們與進(jìn)程調(diào)度相似,有的適宜于單道系統(tǒng),有的適宜于多道系統(tǒng)。它們是先來(lái)先服務(wù)(FCFS)、短作業(yè)優(yōu)先(SJF)、響應(yīng)比(HRN)高者優(yōu)先和成先級(jí)調(diào)度等。
1.7 其他管理
(1)死鎖問(wèn)題
如果一個(gè)進(jìn)程正在等待一個(gè)不可能發(fā)生的事件,則稱該進(jìn)程處于死鎖狀態(tài)。系統(tǒng)發(fā)生死鎖是指一個(gè)或多個(gè)進(jìn)程處于死鎖狀態(tài)。產(chǎn)生死鎖的主要原因是共享的系統(tǒng)資源不足,資源分配策略和進(jìn)程的推進(jìn)順序不當(dāng)。系統(tǒng)資源既可能是可重用的永久性資源,也可能是消耗性的臨時(shí)資源。處于死鎖狀態(tài)的進(jìn)程不能繼續(xù)運(yùn)行又占有了系統(tǒng)資源,阻礙其他進(jìn)程的運(yùn)行。對(duì)待死鎖的策略
主要有:
?、偎梨i的預(yù)防。不讓任一產(chǎn)生死鎖的必要條件發(fā)生就可以預(yù)防死鎖。
②死鎖的避免。這種策略不對(duì)用戶進(jìn)程的推進(jìn)順序加以限制,在進(jìn)程申請(qǐng)資源時(shí)先判斷這次分配安全否,只有安全實(shí)施分配,典型的算法是銀行家算法。
?、鬯梨i的檢測(cè)。這種策略采用資源請(qǐng)求分配圖的化簡(jiǎn)方法來(lái)判斷是否發(fā)生了不安全狀態(tài)。資源請(qǐng)求分配圖是一種有向圖,表示進(jìn)程與資源之間的關(guān)系。死鎖的檢測(cè)是在需要的時(shí)刻執(zhí)行的,當(dāng)發(fā)現(xiàn)系統(tǒng)處于不安全狀態(tài)時(shí),即執(zhí)行死鎖的解除策略。
?、芩梨i的解除。解除死鎖的基本方法是剝奪。一種方法是把資源從一些進(jìn)程處剝奪分給別的進(jìn)程,被剝奪資源的進(jìn)程則需回退到請(qǐng)求資源處重新等待執(zhí)行;另一種主法是終止一個(gè)進(jìn)程,剝奪其全部資源,以后再重新運(yùn)行被終止的進(jìn)程。
(2)多重處理器系統(tǒng)與線程
多重處理系統(tǒng)的主要目標(biāo)是為了提高系統(tǒng)的處理能力,也是為了提高系統(tǒng)的可靠性。多重處理系統(tǒng)的操作系統(tǒng)除了具有單處理器操作系統(tǒng)的功能以外,還應(yīng)提供處理器的負(fù)載平衡、處理器發(fā)生故障后的結(jié)構(gòu)重組等功能。一般多重處理系統(tǒng)的操作系統(tǒng)可以分為主從式、分離執(zhí)行式和移動(dòng)執(zhí)行式3類。
對(duì)稱多處理器系統(tǒng)SMP是由若干同構(gòu)甚至相同的處理器構(gòu)成的一個(gè)系統(tǒng)。Solaris和Windows NT等操作系統(tǒng)支持SMP系統(tǒng)。操作系統(tǒng)提供了線程(Thread)機(jī)制以發(fā)揮多個(gè)處理器的作用。在多線程系統(tǒng)中,一個(gè)進(jìn)程可以由一個(gè)或多個(gè)線程構(gòu)成。進(jìn)程是資源分配的基本單位,也是被保護(hù)的基本單位。一個(gè)進(jìn)程對(duì)應(yīng)于一個(gè)保存進(jìn)程映象的虛地址空間,每一線程可以獨(dú)立運(yùn)行一個(gè)進(jìn)程的線程共享這個(gè)進(jìn)程的地址空間。有多種方法可以實(shí)現(xiàn)多線程系統(tǒng),一種方法是核心級(jí)線程,另一種方法是用戶級(jí)線程,也可以把兩者組合起來(lái)。
1.8 操作系統(tǒng)的結(jié)構(gòu)
(1)無(wú)序結(jié)構(gòu)法,又稱整體結(jié)構(gòu)或模塊組合結(jié)構(gòu)。它以大型表格和隊(duì)列為中心,操作系統(tǒng)的各部分程序圍繞著表格運(yùn)行,整個(gè)系統(tǒng)是一個(gè)程序。這種操作系統(tǒng)常稱為面向過(guò)程的操作系統(tǒng)。
(2)層次結(jié)構(gòu)法是把一個(gè)大型復(fù)雜的操作系統(tǒng)分解成若干個(gè)單向依賴的層次,由多層的正確性保證操作系統(tǒng)的可靠性。層次結(jié)構(gòu)清晰,且有利于系統(tǒng)功能的增加或刪改。
(3)面向?qū)ο蟮牟僮飨到y(tǒng)基于面向?qū)ο蟪绦蛟O(shè)計(jì)的概念,采用了各種不同的對(duì)象技術(shù)。在計(jì)算機(jī)系統(tǒng)中對(duì)象是操作系統(tǒng)管理的信息和資源的抽象,是一種抽象的數(shù)據(jù)類型??梢园褜?duì)象作為系統(tǒng)中的最小單位,由對(duì)象、對(duì)象操作、對(duì)象保護(hù)組成的操作系統(tǒng),就是面向?qū)ο蟮牟僮飨到y(tǒng)。如Windows NT中有執(zhí)行體對(duì)象(進(jìn)程、線程、文件和令牌等)和內(nèi)核對(duì)象(時(shí)鐘、事件和信號(hào)等)。
(4)微內(nèi)核結(jié)構(gòu)法把系統(tǒng)的公共部分抽象出來(lái),形成一個(gè)底層核心,提供最基本的服務(wù),其他功能以服務(wù)器形式建立在微內(nèi)核之上。它具有良好的模塊化和結(jié)構(gòu)化特征,模塊之間和上
下層之間通過(guò)消息來(lái)通信。建立在微內(nèi)核上的服務(wù)器可以根據(jù)不同的需要構(gòu)造,從而形成不同的操作系統(tǒng),如Windows NT操作系統(tǒng)。
1.9 常用操作系統(tǒng)
UNIX系統(tǒng)是一個(gè)分時(shí)操作系統(tǒng)。它利用最內(nèi)層硬件提供的基本服務(wù),向外層提供全部應(yīng)用程序所需要的服務(wù)。應(yīng)用程序組可以構(gòu)成應(yīng)用子系統(tǒng),如UNIX系統(tǒng)的源代碼控制系統(tǒng)(SCCS)、圖形(X-Window、Motif)等。
Windows NT系統(tǒng)是20世紀(jì)90年代的操作系統(tǒng)技術(shù),適用于高檔工作站平臺(tái)、局域網(wǎng)服務(wù)器或者主干計(jì)算機(jī)。Windows NT支持對(duì)稱處理器結(jié)構(gòu),支持多線程并行,采用90年代操作系統(tǒng)技術(shù)(即微內(nèi)核技術(shù)),在體系結(jié)構(gòu)上采用客戶機(jī)/服務(wù)器模式。