首頁 - 網(wǎng)校 - 萬題庫 - 美好明天 - 直播 - 導(dǎo)航
熱點搜索
學(xué)員登錄 | 用戶名
密碼
新學(xué)員
老學(xué)員

2011計算機(jī)考研《操作系統(tǒng)》知識點分析(4)

考試吧整理“2011計算機(jī)考研《操作系統(tǒng)》知識點分析”供廣大考生備考使用。

電子工業(yè)出版社獨家提供,嚴(yán)禁轉(zhuǎn)載!

  1.4 操作系統(tǒng)結(jié)構(gòu)設(shè)計

  操作系統(tǒng)是一種大型、復(fù)雜的并發(fā)系統(tǒng),為了研制操作系統(tǒng),首先必須研究它的結(jié)構(gòu),力求設(shè)計出結(jié)構(gòu)良好的程序。操作系統(tǒng)的結(jié)構(gòu)設(shè)計有兩層含義:一是研究操作系統(tǒng)的整體結(jié)構(gòu),由程序的構(gòu)成成分組成操作系統(tǒng)程序的構(gòu)造過程和方法;二是研究操作系統(tǒng)程序的局部結(jié)構(gòu),包括數(shù)據(jù)結(jié)構(gòu)和控制結(jié)構(gòu)。采用不同的構(gòu)件和構(gòu)造方法可組成不同結(jié)構(gòu)的操作系統(tǒng)。本節(jié)將在討論操作系統(tǒng)構(gòu)件之后,全面介紹各種操作系統(tǒng)的構(gòu)造方法。

  1.4.1 操作系統(tǒng)的組件

  通常把組成操作系統(tǒng)程序的基本單位稱作操作系統(tǒng)的構(gòu)件。剖析現(xiàn)代操作系統(tǒng),構(gòu)成操作系統(tǒng)的基本單位除內(nèi)核之外,主要還有進(jìn)程、線程、類程和管程。

  1.內(nèi)核

  現(xiàn)代操作系統(tǒng)中大都采用了進(jìn)程的概念,為了解決系統(tǒng)的并發(fā)性、共享性和隨機(jī)性,并使進(jìn)程能協(xié)調(diào)地工作,單靠計算機(jī)硬件提供的功能是十分不夠的。例如,進(jìn)程調(diào)度工作目前就不能用硬件來實現(xiàn);而進(jìn)程自己調(diào)度自己也是困難的。所以,系統(tǒng)必須有一個軟件部分能對硬件處理器及有關(guān)資源進(jìn)行首次改造,以便給進(jìn)程的執(zhí)行提供良好運行環(huán)境,這個部分就是操作系統(tǒng)的內(nèi)核。

  由于操作系統(tǒng)設(shè)計的目標(biāo)和環(huán)境不同,內(nèi)核的大小和功能有很大差別。有些設(shè)計希望把內(nèi)核做得盡量小僅具有極少的必需功能,稱為微內(nèi)核(microkernel),其他功能都在核外實現(xiàn),通過微內(nèi)核提供的消息傳遞機(jī)制完成其余功能模塊間的聯(lián)系;有些設(shè)計則希望內(nèi)核具有較多的功能,雖然其內(nèi)部也可劃分成層次或模塊,但運行時是一個大二進(jìn)制映像,模塊間的聯(lián)系可通過函數(shù)或過程調(diào)用實現(xiàn),稱為單內(nèi)核(monolithic kernel)。操作系統(tǒng)的一個基本問題就是內(nèi)核的功能設(shè)計。微內(nèi)核結(jié)構(gòu)是現(xiàn)代操作系統(tǒng)的特征之一,這種方法把內(nèi)核和核外服務(wù)程序的開發(fā)分離,可為特定應(yīng)用程序或運行環(huán)境要求定制服務(wù)程序,具有較好的可伸縮性,簡化了實現(xiàn),提供了靈活性,很適合分布式系統(tǒng)的構(gòu)造。

  一般而言,內(nèi)核必須提供以下3個方面的功能。

  (1)中斷處理。中斷處理是內(nèi)核中最基本的功能,也是操作系統(tǒng)賴以活動的基礎(chǔ),為了縮短屏蔽中斷的時間,增加系統(tǒng)內(nèi)的并發(fā)性,通常它僅僅進(jìn)行有限的、簡短的處理,其余任務(wù)交給在內(nèi)核之外的特殊用戶態(tài)進(jìn)程完成。當(dāng)中斷事件產(chǎn)生時,先由內(nèi)核截獲并轉(zhuǎn)向中斷處理例行程序進(jìn)行原則處理,它分析中斷事件的類型和性質(zhì),進(jìn)行必要的狀態(tài)修改,然后交給內(nèi)核之外的進(jìn)程去處理。例如,產(chǎn)生外圍設(shè)備結(jié)束中斷事件時,內(nèi)核首先分析是否正常結(jié)束,如果是正常結(jié)束,那么,就應(yīng)釋放等待該外圍傳輸?shù)倪M(jìn)程;否則啟動相應(yīng)設(shè)備管理進(jìn)程進(jìn)行出錯或異常處理。又如當(dāng)操作員請求從控制臺輸入命令時,內(nèi)核將把這一任務(wù)轉(zhuǎn)交給命令管理進(jìn)程去處理,以接收和執(zhí)行命令。

  (2)短程調(diào)度。主要職能是分配處理器。當(dāng)系統(tǒng)中發(fā)生了一個事件之后,可能一個進(jìn)程要讓出處理器,而另一個進(jìn)程又要獲得處理器。短程調(diào)度按照一定的策略管理處理器的轉(zhuǎn)讓,以及完成保護(hù)和恢復(fù)現(xiàn)場的工作。由于它是協(xié)調(diào)進(jìn)程競爭處理器資源的程序,所以它不是進(jìn)程而是內(nèi)核中的一個程序。

  (3)原語管理。原語是內(nèi)核中實現(xiàn)某一功能的不可中斷過程。為了協(xié)調(diào)進(jìn)程完成通信、并發(fā)執(zhí)行和共享資源,各種原語是必不可少的。通信原語為進(jìn)程相互傳遞消息,同步原語能協(xié)調(diào)并發(fā)進(jìn)程之間的種種制約關(guān)系。此外,還有其他原語,如啟動外圍設(shè)備工作的啟動原語,若啟動不成功則請求啟動者應(yīng)等待,顯然,這個啟動過程應(yīng)該是完整的,否則在成為等待狀態(tài)時,可能外圍設(shè)備已經(jīng)空閑。由于設(shè)備的操作與硬件密切相關(guān),故通常設(shè)備驅(qū)動程序等功能都放在內(nèi)核中完成。

  內(nèi)核是操作系統(tǒng)對裸機(jī)的首次改造,內(nèi)核和裸機(jī)組成了一臺虛擬機(jī),進(jìn)程就在這臺虛擬機(jī)上運行,它比裸機(jī)的功能更強(qiáng)大,具有以下特性:

  (1)虛擬機(jī)沒有中斷,因而,進(jìn)程的設(shè)計者不再需要有硬件中斷的概念,用戶進(jìn)程執(zhí)行中無須處理中斷;

  (2)虛擬機(jī)為每個進(jìn)程提供了一臺虛擬處理器,每個進(jìn)程就好像在各自的私有處理器上順序地推進(jìn),實現(xiàn)了多個進(jìn)程的并發(fā)執(zhí)行;

  (3)虛擬機(jī)為進(jìn)程提供了功能較強(qiáng)的指令系統(tǒng),即它們能夠使用機(jī)器非特權(quán)指令、系統(tǒng)調(diào)用和原語所組成的新的指令系統(tǒng)。

  為了保證系統(tǒng)的有效性和靈活性,設(shè)計內(nèi)核應(yīng)遵循少而精的原則。如果內(nèi)核功能過強(qiáng),則一方面在修改系統(tǒng)時可能牽動內(nèi)核;另一方面它占用的內(nèi)存容量和執(zhí)行時間都會增大,且屏蔽中斷的時間過長也會影響系統(tǒng)效率。因而,設(shè)計內(nèi)核時應(yīng)注意:中斷處理要簡單;調(diào)度算法要有效;原語應(yīng)靈活有力、數(shù)量適當(dāng)。這樣就可以做到下次修改系統(tǒng)時,盡量少改動內(nèi)核,執(zhí)行時中斷屏蔽時間縮短。

  2.進(jìn)程管理

  程序本身并不能做什么,只有在CPU執(zhí)行它的指令時才能有所作為;因此,可以把進(jìn)程看做是正在運行的程序。但是當(dāng)我們進(jìn)一步研究時,對進(jìn)程的定義將更為普遍。例如:一個分時用戶程序(如編譯器)是一個進(jìn)程,個人用戶在PC 上運行的字處理程序是一個進(jìn)程,一個系統(tǒng)任務(wù)(如輸出到打印機(jī))也是一個進(jìn)程,并可以提供允許進(jìn)程創(chuàng)建與其并發(fā)執(zhí)行的子進(jìn)程的系統(tǒng)調(diào)用。

  進(jìn)程需要特定的資源(包括CPU時間、內(nèi)存、文件和I/O設(shè)備)來完成工作。這些資源或者在進(jìn)程創(chuàng)建時分配給它,或者在其運行時分配。除了在進(jìn)程創(chuàng)建時所獲得的各種物理資源和邏輯資源以外,各種各樣的初始化數(shù)據(jù)(或輸入)也可能一同傳送給進(jìn)程。例如,考慮一個能夠在終端的顯示屏上顯示一個文件狀態(tài)的進(jìn)程。這個進(jìn)程將獲得包含輸入的文件名,將執(zhí)行相應(yīng)的指令和系統(tǒng)調(diào)用來獲取所期望的信息并顯示在終端上。

  著重強(qiáng)調(diào)程序本身不是進(jìn)程;程序是靜態(tài)實體(passive entity)(好像是存儲在磁盤中的文件的內(nèi)容),而進(jìn)程是動態(tài)實體(active entity),它用一個程序計數(shù)器來指明要執(zhí)行的下一條指令。進(jìn)程必須要按順序執(zhí)行,CPU執(zhí)行完進(jìn)程的一條指令后再執(zhí)行下一條,直到進(jìn)程結(jié)束。進(jìn)一步地講,一次最多執(zhí)行一條代表該進(jìn)程的指令。這樣,從來就不會出現(xiàn)兩個獨立運行的序列。但一個程序在運行時創(chuàng)建多個進(jìn)程是非常普遍的。

  進(jìn)程是并發(fā)程序設(shè)計的一個工具,并發(fā)程序設(shè)計支撐了多道程序設(shè)計,由于進(jìn)程能確切、動態(tài)地刻畫計算機(jī)系統(tǒng)內(nèi)部的并發(fā)性,更好地解決系統(tǒng)資源的共享性,所以,在操作系統(tǒng)的發(fā)展史上,進(jìn)程概念被較早地引入了系統(tǒng)。它在操作系統(tǒng)的理論研究和設(shè)計實現(xiàn)上均發(fā)揮了重要作用。采用進(jìn)程概念使得操作系統(tǒng)結(jié)構(gòu)變得清晰,主要表現(xiàn)如下。

  (1)一個進(jìn)程到另一個進(jìn)程的控制轉(zhuǎn)移由進(jìn)程調(diào)度機(jī)構(gòu)統(tǒng)一管理,不能雜亂無章,隨意進(jìn)行。

  (2)進(jìn)程之間的交互如信號發(fā)送、消息傳遞和同步互斥等活動由通信及同步機(jī)制完成,從而使進(jìn)程無法有意或無意破壞其他進(jìn)程的數(shù)據(jù)。因此,每個進(jìn)程相對獨立,相互隔離,提高了系統(tǒng)的安全性和可靠性。

  (3)進(jìn)程結(jié)構(gòu)較好地刻畫了系統(tǒng)的并發(fā)性,動態(tài)地描述出系統(tǒng)的執(zhí)行過程,因而具有進(jìn)程結(jié)構(gòu)的操作系統(tǒng),結(jié)構(gòu)清晰、整齊劃一,可維護(hù)性好。

