2011計(jì)算機(jī)考研《操作系統(tǒng)》知識(shí)點(diǎn)分析(4)_跨考網(wǎng)

最后更新時(shí)間:2010-11-17 10:32:19
輔導(dǎo)課程:暑期集訓(xùn) 在線(xiàn)咨詢(xún)
復(fù)習(xí)緊張,焦頭爛額?逆風(fēng)輕襲,來(lái)跨考秋季集訓(xùn)營(yíng),幫你尋方法,定方案! 了解一下>>

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

  操作系統(tǒng)是一種大型、復(fù)雜的并發(fā)系統(tǒng),為了研制操作系統(tǒng),首先必須研究它的結(jié)構(gòu),力求設(shè)計(jì)出結(jié)構(gòu)良好的程序。操作系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)有兩層含義:一是研究操作系統(tǒng)的整體結(jié)構(gòu),由程序的構(gòu)成成分組成操作系統(tǒng)程序的構(gòu)造過(guò)程和方法;二是研究操作系統(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)程序的基本單位稱(chēng)作操作系統(tǒng)的構(gòu)件。剖析現(xiàn)代操作系統(tǒng),構(gòu)成操作系統(tǒng)的基本單位除內(nèi)核之外,主要還有進(jìn)程、線(xiàn)程、類(lèi)程和管程。

  1.內(nèi)核

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

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

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

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

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

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

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

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

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

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

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

  2.進(jìn)程管理

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

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

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

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

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

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

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

  2022考研初復(fù)試已經(jīng)接近尾聲,考研學(xué)子全面進(jìn)入2023屆備考,跨考為23考研的考生準(zhǔn)備了10大課包全程準(zhǔn)備、全年復(fù)習(xí)備考計(jì)劃、目標(biāo)院校專(zhuān)業(yè)輔導(dǎo)、全真復(fù)試模擬練習(xí)和全程針對(duì)性指導(dǎo);2023考研的小伙伴針也已經(jīng)開(kāi)始擇校和復(fù)習(xí)了,跨考考研暢學(xué)5.0版本全新升級(jí),無(wú)論你在校在家都可以更自如的完成你的考研復(fù)習(xí),暑假集訓(xùn)營(yíng)帶來(lái)了院校專(zhuān)業(yè)初步選擇,明確方向;考研備考全年規(guī)劃,核心知識(shí)點(diǎn)入門(mén);個(gè)性化制定備考方案,助你贏在起跑線(xiàn),早出發(fā)一點(diǎn)離成功就更近一點(diǎn)!

點(diǎn)擊右側(cè)咨詢(xún)或直接前往了解更多

考研院校專(zhuān)業(yè)選擇和考研復(fù)習(xí)計(jì)劃
2023備考學(xué)習(xí) 2023線(xiàn)上線(xiàn)下隨時(shí)學(xué)習(xí) 34所自劃線(xiàn)院校考研復(fù)試分?jǐn)?shù)線(xiàn)匯總
2022考研復(fù)試最全信息整理 全國(guó)各招生院??佳袕?fù)試分?jǐn)?shù)線(xiàn)匯總
2023全日制封閉訓(xùn)練 全國(guó)各招生院校考研調(diào)劑信息匯總
2023考研先知 考研考試科目有哪些? 如何正確看待考研分?jǐn)?shù)線(xiàn)?
不同院校相同專(zhuān)業(yè)如何選擇更適合自己的 從就業(yè)說(shuō)考研如何擇專(zhuān)業(yè)?
手把手教你如何選專(zhuān)業(yè)? 高校研究生教育各學(xué)科門(mén)類(lèi)排行榜

跨考考研課程

班型 定向班型 開(kāi)班時(shí)間 高定班 標(biāo)準(zhǔn)班 課程介紹 咨詢(xún)
秋季集訓(xùn) 沖刺班 9.10-12.20 168000 24800起 小班面授+專(zhuān)業(yè)課1對(duì)1+專(zhuān)業(yè)課定向輔導(dǎo)+協(xié)議加強(qiáng)課程(高定班)+專(zhuān)屬規(guī)劃答疑(高定班)+精細(xì)化答疑+復(fù)試資源(高定班)+復(fù)試課包(高定班)+復(fù)試指導(dǎo)(高定班)+復(fù)試班主任1v1服務(wù)(高定班)+復(fù)試面授密訓(xùn)(高定班)+復(fù)試1v1(高定班)
2023集訓(xùn)暢學(xué) 非定向(政英班/數(shù)政英班) 每月20日 22800起(協(xié)議班) 13800起 先行階在線(xiàn)課程+基礎(chǔ)階在線(xiàn)課程+強(qiáng)化階在線(xiàn)課程+真題階在線(xiàn)課程+沖刺階在線(xiàn)課程+專(zhuān)業(yè)課針對(duì)性一對(duì)一課程+班主任全程督學(xué)服務(wù)+全程規(guī)劃體系+全程測(cè)試體系+全程精細(xì)化答疑+擇校擇專(zhuān)業(yè)能力定位體系+全年關(guān)鍵環(huán)節(jié)指導(dǎo)體系+初試加強(qiáng)課+初試專(zhuān)屬服務(wù)+復(fù)試全科標(biāo)準(zhǔn)班服務(wù)

①凡本網(wǎng)注明“稿件來(lái)源:跨考網(wǎng)”的所有文字、圖片和音視頻稿件,版權(quán)均屬北京尚學(xué)碩博教育咨詢(xún)有限公司(含本網(wǎng)和跨考網(wǎng))所有,任何媒體、網(wǎng)站或個(gè)人未經(jīng)本網(wǎng)協(xié)議授權(quán)不得轉(zhuǎn)載、鏈接、轉(zhuǎn)帖或以其他任何方式復(fù)制、發(fā)表。已經(jīng)本網(wǎng)協(xié)議授權(quán)的媒體、網(wǎng)站,在下載使用時(shí)必須注明“稿件來(lái)源,跨考網(wǎng)”,違者本網(wǎng)將依法追究法律責(zé)任。

②本網(wǎng)未注明“稿件來(lái)源:跨考網(wǎng)”的文/圖等稿件均為轉(zhuǎn)載稿,本網(wǎng)轉(zhuǎn)載僅基于傳遞更多信息之目的,并不意味著再通轉(zhuǎn)載稿的觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性。如其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)下載使用,必須保留本網(wǎng)注明的“稿件來(lái)源”,并自負(fù)版權(quán)等法律責(zé)任。如擅自篡改為“稿件來(lái)源:跨考網(wǎng)”,本網(wǎng)將依法追究法律責(zé)任。

③如本網(wǎng)轉(zhuǎn)載稿涉及版權(quán)等問(wèn)題,請(qǐng)作者見(jiàn)稿后在兩周內(nèi)速來(lái)電與跨考網(wǎng)聯(lián)系,電話(huà):400-883-2220