操作系統(tǒng)教程新_第1頁(yè)
操作系統(tǒng)教程新_第2頁(yè)
操作系統(tǒng)教程新_第3頁(yè)
操作系統(tǒng)教程新_第4頁(yè)
操作系統(tǒng)教程新_第5頁(yè)
已閱讀5頁(yè),還剩584頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

操作系統(tǒng)原理

PrinciplesofOperatingSystem

2016年4月2計(jì)劃安排總課時(shí):56學(xué)時(shí)理論教學(xué):44課時(shí)實(shí)驗(yàn)教學(xué):12課時(shí)3教材:孫鐘秀,費(fèi)翔林,駱斌.操作系統(tǒng)教程(第4版).高等教育出版社

參考書:湯子瀛等.計(jì)算機(jī)操作系統(tǒng).西安電子科技大學(xué)出版社龐麗萍.操作系統(tǒng)原理.華中理工大學(xué)出版社梁紅兵等.《計(jì)算機(jī)操作系統(tǒng)學(xué)習(xí)指導(dǎo)與題解》.西安電子科技大學(xué)出版社4本課程地位專業(yè)核心課程考研核心課程技術(shù)開發(fā)的理論基礎(chǔ)5學(xué)習(xí)方法認(rèn)真學(xué)習(xí)積極思考加強(qiáng)交流開闊眼界,打開思路6本課程主要內(nèi)容第一章操作系統(tǒng)概論第二章處理器管理第三章同步、通信與死鎖第四章存儲(chǔ)管理第五章設(shè)備管理第六章文件管理操作系統(tǒng)的作用:管理系統(tǒng)軟硬件資源;擴(kuò)展計(jì)算機(jī)的功能;向用戶提供服務(wù)。處理機(jī)管理存儲(chǔ)管理設(shè)備管理文件管理用戶接口7第一章操作系統(tǒng)概論1.1操作系統(tǒng)概觀1.2操作系統(tǒng)的形成和發(fā)展1.3操作系統(tǒng)縱覽81.1操作系統(tǒng)概觀一、操作系統(tǒng)的定義你所用過的操作系統(tǒng)你知道下列哪些是操作系統(tǒng)嗎?

DOSLINUXWINDOWSTURBO-CWORDFOXPROUNIXVI一個(gè)C語言源程序9流行的操作系統(tǒng)微軟:Windows系列(以前MS-DOS)UNIX家族:Solaris,AIX,HPUX,SVR4,BSD, ULTRIX自由軟件:Linux,freeBSD,MinixIBM:AIX,OS/390,OS/2,OS/400,PCDOS其他:Mach,MacOS,NetWare,……10你用過的操作系統(tǒng)能做什么?各種命令:dircopydelformat啟動(dòng)、結(jié)束用戶程序系統(tǒng)調(diào)用:例如INT指令WINDOWS、UNIX等提供多任務(wù)或多用戶環(huán)境11你知道操作系統(tǒng)不能做什么?不做天氣預(yù)報(bào)不做房屋設(shè)計(jì)不是編譯程序總之,操作系統(tǒng)不直接解決最終具體應(yīng)用問題,也不負(fù)責(zé)編譯源程序...12操作系統(tǒng)是什么操作系統(tǒng)為你完成所有

“硬件相關(guān)、應(yīng)用無關(guān)”的工作,以給你

方便、效率、安全131.操作系統(tǒng)定義

操作系統(tǒng)(OS:operatingsystem):管理系統(tǒng)資源、控制程序執(zhí)行、改善人機(jī)界面、提供各種服務(wù),并合理組織計(jì)算機(jī)工作流程和為用戶提供方便而有效地使用計(jì)算機(jī)良好運(yùn)行環(huán)境的最基本的系統(tǒng)軟件。14圖1.1計(jì)算機(jī)系統(tǒng)組成2.操作系統(tǒng)的地位計(jì)算機(jī)系統(tǒng)軟件硬件(裸機(jī))應(yīng)用軟件系統(tǒng)軟件操作系統(tǒng)支撐軟件編譯程序、數(shù)據(jù)庫(kù)……15操作系統(tǒng)在計(jì)算機(jī)系統(tǒng)的地位:緊貼系統(tǒng)硬件之上,所有其他軟件之下,是各種軟件的基礎(chǔ)運(yùn)行平臺(tái)。計(jì)算機(jī)硬件操作系統(tǒng)支撐軟件應(yīng)用軟件應(yīng)用用戶應(yīng)用開發(fā)人員操作系統(tǒng)開發(fā)人員圖1.2計(jì)算機(jī)系統(tǒng)的軟硬件層次結(jié)構(gòu)16二、操作系統(tǒng)的作用(1)操作系統(tǒng)作為資源的管理者和控制者。資源管理對(duì)象:硬件資源:處理器、存儲(chǔ)器、外部設(shè)備等信息資源:程序和數(shù)據(jù)資源管理的內(nèi)容:

記錄資源使用情況,確定資源分配策略,實(shí)施資源的分配和回收等17資源管理的技術(shù):資源復(fù)用空分復(fù)用共享:例如主存和輔存時(shí)分復(fù)用共享:例如處理器資源虛化(虛擬)把一個(gè)物理實(shí)體映射為若干個(gè)對(duì)應(yīng)的邏輯實(shí)體。虛擬是操作系統(tǒng)管理系統(tǒng)資源的重要手段,可提高資源利用率。例:CPU--每個(gè)用戶(進(jìn)程)的"虛處理機(jī)"

存儲(chǔ)器--每個(gè)進(jìn)程都占有的地址空間(虛擬主存)顯示設(shè)備--多窗口或虛擬終端資源抽象資源復(fù)用和虛化主要解決物理資源不足的問題,資源抽象解決資源的易用性。資源抽象是指通過創(chuàng)建軟件來屏蔽硬件資源的物理特性和接口細(xì)節(jié),簡(jiǎn)化對(duì)硬件資源的操作、控制和使用。三種最基本的抽象:進(jìn)程抽象、虛存抽象、文件抽象18(2)操作系統(tǒng)作為擴(kuò)展機(jī)或虛擬機(jī)

OS自身包含了若干層軟件,因此當(dāng)在裸機(jī)上覆蓋上OS后,便可獲得一臺(tái)功能顯著增強(qiáng),使用更加方便,安全可靠性更好,效率明顯提高的擴(kuò)展器或多層虛擬機(jī)。在裸機(jī)上添加:設(shè)備管理、文件管理、存儲(chǔ)管理、處理機(jī)管理;另外,為合理組織工作流程:作業(yè)管理、進(jìn)程管理。19(3)操作系統(tǒng)作為用戶接口和服務(wù)提供者。操作系統(tǒng)處于用戶和計(jì)算機(jī)硬件之間,用戶通過操作系統(tǒng)來使用計(jì)算機(jī)系統(tǒng)。分兩類接口:操作接口:操作控制命令:字符型用戶界面:命令行方式、批命令方式圖形用戶界面作業(yè)控制語言(命令)程序接口:應(yīng)用程序需要獲得操作系統(tǒng)服務(wù),就必須利用系統(tǒng)提供的程序接口——系統(tǒng)調(diào)用20三、操作系統(tǒng)的功能

1.處理機(jī)管理2.存儲(chǔ)管理3.設(shè)備管理4.文件管理5.網(wǎng)絡(luò)與通信管理6.用戶接口211.處理機(jī)管理 處理機(jī)是最重要的資源,現(xiàn)代操作系統(tǒng)采用多道程序設(shè)計(jì)技術(shù),組織多個(gè)作業(yè)并發(fā)執(zhí)行,共享處理機(jī),按照某種算法(分時(shí)、優(yōu)先級(jí))交替地使用處理機(jī)。處理機(jī)管理包括:進(jìn)程控制和管理進(jìn)程同步和互斥進(jìn)程通信進(jìn)程死鎖線程控制和管理處理機(jī)調(diào)度222.存儲(chǔ)管理存儲(chǔ)管理要具備下列功能:主存分配

地址轉(zhuǎn)換:把程序中的邏輯地址映射為物理地址

存儲(chǔ)保護(hù):使多道程序間互不干擾主存共享:存儲(chǔ)擴(kuò)充:用輔存擴(kuò)充主存,實(shí)現(xiàn)“虛擬存儲(chǔ)器”233.設(shè)備管理最龐大、瑣碎的部分,因?yàn)椋?/p>

物理設(shè)備品種繁多、用法各異

各種外設(shè)能和主機(jī)并行工作主機(jī)與各類外設(shè)速度極不匹配,級(jí)差很大設(shè)備管理應(yīng)具備的功能:提供設(shè)備中斷處理提供緩沖區(qū)管理

提供設(shè)備獨(dú)立性設(shè)備分配

和回收

實(shí)現(xiàn)共享型設(shè)備的驅(qū)動(dòng)調(diào)度實(shí)現(xiàn)虛擬設(shè)備244.文件管理文件系統(tǒng)管理的功能:

文件的邏輯組織文件的物理組織文件的存取和使用目錄管理文件的共享和安全性控制文件存儲(chǔ)空間管理。255.網(wǎng)絡(luò)與通信管理操作系統(tǒng)至少應(yīng)具有與網(wǎng)絡(luò)有關(guān)的以下幾項(xiàng)功能:網(wǎng)絡(luò)資源管理數(shù)據(jù)通信管理網(wǎng)絡(luò)管理266.用戶接口操作接口程序接口27四、操作系統(tǒng)的特性

1.并發(fā)(Concurrency)2.共享(Sharing)3.異步性(Asynchronism)281.并發(fā)性

所謂并發(fā)是指在內(nèi)存中放多道作業(yè),在一個(gè)時(shí)間段上來看,每一道作業(yè)都能不同程度地向前推進(jìn),即這些作業(yè)在執(zhí)行在時(shí)間上是重疊的,即使這種重迭是很小的。與并發(fā)相關(guān)的兩個(gè)概念:串行:在內(nèi)存中每次只能放一道作業(yè),只有它完全執(zhí)行完后別的作業(yè)才能進(jìn)入內(nèi)存執(zhí)行。并行:存在于有多個(gè)CPU的環(huán)境中,在內(nèi)存中放多道作業(yè),在任一時(shí)間點(diǎn)上都可能有多道作業(yè)在不同的CUP上同時(shí)執(zhí)行。292.共享性系統(tǒng)中的資源可供多個(gè)并發(fā)的進(jìn)程共同使用。兩種共享方式:互斥共享方式同時(shí)訪問方式并發(fā)和共享是操作系統(tǒng)的兩個(gè)基本特征,它們互為依存。303、異步性(隨機(jī)性)在多道環(huán)境中允許多個(gè)程序并發(fā)執(zhí)行,它們共享系統(tǒng)資源。進(jìn)程運(yùn)行時(shí)“走走停?!?,無法預(yù)知每個(gè)進(jìn)程的運(yùn)行推進(jìn)快慢,有可能導(dǎo)致程序執(zhí)行結(jié)果不唯一。從用戶運(yùn)行程序的要求的角度看,操作系統(tǒng)必須是確定的,即用戶給定一個(gè)程序和相應(yīng)的初始數(shù)據(jù),無論在什么時(shí)候,在什么計(jì)算機(jī)系統(tǒng)上運(yùn)行,產(chǎn)生的結(jié)果都應(yīng)是相同的。這就要求操作系統(tǒng)的設(shè)計(jì)要很好地解決并發(fā)和共享的問題。311.2操作系統(tǒng)的形成和發(fā)展操作系統(tǒng)的產(chǎn)生