點擊查看:2011計算機(jī)考研《操作系統(tǒng)》知識點分析完整版

1 2 3 下一頁
文章搜索
萬題庫小程序
萬題庫小程序
·章節(jié)視頻 ·章節(jié)練習(xí)
·免費真題 ·模考試題
微信掃碼,立即獲。
掃碼免費使用
考研英語一
共計364課時
講義已上傳
53214人在學(xué)
考研英語二
共計30課時
講義已上傳
5495人在學(xué)
考研數(shù)學(xué)一
共計71課時
講義已上傳
5100人在學(xué)
考研數(shù)學(xué)二
共計46課時
講義已上傳
3684人在學(xué)
考研數(shù)學(xué)三
共計41課時
講義已上傳
4483人在學(xué)
推薦使用萬題庫APP學(xué)習(xí)
掃一掃,下載萬題庫
手機(jī)學(xué)習(xí),復(fù)習(xí)效率提升50%!
版權(quán)聲明:如果考研網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本考研網(wǎng)內(nèi)容,請注明出處。
官方
微信
掃描關(guān)注考研微信
領(lǐng)《大數(shù)據(jù)寶典》
下載
APP
下載萬題庫
領(lǐng)精選6套卷
萬題庫
微信小程序
幫助
中心
文章責(zé)編:zhangyuqiong