一、操作系統(tǒng)的基本概念
1.引言
現(xiàn)代計算機(jī)系統(tǒng)由硬件和軟件兩部分構(gòu)成。硬件指的是構(gòu)成計算機(jī)系統(tǒng)的物理設(shè)備。操作系統(tǒng)控制和管理所有的系統(tǒng)硬件(如處理器、存儲器、各種設(shè)備),也控制和管理系統(tǒng)中所有的軟件,操作系統(tǒng)對計算機(jī)使用者提供了一種良好的操作環(huán)境,也為各種應(yīng)用系統(tǒng)提供了基本的支持環(huán)境。操作系統(tǒng)在硬件之上建立了一個服務(wù)體系,為各種軟件提供強(qiáng)有力的支持,呈現(xiàn)在用戶面前的計算機(jī)是一個方便的、友好的環(huán)境界面?,F(xiàn)代計算機(jī)系統(tǒng)中硬件與軟件之間的關(guān)系可分成若干層次。硬件(*機(jī))在最里層,是計算機(jī)系統(tǒng)工作的物質(zhì)基礎(chǔ),它的外面是操作系統(tǒng),**系統(tǒng)程序?qū)τ嬎銠C(jī)系統(tǒng)中各類資源(處理器、存儲器、設(shè)備、數(shù)據(jù)等)進(jìn)行管理和提供方便用戶使用的多種服務(wù)功能,隱蔽對硬件的復(fù)雜操作,把*機(jī)改造成功能更強(qiáng),使用更方便的系統(tǒng)。
2.什么是操作系統(tǒng)
有幾種不同的方法考察操作系統(tǒng)
(1)用戶觀點操作系統(tǒng)是用戶與計算機(jī)之間的接口,有了操作系統(tǒng),用戶可以方便地使用計算機(jī);在功能上,操作系統(tǒng)提供功能很強(qiáng)的系統(tǒng)調(diào)用,用戶軟件使用這些系統(tǒng)調(diào)用(也稱管態(tài))運行。
(2)資源管理觀點操作系統(tǒng)是控制和管理計算機(jī)系統(tǒng)資源的程序,它的工作是當(dāng)用戶程序和其他程序爭用這些資源時,提供有序的和可控的分配。
(3)進(jìn)程觀點操作系統(tǒng)環(huán)境中,常同時運行著多個程序(稱為并發(fā)),這些同時運行的程序稱為“進(jìn)程”(process),或“任務(wù)”(task)。每個進(jìn)程都完成各自的特定任務(wù)(如用戶程序的運行,處理某個設(shè)備的輸入輸出……)。操作系統(tǒng)則控制和協(xié)調(diào)這些進(jìn)程的運行。它從系統(tǒng)各部分可以并行工作為出發(fā)點,考慮管理任務(wù)的分割和相互之間的關(guān)系,**進(jìn)程之間的通信解決共享資源時帶來的競爭問題。通常,進(jìn)程可以分為用戶進(jìn)程和系統(tǒng)進(jìn)程兩大類。
(4)分層觀點根據(jù)使用環(huán)境和對用戶作業(yè)處理方式,操作系統(tǒng)的基本類型可能分為3大類:?批處理操作系統(tǒng)(batch processing operating system);?分時操作系統(tǒng)(time sharing system);?實時操作系統(tǒng)(real time system)隨著網(wǎng)絡(luò)技術(shù)的發(fā)展與普遍使用,共享網(wǎng)絡(luò)資源的網(wǎng)絡(luò)環(huán)境下的操作系統(tǒng)也已流行。網(wǎng)絡(luò)環(huán)境下的操作系統(tǒng)又分成網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng),網(wǎng)絡(luò)操作系統(tǒng)是在各單機(jī)操作系統(tǒng)的基礎(chǔ)上,按照網(wǎng)絡(luò)體系結(jié)構(gòu)的各個**、標(biāo)準(zhǔn)進(jìn)行開發(fā),形成網(wǎng)絡(luò)軟件,包括網(wǎng)絡(luò)管理、通信、資源共享、系統(tǒng)安全和多種網(wǎng)絡(luò)應(yīng)用等;分布式操作系統(tǒng)要求一個統(tǒng)一的操作系統(tǒng),即廢棄(或改造)各單機(jī)的操作系統(tǒng),整個網(wǎng)絡(luò)設(shè)有單一的操作系統(tǒng)。分布式操作系統(tǒng)負(fù)責(zé)全系統(tǒng)的資源分配和調(diào)度,為用戶提供統(tǒng)一的界面。用戶據(jù)此使用系統(tǒng)資源、完成所需任務(wù)。至于設(shè)備在何處用戶是不必知道的,這稱為位置透明性。分布式操作系統(tǒng)是一個邏輯上緊密耦合的系統(tǒng)。而網(wǎng)絡(luò)操作系統(tǒng)用戶則需指明欲使用哪一臺計算機(jī)上的哪個資源。
3.操作系統(tǒng)的功能
操作系統(tǒng)的職能是管理和控制計算機(jī)系統(tǒng)中的全部硬件、軟件資源,合理組織計算機(jī)工作流程,并為用戶提供一個良好的工作環(huán)境和友好的接口,系統(tǒng)資源管理和提供用戶界面是操作系統(tǒng)的功能要點。
(1)處理器(處理機(jī))管理處理器是計算機(jī)系統(tǒng)的心臟,在單用戶系統(tǒng)或單道系統(tǒng)中,處理器為一個用戶或一個作業(yè)服務(wù),其管理簡單。為提高系統(tǒng)資源利用率,引入多道程序技術(shù),即多個程序(作業(yè))同時運行,他們爭用處理器,就要解決對處理器分配調(diào)度策略、實施分配和回收資源。許多操作系統(tǒng)是以作業(yè)和進(jìn)程的方式進(jìn)行管理,實現(xiàn)作業(yè)和進(jìn)程的調(diào)度,分配處理器,控制作業(yè)和進(jìn)程的執(zhí)行?,F(xiàn)代的操作系統(tǒng)更引入線程(Thread)作為分配處理器的基本單位?;诓僮飨到y(tǒng)對處理器管理策略的不同,其提供的作業(yè)處理方式也就不同,如簡單的批處理方式、分時處理方式、實時處理方式、多道成批處理方式和網(wǎng)絡(luò)環(huán)境下的處理方式。從而,呈現(xiàn)在用戶面前的就是不同的操作系統(tǒng)。
(2)存儲管理計算機(jī)系統(tǒng)中,存儲器(一般稱為主存或內(nèi)存)是運行程序、存放工作數(shù)據(jù)的,存儲管理的工作主要是對主存儲器進(jìn)行分配、擴(kuò)充和保護(hù)。系統(tǒng)中有多個程序(操作系統(tǒng),實用程序和用戶程序)共享存儲器,它們彼此之間不能相互干擾和破壞,這就是存儲保護(hù)問題。當(dāng)計算機(jī)系統(tǒng)中運行的程序所需要的主存容量超過系統(tǒng)所提供的主存容量時,如何利用外部存儲器作為主存的后援,為用戶提供一個容量比實存(實際內(nèi)存)大得多的虛存(虛擬存儲器),讓用戶可運行一個比實存大的用戶作業(yè),這就是內(nèi)存擴(kuò)充問題。
(3)設(shè)備管理現(xiàn)代計算機(jī)系統(tǒng)常常配置很多種類的輸入輸出設(shè)備,它們的輸入輸出速度差別很大,計算機(jī)系統(tǒng)常常采用通道、控制器、設(shè)備三級控制方法管理這些設(shè)備,設(shè)備管理的任務(wù)就是監(jiān)視這些資源的使用情況,根據(jù)一定的分配策略,把通道、控制器和設(shè)備分配給請求輸入輸出操作的程序,并啟動設(shè)備完成所需的操作。為了發(fā)揮設(shè)備和處理機(jī)的并行工作能力,常常采用緩沖技術(shù)和虛擬技術(shù)。
(4)文件管理(信息管理)用戶使用計算機(jī)系統(tǒng)處理數(shù)據(jù)(信息),這些數(shù)據(jù)和程序作為文件儲存在外部存儲器(如磁盤、磁帶、光盤等)上,文件管理的任務(wù)是管理文件的存儲空間,提供信息的共享和保護(hù),允許多個用戶協(xié)同工作又不引起混亂。
(5)用戶接口(工作管理)上述四項功能是操作系統(tǒng)對硬、軟件資源的管理,操作系統(tǒng)也必須為用戶提供一個友好的用戶接口———命令接口和圖形接口。一般,用戶**兩種命令接口請求操作系統(tǒng)的服務(wù)。一種接口是作業(yè)一級的接口,即提供一組操作命令,如UNIX和Linux的shell命令語言或作業(yè)控制語言(JCL)讓用戶組織和控制自己作業(yè)的運行。作業(yè)控制又分成兩類;聯(lián)機(jī)控制和脫機(jī)控制。另一種接口是編程接口,即提供一組系統(tǒng)調(diào)用命令(又稱進(jìn)管指令SVC)供各種程序(實用程序,應(yīng)用程序和用戶程序等)調(diào)用,請求操作系統(tǒng)的服務(wù),這些服務(wù)??煞殖?處理器服務(wù)(作業(yè)、進(jìn)程、線程管理),存儲服務(wù),設(shè)備服務(wù),文件服務(wù),用戶界面服務(wù),異常處理服務(wù),其他類型服務(wù)等。
4.操作系統(tǒng)的工作原理
操作系統(tǒng)的基本特征是并發(fā)和共享。并發(fā)的意思是存在許多同時的活動(或并行的活動);輸入輸出操作和處理器運行并行活動;在主存中同時駐留幾道用戶程序等都是并發(fā)的例子。并發(fā)活動會要求共享資源和信息,這就能提高資源的利用率。多道程序可以并發(fā)而共享資源,一個用戶的任務(wù)也可以組織成幾個子任務(wù)并發(fā)工作而提高運行效率。程序這樣運行時,不能使輸入設(shè)備,處理器和打印機(jī)并行工作,若忽略處理器加工數(shù)據(jù)的處理時間,則完成一批數(shù)據(jù)加工的時間為輸入輸出設(shè)備耗時的總和,若將這個計算任務(wù)分成3個子任務(wù),并引入緩沖技術(shù):輸入子任務(wù)從輸入設(shè)備讀一批數(shù)據(jù)到輸入緩沖區(qū),處理子任務(wù)則把輸入緩沖區(qū)中的數(shù)據(jù)處理后放入輸出緩沖區(qū),打印子任務(wù)則打印輸出緩沖區(qū)中的內(nèi)容,從而輸入子任務(wù)可以與打印子任務(wù)并發(fā)工作,使完成一批數(shù)據(jù)加工的時間近似于較慢的設(shè)備速度。程序的并發(fā)執(zhí)行,發(fā)揮了處理器與輸入輸出設(shè)備并發(fā)工作的能力,使系統(tǒng)的效率提高。多個計算程序同時駐留在主存儲器中并行執(zhí)行的程序設(shè)計方法稱為多道程序設(shè)計,這種系統(tǒng)稱為多道程序系統(tǒng)。多道程序系統(tǒng)能充分發(fā)揮處理器的利用效率,提高系統(tǒng)資源的利用效率。既然他們同處在一個系統(tǒng)中,一個任務(wù)(或子任務(wù))的執(zhí)行會受到其他任務(wù)(或子任務(wù))的影響(又稱為制約)。
5.操作系統(tǒng)的硬件基礎(chǔ)
現(xiàn)代計算機(jī)系統(tǒng)設(shè)備的發(fā)展異常迅速,導(dǎo)致了控制技術(shù)的發(fā)展,設(shè)備控制的基本技術(shù)是中斷。
(1)中斷的基本概念在計算機(jī)系統(tǒng)中,中斷是改變處理器執(zhí)行指令順序的事件,被打斷的程序可以在將來某個時候(可能在中斷處理完成后立即或推遲,這是由操作系統(tǒng)控制的)恢復(fù)執(zhí)行。計算機(jī)系統(tǒng)的中斷既來自系統(tǒng)內(nèi)部,也來自系統(tǒng)外部,分別稱為內(nèi)部中斷和外部中斷。①內(nèi)部中斷是系統(tǒng)本身在工作過程中出現(xiàn)的各種需要緊急處理的事件:一種是由于運行程序發(fā)生意外而產(chǎn)生的,另一種是運行程序需要發(fā)生的。內(nèi)部中斷也稱為軟件中斷。②外部中斷是由于硬件方面的原因,故也稱為硬件中斷,硬件中斷往往是隨機(jī)發(fā)生的,不是由正在運行的程序所控制的。外部中斷和由于運行程序產(chǎn)生的例外中斷常常稱為強(qiáng)迫中斷,而運行程序主動要求而產(chǎn)生的中斷稱為自愿中斷。外部中斷可進(jìn)一步分成可屏蔽中斷和不可屏蔽中斷。不可屏蔽的中斷是一些最緊急最重要的中斷,如掉電等??善帘蔚闹袛?*處理器內(nèi)部的中斷許可狀態(tài)確定響應(yīng)中斷的次序或者不響應(yīng)一些不重要(或不緊急)的中斷請求。
(2)中斷的響應(yīng)與處理引起中斷的事件(即原因)稱為中斷源。目前,大多數(shù)系統(tǒng)都采用中斷向量的技術(shù),所謂中斷向量,實際上是一種指針,就是由硬件對不同的中斷源將控制轉(zhuǎn)移到不同的中斷處理程序入口地址。所有的中斷向量構(gòu)成一個中斷向量表,它們通常存放在一個專門的存儲區(qū)域中,這個區(qū)域的地址可以是固定的;相應(yīng)的處理程序的入口地址通常是在系統(tǒng)引導(dǎo)過程中,**對系統(tǒng)配置的檢測,得到系統(tǒng)中設(shè)備配置的情況,在操作系統(tǒng)裝入過程中,填寫中斷向量表中的指針內(nèi)容。中斷處理程序?qū)χ袛嗍录奶幚矸謨刹竭M(jìn)行。第一步是保護(hù)好被中斷程序的現(xiàn)場信息,即保存被中斷程序的寄存器以及PSW(程序狀態(tài)字)的內(nèi)容,以**被中斷程序以后能繼續(xù)運行;第二步是具體處理中斷。中斷處理完成后,處理器分配給發(fā)生中斷時正在運行的進(jìn)程,還是分配給另一進(jìn)程,這取決于被中斷的進(jìn)程是可剝奪的還是不可剝奪的。如果是不可剝奪的,它重新得到處理器,否則,可能被別的進(jìn)程(如優(yōu)先級更高)奪得處理器。