人工操作階段單道批處理階段操作系統(tǒng)的形成

多道批處理系統(tǒng)分時(shí)系統(tǒng)實(shí)時(shí)系統(tǒng)操作系統(tǒng)的發(fā)展微機(jī)操作系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)分布式操作系統(tǒng)嵌入式操作系統(tǒng)多處理機(jī)操作系統(tǒng)32一、人工操作階段

1946-50年代中期,操作系統(tǒng)尚未出現(xiàn),由手工控制作業(yè)的輸入輸出,通過控制臺(tái)開關(guān)啟動(dòng)程序運(yùn)行。 用戶使用計(jì)算機(jī)的過程大致如下:先把程序和數(shù)據(jù)穿孔在卡片或紙帶上,然后將卡片或紙帶裝上輸入機(jī),啟動(dòng)輸入機(jī)把程序和數(shù)據(jù)送入計(jì)算機(jī),然后通過控制臺(tái)開關(guān)啟動(dòng)程序運(yùn)行,運(yùn)行完畢后,用戶拿走計(jì)算結(jié)果。33手工操作方式的特點(diǎn)用戶獨(dú)占全機(jī):系統(tǒng)資源利用率低;CPU等待用戶:計(jì)算前,手工裝入紙帶或卡片;計(jì)算完成后,手工卸取紙帶或卡片;CPU利用率低;主要矛盾計(jì)算機(jī)處理能力的提高,手工操作的低效率(造成浪費(fèi));例如:上機(jī)操作要1分鐘,運(yùn)行時(shí)間20分鐘(10萬次/sec)上機(jī)操作要1分鐘,運(yùn)行時(shí)間0.2分鐘(1000萬次/sec)用戶獨(dú)占全機(jī)的所有資源;34如何解決矛盾利用一個(gè)控制程序?qū)崿F(xiàn)作業(yè)的自動(dòng)轉(zhuǎn)換和按步執(zhí)行.這樣用戶可一次向系統(tǒng)提交多個(gè)作業(yè)處理.

這個(gè)控制程序稱為管理程序或監(jiān)督程序.

35二、單道批處理階段操作系統(tǒng)的雛形。 單道批處理系統(tǒng)的工作過程:用戶將作業(yè)交到機(jī)房操作員,操作員收集一批作業(yè)后將作業(yè)輸入到輔存(如磁帶)上,形成一個(gè)作業(yè)隊(duì)列。在管理程序的控制下實(shí)現(xiàn)作業(yè)的自動(dòng)運(yùn)行.管理程序從這一批中選一道作業(yè)調(diào)入內(nèi)存運(yùn)行。當(dāng)這一作業(yè)完成時(shí),管理程序調(diào)入另一道程序,直到這一批作業(yè)全部完成。

36單道批處理階段的特點(diǎn)

(1)作業(yè)(步)間不需要人的干預(yù)

(2)監(jiān)控程序常駐內(nèi)存,開機(jī)后第一個(gè)進(jìn)入內(nèi)存,直到關(guān)機(jī)一直駐留在內(nèi)存中

(3)專職操作員,程序員不在現(xiàn)場(chǎng)

(4)單道

(5)監(jiān)控程序只為一個(gè)計(jì)算機(jī)系統(tǒng)設(shè)計(jì)

37對(duì)單道批處理階段的評(píng)價(jià)(1)作業(yè)轉(zhuǎn)換時(shí)間大大減小,系統(tǒng)運(yùn)行效率提高(2)資源利用率低:單道,很多資源空閑(3)程序員(和非編程用戶)無法同計(jì)算機(jī)交互(4)一個(gè)管理程序只能在一種機(jī)器上運(yùn)行如何提高系統(tǒng)資源的利用率?多道程序設(shè)計(jì)38三、多道批處理系統(tǒng)

在60年代中期引入了多道程序設(shè)計(jì)技術(shù),形成了多道批處理系統(tǒng)。操作系統(tǒng)發(fā)展史上革命性變革。

多道程序設(shè)計(jì)技術(shù):在內(nèi)存中同時(shí)存放多道作業(yè),在管理程序的控制下交替地執(zhí)行。這些作業(yè)共享CPU和系統(tǒng)中的其它資源。39多道運(yùn)行的特點(diǎn)多道。宏觀上并行:同時(shí)有多道程序有內(nèi)存運(yùn)行,某一時(shí)間段上,各道程序不同程度地向前推進(jìn)。微觀上串行:任一時(shí)刻最多只有一道作業(yè)占用CPU,多道程序交替使用CPU。40多道程序設(shè)計(jì)技術(shù)提高資源利用率例:作業(yè)1:輸入機(jī)輸入數(shù)據(jù)需78ms,

在處理器上計(jì)算需52ms,

結(jié)果存放到磁帶上需20ms.單道情況下:處理器利用率=52/(78+52+20)≈35%如何提高處理器利用率:同時(shí)接收多道作業(yè).例如接收作業(yè)1同時(shí)還接收作業(yè)2.

作業(yè)2:從另一磁帶機(jī)輸入數(shù)據(jù)需20ms,

在處理器上計(jì)算需42ms,

結(jié)果打印需88ms.

分析過程見教材P19多道情況下:處理器利用率=(52+42)/150≈63%4178輸入機(jī)處理器磁帶機(jī)130150228280300378430450時(shí)間磁帶機(jī)打印機(jī)206217032042利用概率方法計(jì)算CPU利用率假設(shè)程序平均等待I/O操作時(shí)間占整個(gè)運(yùn)行時(shí)間比例為P,當(dāng)主存中有n道程序時(shí),所有程序都等待I/O操作的概率是Pn,此時(shí)CPU是空閑的.那么CPU利用率=1-Pn例:計(jì)算機(jī)主存1MB,操作系統(tǒng)占用200KB,其余主存裝入4道程序,每道程序占200KB,程序80%時(shí)間用于等待I/O操作.CPU利用率=1-Pn=1-0.84=59%

若增加1MB主存空間,則可裝入9道作業(yè),此時(shí)

CPU利用率=1-Pn=1-0.89=87%43多道批處理系統(tǒng)的優(yōu)點(diǎn)提高了資源(CPU、主存和設(shè)備)利用率高。提高了系統(tǒng)吞吐量。系統(tǒng)吞吐量指系統(tǒng)在單位時(shí)間完成的作業(yè)數(shù)。

20世紀(jì)60年代中期,相繼出現(xiàn)多道批處理系統(tǒng)、分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng),此時(shí)標(biāo)志操作系統(tǒng)正式形成。44四、分時(shí)系統(tǒng) 推動(dòng)多道批處理系統(tǒng)形成和發(fā)展的動(dòng)力是提高資源利用率和系統(tǒng)吞吐量。 推動(dòng)分時(shí)系統(tǒng)形成和發(fā)展的主要?jiǎng)恿κ怯脩舻男枰航换?、共享主機(jī)、方便上機(jī)。

分時(shí)操作系統(tǒng):允許多個(gè)聯(lián)機(jī)用戶同時(shí)使用一個(gè)計(jì)算機(jī)系統(tǒng)進(jìn)行交互式計(jì)算的操作系統(tǒng)。

45分時(shí)系統(tǒng)實(shí)現(xiàn)思想主機(jī)終端把處理器的時(shí)間分成若干個(gè)時(shí)間單位,稱為時(shí)間片,輪流分配給各個(gè)聯(lián)機(jī)終端,終端用戶獲得CPU,就等于獲得一個(gè)時(shí)間片,該用戶程序開始運(yùn)行,當(dāng)時(shí)間片到,用戶程序暫停運(yùn)行,等待下一次運(yùn)行。46分時(shí)系統(tǒng)的特點(diǎn)同時(shí)性:若干終端用戶聯(lián)機(jī)使用計(jì)算機(jī)。獨(dú)立性:每一用戶獨(dú)占一個(gè)終端,互不干擾。及時(shí)性:用戶請(qǐng)求能及時(shí)響應(yīng)。交互性:可人機(jī)對(duì)話。47五、實(shí)時(shí)系統(tǒng)早期計(jì)算機(jī)系統(tǒng)是用于數(shù)值計(jì)算,如第一臺(tái)計(jì)算機(jī)產(chǎn)生的原因就是解決大口徑火炮設(shè)計(jì)中的計(jì)算問題:彈道軌跡、彈著點(diǎn)和材料的各種應(yīng)力分布的計(jì)算。還有原子彈設(shè)計(jì)和實(shí)驗(yàn)中大量的計(jì)算問題,用當(dāng)時(shí)的計(jì)算工具已經(jīng)解決不了。到了60年代初,計(jì)算機(jī)開始應(yīng)用到生產(chǎn)過程控制、工業(yè)控制、防空系統(tǒng)、信息處理等,在這些應(yīng)用中不但要解決計(jì)算問題題,還要求在規(guī)定的時(shí)間內(nèi)完成計(jì)算,即實(shí)時(shí)處理。在實(shí)時(shí)處理中的一個(gè)核心的問題就是響應(yīng)時(shí)間問題。48實(shí)時(shí)系統(tǒng)的應(yīng)用實(shí)時(shí)控制:如工業(yè)控制,防空系統(tǒng)等。實(shí)時(shí)信息處理:如情報(bào)檢索和查詢、飛機(jī)訂票系統(tǒng)、銀行信用卡系統(tǒng)。實(shí)時(shí)操作系統(tǒng)

是指當(dāng)外部事件或數(shù)據(jù)產(chǎn)生時(shí),能夠?qū)ζ溆枰越邮詹⒁宰銐蚩斓乃俣冗M(jìn)行處理,所得結(jié)果能在規(guī)定時(shí)間內(nèi)控制生產(chǎn)過程或?qū)刂茖?duì)象做出快速響應(yīng),并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)運(yùn)行的操作系統(tǒng)。因而,提供及時(shí)的響應(yīng)和高可靠性是其主要特點(diǎn)。

