2017年全國計(jì)算機(jī)等級考試四級復(fù)習(xí)綱要:系統(tǒng)核心

字號:


     三、系統(tǒng)核心
     操作系統(tǒng)核心位于計(jì)算機(jī)硬件之上,核心的目的是提供一種進(jìn)程賴以生存的環(huán)境,其主要任務(wù)是接收中斷并作基本處理,在進(jìn)程之間切換處理器,處理進(jìn)程之間通信。
     1.基本硬件機(jī)構(gòu)
     (1)中斷機(jī)構(gòu)
     為了使輸入輸出活動與處理器活動并行進(jìn)行,當(dāng)一臺外部設(shè)備的傳輸操作結(jié)束時,應(yīng)能中斷正在運(yùn)行的進(jìn)程,由中斷處理程序處理。
     (2)特權(quán)指令為使各并發(fā)進(jìn)程不相互干擾,系統(tǒng)的部分指令集應(yīng)保留僅供操作系統(tǒng)使用,這些指令稱為特權(quán)指令,如允許與禁止中斷,執(zhí)行輸入輸出操作等。為了區(qū)分什么時候可以使用特權(quán)指令,什么時候不可以使用,系統(tǒng)至少具有兩種工作狀態(tài),它們分別稱為系統(tǒng)態(tài)和用戶態(tài),又稱為管態(tài)和目態(tài)。特權(quán)指令只能在管態(tài)中運(yùn)行。
     (3)主存保護(hù)多道程序系統(tǒng)中,必須對各進(jìn)程使用的主存加以保護(hù),以防止其他進(jìn)程進(jìn)行未經(jīng)許可的操作。保護(hù)機(jī)制應(yīng)包含在主存尋址硬件中。
     (4)時鐘硬件的時鐘以固定的時間間隔產(chǎn)生中斷信號,這對于實(shí)現(xiàn)處理器的調(diào)度以及實(shí)現(xiàn)與時間有關(guān)的任務(wù)是不可缺少的
     2.進(jìn)程
     (1)進(jìn)程進(jìn)程是一個程序關(guān)于某個數(shù)據(jù)集的一次運(yùn)行。也就是說,進(jìn)程是運(yùn)行中的程序,是程序的一次運(yùn)行活動。相對于程序,進(jìn)程是一個動態(tài)的概念,而程序是靜態(tài)的概念,是指令的集合。因此,進(jìn)程具有動態(tài)性和并發(fā)性。在操作系統(tǒng)中進(jìn)程是進(jìn)行系統(tǒng)資源分配、調(diào)度和管理的最小單位,注意,現(xiàn)代操作系統(tǒng)中還引入了線程,它是處理器分配的最小單位。
     (2)進(jìn)程的狀態(tài)及其轉(zhuǎn)換多道系統(tǒng)中,進(jìn)程的運(yùn)行是走走停停的,它在處理器上交替運(yùn)行,使它的運(yùn)行狀態(tài)不斷變化,最基本的狀態(tài)有3種:運(yùn)行、就緒和阻塞。?運(yùn)行(running):正占用處理器。?就緒(ready):只要獲得處理器即可運(yùn)行。?阻塞(blocked):正等待某個事件(I/O完成)的發(fā)生。
     (3)進(jìn)程控制塊進(jìn)程是一個動態(tài)的概念,如何表示一個進(jìn)程?在操作系統(tǒng)中,引入數(shù)據(jù)結(jié)構(gòu)———進(jìn)程控制塊(簡記為PCB)標(biāo)記進(jìn)程。PCB是進(jìn)程存在的惟一標(biāo)志,PCB描述了進(jìn)程的基本情況。從靜態(tài)的觀點(diǎn)看,進(jìn)程由程序、數(shù)據(jù)和進(jìn)程控制塊組成;從動態(tài)的觀點(diǎn)看,是計(jì)算機(jī)狀態(tài)的一個有序集合。程序是進(jìn)程運(yùn)行所對應(yīng)的運(yùn)行代碼,一個進(jìn)程對應(yīng)于一個程序;有的程序可以同時對應(yīng)于多個進(jìn)程,這個程序的代碼在運(yùn)行過程中不會被改變,常稱為純碼程序或可重入程序,他們是可共享的程序。進(jìn)程控制塊保存進(jìn)程狀態(tài)、進(jìn)程性質(zhì)(如優(yōu)先程序)、與進(jìn)程有關(guān)的控制信息(如參數(shù)、信號量、消息等)、相應(yīng)隊(duì)列和現(xiàn)場保護(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ǔ)。核心**PCB管理進(jìn)程,一般PCB是常駐內(nèi)存的,尤其是調(diào)度信息必須常駐內(nèi)存。
     3.進(jìn)程管理
     在操作系統(tǒng)中有許多進(jìn)程,它們對應(yīng)著不同的或相同的程序,競爭地使用著系統(tǒng)的資源。進(jìn)程管理涉及到進(jìn)程控制、隊(duì)列管理、進(jìn)程調(diào)度等。
     (1)進(jìn)程控制
     進(jìn)程的生命過程是從它被創(chuàng)建開始,直到任務(wù)終止而撤消,其間會經(jīng)歷各種狀態(tài)的轉(zhuǎn)換,它們都是在操作系統(tǒng)控制下完成的,為此,操作系統(tǒng)提供了對進(jìn)程的基本操作,也稱為原語。這些原語包括:創(chuàng)建原語(create),阻塞原語(block),終止原語(terminal),優(yōu)先級原語(chang_prioriˉty),調(diào)度原語(schedule)。它們可以被系統(tǒng)本身調(diào)用,有的也以軟中斷形式(系統(tǒng)調(diào)用)供用戶進(jìn)程調(diào)用。他們都涉及現(xiàn)場隊(duì)列管理等。當(dāng)一個進(jìn)程創(chuàng)建一個新的進(jìn)程時,創(chuàng)建者稱為父進(jìn)程,被創(chuàng)建者稱為子進(jìn)程。通常操作系統(tǒng)中設(shè)置一個運(yùn)行隊(duì)列,一個就緒隊(duì)列和若干個阻塞隊(duì)列。在單處理器系統(tǒng)中運(yùn)行隊(duì)列只有一個成員。一般阻塞隊(duì)列的個數(shù)取決于等待事件(原因)的個數(shù)。調(diào)度原語是按照確定的算法,從就緒隊(duì)列中選擇一個就緒進(jìn)程,將處理器分配給它,修改這個進(jìn)程的PCB內(nèi)容。在操作系統(tǒng)中進(jìn)程生命的簡單活動是這樣的:一個進(jìn)程可以由系統(tǒng)創(chuàng)建(如用戶運(yùn)行一程序),也可以由用戶進(jìn)程用創(chuàng)建原語建立。新建立的進(jìn)程開始時處于就緒狀態(tài)。該進(jìn)程的運(yùn)行也會因等待某個事件(如I/O完成)的發(fā)生而處于阻塞狀態(tài),轉(zhuǎn)入相應(yīng)的阻塞隊(duì)列。一旦相應(yīng)事件發(fā)生后,將被喚醒原語叫醒而回到就緒隊(duì)列。重復(fù)上述過程直至運(yùn)行完畢。經(jīng)終止原語作一些記錄工作并撤消這個進(jìn)程。
     (2)進(jìn)程調(diào)度
     進(jìn)程調(diào)度即處理器調(diào)度,它的主要功能是確定在什么時候分派處理器,并確定分給哪一個進(jìn)程。在分時系統(tǒng)中,一般有一個確定的時間單位(稱為時間片),當(dāng)一進(jìn)程用完一個時間單位時,就發(fā)生進(jìn)程調(diào)度(又稱上下文轉(zhuǎn)換),即讓正在運(yùn)行的進(jìn)程改變狀態(tài)并轉(zhuǎn)入就緒隊(duì)列尾,再由調(diào)度原語將就緒隊(duì)列的首進(jìn)程取出,投入運(yùn)行。進(jìn)程調(diào)度的方法基本上分為兩類:剝奪調(diào)度與非剝奪調(diào)度。所謂非剝奪調(diào)度是指一旦某個作業(yè)或進(jìn)程占有了處理器,這個進(jìn)程就占用處理器直到主動放棄處理器為止,相反,如果其他進(jìn)程可獲得處理器的使用權(quán)則是剝奪調(diào)度。在有些進(jìn)程(如高優(yōu)先級進(jìn)程)需要快速服務(wù)的系統(tǒng)中,剝奪調(diào)度是非常有用的。例如,在實(shí)時系統(tǒng)中丟失一個中斷的后果將是災(zāi)難性的。交互式系統(tǒng)中,為**用戶可接受的響應(yīng)時間,剝奪調(diào)度也十分重要。在非剝奪系統(tǒng)中,短的作業(yè)常常等待長的作業(yè),但所有進(jìn)程受到的服務(wù)是公平的,響應(yīng)時間是可以預(yù)測的。對就緒隊(duì)列的處理體現(xiàn)了調(diào)度策略,常用的是按優(yōu)先級處理。有兩種確定優(yōu)先級的方法,即靜態(tài)優(yōu)先級和動態(tài)優(yōu)先級。靜態(tài)是指進(jìn)程的優(yōu)先級在進(jìn)程開始運(yùn)行前確定,運(yùn)行過程中不變,而動態(tài)優(yōu)先則可以在進(jìn)程運(yùn)行過程中改變。進(jìn)程調(diào)度的算法是服務(wù)于系統(tǒng)目標(biāo)的策略,對于不同的系統(tǒng)與系統(tǒng)目標(biāo),常采用不同的調(diào)度算法,如:?先來先服務(wù)(FCFS):又稱先進(jìn)先出(FIFO),就緒隊(duì)列按先來后到原則排隊(duì)。?優(yōu)先數(shù)調(diào)度:優(yōu)先數(shù)反映了進(jìn)程優(yōu)先級,就緒隊(duì)列按優(yōu)先數(shù)排隊(duì)。?輪轉(zhuǎn)法(round robin):就緒隊(duì)列按FCFS方式排隊(duì)。每個運(yùn)行進(jìn)程一次占有處理器時間都不超過規(guī)定的時間單位(時間片)。若超過,即調(diào)用調(diào)度原語而形成就緒進(jìn)程輪流使用服務(wù)器。