批處理系統(tǒng)、分時(shí)系統(tǒng)、實(shí)時(shí)系統(tǒng)是三種基本的操作系統(tǒng)類型。一個(gè)操作系統(tǒng)若兼有三者或其中兩者的功能,則此操作系統(tǒng)稱為通用操作系統(tǒng)。49后來又發(fā)展了微機(jī)操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、分布式操作系統(tǒng)、嵌入式操作系統(tǒng)以及多處理器操作系統(tǒng)等。伴隨著硬件技術(shù)的飛速發(fā)展,操作系統(tǒng)不僅種類越來越多,而且功能更加強(qiáng)大,給廣大用戶提供了更為舒適的應(yīng)用環(huán)境。50六、微機(jī)操作系統(tǒng)70年代中——80年代早期:?jiǎn)斡脩魡稳蝿?wù)操作系統(tǒng),CP/M(75年)、MS-DOS(81年)。80年代中——90年代初期:?jiǎn)斡脩舳嗳蝿?wù)操作系統(tǒng),WINDOWS9X。近年來:多用戶多任務(wù)操作系統(tǒng),UNIX(70年)、windows、OS/2、linux。51七、網(wǎng)絡(luò)操作系統(tǒng)目前,三種主要網(wǎng)絡(luò)操作系統(tǒng):UNIXNetwareWindowsNT52八、分布式操作系統(tǒng)在以往的系統(tǒng)中,其處理和控制功能都高度集中在一臺(tái)計(jì)算機(jī)上,所有的任務(wù)都由它處理,這樣的系統(tǒng)稱為集中式處理系統(tǒng)。分布式系統(tǒng):是指由多個(gè)分散的計(jì)算機(jī)經(jīng)網(wǎng)絡(luò)的連接而形成的系統(tǒng)。每臺(tái)計(jì)算機(jī)既高度自治,又協(xié)同工作,能夠在系統(tǒng)范圍內(nèi)實(shí)現(xiàn)資源管理和任務(wù)分配,能夠并行運(yùn)行分布式程序。用于管理分布式計(jì)算機(jī)系統(tǒng)的操作系統(tǒng)成為分布式操作系統(tǒng)。53九、嵌入式操作系統(tǒng)嵌入式系統(tǒng)硬件不再以物理獨(dú)立的裝置或設(shè)備的形式出現(xiàn),而是大部分甚至全部隱藏和嵌入各種應(yīng)用系統(tǒng)中。由于嵌入式系統(tǒng)的應(yīng)用環(huán)境與其他類型的計(jì)算機(jī)系統(tǒng)有較大差別,隨之而來的是對(duì)嵌入式軟件的需求,而嵌入式操作系統(tǒng)是嵌入式軟件的基本支撐。

嵌入式操作系統(tǒng)是指運(yùn)行在嵌入式環(huán)境中,對(duì)整個(gè)系統(tǒng)及所有操作的各種部件、裝置等資源進(jìn)行統(tǒng)一協(xié)調(diào)、處理、指揮和控制的系統(tǒng)軟件。

54嵌入式操作系統(tǒng)的應(yīng)用智能卡移動(dòng)通信計(jì)算機(jī)外設(shè)機(jī)頂盒零售設(shè)備印刷機(jī)復(fù)印機(jī)互聯(lián)網(wǎng)服務(wù)器電話交換設(shè)備55嵌入式操作系統(tǒng)按照應(yīng)用范圍可分為通用型和專用型。通用型:適用于多種應(yīng)用環(huán)境,如WindowsCE,VxWorks和嵌入式Linux專用型:面向特定的應(yīng)用場(chǎng)合,如適用于移動(dòng)電話的Symbian等。561.3操作系統(tǒng)縱覽下面讓我們順著歷史軌跡縱覽各個(gè)時(shí)期的操作系統(tǒng)57單道批處理系統(tǒng)1、FMS(FORTRANMonitorSystem,F(xiàn)ORTRAN監(jiān)控系統(tǒng))2、IBMSYS(IBM為7094機(jī)配備的操作系統(tǒng))58分時(shí)系統(tǒng)1、CTSS1961年,美國(guó)麻省理工學(xué)院開發(fā)的第一個(gè)分時(shí)系統(tǒng)。支持32個(gè)交互式用戶同時(shí)工作。592、IBMTSS/3601964年IBM宣布推出IBM360計(jì)算機(jī)系統(tǒng)第一個(gè)采用小規(guī)模集成電路的主流機(jī)型

1965年,IBM發(fā)布IBM360機(jī)上的分時(shí)系統(tǒng)TSS/360,這是一個(gè)失敗的系統(tǒng),由于過大過慢,沒有用戶愿意使用。603、MULTICS的災(zāi)難1965年在美國(guó)國(guó)防部的支持下美國(guó)麻省理工學(xué)院、貝爾實(shí)驗(yàn)室和通用電氣公司決定開發(fā)一種“公用計(jì)算服務(wù)系統(tǒng)”,希望能夠同時(shí)支持整個(gè)波士頓所有的分時(shí)用戶。這就是著名的MULTICS。1969年Multics在GE645計(jì)算機(jī)上運(yùn)行了,但它既沒有能提供預(yù)定的綜合計(jì)算服務(wù),而且連它自己也不知道究竟什么時(shí)候算達(dá)到開發(fā)的目標(biāo)。MULTICS研制難度超出了所有人預(yù)料長(zhǎng)期研制工作達(dá)不到預(yù)期目標(biāo),1969年4月貝爾實(shí)驗(yàn)室退出,通用電氣公司也退出了61MULTICS引入了許多現(xiàn)代操作系統(tǒng)的概念雛形,如分時(shí)處理、遠(yuǎn)程聯(lián)機(jī)、段頁(yè)式虛擬存儲(chǔ)器等對(duì)隨后操作系統(tǒng)特別是UNIX的成功有著巨大的影響Multics操作系統(tǒng)開發(fā)失敗的原因是當(dāng)時(shí)操作系統(tǒng)設(shè)計(jì)的指導(dǎo)思想所導(dǎo)致的。當(dāng)時(shí)操作系統(tǒng)設(shè)計(jì)的指導(dǎo)思想是“滿足所有用戶的所有要求”。UNIX系統(tǒng)的作者認(rèn)為:操作系統(tǒng)的設(shè)計(jì)不應(yīng)也不可能做到“滿足所有用戶的所有要求”,而應(yīng)為廣大的計(jì)算機(jī)用戶提供一種良好的程序設(shè)計(jì)環(huán)境。624、歷史悠久的UNIX

一個(gè)極為成功的操作系統(tǒng)UNIX發(fā)展簡(jiǎn)史1969年,在貝爾實(shí)驗(yàn)室退出MULTICS研制項(xiàng)目后,KenThompson和DennisM.Ritchie想申請(qǐng)經(jīng)費(fèi)買計(jì)算機(jī)從事操作系統(tǒng)研究,但多次申請(qǐng)得不到批準(zhǔn).項(xiàng)目無著落,他們?cè)谝慌_(tái)無人用的PDP-7上,重新擺弄原先在MULTICS項(xiàng)目上設(shè)計(jì)的“空間旅行”游戲?yàn)榱耸褂螒蚰軌蛟赑DP-7上順利運(yùn)行,他們陸續(xù)開發(fā)了浮點(diǎn)運(yùn)算軟件包、顯示驅(qū)動(dòng)軟件,設(shè)計(jì)了文件系統(tǒng)、實(shí)用程序、shell和匯編程序63到了1970年,在一切完成后,給新系統(tǒng)起了個(gè)同MULTICS發(fā)音相近的名字UNIX1971年DennisRitchie創(chuàng)造了C語言,1973年,UNIX用C語言全部重寫,這為UNIX的可移植性打下基礎(chǔ)。73年后,UNIX迅速以許可證形式免費(fèi)傳播到各大學(xué)。這些大學(xué)、研究機(jī)構(gòu)對(duì)UNIX進(jìn)行了深入研究、改進(jìn)和移植。AT&T又將這些改進(jìn)加入到UNIX。眾多大學(xué)免費(fèi)使用UNIX,使學(xué)生們熟悉了UNIX,他們畢業(yè)后將UNIX傳播到各地。64UNIX的發(fā)展導(dǎo)致許多公司開發(fā)自己機(jī)器上UNIX增值商業(yè)版本。UNIX變種大量增加。這些變種圍繞3條主線:

Bell實(shí)驗(yàn)室發(fā)布的UNIX研究版(V1到V10)美國(guó)加州大學(xué)伯克利分校發(fā)布的UNIXBSDBell實(shí)驗(yàn)室發(fā)布的UNIXSystemIII和SystemV。BSD對(duì)UNIX的發(fā)展有重要影響,許多新技術(shù)是BSD率先引入的:TCP/IP,分頁(yè)存儲(chǔ)管理,快速文件系統(tǒng),套接字等。

6580年代后期,UNIX變種的增多導(dǎo)致了程序的不兼容性和不可移植,因此迫切需要標(biāo)準(zhǔn)化。87年AT&T同SUN合作將SystemV和SUNOS統(tǒng)一為一個(gè)系統(tǒng)。其它廠商(IBM、DEC、HP等)感到了威脅,于是聯(lián)合起來在88年成立了開放軟件基金會(huì)(OSF)。作為回應(yīng)AT&T和SUN成立了UNIX國(guó)際(UI)。IEEE嘗試將兩大陣營(yíng)統(tǒng)一起來,制定了POSIX標(biāo)準(zhǔn)。此標(biāo)準(zhǔn)已被多數(shù)UNIX系統(tǒng)支持。80年代是UNIX蓬勃發(fā)展的十年,進(jìn)入90年代,Windows的發(fā)展、Linux的出現(xiàn),兩大陣營(yíng)的爭(zhēng)斗很快淡化下來。66UNIX發(fā)展簡(jiǎn)圖67UNIX概述多用戶多任務(wù)操作系統(tǒng)目前三大主流操作系統(tǒng)之一跨越從PC到巨型機(jī)范圍的唯一操作系統(tǒng)有許多變種與克隆68UNIX主要變種概況變種公司芯片AIXIBMPowerPCHP-UXHPPA-RISCsolarisSunSPARCIrixSGIMIPSDigitalUNIXDECAlphaLinux、BSDRedHatlinux、Ubuntu、FreeBSDIA(Intel、AMD、Cyrix、RISE)69UNIX評(píng)析早期優(yōu)點(diǎn):內(nèi)核結(jié)構(gòu)小巧精湛接口簡(jiǎn)潔統(tǒng)一功能豐富實(shí)用用高級(jí)語言編寫和好的結(jié)構(gòu)導(dǎo)致可移植性好源碼免費(fèi)開放早期缺點(diǎn):缺乏圖形界面內(nèi)核單體結(jié)構(gòu)可擴(kuò)充性差現(xiàn)在這些優(yōu)缺點(diǎn)有的還在,有的沒有了結(jié)構(gòu)越來越龐大源碼免費(fèi)開放和簡(jiǎn)單許可證形式促進(jìn)了早期的普及,但也導(dǎo)致各變種間的不兼容圖形界面大大增強(qiáng)內(nèi)核仍是單體結(jié)構(gòu)源碼不開放后又開始開放70CP/M操作系統(tǒng)隨著大規(guī)模集成電路發(fā)展,個(gè)人計(jì)算機(jī)時(shí)代到來了,各種類型的個(gè)人計(jì)算機(jī)和軟件層出不窮1973年GaryKildall看到對(duì)個(gè)人計(jì)算機(jī)操作系統(tǒng)的需求,設(shè)計(jì)了CP/M操作系統(tǒng)(ControlProgram/MicroprocessororMicrocomputer)CP/M操作系統(tǒng)有較好的層次結(jié)構(gòu)。它的BIOS把操作系統(tǒng)的其他模塊與硬件配置分隔開,所以它的可移植性好,具有較好的可適應(yīng)性和易學(xué)易用性到了1981年,CP/M操作系統(tǒng)成為世界上流行最廣的8位操作系統(tǒng)之一71微軟MSDOS個(gè)人計(jì)算機(jī)的成功,逼得IBM采取緊急戰(zhàn)略行動(dòng),決定要在1980年盡快生產(chǎn)出微型計(jì)算機(jī),以應(yīng)付挑戰(zhàn)但沒有操作系統(tǒng)不行。要想快就是找現(xiàn)成系統(tǒng)配套,IBM公司洽談CP/M操作系統(tǒng)不順利,機(jī)遇落到了微軟公司在關(guān)鍵時(shí)刻,開發(fā)新操作系統(tǒng)時(shí)間和人手上已經(jīng)不可能,微軟找到西雅圖計(jì)算機(jī)產(chǎn)品公司,達(dá)成由微軟經(jīng)銷西雅圖計(jì)算機(jī)產(chǎn)品公司的QDOS操作系統(tǒng)的協(xié)議當(dāng)時(shí)西雅圖公司并不知道QDOS將被轉(zhuǎn)賣給IBM,否則歷史將會(huì)怎樣演變,誰也無法知曉72IBM在1981年推出個(gè)人計(jì)算機(jī),宣布了DOS操作系統(tǒng)隨著IBMPC和MSDOS普及,CP/M逐漸走向下坡路MSDOS有優(yōu)良的文件系統(tǒng)但受到Intelx86體系結(jié)構(gòu)的限制缺乏以硬件為基礎(chǔ)的存儲(chǔ)保護(hù)機(jī)制它屬于單用戶單任務(wù)操作系統(tǒng)從1981的1.0版到1998年在Windows95/98之下的7.0版,MSDOS歷經(jīng)了16個(gè)年頭73拯救蘋果公司的Macintosh(MACOS)在推出IBMPC機(jī)后,市場(chǎng)卷起一股龍卷風(fēng)IBM自己也沒有料到產(chǎn)品會(huì)有如此巨大的成功IBM的成功說明必有其他公司失敗。甚至連蘋果公司也遇到了問題,銷售數(shù)量落到了蘭色巨人的后面蘋果公司推出Lisa機(jī)遭到失敗,AppleIII型也遭到失敗分析家們認(rèn)為,在微機(jī)市場(chǎng)上的戰(zhàn)斗似乎蘭色巨人要嬴了74施樂(Xerox)PaloAlto研究中心-70年代的計(jì)算機(jī)研究思想庫(kù)世界上第一臺(tái)個(gè)人計(jì)算機(jī)Alto,1972年在這里出現(xiàn)圖形界面,手持鼠標(biāo),面向?qū)ο蟪绦蛟O(shè)計(jì)微機(jī)網(wǎng)絡(luò),桌面出版和激光打印等等具有先進(jìn)概念和技術(shù)的原型都首次出現(xiàn)在這里751979年蘋果公司允許施樂公司購(gòu)買一百萬股的蘋果公司股票,作為回報(bào),施樂公司允許蘋果公司的少數(shù)人員,包括喬布斯(Jobs),在有限的時(shí)間內(nèi)考察施樂公司PaloAlto研究中心內(nèi)部,并同該思想庫(kù)的研究人員交談蘋果公司對(duì)PaloAlto研究中心內(nèi)的技術(shù)大感吃驚他們更吃驚的是,施樂公司在擁有這些寶貴技術(shù)的同時(shí)竟然什么也沒有做!76對(duì)PaloAlto研究中心這些科學(xué)家們而言,蘋果公司的人是他們第一次遇到真正理解他們技術(shù)的人這些科學(xué)家們后來有的去了蘋果公司,微軟公司,有的最終創(chuàng)辦了自己的公司在訪問的基礎(chǔ)上,蘋果決定立即開發(fā)采用這些新技術(shù)的個(gè)人計(jì)算機(jī)蘋果公司已看到:IBMPC機(jī)的技術(shù)有多么糟糕,但他們賣得又是特別的好77MACOS、鼠標(biāo)的新型個(gè)人計(jì)算機(jī)1984年,人們看到一則廣告:“Whatwasthat?”和對(duì)Macintosh的介紹,這是配有圖形界面操作系統(tǒng)MACOS和鼠標(biāo)的新型個(gè)人計(jì)算機(jī)MAC機(jī)一上市立即在市場(chǎng)上獲得極大的成功當(dāng)年比爾.蓋茨都說,這是一臺(tái)他的媽媽也能使用的計(jì)算機(jī)Macintosh把蘋果公司從連續(xù)的失敗中拯救出來蘋果公司又開始向前發(fā)展正是Mac先進(jìn)圖形界面操作系統(tǒng)技術(shù),超前PC機(jī)若干年,造就了一批蘋果的忠實(shí)追隨者78一波三折的微軟Windows操作系統(tǒng)1983年10月,PC機(jī)競(jìng)爭(zhēng)廠家的圖形界面相關(guān)產(chǎn)品上市面對(duì)市場(chǎng)壓力,比爾.蓋茨在1983年11月10日宣布推出Windows操作系統(tǒng)然而宣布容易,交貨就不簡(jiǎn)單了,Windows交貨期的災(zāi)難,成了當(dāng)年計(jì)算機(jī)界的笑柄直到1985年11月20日,Windows1.0才正式上市79Windows的歷史記錄Windows在當(dāng)時(shí)微軟歷史上創(chuàng)了幾個(gè)記錄:延遲交貨次數(shù)最多,投入開發(fā)人員最多,開發(fā)時(shí)間最長(zhǎng),更換主管人員最多不過幾年之后,Windows終于創(chuàng)造了銷售成績(jī)最佳的歷史記錄1992年4月,推出Windows3.1,1993年5月,發(fā)表WindowsNT,Windows95,WindowsCE,Windows98,Windows2000,WindowsXP,.net個(gè)人計(jì)算機(jī)采用Windows占90%以上,微軟公司成了壟斷PC行業(yè)的同義詞80Windows系列81基于微內(nèi)核的Mach操作系統(tǒng)1975年Rochester大學(xué)開發(fā)了RIG操作系統(tǒng)系統(tǒng)設(shè)計(jì)者之一RichardRashid移居到CMU后,在DARPA支持下,1984年開始了Mach的開發(fā)希望Mach能與UNIX兼容,運(yùn)行線程,更好的進(jìn)程通信機(jī)制,支持多處理機(jī)及好的虛擬存儲(chǔ)系統(tǒng)Mach第一個(gè)版本是1986年為VAX11/784四CPU多處理機(jī)發(fā)布1988年的Mach2.5版包含了大量的BSDUNIX的代碼1989年,Mach內(nèi)核中去掉了所有的BSDUNIX的代碼,剩下了一個(gè)純的Mach微內(nèi)核,這就是Mach3.0版本,它是OSF發(fā)布的基礎(chǔ)82Mach中采用了許多當(dāng)代操作系統(tǒng)使用的技術(shù),微內(nèi)核、線程、進(jìn)程間消息傳遞和面向?qū)ο蟮脑O(shè)計(jì)方法等等在Mach的基礎(chǔ)上,有不少用于微處理器、多處理器以及超級(jí)計(jì)算機(jī)的操作系統(tǒng)和實(shí)時(shí)嵌入式操作系統(tǒng)陸續(xù)設(shè)計(jì)和開發(fā)出來,如OSF/1,DCEUnix,NeXT等等83IBM大型計(jì)算機(jī)操作系統(tǒng)OS/39090年代末期,電子商務(wù)發(fā)展刺激對(duì)計(jì)算能力的要求,導(dǎo)致大型機(jī)市場(chǎng)的再度升溫三十年的改進(jìn),IBMS/390已成為有高可靠性、可擴(kuò)展性、及安全可用性的現(xiàn)代大型計(jì)算機(jī)系統(tǒng)支持UNIX95標(biāo)準(zhǔn),UNIX應(yīng)用程序可在IBMOS/390上運(yùn)行同時(shí)還可繼續(xù)運(yùn)行S/390應(yīng)用程序,包括S/370上開發(fā)的應(yīng)用程序包括TCP/IP的多種通信協(xié)議,具有高網(wǎng)絡(luò)安全性采用面向?qū)ο蟪绦蛟O(shè)計(jì)、并行處理、分布式處理以及客戶機(jī)/服務(wù)器技術(shù),具有較強(qiáng)的互操作性、可移植性與可擴(kuò)展性84由于歷史淵源,OS/390有不同的系統(tǒng)運(yùn)行方式:

S/370本機(jī)模式:支持原先在S/370運(yùn)行的程序

ESA/390模式:支持到10個(gè)240M處理器內(nèi)存和256個(gè)通道

ESA/390LPAR模式:系統(tǒng)可分成最多十個(gè)部分,每個(gè)部分有自己的CPU,存儲(chǔ)器和通道,且分別運(yùn)行不同的操作系統(tǒng),如S/370,ESA/370和ESA/390等在PC機(jī)時(shí)代,人們?cè)?jīng)估計(jì)大型計(jì)算機(jī)會(huì)衰亡IBMS/390是大型計(jì)算機(jī)復(fù)活的一個(gè)典型那么,在21世紀(jì)的Internet和后PC的時(shí)代,大型機(jī)還會(huì)有什么演化,只有讓時(shí)間來說明85IBM的OS產(chǎn)品簡(jiǎn)介AIX5L:IBMRS/6000和SP結(jié)點(diǎn)上的高端UNIXAIX:AdvancedInteractiveExecutivezOS:IBMz/900大型主機(jī)系統(tǒng)64位專有OS前身:OS/390(S390服務(wù)器)更早前身:MVS(S38/s370/S360大型主機(jī)系統(tǒng))VM和VSE:S38/s370/S360大型主機(jī)系統(tǒng)OS/400:IBMAS/400服務(wù)器專有OS(原小型機(jī))OS/2Warp4.0:IBMPS/2微機(jī)PCDOS7和PCDOS2000:IBMPC個(gè)人機(jī)86嵌入式操作系統(tǒng)的代表VxWorks美國(guó)WindRiver公司開發(fā)的嵌入式實(shí)時(shí)操作系統(tǒng),可靠性高,性能卓越,人機(jī)界面友好,廣泛應(yīng)用于通信、軍事、航空、航天等領(lǐng)域,市場(chǎng)份額大,獲得業(yè)界很高的聲譽(yù)。美國(guó)F-16戰(zhàn)斗機(jī)、FA-18戰(zhàn)斗機(jī)、B-2隱形轟炸機(jī)、愛國(guó)者導(dǎo)彈和火星探測(cè)器均使用VxWorks。VxWorks支持各種工業(yè)標(biāo)準(zhǔn),包括POSIX,ANSIC和TCP/IP網(wǎng)絡(luò)協(xié)議VxWorks運(yùn)行系統(tǒng)的核心是一高效率的微內(nèi)核微內(nèi)核支持各種實(shí)時(shí)功能,包括快速多任務(wù)處理,中斷支持,搶占式和輪轉(zhuǎn)式調(diào)度微內(nèi)核設(shè)計(jì)減輕了系統(tǒng)負(fù)載并可快速響應(yīng)外部事件87從只需幾千字節(jié)存儲(chǔ)器的深嵌式產(chǎn)品設(shè)計(jì)到復(fù)雜高端實(shí)時(shí)系統(tǒng)設(shè)計(jì),開發(fā)人員有八十多個(gè)選件并可構(gòu)成上百個(gè)不同的配置VxWorks開發(fā)主機(jī):Windows9x,WindowsNT,SunSolaris,SunOS,HP-UX等支持目標(biāo)微處理器:86,68k,PPC,CPU32,i960,SPARC,SPARCLite,SH,ColdFire,R3000,R4000,C16X,ARM,MIPS等目前在國(guó)內(nèi)也占據(jù)嵌入式開發(fā)系統(tǒng)市場(chǎng)主要份額88<>自由而奔放的黑馬-LinuxLinux簡(jiǎn)述Linux是一個(gè)類Unix(Unix-like)的操作系統(tǒng);Linux是自由軟件。89軟件按提供方式和是否盈利可劃分為三種模式:商業(yè)軟件(Commercialsoftware)共享軟件(Shareware)自由軟件(Freeware或Freesoftware)使用的自由研究的自由散布的自由改良的自由9070年代后期起很多軟件不再提供源碼,使用戶無法修改軟件中的錯(cuò)誤,使用尤為不便。為此在1984年,RichardStallman先生啟動(dòng)了GNU計(jì)劃,并成立了自由軟件基金會(huì)自由軟件(FreeSoftwareorFreeware)是指遵循通用公共許可證GPL(GeneralpublicLicense)規(guī)則,保證您有使用上的自由、獲得源程序的自由,可以自己修改的自由,可以復(fù)制和推廣的自由,也可以有收費(fèi)的自由的一種軟件。91自由軟件介紹92<>Linux之父-LinusTorvaldsLinux發(fā)展簡(jiǎn)史芬蘭、赫爾辛基大學(xué)、1990年起始于寫兩個(gè)進(jìn)程然后寫驅(qū)動(dòng)程序、文件系統(tǒng)、任務(wù)切換程序,從而形成一個(gè)操作系統(tǒng)鄒形,取名為linux93<>LinusTorvalds將linux放在互聯(lián)網(wǎng)上。他表達(dá)了一個(gè)愿望,希望借此搞出一個(gè)操作系統(tǒng)的“內(nèi)核”來1993,在一批高水平黑客的參與下,誕生了Linux1.0版1994年,Linux的第一個(gè)商業(yè)發(fā)行版Slackware問世1996年,美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)局的計(jì)算機(jī)系統(tǒng)實(shí)驗(yàn)室確認(rèn)Linux版本1.2.13(由OpenLinux公司打包)符合POSIX

標(biāo)準(zhǔn)2001年,Linux2.4版內(nèi)核發(fā)布2003年,Linux2.6版內(nèi)核發(fā)布……94<>Linux優(yōu)良特性

分時(shí)的多用戶多任務(wù)的操作系統(tǒng)多數(shù)網(wǎng)絡(luò)協(xié)議支持,方便的遠(yuǎn)程管理強(qiáng)大的內(nèi)存管理和文件管理系統(tǒng)大量的可用軟件和免費(fèi)軟件優(yōu)良的穩(wěn)定性和安全性良好的可移植性和靈活性可供選擇的廠商多95<>Linux系統(tǒng)或發(fā)布版

Linux內(nèi)核、GNU工具及其他一些自由軟件組成了人們常說的Linux系統(tǒng)或Linux發(fā)布版,包括以下部分:符合POSIX標(biāo)準(zhǔn)的操作系統(tǒng)內(nèi)核、Shell和外圍工具。

C語言編譯器和其他開發(fā)工具及函數(shù)庫(kù)XWindow窗口系統(tǒng)各種應(yīng)用軟件,包括字處理軟件、圖象處理軟件等。其他各種Internet軟件關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)等。

96<>幾種流行的Linux發(fā)行版本97其他freeOS:FreeBSD,Minix等FreeBSD:免費(fèi)UNIX變種,基于4.4BSD基于Intelx86平臺(tái)Minix:UNIX的克隆基于Intelx86平臺(tái)荷蘭阿姆斯特丹Vrije大學(xué)國(guó)際OS專家AndrewS.TanenbaumOther:BeOS,QNX,XINU等98操作系統(tǒng)領(lǐng)域中新的操作系統(tǒng)有線電視機(jī)頂盒領(lǐng)域,PowerTV移動(dòng)通信領(lǐng)域,EPOC掌上計(jì)算機(jī)領(lǐng)域,PalmOS數(shù)字影像領(lǐng)域,Digita99研究中的新的操作系統(tǒng)哈佛大學(xué)的VINO,使應(yīng)用得以重用內(nèi)核構(gòu)件猶他州大學(xué)的OSKit,提供構(gòu)造操作系統(tǒng)所需的基礎(chǔ)構(gòu)件,也提供高層次構(gòu)件。OSKit可用來構(gòu)造新的OSMITExokernel,該系統(tǒng)只有一個(gè)極小的核。系統(tǒng)抽象通過LibraryOperatingSystem完成加州大學(xué)伯克利分校NOW集群操作系統(tǒng),100臺(tái)UltraSPARC-I處理機(jī)集群,排名于世界最快的200臺(tái)超級(jí)計(jì)算機(jī)之內(nèi)NASA空間飛行中心(GSFC)研制Beowulf項(xiàng)目開始于1994年,用商業(yè)化的微型計(jì)算機(jī),Linux和以太網(wǎng)等構(gòu)造集群。已有世界各地的約六十個(gè)大學(xué)和研究機(jī)構(gòu)在使用100國(guó)內(nèi)操作系統(tǒng)的研制狀況60年代末至70年代初,楊芙清院士主持我國(guó)第一臺(tái)百萬次集成電路計(jì)算機(jī)(150)操作系統(tǒng)。支持多道程序運(yùn)行,在石油勘探領(lǐng)域成功應(yīng)用70年代中后期,楊芙清院士主持我國(guó)第一個(gè)全部用高級(jí)語言書寫的DJS240機(jī)操作系統(tǒng)DJS200/XT2

層次管程結(jié)構(gòu)模型,PCM設(shè)計(jì)方法,活躍管程結(jié)構(gòu)模式GX73多機(jī)實(shí)時(shí)操作系統(tǒng)(1978年)國(guó)防科技大學(xué),1980年裝在“遠(yuǎn)望”-I號(hào)航天測(cè)量船上,完成了向太平洋發(fā)射運(yùn)載火箭、潛水艇水下發(fā)射的測(cè)控任務(wù);完成了我國(guó)第一顆同步地球衛(wèi)星的測(cè)控、定軌、控制任務(wù)101

“銀河”-1YHOS巨型機(jī)操作系統(tǒng)(1983年)國(guó)防科技大學(xué),用于YH-1、YH-2超級(jí)計(jì)算機(jī),用于我國(guó)的石油勘探、天氣預(yù)報(bào)和核物理研究

COSIXv1.X/2.0國(guó)產(chǎn)UNIX類操作系統(tǒng)(國(guó)家八五、九五重點(diǎn)科技攻關(guān)成果,以中軟為首,聯(lián)合國(guó)內(nèi)18個(gè)單位共同完成)微內(nèi)核結(jié)構(gòu),安全級(jí)別超過B1,中文界面嵌入式操作系統(tǒng)Hopen(女媧計(jì)劃)Linux類操作系統(tǒng)

102思考和回顧個(gè)人計(jì)算機(jī)的興起,結(jié)束了IBM的霸主地位Internet普及,Linux的成功,極大地推動(dòng)了當(dāng)代操作系統(tǒng)的研究發(fā)展活動(dòng)據(jù)不完全統(tǒng)計(jì),當(dāng)前在Internet上,有超過100個(gè)操作系統(tǒng)的項(xiàng)目在14個(gè)國(guó)家中進(jìn)行著一批批的程序設(shè)計(jì)員們自愿通過互聯(lián)網(wǎng)組織成為研究小組,從事著各類操作系統(tǒng)的研究開發(fā)工作103在一些影響全球的操作系統(tǒng)的誕生和發(fā)展過程中,大師們?cè)O(shè)計(jì)那些知名操作系統(tǒng)的初始動(dòng)機(jī)真是各不相同的一個(gè)操作系統(tǒng)成功的緣由,似乎也在于某種機(jī)遇,往往是有心裁花花不開,無心插柳柳成行未來操作系統(tǒng)的發(fā)展是否還會(huì)是這個(gè)模式?在Internet時(shí)代,新概念、新思想、新原理和新技術(shù)層出不窮誰又能預(yù)測(cè),未來會(huì)有什么樣的新型操作系統(tǒng)在國(guó)際互聯(lián)網(wǎng)上問世呢!104第一章作業(yè)P57習(xí)題一一、思考題3,15,22,26二、應(yīng)用題1,2,3,4,7,9105第二章處理器管理處理器管理是操作系統(tǒng)最核心的部分。負(fù)責(zé)管理、調(diào)度和分配計(jì)算機(jī)系統(tǒng)的重要資源——處理器。1062.1中央處理器(CPU)一、處理器的構(gòu)成處理器由運(yùn)算器、控制器、一組寄存器以及高速緩存構(gòu)成。運(yùn)算器:實(shí)現(xiàn)指令中的算術(shù)和邏輯運(yùn)算,是計(jì)算機(jī)計(jì)算的核心??刂破鳎贺?fù)責(zé)控制程序運(yùn)行的流程,包括取指令、維護(hù)CPU狀態(tài)、CPU與內(nèi)存的交互等等。寄存器:是指令在CPU內(nèi)部作處理的過程中暫存數(shù)據(jù)、地址以及指令信息的存儲(chǔ)設(shè)備,在計(jì)算機(jī)的存儲(chǔ)系統(tǒng)中它具有最快的訪問速度。高速緩存:處于CPU和物理內(nèi)存之間,訪問速度快于內(nèi)存,低于寄存器。利用程序局部性原理使得高速指令處理和低速內(nèi)存訪問得以匹配,從而提高CPU的效率。107二、寄存器兩類寄存器:用戶可見寄存器:高級(jí)語言編譯器通過算法分配并使用之,以減少程序訪問主存次數(shù)??刂坪蜖顟B(tài)寄存器:用于控制處理器的操作。由OS的特權(quán)指令使用,以控制其它程序的執(zhí)行。計(jì)算機(jī)系統(tǒng)的處理器包括一組寄存器,其個(gè)數(shù)根據(jù)機(jī)型的不同而不同,它們構(gòu)成了一級(jí)存儲(chǔ),比主存容量小,但訪問速度快。這組寄存器所存儲(chǔ)的信息與程序的執(zhí)行有很大關(guān)系,構(gòu)成了處理器現(xiàn)場(chǎng)。

1081.用戶可見寄存器機(jī)器語言(匯編語言)直接引用包括數(shù)據(jù)寄存器、地址寄存器等數(shù)據(jù)寄存器(dataregister):又稱通用寄存器地址寄存器(addressregister):用于存儲(chǔ)數(shù)據(jù)及指令的物理地址。如indexregister、segmentpointer、stackpointer1092.控制和狀態(tài)寄存器用于控制處理器的操作大部分對(duì)于用戶是不可見的一部分可以在某種特權(quán)模式(由OS使用)下訪問常見的控制和狀態(tài)寄存器:程序計(jì)數(shù)器(PC:ProgramCounter):記錄將要取出的指令的地址指令寄存器(IR:InstructionRegister):包含最近取出的指令程序狀態(tài)字(PSW:ProgramStatusWord):記錄處理器的運(yùn)行模式信息等等110三、特權(quán)指令和非特權(quán)指令1.處理器執(zhí)行指令過程處理器依據(jù)在程序計(jì)數(shù)器中的指令地址從存儲(chǔ)器中取一條指令取到的指令放在指令寄存器(IR)中處理器解釋并執(zhí)行指令自動(dòng)將程序計(jì)數(shù)器的值變成下條指令的地址1112.五類指令

(1)數(shù)據(jù)處理類指令;

(2)轉(zhuǎn)移類指令;

(3)數(shù)據(jù)傳送類指令;

(4)移位與字符串類指令;

(5)I/O類指令。112處理器如何知道當(dāng)前運(yùn)行的是操作系統(tǒng)還是一應(yīng)用軟件?執(zhí)行時(shí)有不同的權(quán)限。有賴于處理器狀態(tài)。3.特權(quán)指令與非特權(quán)指令從資源管理和控制程序執(zhí)行的角度出發(fā),必須把指令系統(tǒng)中的指令分作兩部分:特權(quán)指令和非特權(quán)指令。特權(quán)指令:只能由操作系統(tǒng)的內(nèi)核程序使用的指令,如啟動(dòng)I/O設(shè)備、設(shè)置時(shí)鐘、控制中斷屏蔽位、清主存、建立存儲(chǔ)鍵,加載PSW等。內(nèi)核能夠執(zhí)行全部指令,應(yīng)用程序只能使用非特權(quán)指令。113四、處理器的狀態(tài)根據(jù)運(yùn)行程序?qū)Y源和機(jī)器指令的使用權(quán)限將處理器設(shè)置為不同狀態(tài),處理器狀態(tài)又稱為處理器模式。多數(shù)系統(tǒng)將處理器工作狀態(tài)劃分為核心態(tài)和用戶態(tài)。1.核心態(tài)(KernelMode)CPU執(zhí)行操作系統(tǒng)程序時(shí)所處的狀態(tài)。較高的特權(quán)級(jí)別,又稱為特權(quán)態(tài)(特態(tài))、系統(tǒng)態(tài)、管態(tài)。處理器處于核心態(tài)時(shí),程序可以執(zhí)行全部指令,使用所有資源,具有改變處理器狀態(tài)的能力。2.用戶態(tài)(UserMode)

用戶程序執(zhí)行時(shí)CPU所處的狀態(tài)。較低的特權(quán)級(jí)別,又稱為普通態(tài)(普態(tài))、目態(tài)。處理器處于用戶狀態(tài)時(shí),程序只能執(zhí)行非特權(quán)指令,不能直接使用系統(tǒng)資源,只能訪問用戶程序所在的存儲(chǔ)空間,不能改變CPU狀態(tài)。1143.處理器模式轉(zhuǎn)換

(1)用戶態(tài)→核心態(tài)有兩種情況會(huì)導(dǎo)致處理器從用戶態(tài)向核心態(tài)轉(zhuǎn)換:一是程序請(qǐng)求操作系統(tǒng)服務(wù),執(zhí)行系統(tǒng)調(diào)用;二是程序運(yùn)行時(shí),產(chǎn)生中斷或異常事件,運(yùn)行程序被中斷,轉(zhuǎn)向中斷處理或異常處理程序工作。兩類情況都通過中斷機(jī)制發(fā)生,中斷和異常是用戶態(tài)到內(nèi)核態(tài)轉(zhuǎn)換僅有的途徑,當(dāng)系統(tǒng)中產(chǎn)生中斷或異常,處理器作出響應(yīng)且交換程序狀態(tài)字,會(huì)導(dǎo)致處理器從用戶態(tài)轉(zhuǎn)向核心態(tài),處理事件的中斷或異常處理程序的程序狀態(tài)字中,處理器模式位一定為“核心態(tài)”。115(2)核心態(tài)→用戶態(tài)計(jì)算機(jī)提供一條特權(quán)指令稱作加載程序狀態(tài)字(IBM370為loadPSW指令,Intelx86為iret指令),用來實(shí)現(xiàn)從系統(tǒng)(核心態(tài))返回到用戶態(tài),控制權(quán)交給應(yīng)用進(jìn)程。116五、程序狀態(tài)字PSW計(jì)算機(jī)如何知道當(dāng)前處于何種工作狀態(tài)?這時(shí)能否執(zhí)行特權(quán)指令?通常操作系統(tǒng)都引入程序狀態(tài)字PSW(ProgramStatusWord)來區(qū)別不同的處理器工作狀態(tài)。PSW用來控制指令執(zhí)行順序并保留和指示與程序有關(guān)的系統(tǒng)狀態(tài),主要作用是實(shí)現(xiàn)程序狀態(tài)的保護(hù)和恢復(fù)。每個(gè)程序都有一個(gè)與其執(zhí)行相關(guān)的PSW,每個(gè)處理器都設(shè)置一個(gè)PSW寄存器。程序占有處理器執(zhí)行,它的PSW將占有PSW寄存器

117PSW包括以下內(nèi)容:程序基本狀態(tài):

(1)程序計(jì)數(shù)器;

(2)條件碼;

(3)處理器狀態(tài)位。中斷碼:保存程序執(zhí)行時(shí)當(dāng)前發(fā)生的中斷事件。中斷屏蔽位:指明程序執(zhí)行中發(fā)生中斷事件時(shí),是否響應(yīng)出現(xiàn)的中斷事件。1182.2中斷技術(shù)中斷對(duì)于操作系統(tǒng)的重要性就像機(jī)器中的驅(qū)動(dòng)齒輪一樣所以有人把操作系統(tǒng)稱為是由“中斷驅(qū)動(dòng)”或者“(中斷)事件驅(qū)動(dòng)”119中斷:是指程序執(zhí)行過程中,遇到急需處理的事件(例如電源掉電、俘點(diǎn)運(yùn)算溢出、外部設(shè)備傳輸完成或出錯(cuò)等)時(shí),暫時(shí)中止CPU上現(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完成后再返回原程序斷點(diǎn)處或調(diào)度其他程序執(zhí)行的過程。中斷源:引起中斷的事件稱中斷源,如打印完成中斷,其中斷源是打印機(jī)。斷點(diǎn):發(fā)生中斷時(shí)正在運(yùn)行的程序被暫時(shí)停止,程序的暫停點(diǎn)稱為斷點(diǎn)。例如,某程序正在執(zhí)行0200地址的指令被中斷,那么,0200地址就是斷點(diǎn),在中斷返回時(shí)就執(zhí)行0200的下一條指令。一、中斷概念120從用戶角度看中斷121二、中斷源分類1.按中斷事件的性質(zhì)和激活方式劃分(1)強(qiáng)迫性中斷:強(qiáng)迫性中斷事件肯定不是正在運(yùn)行的程序所期待的,是由隨機(jī)事件或外部請(qǐng)求引起的。分為:機(jī)器故障中斷程序性中斷外部中斷輸入輸出中斷(2)自愿性中斷:自愿性中斷事件是正在運(yùn)行的程序所期待的。是由于用戶在編制程序時(shí)因?yàn)橐蟛僮飨到y(tǒng)提供服務(wù),有意使用“訪管”指令或系統(tǒng)調(diào)用,使中斷發(fā)生。1222.按事件來源和實(shí)現(xiàn)手段分類

硬中斷軟中斷外中斷(中斷、異步中斷)內(nèi)中斷(異常、同步中斷)信號(hào)軟件中斷按事件來源和實(shí)現(xiàn)手段分類123(1)硬中斷外中斷(中斷或異步中斷)--是指來自處理器之外的中斷信號(hào),包括時(shí)鐘中斷、鍵盤中斷、它機(jī)中斷和設(shè)備中斷等;外中斷又分可屏蔽中斷和不可屏蔽中斷,每個(gè)不同中斷具有不同的中斷優(yōu)先級(jí),表示事件的緊急程度,在處理高一級(jí)中斷時(shí),往往會(huì)屏蔽部分或全部低級(jí)中斷。內(nèi)中斷(異?;蛲街袛?--是指來自處理器內(nèi)部的中斷信號(hào),通常由于程序執(zhí)行中,發(fā)現(xiàn)與當(dāng)前指令關(guān)聯(lián)的、不正常的、或是錯(cuò)誤的事件。內(nèi)中斷可細(xì)分為三種:訪管中斷、硬件故障中斷、程序性異常。中斷和異常要通過硬件設(shè)施來產(chǎn)生中斷請(qǐng)求,是硬中斷。124(2)軟中斷軟中斷是利用硬中斷的概念,用軟件方法對(duì)中斷機(jī)制進(jìn)行模擬,實(shí)現(xiàn)宏觀上的異步執(zhí)行。軟中斷分兩種:“信號(hào)”和“軟件中斷”。

125(3)中斷的通常用法

“中斷”(硬中斷)用于外部設(shè)備對(duì)CPU的中斷(中斷的是正在運(yùn)行的任何程序),轉(zhuǎn)向中斷處理程序上半部分執(zhí)行;“異常”(硬中斷)因指令執(zhí)行不正常而中斷CPU(中斷的是正在執(zhí)行這條指令的程序),轉(zhuǎn)向異常處理程序;“軟件中斷”(軟中斷)用于硬中斷服務(wù)程序?qū)?nèi)核的中斷,在上半部分中發(fā)出軟件中斷(即標(biāo)記下半部分),使得中斷下半部分在適當(dāng)時(shí)刻獲得處理;“信號(hào)”(軟中斷)用于內(nèi)核或進(jìn)程對(duì)某個(gè)進(jìn)程的中斷,通知進(jìn)程某個(gè)特定事件發(fā)生或迫使進(jìn)程執(zhí)行信號(hào)處理程序。126三、中斷和異常的響應(yīng)過程1.發(fā)現(xiàn)中斷源:2.保護(hù)現(xiàn)場(chǎng):3.轉(zhuǎn)向處理中斷/異常事件的處理程序:4.恢復(fù)現(xiàn)場(chǎng):現(xiàn)場(chǎng):是被中斷斷點(diǎn)時(shí)刻處理機(jī)的各種信息,包括程序狀態(tài)字;各寄存器的值;打開文件的狀態(tài).127四、中斷優(yōu)先級(jí)和多重中斷1.中斷優(yōu)先級(jí)在一些機(jī)器中,中斷優(yōu)先級(jí)按中斷類型劃分:以機(jī)器故障中斷的優(yōu)先級(jí)最高程序中斷和訪管中斷次之外部中斷更次之輸入輸出的優(yōu)先級(jí)最低1282.中斷屏蔽在CPU上運(yùn)行的程序,有時(shí)由于種種原因,不希望其在執(zhí)行過程中被別的事件所中斷,稱為中斷屏蔽。在PSW中設(shè)置中斷屏蔽位以屏蔽某些指定的中斷類型各設(shè)備接口中也有中斷禁止位,以禁止該設(shè)備的中斷1293.多個(gè)中斷的處理若中斷處理過程中又發(fā)生中斷,引起多中斷處理問題。兩種策略方法:(1)串行處理處理一個(gè)中斷時(shí)禁止中斷,對(duì)任何新中斷置之不理,當(dāng)再次允許中斷時(shí),新中斷才被響應(yīng)??梢酝ㄟ^屏蔽中斷來實(shí)現(xiàn)。這種方法簡(jiǎn)單易行,所有中斷嚴(yán)格按照發(fā)生順序處理,不考慮中斷緊急程度,無法達(dá)到較嚴(yán)格時(shí)間要求。130多中斷處理第一種策略方法131(2)嵌套處理允許優(yōu)先級(jí)高中斷打斷優(yōu)先級(jí)低的中斷處理過程,這樣中斷優(yōu)先級(jí)技術(shù)將引起中斷處理的嵌套。只要合適地定義中斷的優(yōu)先級(jí)別方法一的弊端大都可以克服132多中斷處理第二種策略方法133操作系統(tǒng)的基本是并發(fā)與共享,這就會(huì)引起一系列的問題,包括:對(duì)資源的競(jìng)爭(zhēng)、運(yùn)行程序之間的通信、程序之間的合作與協(xié)同等。要解決這些問題,用程序的概念已經(jīng)不能描述程序在內(nèi)存中運(yùn)行的狀態(tài),必須引人新的概念--進(jìn)程。2.3進(jìn)程及其實(shí)現(xiàn)134計(jì)算機(jī)出現(xiàn)以來,“程序”是使用廣泛的一個(gè)概念,在多道程序設(shè)計(jì)技術(shù)出現(xiàn)之前,程序是順序執(zhí)行的。1.程序的順序執(zhí)行例:在系統(tǒng)中有n個(gè)作業(yè),每個(gè)作業(yè)都有三個(gè)處理步驟:首先輸入用戶的程序和數(shù)據(jù)(Ii),然后進(jìn)行計(jì)算(Ci),最后將結(jié)果打印出來(Pi

)。

在計(jì)算機(jī)系統(tǒng)中只有一個(gè)程序在運(yùn)行,這個(gè)程序獨(dú)占系統(tǒng)中所有資源,其執(zhí)行不受外界影響。一道程序執(zhí)行完后另一道才能開始。一、進(jìn)程的概念135程序順序執(zhí)行的特點(diǎn)順序性:處理機(jī)嚴(yán)格按照程序所規(guī)定的順序執(zhí)行,即每個(gè)操作必須在下一個(gè)操作開始之前結(jié)束。封閉性:程序一旦開始執(zhí)行,其計(jì)算結(jié)果不受外界的影響,因?yàn)橐坏莱绦颡?dú)占系統(tǒng)資源,所以當(dāng)程序的初始條件給定之后,其后的狀態(tài)只能由程序本身確定,即只有本程序才能改變它??稍佻F(xiàn)性:程序的結(jié)果與它的執(zhí)行速度無關(guān)(即與時(shí)間無關(guān)),即只要程序的初始條件相同,它的執(zhí)行結(jié)果是相同的,不論它在什么時(shí)間執(zhí)行,也不管計(jì)算機(jī)的運(yùn)行速度。1362.程序的并發(fā)執(zhí)行為增強(qiáng)系統(tǒng)處理能力和提高資源利用率,現(xiàn)代操作系統(tǒng)普遍采用多道程序設(shè)計(jì)技術(shù),多道程序設(shè)計(jì)技術(shù)一個(gè)重要特點(diǎn)就是程序并發(fā)執(zhí)行。例:在系統(tǒng)中有n個(gè)作業(yè),每個(gè)作業(yè)都有三個(gè)處理步驟,輸入數(shù)據(jù)、處理、輸出。有些操作必須在其它操作之前執(zhí)行,這是有序的,但有些操作是可以同時(shí)執(zhí)行的。137I1、C1、P1的執(zhí)行必須嚴(yán)格按照順序,而P1與I2,C1與I2,I3與P1是可以同時(shí)執(zhí)行的。138(1)程序的并發(fā)執(zhí)行:是指若干個(gè)程序同時(shí)在系統(tǒng)中執(zhí)行,這些程序的執(zhí)行在時(shí)間上是重疊的,一個(gè)程序的執(zhí)行尚未結(jié)束,另一個(gè)程序的執(zhí)行已經(jīng)開始,即使這種重迭是很小的,也稱這幾個(gè)程序是并發(fā)執(zhí)行的。并發(fā)與并行概念的區(qū)別?Concurrency,parallel139(2)程序并發(fā)執(zhí)行的描述

cobeginS1;S2;S3;...;SNcoend;

Si(i=1,2,3,...,n)表示n個(gè)語句(程序段),這n個(gè)語句用cobegin和coend括起來表示這n個(gè)語句是可以并發(fā)執(zhí)行的。co是concurrent的頭兩個(gè)字符。這是Dijkstra提出的。140例:有一個(gè)程序由S0~Sn+1個(gè)語句,其中S1~Sn語句是并發(fā)執(zhí)行的,程序如下:

S0;cobeginS1;S2;S3;...;SNcoend;Sn+1;141(3)程序并發(fā)執(zhí)行的特點(diǎn)間斷性:程序并發(fā)執(zhí)行時(shí),共享資源,致使它們之間相互制約,導(dǎo)致并發(fā)程序執(zhí)行過程“走走停?!?,具有“執(zhí)行-暫停-執(zhí)行”這種間斷性的活動(dòng)規(guī)律。失去封閉性:多個(gè)程序并發(fā)執(zhí)行,共享系統(tǒng)資源,因而資源的狀態(tài)由多個(gè)程序來改變,致使程序的運(yùn)行失去了封閉性。這樣,某程序執(zhí)行時(shí),必然受其他程序影響。不可再現(xiàn)性:142例:兩個(gè)程序A和B,共享一個(gè)變量N(初值為1)。程序A:N++;程序B:P(N);N=0;程序A和B并發(fā)執(zhí)行。可能出現(xiàn)下述三種情況:N值(1)N++;P(N);N=0;(2,2,0)(2)P(N);N=0;N++;(1,0,1)(3)P(N);N++;N=0;(1,2,0)143由于并發(fā)程序的上述這些特點(diǎn),使得系統(tǒng)中的活動(dòng)以及各種活動(dòng)之間的相互關(guān)系非常復(fù)雜。因此,“程序”這個(gè)靜態(tài)的概念已不能如實(shí)地反映系統(tǒng)中的活動(dòng)情況。為對(duì)并發(fā)執(zhí)行的程序加以描述和控制,現(xiàn)代操作系統(tǒng)引入了進(jìn)程的概念。1443.進(jìn)程的概念

進(jìn)程的概念是60年代初首先由麻省理工學(xué)院的MULTICS系統(tǒng)和IBM公司的TSS/360系統(tǒng)提出和實(shí)現(xiàn)的。進(jìn)程是操作系統(tǒng)中最基本、最重要的概念之一,它對(duì)理解、描述和設(shè)計(jì)操作系統(tǒng)都具有非常重要的意義。145(1)進(jìn)程的定義進(jìn)程有很多各式各樣的定義,如:程序在處理機(jī)上執(zhí)行時(shí)所發(fā)生的活動(dòng)稱為進(jìn)程(Dijkstra)一個(gè)具有一定功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)。進(jìn)程是一個(gè)程序與其數(shù)據(jù)在處理機(jī)上執(zhí)行時(shí)所發(fā)生的活動(dòng),它是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。本書將進(jìn)程定義為:進(jìn)程是可并發(fā)執(zhí)行的程序在某個(gè)數(shù)據(jù)集合上的一次計(jì)算活動(dòng),也是操作系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位。

146(2)進(jìn)程與程序的聯(lián)系與區(qū)別①程序是指令的有序集合,其本身沒有任何運(yùn)行的含義,是一個(gè)靜態(tài)的概念。而進(jìn)程是程序在處理機(jī)上的一次執(zhí)行過程,它是一個(gè)動(dòng)態(tài)的概念。②程序可以作為一種軟件資料長(zhǎng)期存在,而進(jìn)程是有一定生命期的。程序是永久的,進(jìn)程是暫時(shí)的。注:程序可看作一個(gè)菜譜,而進(jìn)程則是按照菜譜進(jìn)行烹調(diào)的過程。③進(jìn)程和程序組成不同:進(jìn)程是由程序、數(shù)據(jù)和進(jìn)程控制塊三部分組成的。④進(jìn)程與程序的對(duì)應(yīng)關(guān)系:通過多次執(zhí)行,一個(gè)程序可對(duì)應(yīng)多個(gè)進(jìn)程;通過調(diào)用關(guān)系,一個(gè)進(jìn)程可包括多個(gè)程序。例子:光盤(程序)放光盤的活動(dòng)(進(jìn)程)147(3)進(jìn)程的特征動(dòng)態(tài)性:進(jìn)程是程序的執(zhí)行,同時(shí)進(jìn)程有生命周期。并發(fā)性:多個(gè)進(jìn)程可同存于內(nèi)存中,能在一段時(shí)間內(nèi)同時(shí)執(zhí)行。獨(dú)立性:資源分配和調(diào)度的基本單位。制約性:并發(fā)進(jìn)程間存在制約關(guān)系,造成程序執(zhí)行速度不可預(yù)測(cè)性,必須對(duì)進(jìn)程的并發(fā)執(zhí)行次序、相對(duì)執(zhí)行速度加以協(xié)調(diào)。結(jié)構(gòu)特征:進(jìn)程由程序塊、數(shù)據(jù)塊、進(jìn)程控制塊三部分組成。148二、進(jìn)程的狀態(tài)及轉(zhuǎn)換1.進(jìn)程的三種基本狀態(tài)進(jìn)程在系統(tǒng)中的活動(dòng)規(guī)律:

進(jìn)程的三種基本狀態(tài):運(yùn)行態(tài)就緒態(tài)等待態(tài)(又稱阻塞態(tài))執(zhí)行暫停執(zhí)行149(2)就緒狀態(tài)(ready)當(dāng)一個(gè)進(jìn)程已經(jīng)準(zhǔn)備就緒,一旦得到CPU,就可立即運(yùn)行,這時(shí)進(jìn)程所處的狀態(tài)稱為就緒狀態(tài)。系統(tǒng)中有一個(gè)就緒進(jìn)程隊(duì)列,處于就緒狀態(tài)進(jìn)程按某種調(diào)度策略存在于該隊(duì)列中。(1)運(yùn)行態(tài)(running)當(dāng)進(jìn)程得到處理機(jī),其執(zhí)行程序正在處理機(jī)上運(yùn)行時(shí)的狀態(tài)稱為運(yùn)行狀態(tài)。在單CPU系統(tǒng)中,任何時(shí)刻最多只有一個(gè)進(jìn)程處于運(yùn)行狀態(tài)。在多CPU系統(tǒng)中,處于運(yùn)行狀態(tài)的進(jìn)程數(shù)最多為處理機(jī)的數(shù)目。萬事具備,只欠CPU150(3)等待態(tài)(阻塞態(tài))(Wait/Blocked)

若一個(gè)進(jìn)程正等待著某一事件發(fā)生(如等待輸入輸出操作的完成)而暫時(shí)停止執(zhí)行的狀態(tài)稱為等待狀態(tài)。處于等待狀態(tài)的進(jìn)程不具備運(yùn)行的條件,即使給它CPU,也無法執(zhí)行。系統(tǒng)中有幾個(gè)等待進(jìn)程隊(duì)列(按等待的事件組成相應(yīng)的等待隊(duì)列)。151

進(jìn)程在執(zhí)行過程中,任一時(shí)刻必然處于上述三種狀態(tài)之一,進(jìn)程在執(zhí)行過程中其狀態(tài)將發(fā)生變化。運(yùn)行態(tài)就緒態(tài)等待態(tài)選中落選出現(xiàn)等待事件等待事件結(jié)束152運(yùn)行

等待:等待某事件的發(fā)生(如等待I/O完成)等待就緒:事件已經(jīng)發(fā)生(如I/O完成)運(yùn)行就緒:時(shí)間片到(例如,兩節(jié)課時(shí)間到,下課)或出現(xiàn)更高優(yōu)先級(jí)進(jìn)程,當(dāng)前進(jìn)程被迫讓出處理器。就緒運(yùn)行:當(dāng)處理機(jī)空閉時(shí),由調(diào)度(分派)程序從就緒進(jìn)程隊(duì)列中選擇一個(gè)進(jìn)程占用CPU。上述三種狀態(tài)是進(jìn)程最基本的狀態(tài),在實(shí)際的操作系統(tǒng)實(shí)現(xiàn)中,進(jìn)程遠(yuǎn)不止這三種狀態(tài)。1532.進(jìn)程五態(tài)模型及其轉(zhuǎn)換運(yùn)行態(tài)就緒態(tài)等待態(tài)選中落選出現(xiàn)等待事件等待事件結(jié)束新建態(tài)終止態(tài)154

●進(jìn)程為什么要有“掛起”狀態(tài)?

由于系統(tǒng)不斷創(chuàng)建進(jìn)程,系統(tǒng)資源特別是主存已不能滿足進(jìn)程運(yùn)行要求,此時(shí)必須將某些進(jìn)程掛起(suspend),置于磁盤對(duì)換區(qū),釋放其所占資源,暫時(shí)不啟用低級(jí)調(diào)度,起到平滑負(fù)載的目的。

3.具有掛起功能的進(jìn)程狀態(tài)及其轉(zhuǎn)換155掛起等待事件結(jié)束出現(xiàn)等待事件解除掛起掛起落選選中運(yùn)行態(tài)就緒態(tài)等待事件結(jié)束終止態(tài)新建態(tài)掛起就緒態(tài)解除掛起掛起掛起等待態(tài)等待態(tài)提交提交156三、進(jìn)程的描述和組成1.進(jìn)程映象進(jìn)程內(nèi)容及其狀態(tài)集合稱為進(jìn)程映像。包括:進(jìn)程控制塊:每個(gè)進(jìn)程有一進(jìn)程控制塊,用來存儲(chǔ)進(jìn)程的標(biāo)識(shí)信息、現(xiàn)場(chǎng)信息和控制信息。程序塊:核心棧:每個(gè)進(jìn)程捆綁一個(gè)核心棧,進(jìn)程在核心態(tài)工作時(shí),用來保存中斷/異?,F(xiàn)場(chǎng)等。數(shù)據(jù)塊:存放程序私有數(shù)據(jù),用戶棧也在數(shù)據(jù)塊中開辟。

1572.進(jìn)程上下文操作系統(tǒng)中把進(jìn)程物理實(shí)體和支持進(jìn)程運(yùn)行的環(huán)境合稱為進(jìn)程上下文。進(jìn)程在其當(dāng)前上下文中運(yùn)行,當(dāng)系統(tǒng)調(diào)度新進(jìn)程占有處理器時(shí),新老進(jìn)程隨之發(fā)生上下文切換。即保存老進(jìn)程狀態(tài)而裝入被保護(hù)了的新進(jìn)程的狀態(tài),以便新進(jìn)程運(yùn)行.158進(jìn)程上下文組成用戶級(jí)上下文:由正文(程序)、數(shù)據(jù)、共享存儲(chǔ)區(qū)、用戶棧組成,占用進(jìn)程的虛地址空間。存器上下文:由程序狀態(tài)字寄存器、指令計(jì)數(shù)器、棧指針、控制寄存器、通用寄存器等組成。系統(tǒng)級(jí)上下文:由進(jìn)程控制塊、主存管理信息(頁(yè)表或段表)、核心棧等組成。1593.進(jìn)程控制塊(ProcessControlBlock,PCB)每個(gè)進(jìn)程有且僅有一個(gè)進(jìn)程控制塊PCB是操作系統(tǒng)用于記錄和刻劃進(jìn)程狀態(tài)及有關(guān)信息的數(shù)據(jù)結(jié)構(gòu),是操作系統(tǒng)掌握進(jìn)程的唯一資料結(jié)構(gòu)。系統(tǒng)利用PCB來控制和管理進(jìn)程,所以PCB是系統(tǒng)感知進(jìn)程存在的唯一標(biāo)志進(jìn)程與PCB是一一對(duì)應(yīng)的,在創(chuàng)建進(jìn)程時(shí),建立PCB,并伴隨進(jìn)程運(yùn)行的全過程,直到進(jìn)程撤消而撤消。PCB就象我們的戶口。160PCB的內(nèi)容①標(biāo)識(shí)信息進(jìn)程標(biāo)識(shí)ID:唯一,通常是一個(gè)整數(shù)進(jìn)程組標(biāo)識(shí)ID用戶進(jìn)程名用戶組名②現(xiàn)場(chǎng)信息寄存器內(nèi)容(通用寄存器內(nèi)容、控制寄存器內(nèi)容、棧指針等)③控制信息進(jìn)程調(diào)度信息:如進(jìn)程狀態(tài)、等待時(shí)間、等待原因、進(jìn)程優(yōu)先級(jí)、隊(duì)列指針等進(jìn)程組成信息:如正文段指針、數(shù)據(jù)段指針、進(jìn)程族系信息進(jìn)程間通信信息:如消息隊(duì)列指針、所使用的信號(hào)量和鎖進(jìn)程段、頁(yè)表指針、進(jìn)程映像在輔存地址CPU的占用和使用信息:如時(shí)間片剩余量、已占用CPU時(shí)間、已執(zhí)行時(shí)間總和、定時(shí)器信息、記賬信息進(jìn)程特權(quán)信息:如主存訪問權(quán)限、處理器特權(quán)資源清單:所需全部資源、已分得資源1614.進(jìn)程隊(duì)列及其管理處于同一狀態(tài)的所有PCB組織在一起的數(shù)據(jù)結(jié)構(gòu)稱為進(jìn)程隊(duì)列。例如運(yùn)行隊(duì)列、就緒隊(duì)列、等待隊(duì)列。同一狀態(tài)進(jìn)程的PCB既可按先來先到的原則排成隊(duì)列;也可按優(yōu)先數(shù)或其它原則排成隊(duì)列。通用隊(duì)列組織方式:線性方式鏈接方式索引方式162(1)線性方式OS根據(jù)進(jìn)程的最大數(shù)目,靜態(tài)分配主存中某塊空間,所有進(jìn)程的PCB都組織在一個(gè)線性表中。優(yōu)點(diǎn):簡(jiǎn)單易行;缺點(diǎn):限定了系統(tǒng)中進(jìn)程最大數(shù),經(jīng)常要掃描整個(gè)線性表,調(diào)度效率較低。163(2)鏈接方式相同狀態(tài)的進(jìn)程PCB通過鏈接指針鏈接成一個(gè)隊(duì)列。不同狀態(tài)的進(jìn)程可排成不同的隊(duì)列,如運(yùn)行隊(duì)列、就緒隊(duì)列、等待隊(duì)列。等待隊(duì)列按等待原因不同可排成多個(gè)等待隊(duì)列。

PCB表

PCB10PCB25PCB30PCB40PCB50PCB64運(yùn)行隊(duì)列指針就緒隊(duì)列指針等待隊(duì)列1指針等待隊(duì)列2指針

PCBn7PCB70…

空閑進(jìn)程隊(duì)列指針164(3)索引方式對(duì)具有相同狀態(tài)的進(jìn)程,分別設(shè)置各自的PCB索引表,如就緒索引表、等待索引表,記錄PCB在PCB表中的地址.運(yùn)行隊(duì)列指針就緒表指針等待表1指針

PCB表PCB1PCB2PCB3PCB4PCB5PCB6…

PCBn空閑表指針…就緒索引表…等待索引表1等待表2指針165四、進(jìn)程切換一個(gè)進(jìn)程讓出處理器,由另一個(gè)進(jìn)程占用處理器的過程稱為進(jìn)程切換。進(jìn)程的切換使系統(tǒng)中的各進(jìn)程均有機(jī)會(huì)占用CPU。166進(jìn)程切換的步驟保存被中斷進(jìn)程的處理器現(xiàn)場(chǎng)信息修改被中斷進(jìn)程的進(jìn)程控制塊的有關(guān)信息,如進(jìn)程狀態(tài)等把被中斷進(jìn)程的進(jìn)程控制塊加入有關(guān)隊(duì)列選擇下一個(gè)占有處理器運(yùn)行的進(jìn)程修改被選中進(jìn)程的進(jìn)程控制塊的有關(guān)信息根據(jù)被選中進(jìn)程設(shè)置操作系統(tǒng)用到的地址轉(zhuǎn)換和存儲(chǔ)保護(hù)信息根據(jù)被選中進(jìn)程恢復(fù)處理器現(xiàn)場(chǎng)167五、進(jìn)程的控制和管理

進(jìn)程是有生命周期的:產(chǎn)生、運(yùn)行、暫停、終止。進(jìn)程生命周期的動(dòng)態(tài)變化過程由進(jìn)程管理程序來控制。進(jìn)程的控制和管理包括:進(jìn)程創(chuàng)建

進(jìn)程撤消

進(jìn)程阻塞進(jìn)程喚醒進(jìn)程掛起進(jìn)程激活168這些控制和管理功能由操作系統(tǒng)中的原語實(shí)現(xiàn)。原語是在核心態(tài)執(zhí)行、完成系統(tǒng)特定功能的不可分割的過程。原語的特點(diǎn)是執(zhí)行過程中不允許被中斷,是一個(gè)不可分割的基本單位,原語的執(zhí)行是順序的而不可能是并發(fā)的。1691.進(jìn)程創(chuàng)建進(jìn)程創(chuàng)建類似于人出生后要到派出所報(bào)戶口。進(jìn)程創(chuàng)建過程:(1)在進(jìn)程列表中增加一項(xiàng),從PCB池中申請(qǐng)一個(gè)空閑PCB,為新進(jìn)程分配惟一的進(jìn)程標(biāo)識(shí)符;(2)為新進(jìn)程的進(jìn)程映像分配地址空間。進(jìn)程管理程序確定加載到進(jìn)程地址空間中的程序;(3)為新進(jìn)程分配除主存空間外的其他各種所需資源;(4)初始化PCB,如進(jìn)程標(biāo)識(shí)符、處理器初始狀態(tài)、進(jìn)程優(yōu)先級(jí)等;(5)把新進(jìn)程狀態(tài)置為就緒態(tài),并移入就緒進(jìn)程隊(duì)列;(6)通知操作系統(tǒng)的某些模塊,如記賬程序、性能監(jiān)控程序。1702.進(jìn)程撤銷進(jìn)程完成其任務(wù)或出現(xiàn)嚴(yán)重錯(cuò)誤后,操作系統(tǒng)調(diào)用進(jìn)程撤消原語撤消進(jìn)程。相當(dāng)于一個(gè)人死亡后,家人要去派出所消戶口。進(jìn)程撤銷過程:(1)根據(jù)撤銷進(jìn)程標(biāo)識(shí)號(hào)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論