版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
操作系統(tǒng)原理馮耀霖E-mail:fengyaolin5@126.com操作系統(tǒng)原理馮耀霖E-mail:fengyaolin5@1課程說明
●理論教學(xué)內(nèi)容(講義)
Unit1操作系統(tǒng)導(dǎo)論8Unit2進(jìn)程與線程8Unit3進(jìn)程通信6Unit4進(jìn)程同步8Unit5死鎖2Unit6實(shí)存管理4Unit7虛存管理8Unit8文件管理10Unit9設(shè)備管理6附:操作系統(tǒng)實(shí)驗(yàn)準(zhǔn)備知識(shí)(自學(xué))課程說明●理論教學(xué)內(nèi)容(講義)2●實(shí)驗(yàn)內(nèi)容本課程的實(shí)驗(yàn)平臺(tái)是Linux操作系統(tǒng)。
實(shí)驗(yàn)1熟悉Linux環(huán)境實(shí)驗(yàn)2進(jìn)程的創(chuàng)建與并發(fā)執(zhí)行(一)實(shí)驗(yàn)3進(jìn)程的創(chuàng)建與并發(fā)執(zhí)行(二)實(shí)驗(yàn)4線程的創(chuàng)建與并發(fā)實(shí)驗(yàn)5信號(hào)與管道通信實(shí)驗(yàn)6線程同步(一)實(shí)驗(yàn)7線程同步(二)實(shí)驗(yàn)8分區(qū)內(nèi)存管理具體內(nèi)容見《OS2013_操作系統(tǒng)原理實(shí)驗(yàn)》
●實(shí)驗(yàn)內(nèi)容3
CPU是計(jì)算機(jī)系統(tǒng)的心臟,操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)的大腦。半個(gè)多世紀(jì)以來,操作系統(tǒng)吸引了世界上一群最熱情、最有智慧的杰出人才、集中了人類現(xiàn)代創(chuàng)造性思維活動(dòng)的精髓。操作系統(tǒng)是軟件世界的萬花筒、博覽會(huì),是軟件王國(guó)中的一頂璀璨的皇冠。能夠有機(jī)會(huì)走進(jìn)操作系統(tǒng)這個(gè)神奇、復(fù)雜而又充滿誘惑的大千世界,理解其中的基本概念、結(jié)構(gòu)和奧妙的管理機(jī)制是十分幸運(yùn)的。
4Unit1操作系統(tǒng)導(dǎo)論操作系統(tǒng)原理——馮耀霖Unit1操作系統(tǒng)原理——馮耀霖5內(nèi)容●什么是操作系統(tǒng)●操作系統(tǒng)的形成與發(fā)展●操作系統(tǒng)的基本概念內(nèi)容●什么是操作系統(tǒng)6§1
什么是操作系統(tǒng)◆操作系統(tǒng)定義◆操作系統(tǒng)的資源管理功能◆為什么要學(xué)習(xí)操作系統(tǒng)§1什么是操作系統(tǒng)◆操作系統(tǒng)定義71.1操作系統(tǒng)的定義
操作系統(tǒng)=OperatingSystem(OS)
操作系統(tǒng)這個(gè)術(shù)語聽上去很稀松平常,并不給人任何興奮的感覺,甚至有點(diǎn)“土”,原因在于中文的“操作”這個(gè)詞。提到操作員(工),通常讓人想起操作機(jī)床、起重機(jī)等各種設(shè)備或工具的穿著油膩工作服的藍(lán)領(lǐng)工人(計(jì)算機(jī)操作員充其量也就是藍(lán)領(lǐng)中的白領(lǐng)),自然讓人興奮不起來。將Operating翻譯為中文的“操作”,是因?yàn)樽畛醯淖g者沒有真正理解英文Operatingsystem所蘊(yùn)含的精髓。1.1操作系統(tǒng)的定義操作系統(tǒng)=Operating8
Operating?
圖1-1對(duì)Operating的誤讀Operating?圖1-1對(duì)Operating9那么,英文中的Operatingsystem實(shí)際意味著什么?我們先看兩個(gè)有關(guān)的英文術(shù)語。
OperatingSurgeon:外科主刀大夫。在整個(gè)手術(shù)過程中,主刀大夫具有至高無上的權(quán)威:他說要打麻藥,麻醉師就要趕緊打麻藥;他說需要手術(shù)鉗,助理大夫就趕忙遞給他手術(shù)鉗;他說需要止血,護(hù)士就得馬上拿止血藥棉來止血。整個(gè)手術(shù)最關(guān)鍵的部分:切開皮膚、拿掉器官、安裝移植器官等均由主刀大夫完成。當(dāng)然,主刀大夫有時(shí)也會(huì)將某些任務(wù),如縫合創(chuàng)口交給助理大夫來做,但整個(gè)手術(shù)的過程皆由其主控。一句話,OperatingSurgeon就是掌控整個(gè)手術(shù)過程、具有精湛技術(shù)和敏銳判斷力的醫(yī)師。
OperatingPerson:操刀手,操控者。是操控/掌控事情的人。那么,英文中的Operatingsystem實(shí)際10從OperatingSurgeon和OperatingPerson這兩個(gè)術(shù)語的語義我們可理解Operating具有“掌控”的含義。因此,應(yīng)該把Operatingsystem理解為:
Operatingsystem=掌控局勢(shì)的一種系統(tǒng)這個(gè)術(shù)語是專為計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的(IBM),指的是計(jì)算機(jī)系統(tǒng)里的一切事情均由OS來掌控。正如任何一種有效的組織或系統(tǒng)都會(huì)有一個(gè)核心機(jī)構(gòu)存在,該核心管理著該組織或系統(tǒng)的可用資源,掌控著系統(tǒng)的正常運(yùn)轉(zhuǎn)。OS就是計(jì)算機(jī)系統(tǒng)中的核心機(jī)構(gòu),它是計(jì)算機(jī)軟件精英們?cè)O(shè)計(jì)的一種大型和極其復(fù)雜的軟件系統(tǒng),用于代替人并以人的思維方式來自動(dòng)管理計(jì)算機(jī)上的從OperatingSurgeon和Operatin11
所有軟、硬資源,掌控在計(jì)算機(jī)系統(tǒng)上可能發(fā)生的一切事情。
那么,操作系統(tǒng)到底是什么?操作系統(tǒng)到底掌控什么事情?所有軟、硬資源,掌控在計(jì)算機(jī)系統(tǒng)上可能發(fā)生的一切事情。12●操作系統(tǒng)是一種大型系統(tǒng)軟件計(jì)算機(jī)軟件有應(yīng)用軟件與系統(tǒng)軟件之分。應(yīng)用軟件是計(jì)算機(jī)用戶為了應(yīng)用計(jì)算機(jī)解決某一特定問題而開發(fā)的軟件。系統(tǒng)軟件則是與具體應(yīng)用邏輯無關(guān)的軟件,是應(yīng)用軟件的開發(fā)和運(yùn)行平臺(tái)。系統(tǒng)軟件一般分為四類:①操作系統(tǒng);②語言處理系統(tǒng)(編譯程序、解釋程序);③軟件開發(fā)實(shí)用工具(編輯、調(diào)試、診斷檢測(cè)、CASE等程序);④數(shù)據(jù)庫管理系統(tǒng)(DBMS)。其中,操作系統(tǒng)也稱系統(tǒng)管理軟件,其他則為系統(tǒng)應(yīng)用軟件。操作系統(tǒng)是規(guī)模最大的系統(tǒng)軟件,如WindowsXP>4000萬行源代碼,而一些Linux系統(tǒng)的規(guī)模則更大,已達(dá)到上億行源代碼。
1.操作系統(tǒng)到底是什么?
???●操作系統(tǒng)是一種大型系統(tǒng)軟件1.操作系統(tǒng)到底是什么?13●操作系統(tǒng)是系統(tǒng)軟件中的核心圖1-2是一個(gè)簡(jiǎn)略的計(jì)算機(jī)系統(tǒng)視圖。從中可清楚地看到計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)。硬件是操作系統(tǒng)存在的物質(zhì)基礎(chǔ)。硬件向軟件提供的是物理機(jī)器界面(interface),即機(jī)器的指令系統(tǒng)。操作系統(tǒng)是加在“裸機(jī)”(純硬件)上的第一層軟件(最底層軟件),是直接建筑在硬件上的軟件,它使用機(jī)器指令實(shí)現(xiàn)對(duì)硬件的管理和控制。操作系統(tǒng)常駐內(nèi)存,它覆蓋了所有的硬件特性和功能,通過各種抽象,構(gòu)建了一個(gè)功能遠(yuǎn)強(qiáng)于裸機(jī)且易用的“操作系統(tǒng)虛擬機(jī)”(如Windows虛擬機(jī)、Linux虛擬機(jī))。操作系統(tǒng)向上層提供了兩種界面:用戶操作界面(操作命令)和編程界面●操作系統(tǒng)是系統(tǒng)軟件中的核心14硬件操作系統(tǒng)系統(tǒng)應(yīng)用軟件應(yīng)用軟件用戶物理機(jī)器界面編程界面用戶操作界面圖1-2計(jì)算機(jī)系統(tǒng)視圖計(jì)算機(jī)系統(tǒng)硬件操作系統(tǒng)系統(tǒng)應(yīng)用軟件應(yīng)用軟件用戶物理機(jī)器界面編程界面15(系統(tǒng)調(diào)用)。它們向上層掩蓋了所有的硬件特性細(xì)節(jié)。系統(tǒng)應(yīng)用軟件處于操作系統(tǒng)的上層,它們不是常駐內(nèi)存的,而是存放在磁盤等外存設(shè)備上,僅當(dāng)需要運(yùn)行這些軟件時(shí),才把它們加載到內(nèi)存,并在操作系統(tǒng)的支持下工作,通過系統(tǒng)調(diào)用獲取操作系統(tǒng)提供的各種服務(wù)。系統(tǒng)應(yīng)用軟件有效地?cái)U(kuò)充了計(jì)算機(jī)系統(tǒng)的功能,它與操作系統(tǒng)一起組成系統(tǒng)軟件整體,起到了簡(jiǎn)化程序設(shè)計(jì)、擴(kuò)大計(jì)算機(jī)處理能力、提高計(jì)算機(jī)使用效率、充分發(fā)揮各種資源功能的作用。因此,可以把系統(tǒng)應(yīng)用軟件看作是操作系統(tǒng)的延伸,甚至可把它們看作是操作系統(tǒng)的一部分(如Linux發(fā)行版)。但是系統(tǒng)應(yīng)用軟件與操作系統(tǒng)的不同之處在于,其運(yùn)行環(huán)境與普通應(yīng)用軟件一樣,它們?nèi)匀恍枰ㄟ^操作(系統(tǒng)調(diào)用)。它們向上層掩蓋了所有的硬件特性細(xì)節(jié)。16系統(tǒng)才能使用和控制系統(tǒng)資源。計(jì)算機(jī)系統(tǒng)層次結(jié)構(gòu)的最上層是應(yīng)用軟件。它們?cè)谙到y(tǒng)軟件的支持下運(yùn)行,通過系統(tǒng)調(diào)用獲取各種系統(tǒng)軟件的服務(wù)。用戶在終端上通過輸入各種操作命令(字符命令或圖形命令)使用操作系統(tǒng)虛擬機(jī)??梢?,有了操作系統(tǒng),用戶和所有非操作系統(tǒng)程序不再直接面對(duì)物理機(jī)器界面,而是面對(duì)操作系統(tǒng)提供的掩蓋了所有硬件特性細(xì)節(jié)的虛擬機(jī)界面,通過這種虛擬機(jī)界面方便地使用功能被大大強(qiáng)化了的操作系統(tǒng)虛擬機(jī)。例如,如果用戶在裸機(jī)上直接編程是很困難的,因?yàn)楦鞣N數(shù)據(jù)轉(zhuǎn)移都需要用戶自己來控制,對(duì)不同設(shè)備要用不系統(tǒng)才能使用和控制系統(tǒng)資源。17同命令來驅(qū)動(dòng),而這對(duì)一般人來說是很難勝任的。操作系統(tǒng)將這些工作從用戶手中接過來,從而讓用戶感覺到編程是一件容易的事(相對(duì)來說,而對(duì)有些人來說編程永遠(yuǎn)是很難的)。又如,操作系統(tǒng)通過進(jìn)程抽象讓計(jì)算機(jī)的每一個(gè)用戶感覺到有一臺(tái)自己獨(dú)享的CPU;通過虛擬內(nèi)存的抽象,讓用戶感覺到物理內(nèi)存空間具有無限擴(kuò)張性??傊?,通過操作系統(tǒng)對(duì)裸機(jī)的各種抽象,可魔幻般地實(shí)現(xiàn):少變多、難變易、弱變強(qiáng)。●操作系統(tǒng)是最基本的系統(tǒng)軟件
任何現(xiàn)代計(jì)算機(jī)都必須配置和安裝操作系統(tǒng)。在一臺(tái)同命令來驅(qū)動(dòng),而這對(duì)一般人來說是很難勝任的。操作系統(tǒng)將這些18計(jì)算機(jī)上你可以不安裝某些系統(tǒng)應(yīng)用軟件,如語言處理系統(tǒng)或DBMS,但操作系統(tǒng)是必須安裝的,否則,計(jì)算機(jī)就根本無法開始工作。計(jì)算機(jī)加電啟動(dòng)時(shí),除了必要的硬件檢測(cè),首先將操作系統(tǒng)加載到內(nèi)存并啟動(dòng),此后,計(jì)算機(jī)系統(tǒng)的一切工作都在操作系統(tǒng)的掌控下進(jìn)行。作為最基本的系統(tǒng)軟件,操作系統(tǒng)為所有的其它軟件(包括系統(tǒng)應(yīng)用軟件)提供了一個(gè)開發(fā)和運(yùn)行的基礎(chǔ)平臺(tái),即所有的其他軟件都需要在操作系統(tǒng)這個(gè)平臺(tái)上進(jìn)行開發(fā),并在操作系統(tǒng)的掌控下運(yùn)行,通過操作系統(tǒng)獲取所需的計(jì)算機(jī)資源。沒有操作系統(tǒng)任何軟件都無法運(yùn)行。計(jì)算機(jī)上你可以不安裝某些系統(tǒng)應(yīng)用軟件,如語言處理系統(tǒng)或DB19
什么是抽象?
所謂抽象(abstract),就是根本上存在但現(xiàn)實(shí)中不存在的東西。抽象來源于具體,但又超越具體。例如繪畫史上有抽象派,抽象畫所表現(xiàn)的就是現(xiàn)實(shí)中不存在的東西,但這些東西確實(shí)又來源于現(xiàn)實(shí)。什么是抽象?20抽象畫01抽象畫0121抽象畫02:畢加索《格爾尼卡》
抽象畫02:畢加索《格爾尼卡》222.操作系統(tǒng)到底掌控什么事情?
當(dāng)然是計(jì)算機(jī)上或計(jì)算機(jī)里發(fā)生的一切事情。最原始的計(jì)算機(jī)并沒有操作系統(tǒng),而是直接由人來掌控事情。但是隨著計(jì)算機(jī)復(fù)雜性的增長(zhǎng),人們已經(jīng)不能直接掌控計(jì)算機(jī)了,于是人們編寫出操作系統(tǒng)這個(gè)軟件來掌控計(jì)算機(jī),將人類從日益復(fù)雜的任務(wù)中解脫出來。這個(gè)“掌控”有著多層深遠(yuǎn)的意義。首先,由于計(jì)算機(jī)的功能和復(fù)雜性不斷發(fā)生變化(趨向更加復(fù)雜),操作系統(tǒng)所掌控的事情也就越來越多,越來越復(fù)雜。同時(shí),操作系統(tǒng)本身能夠使用的資源也不斷增多(如內(nèi)存容量)。???2.操作系統(tǒng)到底掌控什么事情?當(dāng)然是計(jì)算機(jī)上或計(jì)算23其次,既然操作系統(tǒng)是專門掌控計(jì)算機(jī)的,那么計(jì)算機(jī)上發(fā)生的所有事情自然需要操作系統(tǒng)的知曉和許可,未經(jīng)操作系統(tǒng)同意的任何事情均視為非法,包括用戶和應(yīng)用程序中的誤操作,以及病毒和入侵攻擊試圖運(yùn)作的事情。操作系統(tǒng)設(shè)計(jì)人員當(dāng)然要確保計(jì)算機(jī)不發(fā)生任何他們不知情或不同意的事情。雖然,操作系統(tǒng)是由Top級(jí)軟件精英們?cè)O(shè)計(jì)的,但是人的能力畢竟是有限的,人的思維也是有缺陷的,只要是由人設(shè)計(jì)出的系統(tǒng)自然不會(huì)十全十美,缺陷是難免的,這就給了攻擊者可乘之機(jī)。操作系統(tǒng)設(shè)計(jì)人員與攻擊者之間的博弈是當(dāng)前驅(qū)動(dòng)操作系統(tǒng)不斷改善的一個(gè)重要?jiǎng)恿?。再次,掌控事情的水平有高低之分,有效率不同之分其次,既然操作系統(tǒng)是專門掌控計(jì)算機(jī)的,那么計(jì)算機(jī)上發(fā)生24,就像外科主刀大夫之間也有水平高低之分。為了更好地掌控事情,更好地滿足人們永不滿足的各種越來越苛刻的需求,操作系統(tǒng)自然需要不斷改善,且將一直繼續(xù)下去。歸結(jié)起來,操作系統(tǒng)掌控的事情主要有兩大類:資源管理和安全性管理。操作系統(tǒng)管理計(jì)算機(jī)中的所有資源,包括硬件資源(設(shè)備資源)和軟件資源(信息資源)。硬件資源可大致分為四類:CPU、內(nèi)存、外存及I/O設(shè)備。操作系統(tǒng)通過各種策略提高硬件資源的工作效率和利用率,改善和優(yōu)化計(jì)算機(jī)的功能和性能。軟件資源就是存儲(chǔ)在計(jì)算機(jī)內(nèi)的各種文件,操作系統(tǒng)要對(duì)文件實(shí)施有效的保護(hù),提供快速的文件查找,通過共享提高文件資源的利用率。,就像外科主刀大夫之間也有水平高低之分。為了更好地掌控事情25安全性管理功能主要解決兩個(gè)問題:(1)確保操作系統(tǒng)自身的正常運(yùn)轉(zhuǎn),即確保操作系統(tǒng)自己不能出現(xiàn)崩潰性故障,這是計(jì)算機(jī)系統(tǒng)能正常工作的基礎(chǔ);(2)防止非法操作和非法入侵,主要是防止病毒和入侵攻擊。其中的第二個(gè)問題是是安全性管理需要解決的主要問題。隨著計(jì)算機(jī)應(yīng)用的越來越廣泛和深入,操作系統(tǒng)需要管理的資源也越來越多且越來越復(fù)雜,故對(duì)操作系統(tǒng)的要求也越來越高。由于操作系統(tǒng)存在缺陷是難免的,這就給了攻擊者可乘之機(jī)。針對(duì)對(duì)操作系統(tǒng)的攻擊,操作系統(tǒng)設(shè)計(jì)人員在不斷改進(jìn)操作系統(tǒng)的安全性,這種操作系統(tǒng)設(shè)計(jì)
安全性管理功能主要解決兩個(gè)問題:26人員與攻擊者之間的博弈,使得操作系統(tǒng)安全水平和攻擊水平不斷交替上升,永不會(huì)停止。如今安全性管理越來越受到操作系統(tǒng)設(shè)計(jì)人員的重視,其重要性越來越突出。
如果我們把整個(gè)計(jì)算機(jī)系統(tǒng)比擬成一個(gè)國(guó)家的話,操作系統(tǒng)就相當(dāng)于是管理整個(gè)國(guó)家的政府,是國(guó)家最高的政務(wù)管理機(jī)構(gòu)。
人員與攻擊者之間的博弈,使得操作系統(tǒng)安全水平和攻擊水平不斷27好了,至此我們可以給出操作系統(tǒng)的一個(gè)定義了:
★操作系統(tǒng)是最關(guān)鍵的系統(tǒng)軟件,它掌控計(jì)算機(jī)上的一切事情,包括:管理所有的計(jì)算機(jī)資源,維持計(jì)算機(jī)系統(tǒng)的安全及有序運(yùn)轉(zhuǎn),并為用戶使用計(jì)算機(jī)提供方便且有效的環(huán)境。好了,至此我們可以給出操作系統(tǒng)的一個(gè)定義了:281.2
操作系統(tǒng)的資源管理功能
資源管理是操作系統(tǒng)的主要功能,它遵循著一切人類資源管理的基本目的,即如何有效地發(fā)掘資源、監(jiān)控資源、分配資源和回收資源,而其中的核心是分配資源。公平和有效,是操作系統(tǒng)資源管理的基本原則。
公平指的是每個(gè)用戶進(jìn)程(進(jìn)展/運(yùn)行中的程序)都有享有系統(tǒng)資源的權(quán)利(就像“天賦人權(quán)”),系統(tǒng)要讓各個(gè)用戶進(jìn)程感到某種平等,即系統(tǒng)不能“無限”延長(zhǎng)對(duì)任一進(jìn)程的資源請(qǐng)求的響應(yīng)時(shí)間。當(dāng)然真正的公平是沒有的事,這很像人類生活的現(xiàn)實(shí),不過追求公平乃是人類的本能,是PSJZ觀。只有公平了,才能談得上公正與和諧。在虛擬世界里盡可能公平一點(diǎn)還是非常應(yīng)該的,至少應(yīng)該是操作系統(tǒng)設(shè)計(jì)時(shí)的不懈追求。1.2操作系統(tǒng)的資源管理功能資源管理是操作系統(tǒng)的主要29
有效就是指不能浪費(fèi)系統(tǒng)資源,要使資源盡可能被充分地利用,發(fā)揮出每個(gè)資源的最大效能。有效也為公平提供了必要的支持。這同樣也像人類生活的現(xiàn)實(shí),一個(gè)社會(huì)/國(guó)家如果存在著大量的資源浪費(fèi),而浪費(fèi)必定和腐敗聯(lián)系在一起,一個(gè)腐敗成風(fēng)的社會(huì)能是一個(gè)公平、公正的社會(huì)嗎?總之,公平與效率是操作系統(tǒng)資源管理中永恒的主題。到底是效率重要?還是公平更重要?天平的不同傾斜將引出不同的管理模式。操作系統(tǒng)的資源管理功能一般分為四個(gè)子系統(tǒng):進(jìn)程管理、內(nèi)存管理、外存管理及設(shè)備管理。有效就是指不能浪費(fèi)系統(tǒng)資源,要使資源盡可能被充分地利用301.進(jìn)程管理
進(jìn)程(process)可簡(jiǎn)單地理解為“運(yùn)行中的程序”,其實(shí)質(zhì)是操作系統(tǒng)對(duì)CPU的抽象。進(jìn)程管理的主要目的有三個(gè):第一是公平分配,即每個(gè)進(jìn)程都有機(jī)會(huì)使用到CPU;第二是非阻塞,即任何進(jìn)程不能無休止地阻撓其他進(jìn)程的正常推進(jìn),如果一個(gè)進(jìn)程在執(zhí)行過程中需要I/O或者因別的什么事情而發(fā)生阻塞,這個(gè)阻塞不能妨礙無關(guān)進(jìn)程繼續(xù)前進(jìn),就像人類世界,缺了誰地球都照樣轉(zhuǎn);第三是優(yōu)先級(jí)調(diào)度,在人類生活中人的地位不是完全一樣的,地位高的就比地位低的具有更高的資源獲取權(quán)及占有權(quán),OS設(shè)計(jì)者把人類生活中的這種關(guān)系搬到操作系統(tǒng)里面,就有了優(yōu)先級(jí)的概念,即賦予某些進(jìn)程有較高的優(yōu)先級(jí),如果優(yōu)先級(jí)高的進(jìn)程需要執(zhí)行,則優(yōu)先級(jí)低的進(jìn)程就要讓出CPU。1.進(jìn)程管理進(jìn)程(process)可簡(jiǎn)單地理解為312.內(nèi)存管理
內(nèi)存管理一般是管理由主存和緩存所形成的內(nèi)存架構(gòu)。為了有力地支持多進(jìn)程并發(fā)以及應(yīng)用程序不斷增大的需求,OS設(shè)計(jì)者發(fā)明了虛擬內(nèi)存的概念,即通過軟件技術(shù)將物理內(nèi)存邏輯擴(kuò)充到磁盤上,這樣就極大地增大了物理內(nèi)存空間。因此,現(xiàn)代操作系統(tǒng)管理的實(shí)際上是由主存、緩存及磁盤所形成的虛擬內(nèi)存架構(gòu)。內(nèi)存管理要解決的問題之一是如何給不同的用戶進(jìn)程分配內(nèi)存空間;要解決的另一個(gè)問題是怎樣讓很多用戶進(jìn)程共用同一個(gè)物理內(nèi)存,這就需要對(duì)物理內(nèi)存進(jìn)行分割和保護(hù),每個(gè)進(jìn)程占用一個(gè)受保護(hù)的內(nèi)存空間,一個(gè)進(jìn)程不能訪問另一個(gè)進(jìn)程所占用的內(nèi)存空間,即進(jìn)程不能越界。2.內(nèi)存管理內(nèi)存管理一般是管理由主存和緩存所形成的內(nèi)323.外存管理
外存管理也稱文件系統(tǒng)管理或文件管理。文件系統(tǒng)是操作系統(tǒng)對(duì)外存介質(zhì)(磁盤、磁帶、光盤)的抽象。文件則是對(duì)外存空間單位的抽象。外存管理要解決的的問題之一是如何分配外存空間給不同的進(jìn)程。要解決的另一個(gè)問題是怎樣將外存變成一個(gè)很容易使用的存儲(chǔ)介質(zhì)提供給用戶使用,使得用戶在訪問外存時(shí)無需了解外存設(shè)備的物理屬性或程序和數(shù)據(jù)在外存空間上的精確位置,例如磁盤上的磁道、磁柱、扇區(qū)等。磁盤是最重要的外存介質(zhì),是外存管理的重點(diǎn)。3.外存管理外存管理也稱文件系統(tǒng)管理或文件管理。文件334.設(shè)備管理設(shè)備管理就是管理I/O設(shè)備,其主要目的有三個(gè):其一,解決如何給不同的進(jìn)程分配I/O設(shè)備;其二,屏蔽不同設(shè)備的差異性,即使得進(jìn)程可以用同樣的方式訪問不同的設(shè)備,從而降低編程的難度;其三,提供并發(fā)訪問,即將那些看上去并不具備共享特性的設(shè)備(如打印機(jī))變得可以共享。
4.設(shè)備管理設(shè)備管理就是管理I/O設(shè)備,其主要目的有341.3為什么要學(xué)習(xí)操作系統(tǒng)我們已明確了OS的重要性,但僅僅因?yàn)楹苤匾鸵欢ㄒ獙W(xué)習(xí)它嗎?世界上重要的事情多去了,難道我們都要學(xué)習(xí)嗎?即使是計(jì)算機(jī)專業(yè)的學(xué)生,不學(xué)OS也照樣可以編程寫軟件。那我們?yōu)槭裁匆獙W(xué)呢?當(dāng)然我們可以有一千個(gè)理由,在這里僅提出兩個(gè)。
1)OS都是由軟件界中的Top精英們開發(fā)的,它的優(yōu)秀設(shè)計(jì)和經(jīng)典思路是計(jì)算機(jī)科學(xué)知識(shí)的薈精集萃,會(huì)給我們以激濁揚(yáng)清的思考,對(duì)OS的掌握程度,決定著計(jì)算機(jī)專業(yè)學(xué)習(xí)者的發(fā)展水平及方向。舉例說:1.3為什么要學(xué)習(xí)操作系統(tǒng)我們已明確了OS的重要性35①OS的功能在很多IT領(lǐng)域都使用。如果你做并發(fā)程序的開發(fā)——WebService、分布式系統(tǒng)和網(wǎng)絡(luò),你會(huì)發(fā)現(xiàn),這些領(lǐng)域大量使用了OS的概念和技術(shù)。如果你學(xué)好了OS,你就可以對(duì)你要做的事情更加有信心。②OS的技巧也在很多領(lǐng)域使用,如抽象、緩存、并發(fā)等。如數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計(jì)就大量使用了抽象,記得抽象數(shù)據(jù)類型和抽象類嗎?很多地方都用緩存,你做Web要不要用緩存呢?這些你都得做。如果學(xué)好了OS,你就掌握了這些內(nèi)容,觸類旁通,你學(xué)習(xí)別的東西時(shí)就會(huì)容易多了。①OS的功能在很多IT領(lǐng)域都使用。如果你做并發(fā)程362)更重要的是OS真的很有意思。對(duì)于一個(gè)計(jì)算機(jī)專業(yè)的人來說,難道你不想知道自己寫的程序到底是如何在計(jì)算機(jī)上運(yùn)行的嗎?很多人買車后第一件事是什么?打開前蓋。打開前蓋看到的是什么呢?馬達(dá)、變速箱。為什么第一件事要打開前蓋呢?因?yàn)楹闷孢@輛車是怎么開動(dòng)的。那么,對(duì)于一個(gè)計(jì)算機(jī)特別是軟件專業(yè)的人來說,有沒有在看到一臺(tái)計(jì)算機(jī)的時(shí)候,想過為什么計(jì)算機(jī)能進(jìn)行計(jì)算?為什么計(jì)算機(jī)系統(tǒng)能有條不紊的運(yùn)轉(zhuǎn)?多數(shù)人恐怕沒有打開過計(jì)算機(jī)外殼。不過,沒有打開過也不用遺憾,因?yàn)榧词鼓惆延?jì)算機(jī)后蓋打開,還是不能明白計(jì)算機(jī)是怎么運(yùn)轉(zhuǎn)的,此時(shí)只看到一堆硬件:主板、芯片、布線等,而這些硬件并不會(huì)告訴你太多有關(guān)計(jì)算機(jī)運(yùn)轉(zhuǎn)的信息。如果真的想知道計(jì)算機(jī)系統(tǒng)到底是怎么運(yùn)轉(zhuǎn)的,你就得學(xué)習(xí)OS。2)更重要的是OS真的很有意思。對(duì)于一個(gè)計(jì)算機(jī)專業(yè)的37雖然學(xué)習(xí)OS很有趣,但并不是所有人都有這樣的感覺,因?yàn)镺S的特點(diǎn)是概念多、抽象和涉及面廣,而從整體實(shí)現(xiàn)上看,其思想和技術(shù)又往往令“我們”難于理解。歷史證明,對(duì)很多人來說學(xué)習(xí)OS是一件很痛苦的事情。不過本人希望我們?cè)谝黄饘W(xué)習(xí)這門課程對(duì)大家來說是一件樂事,難道窺探計(jì)算機(jī)系統(tǒng)的奧秘不是一件激動(dòng)人心的事嗎?雖然學(xué)習(xí)OS很有趣,但并不是所有人都有這樣的感覺,因?yàn)?8§2
操作系統(tǒng)的形成與發(fā)展◆操作系統(tǒng)的發(fā)展歷史◆操作系統(tǒng)的分類◆操作系統(tǒng)的未來發(fā)展趨勢(shì)§2操作系統(tǒng)的形成與發(fā)展◆操作系統(tǒng)的發(fā)展歷史392.1操作系統(tǒng)的發(fā)展歷史
操作系統(tǒng)的形成與發(fā)展由兩個(gè)基本因素驅(qū)動(dòng):■硬件成本的不斷下降;■計(jì)算機(jī)的功能和復(fù)雜性不斷提升。硬件成本的不斷降低,就以硬盤為例,IBM制造的第一張硬磁盤直徑達(dá)2米,造價(jià)100多萬美元,而容量只有1MB;而現(xiàn)在一個(gè)容量100GB的硬盤成本只有幾十美元。當(dāng)然,過去的硬盤和今天的硬盤的制造技術(shù)完全不同,早期硬盤的質(zhì)量堅(jiān)挺,可以當(dāng)作咖啡桌來使用,而現(xiàn)在的硬盤片根本不能承受重物。計(jì)算機(jī)硬件及其組成的發(fā)展速度從一開始就很驚人。最初,計(jì)算機(jī)的組件雖然巨大,但數(shù)量少,功能簡(jiǎn)單,現(xiàn)在,一臺(tái)計(jì)算機(jī)里包括的元件數(shù)量實(shí)在是太多了。2.1操作系統(tǒng)的發(fā)展歷史操作系統(tǒng)的形成與發(fā)展由兩個(gè)40硬件成本的下降和計(jì)算機(jī)復(fù)雜性的提高推動(dòng)了操作系統(tǒng)的演變。成本降低意味著同樣的價(jià)格可以買到更為先進(jìn)的計(jì)算機(jī)。而計(jì)算機(jī)復(fù)雜性的提高自然需要操作系統(tǒng)的能力也得到提高。就是這些變化使得操作系統(tǒng)從最初的僅僅只有幾百或幾千行源代碼發(fā)展到今天的多達(dá)幾千萬行到上億行源代碼。操作系統(tǒng)之所以越來越復(fù)雜的基本因素是因?yàn)橛布|(zhì)量和數(shù)量的不斷提升使得操作系統(tǒng)管理的東西增多,而且人類永不滿足的各種越來越苛刻的要求也使得操作系統(tǒng)的復(fù)雜性不斷增加。除了上述兩個(gè)基本驅(qū)動(dòng)因素,在操作系統(tǒng)的發(fā)展過程中,效率和公平始終是操作系統(tǒng)設(shè)計(jì)人員追求的關(guān)鍵目硬件成本的下降和計(jì)算機(jī)復(fù)雜性的提高推動(dòng)了操作系統(tǒng)的演變41標(biāo),它們是導(dǎo)致操作系統(tǒng)越來越復(fù)雜的重要因素。另外,還有一個(gè)附加因素影響著操作系統(tǒng)的發(fā)展,這就是操作系統(tǒng)和攻擊者之間的博弈。這個(gè)世界上總有些人想利用計(jì)算機(jī)的缺陷來進(jìn)行各種損人利己或損人又不利己的活動(dòng)。操作系統(tǒng)在最初設(shè)計(jì)時(shí)就根本沒有想到會(huì)有人從事破壞活動(dòng)。大概因?yàn)樵缙诘挠?jì)算機(jī)工作者認(rèn)為到達(dá)能夠使用計(jì)算機(jī)的水平的人都是好人,是君子,是紳士,無需設(shè)計(jì)任何安全機(jī)制。這樣,在后來發(fā)現(xiàn)有人試圖利用計(jì)算機(jī)進(jìn)行不良操作時(shí),就迫不得已修改操作系統(tǒng),使其具有安全上的防范功能。每當(dāng)操作系統(tǒng)改進(jìn)了安全性,攻擊者也會(huì)改良他們的攻擊手段,這樣循環(huán)往復(fù),就造成操作系統(tǒng)安全水平和攻擊水平不斷交替上升的歷史。標(biāo),它們是導(dǎo)致操作系統(tǒng)越來越復(fù)雜的重要因素。42第零代:SOSC操作系統(tǒng)(20世紀(jì)40年代)
SOSC(SingleOperator,SingleConsole單操作員單控制臺(tái))控制方式是最原始的計(jì)算機(jī)控制方式,用于第一代電子計(jì)算機(jī),如ENIAC。當(dāng)時(shí)并沒有操作系統(tǒng)的整體概念,人們能夠想到的最直觀的控制計(jì)算機(jī)的方式,就是提供一些標(biāo)準(zhǔn)的人機(jī)交互命令供用戶(當(dāng)時(shí)的用戶既是編程者也是操作員)使用,這些標(biāo)準(zhǔn)命令的集合就構(gòu)成了SOSC標(biāo)準(zhǔn)函數(shù)庫。這可認(rèn)為是操作系統(tǒng)的最原始形式。
SOSC的設(shè)計(jì)目的就是滿足基本的功能,并提供人機(jī)交互。在SOSC下,任何時(shí)候只能做一件事。即不支持并發(fā)和多道程序運(yùn)行。SOSC本身只是一組標(biāo)準(zhǔn)庫函數(shù)而已,并不自我運(yùn)行,而是等待響應(yīng)用戶輸入的命令,然后加載相應(yīng)的庫函數(shù)來執(zhí)行。用戶想使用什么服務(wù),就輸入代表第零代:SOSC操作系統(tǒng)(20世紀(jì)40年代)SOSC43該服務(wù)的庫函數(shù)名即可。這種控制方式的資源利用率很低:用戶輸入一個(gè)命令就執(zhí)行一個(gè)SOSC庫函數(shù),撥一下動(dòng)一下;當(dāng)用戶在思考時(shí)或進(jìn)行輸入輸出時(shí),CPU則靜靜地等待。當(dāng)然了,從人的角度來看,效率并不低,你輸入什么,計(jì)算機(jī)就立即執(zhí)行什么。但從機(jī)器的角度考慮,因?yàn)镃PU時(shí)刻都等著人相對(duì)很慢的動(dòng)作,效率就太低了。由于這個(gè)時(shí)代的計(jì)算機(jī)很稀少,整個(gè)世界也只有幾臺(tái),而人卻不是,提高計(jì)算機(jī)的利用率就變得十分重要。該服務(wù)的庫函數(shù)名即可。這種控制方式的資源利用率很低:用戶輸44第一代:批處理操作系統(tǒng)(20世紀(jì)50年代)為了提高SOSC的效率,人們提出了“批處理”的概念。在仔細(xì)考察了SOSC后,人們發(fā)現(xiàn),SOSC效率之所以低下,是因?yàn)橛?jì)算機(jī)總是在等待人的下一步動(dòng)作,而人的動(dòng)作總是很慢。因此,人們覺得如果取消人的因素,讓所有的用戶先想好自己要運(yùn)行的命令,列成一個(gè)清單(稱作業(yè)說明書),再把要運(yùn)行的程序、數(shù)據(jù)連同作業(yè)說明書一起制作(穿孔)在紙帶/卡片上,然后將制作好的紙帶/卡片交給計(jì)算機(jī)管理員來一批一批地處理,效率不就提高了嗎?這就形成了批處理操作系統(tǒng)。批處理針對(duì)的是第二代通用計(jì)算機(jī),如IBM的1401和7094等,通過取消用戶與計(jì)算機(jī)的直接人機(jī)交互達(dá)到CPU和輸入輸出設(shè)備利用率的改善。第一代:批處理操作系統(tǒng)(20世紀(jì)50年代)為了提高SO45
批處理的過程是:用戶將自己的作業(yè)(=程序+數(shù)據(jù)+作業(yè)說明書)制作在穿孔卡片/紙帶上,交給計(jì)算機(jī)管理員;管理員在收到一定數(shù)量的用戶作業(yè)后,將卡片/紙帶上的作業(yè)通過輸入輸出衛(wèi)星機(jī)IBM1401讀入,并寫入到磁帶(輸入磁帶)上,這樣每盤輸入磁帶通常會(huì)含有多個(gè)用戶作業(yè);然后,計(jì)算機(jī)操作員將這盤磁帶裝入到作為主機(jī)的IBM7094上,由駐留在IBM7094上的批處理監(jiān)控程序(batchmonitor)順序解釋執(zhí)行各用戶作業(yè),實(shí)現(xiàn)了作業(yè)之間的自動(dòng)切換,作業(yè)運(yùn)行的結(jié)果被寫入另一個(gè)磁帶(輸出磁帶)上;所有的用戶作業(yè)運(yùn)行結(jié)束后,將輸出磁帶取下來,裝到衛(wèi)星機(jī)IBM1401上進(jìn)行結(jié)果打印;然后就可以將打印結(jié)果交給各個(gè)用戶了。圖1-3描述了批處理的過程。批處理的過程是:用戶將自己的作業(yè)(=程序+數(shù)據(jù)+作業(yè)46圖1-3批處理系統(tǒng)示意圖圖1-3批處理系統(tǒng)示意圖47
批處理監(jiān)控程序和原先就有的標(biāo)準(zhǔn)函數(shù)庫就組成了批處理操作系統(tǒng)。(不過,那時(shí)還沒有出現(xiàn)“操作系統(tǒng)”這個(gè)術(shù)語)很顯然,批處理操作系統(tǒng)的功能和復(fù)雜性較之SOSC均得到了提升。批處理操作系統(tǒng)開始具備了初步的系統(tǒng)管理功能:■設(shè)備管理——讀卡機(jī)、磁帶機(jī)、打印機(jī)等I/O設(shè)備的驅(qū)動(dòng);■文件管理——首次引入了文件概念,每個(gè)用戶作業(yè)被抽象成一個(gè)文件;■解釋執(zhí)行作業(yè)說明書;■實(shí)現(xiàn)各用戶作業(yè)之間的自動(dòng)切換。批處理監(jiān)控程序和原先就有的標(biāo)準(zhǔn)函數(shù)庫就組成了批處理操作48批處理操作系統(tǒng)一般被認(rèn)為是操作系統(tǒng)的雛形,后也被稱之為單道批處理操作系統(tǒng),一般把它稱之為第一代操作系統(tǒng)。其重要實(shí)例有IBM開發(fā)的FMS和IBSYS,密歇根大學(xué)開發(fā)的UMES,分別運(yùn)行于IBM7090和IBM7094。
驅(qū)動(dòng)這個(gè)階段操作系統(tǒng)發(fā)展的動(dòng)力是改善效率。因?yàn)闄C(jī)器的昂貴,使得CPU在操作員思考或I/O設(shè)備工作期間閑置起來是難以容忍的。批處理操作系統(tǒng)一般被認(rèn)為是操作系統(tǒng)的雛形,后也被稱之為49第二代:多道批處理操作系統(tǒng)(20世紀(jì)60年代)
雖然批處理操作系統(tǒng)通過無需人機(jī)交互過程而在一定程度上提高了計(jì)算機(jī)的效率,但還是不那么令人滿意。因?yàn)?,它只支持一個(gè)用戶作業(yè)進(jìn)入內(nèi)存運(yùn)行,且CPU和I/O設(shè)備的運(yùn)行是串行的,即在程序進(jìn)行輸入輸出時(shí),CPU只能等待,CPU需要不斷地探詢I/O是否完成,因而不能執(zhí)行別的程序。由于昂貴的CPU的速度要遠(yuǎn)遠(yuǎn)高于I/O設(shè)備,故CPU常常處于閑置狀態(tài),其浪費(fèi)是很大的。為此,人們又設(shè)想,能否將CPU和I/O設(shè)備并行工作呢?即在一個(gè)程序進(jìn)行輸入輸出時(shí),讓CPU去執(zhí)行另一個(gè)程序,換言之,能否將CPU和I/O設(shè)備的運(yùn)行重疊起來從而改善整個(gè)計(jì)算機(jī)系統(tǒng)的效率呢?答案是肯定的,不過需要付出代價(jià),因?yàn)镃PU和I/O重疊需要我們將多個(gè)程序同第二代:多道批處理操作系統(tǒng)(20世紀(jì)60年代)雖然批50時(shí)加載到計(jì)算機(jī)內(nèi)存里,由此,引出了多道程序設(shè)計(jì)(multiprogramming)的思想。
多道程序設(shè)計(jì)是指允許多個(gè)程序同時(shí)進(jìn)入計(jì)算機(jī)內(nèi)存并發(fā)運(yùn)行的方法。也就是說,計(jì)算機(jī)內(nèi)存中可同時(shí)存放多道(兩個(gè)或以上)相互獨(dú)立的程序,它們均處于起點(diǎn)和終點(diǎn)之間,通過操作系統(tǒng)的調(diào)度使各道程序輪流交替地使用CPU。當(dāng)現(xiàn)行程序啟動(dòng)I/O并需要等待I/O的完成時(shí),操作系統(tǒng)可立即調(diào)度CPU去執(zhí)行另一個(gè)駐留在內(nèi)存中的程序,使得CPU與I/O設(shè)備并行工作,利用這種多部件的并行工作,使系統(tǒng)可同時(shí)運(yùn)行多個(gè)不同的程序。從而可大大減少CPU的閑置時(shí)間,充分提高了CPU的利用率。時(shí)加載到計(jì)算機(jī)內(nèi)存里,由此,引出了多道程序設(shè)計(jì)(multi51例如,假設(shè)一個(gè)程序用20%的時(shí)間使用CPU進(jìn)行計(jì)算,另外80%的時(shí)間用來進(jìn)行I/O。則在單道系統(tǒng)中,CPU的利用率只有20%;但如果同時(shí)運(yùn)行兩個(gè)這樣的程序,則CPU的利用率將提高到36%(CPU只在兩個(gè)程序同時(shí)進(jìn)行I/O時(shí)才處于閑置狀態(tài),因此CPU的利用率為1-0.8×0.8=36%),這里忽略了程序切換所需要的系統(tǒng)開銷。同理,如果同時(shí)運(yùn)行3個(gè)這樣的程序,CPU利用率將提高到48.8%;4個(gè)程序的CPU利用率將為59%;5個(gè)程序的CPU利用率將為67.2%。這樣,隨著程序道數(shù)的增加,CPU利用率將逐步提升,直到某個(gè)臨界點(diǎn)為止。這個(gè)臨界點(diǎn)就是多道程序設(shè)計(jì)的上限,超過這個(gè)上限,多道程序設(shè)計(jì)的好處將逐步消失,甚至呈下降趨勢(shì)。例如,假設(shè)一個(gè)程序用20%的時(shí)間使用CPU進(jìn)行計(jì)算,另52圖1-4多道編程度數(shù)、I/O時(shí)間和CPU利用率的關(guān)系圖1-4多道編程度數(shù)、I/O時(shí)間和CPU利用率的關(guān)系53將多道程序設(shè)計(jì)思想引入到批處理操作系統(tǒng)便形成了多道批處理操作系統(tǒng)。顯而易見,比起簡(jiǎn)單批處理多道批處理操作系統(tǒng)的功能要強(qiáng)得多,但也要復(fù)雜得多:既要管理多個(gè)作業(yè),又要管理內(nèi)存,還要管理CPU調(diào)度。但多道批處理操作系統(tǒng)構(gòu)建了操作系統(tǒng)的基本架構(gòu),奠定了操作系統(tǒng)的基本理論,操作系統(tǒng)也因此而成就了一門獨(dú)立學(xué)科。
驅(qū)動(dòng)多道批處理操作系統(tǒng)的問世及發(fā)展的動(dòng)力仍然是改善效率。因?yàn)楫?dāng)時(shí)的CPU非常昂貴,人們不能容忍CPU在I/O設(shè)備工作期間被閑置下來。同時(shí),用戶對(duì)計(jì)算機(jī)的需求也開始多了起來,從純粹的科學(xué)計(jì)算發(fā)展到商業(yè)應(yīng)用。因此,這個(gè)階段還伴隨著滿足用戶不斷增長(zhǎng)的需求。將多道程序設(shè)計(jì)思想引入到批處理操作系統(tǒng)便形成了多道批處54
藍(lán)色巨人IBM對(duì)多道批處理操作系統(tǒng)的問世作出了巨大貢獻(xiàn)。在1961年年底,IBM開始實(shí)施“360系統(tǒng)電子計(jì)算機(jī)計(jì)劃”,整個(gè)計(jì)劃投資約50億美元(而“曼哈頓工程”才花了20億),超過了當(dāng)時(shí)IBM一年的產(chǎn)值。在人力上,光軟件工程師就投入了2000多名。
IBM在實(shí)施360計(jì)劃時(shí),首次正式提出了Operating
System這個(gè)術(shù)語,并開發(fā)出了一個(gè)真正的多道批處理操作系統(tǒng)OS/360,這是一個(gè)不僅從理念上也從技術(shù)上都是劃時(shí)代的操作系統(tǒng),是操作系統(tǒng)發(fā)展史上的一個(gè)里程碑。隨著OS/360的問世,誕生了一批嶄新的概念和術(shù)語,如:多道程序設(shè)計(jì)、任務(wù)(進(jìn)程)、調(diào)度、并發(fā)、作業(yè)管理、藍(lán)色巨人IBM對(duì)多道批處理操作系統(tǒng)的問世作出了巨大貢獻(xiàn)55CPU管理、內(nèi)存管理、設(shè)備管理、文件管理等,它們構(gòu)成了操作系統(tǒng)理論的基礎(chǔ)。同時(shí),計(jì)算機(jī)應(yīng)用從純科學(xué)計(jì)算應(yīng)用開始進(jìn)入了商業(yè)應(yīng)用。CPU管理、內(nèi)存管理、設(shè)備管理、文件管理等,它們構(gòu)成了操作56圖靈獎(jiǎng)獲得者(1999)FrederickBrooks
圖1-5OS/360總設(shè)計(jì)師
圖靈獎(jiǎng)獲得者(1999)FrederickBrooks57第三代之一:分時(shí)操作系統(tǒng)(20世紀(jì)70年代)多道批處理操作系統(tǒng)的出現(xiàn)使計(jì)算機(jī)的效率(主要是吞吐量)大大提高。但它的一大問題是用戶是“脫機(jī)”(Offline)使用計(jì)算機(jī)的,用戶無法即時(shí)獲知其程序的運(yùn)行結(jié)果。想想如果你編了一個(gè)程序,卻需要?jiǎng)e人去運(yùn)行,并可能要等上若干天才能知道結(jié)果,這個(gè)滋味顯然不好受。萬一計(jì)算機(jī)管理員疏忽了,忘記運(yùn)行你的作業(yè),或者操作錯(cuò)誤,導(dǎo)致程序丟失,情況就更糟。另外,脫機(jī)性也大大限制了計(jì)算機(jī)的商業(yè)性應(yīng)用。為此,人們又設(shè)想,能否讓用戶回到計(jì)算機(jī)前面來,由每個(gè)用戶自己操作和控制自己的程序。隨著符號(hào)鍵盤、顯示器等計(jì)算機(jī)終端設(shè)備的問世,人們的這種設(shè)想的實(shí)現(xiàn)成為了可能。第三代之一:分時(shí)操作系統(tǒng)(20世紀(jì)70年代)多道批處理58批處理系統(tǒng)是對(duì)SOSC的否定,而這種想法的提出是對(duì)SOSC的否定之否定。人的因素又引了回來,這看上去與原始的SOSC似乎一樣,但有個(gè)關(guān)鍵的不同:多個(gè)用戶同時(shí)與計(jì)算機(jī)聯(lián)機(jī)(On-line),每個(gè)用戶被看作只是一個(gè)I/O終端而已。即每個(gè)用戶都擁有一個(gè)聯(lián)機(jī)終端(顯示器+鍵盤),它們都通過RS232串行線纜與計(jì)算機(jī)主機(jī)連接,終端只能發(fā)送和接收有限的文本命令和信息。操作系統(tǒng)在所有的聯(lián)機(jī)用戶之間進(jìn)行CPU分時(shí),即一次分給一個(gè)用戶進(jìn)程有限的CPU時(shí)間——時(shí)間片,只要時(shí)間片一完,就立即切換一個(gè)用戶進(jìn)程,給該進(jìn)程分配一個(gè)CPU時(shí)間片。就是基于這種基本思想,引來了第三代操作系統(tǒng)——分時(shí)操作系統(tǒng)。批處理系統(tǒng)是對(duì)SOSC的否定,而這種想法的提出是對(duì)SO59在分時(shí)操作系統(tǒng)下,任意時(shí)間可以運(yùn)行多個(gè)程序,且用戶直接與計(jì)算機(jī)交互,現(xiàn)場(chǎng)調(diào)試程序,這就和SOSC不一樣了。在SOSC下,一切等著人,計(jì)算機(jī)執(zhí)行一條命令就等人。分時(shí)系統(tǒng)則是人等計(jì)算機(jī)。這個(gè)模式帶來一個(gè)直接的結(jié)果就是計(jì)算機(jī)再不用等你,等你想問題時(shí)機(jī)器就切換到別的程序,等你想完了機(jī)器再切換回來,接受你的再次輸入。就這樣,計(jì)算機(jī)就在很多人之間來回切換,你輸入個(gè)命令就響應(yīng),然后切換走。如果時(shí)間掌握的好,用戶輸入完一個(gè)命令計(jì)算機(jī)正好轉(zhuǎn)回來,用戶就沒有等待的感覺。當(dāng)然,如果一個(gè)用戶打字足夠快,可能會(huì)覺得計(jì)算機(jī)慢;如果打字較慢,就有可能覺得計(jì)算機(jī)很快。不同的人感覺有可能完全不同。在分時(shí)操作系統(tǒng)下,任意時(shí)間可以運(yùn)行多個(gè)程序,且用戶直接60
圖1-6分時(shí)系統(tǒng)示意圖圖1-6分時(shí)系統(tǒng)示意圖61顯然,與前面幾代的操作系統(tǒng)相比,分時(shí)操作系統(tǒng)要復(fù)雜得多。相比于多道批處理操作系統(tǒng),最主要的變化是資源的公平管理。在多道批處理下,公平不公平?jīng)]有人知道,大家遞交了作業(yè)后只管回家等結(jié)果。至于自己的程序排在誰前面誰后面,或者占用了多少CPU時(shí)間是無關(guān)緊要的?,F(xiàn)在,大家都坐在計(jì)算機(jī)終端前面,任何的不公平將立即感覺到。因此,公平地管理用戶的CPU時(shí)間就變得非常重要。
驅(qū)動(dòng)這個(gè)階段操作系統(tǒng)發(fā)展的動(dòng)力是響應(yīng)時(shí)間和對(duì)越來越多資源的管理。因?yàn)闄C(jī)器昂貴,不能容忍CPU在I/O設(shè)備工作期間閑置下來。同時(shí),因?yàn)槿说臅r(shí)間寶貴,不能容忍用戶坐在機(jī)器前進(jìn)行漫長(zhǎng)的等待。因此,人們顯然,與前面幾代的操作系統(tǒng)相比,分時(shí)操作系統(tǒng)要復(fù)雜得多62發(fā)明了分時(shí)操作系統(tǒng)來解決這兩個(gè)問題。此外,分時(shí)操作系統(tǒng)還需要應(yīng)對(duì)競(jìng)爭(zhēng)、同步、互斥、通信、死鎖、保護(hù)等一系列的新問題,使得分時(shí)操作系統(tǒng)變得空前復(fù)雜,進(jìn)一步完善了操作系統(tǒng)的基本理論。對(duì)分時(shí)操作系統(tǒng)的研發(fā)成為了當(dāng)時(shí)計(jì)算機(jī)界的最大熱門,競(jìng)爭(zhēng)十分激烈。最為著名的分時(shí)操作系統(tǒng)是由AT&T的貝爾實(shí)驗(yàn)室、麻省理工學(xué)院(MIT)及數(shù)字設(shè)備公司(DEC)三家合作開發(fā)的Multics分時(shí)操作系統(tǒng)和貝爾實(shí)驗(yàn)室開發(fā)的Unix分時(shí)操作系統(tǒng)。Unix后來演變成了兩大系列:SystemⅤ(AT&T貝爾實(shí)驗(yàn)室)和BSD(加洲大學(xué)伯克利分校)。發(fā)明了分時(shí)操作系統(tǒng)來解決這兩個(gè)問題。此外,分時(shí)操作系統(tǒng)還需63
成功分時(shí)操作系統(tǒng)的典范無疑當(dāng)推UNIX,它是史上第一個(gè)用高級(jí)程序設(shè)計(jì)語言(C語言)編寫的操作系統(tǒng),并成功運(yùn)行于PDP、VAX、CRAY等當(dāng)時(shí)的主流機(jī)器上,其發(fā)明者因此而獲得了圖靈獎(jiǎng)。UNIX的問世極大地推動(dòng)了操作系統(tǒng)的發(fā)展,奠定了操作系統(tǒng)理論和技術(shù)的架構(gòu),是操作系統(tǒng)發(fā)展史上的一個(gè)偉大的里程碑,對(duì)操作系統(tǒng)的發(fā)展產(chǎn)生著巨大和深遠(yuǎn)的影響。發(fā)展到今天,UNIX仍久經(jīng)不衰,表現(xiàn)出它的強(qiáng)大生命力,它已從一個(gè)分時(shí)操作系統(tǒng)發(fā)展成為“通用”操作系統(tǒng),成為了跨越從微型機(jī)到巨型機(jī)范圍的唯一操作系統(tǒng),被譽(yù)為是操作系統(tǒng)的工業(yè)標(biāo)準(zhǔn)。(貴族)成功分時(shí)操作系統(tǒng)的典范無疑當(dāng)推UNIX,它是史上第一個(gè)64
圖靈獎(jiǎng)(1983)獲得者肯?湯普遜UNIX發(fā)明者丹尼斯?里奇C語言發(fā)明者
圖1-7UNIX與C語言的發(fā)明者圖靈獎(jiǎng)(1983)獲得者肯?湯普遜丹尼斯?里奇圖1-765第三代之二:實(shí)時(shí)操作系統(tǒng)
實(shí)時(shí)操作系統(tǒng)是專門為計(jì)算機(jī)實(shí)時(shí)應(yīng)用系統(tǒng)(簡(jiǎn)稱實(shí)時(shí)系統(tǒng))而開發(fā)的。實(shí)時(shí)系統(tǒng)要求計(jì)算機(jī)對(duì)某些實(shí)時(shí)過程進(jìn)行監(jiān)視,并在需要的時(shí)刻及時(shí)采取動(dòng)作。實(shí)時(shí)系統(tǒng)具備一個(gè)特點(diǎn):計(jì)算機(jī)對(duì)相關(guān)實(shí)時(shí)過程必須在規(guī)定時(shí)間內(nèi)作出響應(yīng),不然就有可能發(fā)生事故或?yàn)?zāi)難。例如,在工業(yè)裝配線上,當(dāng)一個(gè)部件從流水線上的一個(gè)工作站流到下一個(gè)工作站時(shí),這個(gè)工作站上的操作必須在規(guī)定時(shí)間內(nèi)完成,否則就有可能造成流水線癱瘓。又例如,在導(dǎo)彈防衛(wèi)系統(tǒng)中,對(duì)來襲導(dǎo)彈的軌跡計(jì)算必須在規(guī)定時(shí)間內(nèi)完成,否則就有可能被來襲導(dǎo)彈擊中而無法作出反應(yīng)。其他如航空飛行控制系統(tǒng)、核反應(yīng)堆狀態(tài)監(jiān)視系統(tǒng)、化學(xué)反應(yīng)堆監(jiān)視系統(tǒng)等。第三代之二:實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)是專門為計(jì)算機(jī)實(shí)66這里必須清楚一個(gè)概念:實(shí)時(shí)系統(tǒng)并不一定是響應(yīng)很快的系統(tǒng),而是其響應(yīng)具有時(shí)序可預(yù)測(cè)性的系統(tǒng)。當(dāng)然了,在實(shí)際中實(shí)時(shí)系統(tǒng)通常是響應(yīng)很快的系統(tǒng),但這是實(shí)時(shí)系統(tǒng)的一個(gè)結(jié)果,而不是其定義。顯然,實(shí)時(shí)操作系統(tǒng)的最重要部分就是作業(yè)調(diào)度或進(jìn)程調(diào)度,只有精確、合理和及時(shí)的進(jìn)程調(diào)度才能保證響應(yīng)時(shí)間。當(dāng)然,對(duì)資源的管理也非常重要,沒有精密復(fù)雜的資源管理,確保進(jìn)程按時(shí)完成就成為一句空話。另外,基于其使用環(huán)境,實(shí)時(shí)操作系統(tǒng)對(duì)可靠性和可用性的要求也非常高。如果在這些方面出了問題,時(shí)序可預(yù)測(cè)性將無法達(dá)到。這里必須清楚一個(gè)概念:實(shí)時(shí)系統(tǒng)并不一定是響應(yīng)很快的系統(tǒng)67第四代:現(xiàn)代操作系統(tǒng)(1980年至今)自20世紀(jì)80年代起,計(jì)算機(jī)工業(yè)獲得了井噴式的發(fā)展,各種計(jì)算機(jī)和操作系統(tǒng)不斷出現(xiàn)和發(fā)展,計(jì)算機(jī)和操作系統(tǒng)領(lǐng)域均進(jìn)入到了一個(gè)百花齊放、百家爭(zhēng)鳴的時(shí)代,尤其是工作站和PC機(jī)的出現(xiàn),使計(jì)算機(jī)大為普及。這個(gè)時(shí)代的操作系統(tǒng)代表有:DOS、Windows、Linux、UNIX和各種主機(jī)操作系統(tǒng),如VM、MVS等。隨著微電子技術(shù)的飛速發(fā)展,計(jì)算機(jī)硬件越來越便宜,個(gè)人電腦(PC)出現(xiàn)在人們的視野中。人們可以擁有自己的電腦,無需與他人分享。由于PC機(jī)由用戶一個(gè)人獨(dú)享,分時(shí)操作系統(tǒng)的許多功能就無需存在,因此,PC機(jī)操作系統(tǒng)又變回到了標(biāo)準(zhǔn)函數(shù)庫系統(tǒng)。初期的PC操作系統(tǒng)是單用戶單任務(wù)的,這類OS最有名的是DOS、第四代:現(xiàn)代操作系統(tǒng)(1980年至今)自20世紀(jì)80年68Windows3x、MacOS(蘋果機(jī)操作系統(tǒng))等。
但在獨(dú)享了一陣PC機(jī)后,人們發(fā)現(xiàn),沒有分時(shí)功能的操作系統(tǒng)使一些事情做不了,因?yàn)殡m然只有一個(gè)人在用計(jì)算機(jī),但他可能想同時(shí)運(yùn)行幾個(gè)程序,而沒有分時(shí)功能這是不可能的。于是,人們覺得需要對(duì)PC機(jī)操作系統(tǒng)進(jìn)行改善,將各種有關(guān)的分時(shí)功能又加了進(jìn)去,形成了單用戶多任務(wù)的PC操作系統(tǒng),如windows2000/xp、Xenix、Ulttrix、MacOSX。推動(dòng)PC電腦的迅猛發(fā)展的一個(gè)重要因素是操作系統(tǒng)圖形用戶界面(GUI)的出現(xiàn)。傳統(tǒng)操作系統(tǒng)的用戶操作界面都是字符/文本用戶界面。蘋果公司率先開發(fā)出了實(shí)用的GUI,并應(yīng)用在它的MacOS操作系統(tǒng)上。微軟大量Windows3x、MacOS(蘋果機(jī)操作系統(tǒng))等。69抄襲了MacOS的GUI技術(shù)而形成了最為流行的GUI——Windows。圖形用戶界面的出現(xiàn)對(duì)操作系統(tǒng)的發(fā)展產(chǎn)生了深遠(yuǎn)的影響?,F(xiàn)在一般認(rèn)為GUI的技術(shù)和標(biāo)準(zhǔn)是由蘋果公司打下的基礎(chǔ)。但正確地說,GUI技術(shù)實(shí)際上是由施樂帕羅奧托研究中心創(chuàng)始的。這個(gè)時(shí)代的另外一個(gè)重要特征是網(wǎng)絡(luò)的出現(xiàn)和興起。網(wǎng)絡(luò)觸發(fā)了網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)的出現(xiàn)。計(jì)算機(jī)網(wǎng)絡(luò)有(普通)計(jì)算機(jī)網(wǎng)絡(luò)和分布式系統(tǒng)之分,分布式系統(tǒng)是種特殊的計(jì)算機(jī)網(wǎng)絡(luò)。網(wǎng)絡(luò)操作系統(tǒng)是為計(jì)算機(jī)網(wǎng)絡(luò)開發(fā)的,分布式操作系統(tǒng)則是為分布式系統(tǒng)開發(fā)的。分布式系統(tǒng)與計(jì)算機(jī)網(wǎng)絡(luò)的主要區(qū)別不在于它們的物理結(jié)構(gòu)上,而是在操作系統(tǒng)。抄襲了MacOS的GUI技術(shù)而形成了最為流行的GUI——70分布式系統(tǒng)與計(jì)算機(jī)網(wǎng)絡(luò)的差別:■計(jì)算機(jī)網(wǎng)絡(luò)一般采用客戶/服務(wù)器(Client/Server)模式;而分布式系統(tǒng)采用的是對(duì)等(Peer-to-Peer)模式,即網(wǎng)中的站點(diǎn)機(jī)沒有主次之分,每一個(gè)站點(diǎn)既可作為客戶機(jī),又可作為服務(wù)器。■在計(jì)算機(jī)網(wǎng)絡(luò)中,兩臺(tái)客戶機(jī)之間的通信是通過服務(wù)器來實(shí)現(xiàn)的;分布式系統(tǒng)中的任意兩臺(tái)計(jì)算機(jī)之間可以直接通信?!鰧?duì)于計(jì)算機(jī)網(wǎng)絡(luò),有服務(wù)器操作系統(tǒng)和客戶端操作系統(tǒng)之分,他們之間的功能差異很大;分布式系統(tǒng)使用的是統(tǒng)一的操作系統(tǒng),即網(wǎng)中所有計(jì)算機(jī)運(yùn)行的是同一個(gè)操作系統(tǒng)。
分布式系統(tǒng)與計(jì)算機(jī)網(wǎng)絡(luò)的差別:71
■分布式系統(tǒng)中的資源為全網(wǎng)共享,每個(gè)站點(diǎn)上的資源都可為其他站點(diǎn)所共享,并且這種共享對(duì)用戶是透明的;而在計(jì)算機(jī)網(wǎng)絡(luò)中,只能客戶機(jī)共享服務(wù)器上的資源,且對(duì)用戶是不透明的?!龇植际讲僮飨到y(tǒng)可將一個(gè)大型或復(fù)雜的任務(wù)分解成若干子任務(wù),并將它們分布在若干個(gè)站點(diǎn)機(jī)上同時(shí)執(zhí)行。換言之,分布式操作系統(tǒng)能使多個(gè)站點(diǎn)協(xié)同完成同一個(gè)任務(wù),而且這對(duì)用戶是透明的。網(wǎng)絡(luò)服務(wù)器操作系統(tǒng)最初是Unix獨(dú)領(lǐng)風(fēng)騷。后來形成了Unix與Windows分庭抗禮的局面,但在高端應(yīng)用領(lǐng)域Unix的地位不可動(dòng)搖,Windows則主要占據(jù)著低端領(lǐng)域。進(jìn)入90年代后,一種類Unix的操作系統(tǒng)Linux異軍■分布式系統(tǒng)中的資源為全網(wǎng)共享,每個(gè)站點(diǎn)上的資源都可為72突起,掀起了一股Linux“自由”風(fēng)暴,在短時(shí)期內(nèi)就與Unix和Windows形成了三足鼎立的局面。Linux不僅在低端領(lǐng)域廣受歡迎,而且成功地立足于高端領(lǐng)域。據(jù)2012年的統(tǒng)計(jì)數(shù)據(jù)表明,Linux在高端領(lǐng)域的裝機(jī)數(shù)量已經(jīng)超越了Unix。分布式操作系統(tǒng)比網(wǎng)絡(luò)操作系統(tǒng)更為復(fù)雜,是操作系統(tǒng)研發(fā)的難點(diǎn),目前還無商業(yè)性的分布式操作系統(tǒng)面市?,F(xiàn)代操作系統(tǒng)的另一個(gè)重要分支是為計(jì)算機(jī)嵌入式(embeded)系統(tǒng)開發(fā)的嵌入式操作系統(tǒng)。計(jì)算機(jī)嵌入式應(yīng)用就是把微型機(jī)嵌入到一個(gè)對(duì)象體系(如數(shù)碼相機(jī)、手機(jī)、家用電器、醫(yī)療設(shè)備、交通燈、航空電子設(shè)備和工廠控制設(shè)備等)中,以實(shí)現(xiàn)對(duì)該對(duì)象的智能化控制。顯突起,掀起了一股Linux“自由”風(fēng)暴,在短時(shí)期內(nèi)就與Un73而易見,嵌入式系統(tǒng)在一定程度上改變了通用計(jì)算機(jī)系統(tǒng)的形態(tài)與功能。嵌入式操作系統(tǒng)(EOS)的主要特點(diǎn):■微型化。由于嵌入式系統(tǒng)硬件平臺(tái)的局限性(內(nèi)存小、不配置外存、微處理器字長(zhǎng)短且運(yùn)算速度有限等),在保證應(yīng)用功能的前提下,微型化是設(shè)計(jì)EOS主要出發(fā)點(diǎn)。■可定制(可剪裁)。EOS運(yùn)行的平臺(tái)多種多樣,其宿主對(duì)象更是五花八門,因而表現(xiàn)出專業(yè)化的特點(diǎn)。從而要求EOS的各個(gè)功能模塊都作為可選件,以供用戶根據(jù)實(shí)際需要選擇?!鰧?shí)時(shí)性。EOS廣泛應(yīng)用于過程控制、數(shù)據(jù)采集、傳輸通信多媒體信息處理及關(guān)鍵要害領(lǐng)域等要求迅速響應(yīng)的而易見,嵌入式系統(tǒng)在一定程度上改變了通用計(jì)算機(jī)系統(tǒng)的形態(tài)與74場(chǎng)合,實(shí)時(shí)響應(yīng)要求嚴(yán)格,故實(shí)時(shí)性是其主要特點(diǎn)之一?!隹煽啃?。系統(tǒng)構(gòu)件、模塊和體系結(jié)構(gòu)必須達(dá)到應(yīng)有的可靠性,對(duì)關(guān)鍵要害應(yīng)用(如軍事、航空航天、交通)還要提供容錯(cuò)和防故障措施,進(jìn)一步改進(jìn)可靠性?!鲆滓浦残浴榱诉m應(yīng)多種多樣的硬件平臺(tái),EOS應(yīng)該可以在不做大量修改的情況下穩(wěn)定地運(yùn)行在不同平臺(tái)上。
場(chǎng)合,實(shí)時(shí)響應(yīng)要求嚴(yán)格,故實(shí)時(shí)性是其主要特點(diǎn)之一。752.2操作系統(tǒng)的分類
操作系統(tǒng)種類繁多,很難用單一標(biāo)準(zhǔn)統(tǒng)一分類。從不同的角度有各種分類法,例如:根據(jù)所支持的用戶數(shù)目,可分為單用戶操作系統(tǒng)(如MSDOS、OS/2.Windows)、多用戶操作系統(tǒng)(如UNIX、Linux、MVS);根據(jù)源碼開放程度,可分為開源操作系統(tǒng)(如Linux、FreeBSD)和閉源操作系統(tǒng)(如MacOSX、Windows);根據(jù)硬件結(jié)構(gòu),可分為單機(jī)操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)(Netware、WindowsNT、OS/2warp)、多媒體操作系統(tǒng)(Amiga)、和分布式操作系統(tǒng)等;根據(jù)操作系統(tǒng)的使用環(huán)境和對(duì)作業(yè)處理方式來考慮,2.2操作系統(tǒng)的分類操作系統(tǒng)種類繁多,很難用單一76可分為批處理操作系統(tǒng)(如MVX、DOS/VSE)、分時(shí)操作系統(tǒng)(如Linux、UNIX、XENIX、MacOSX)、實(shí)時(shí)操作系統(tǒng)(如iEMX、VRTX、RTWINDOWS等);根據(jù)存儲(chǔ)器尋址的寬度可以將操作系統(tǒng)分為8位、16位、32位、64位、128位的操作系統(tǒng)。早期的操作系統(tǒng)一般只支持8位和16位存儲(chǔ)器尋址寬度,現(xiàn)代的操作系統(tǒng)如Linux和Windows7都支持32位和64位。
根據(jù)應(yīng)用領(lǐng)域劃分則是當(dāng)前最為流行的操作系統(tǒng)分類法,即操作系統(tǒng)可分為四種:桌面操作系統(tǒng)、服務(wù)器操作系統(tǒng)、主機(jī)操作系統(tǒng)和嵌入式操作系統(tǒng)。可分為批處理操作系統(tǒng)(如MVX、DOS/VSE)、分時(shí)操作77■桌面操作系統(tǒng)桌面操作系統(tǒng)主要用于個(gè)人計(jì)算機(jī)上。主要分為兩大類:Windows操作系統(tǒng)和類Unix操作系統(tǒng)。Windows操作系統(tǒng)系列包括有:WindowsXP、WindowsVista、Windows7、Windows8等。類Unix操作系統(tǒng)的代表有:MacOSX(基于BSD)和各種Linux版本(如RedHat、Debian、Ubuntu、CentOS、openSUSE等);■服務(wù)器操作系統(tǒng)
服務(wù)器操作系統(tǒng)是為網(wǎng)絡(luò)服務(wù)器計(jì)算機(jī)配置的操作系統(tǒng),比如Web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器等。當(dāng)前,服務(wù)器操作系統(tǒng)主要分為三大系列:■桌面操作系統(tǒng)78(1)Unix系列:SUNSolaris、IBM-AIX、HP-UX、FreeBSD等;(2)Linux系列:RedHatEnterpriseLinux、CentOS、Debian、Ubuntu等;(3)Windows系列:WindowsServer2003、WindowsServer2008、WindowsServer2008R2等。在高端應(yīng)用領(lǐng)域,UNIX和Linux占據(jù)著統(tǒng)治地位?!鲋鳈C(jī)操作系統(tǒng)這里的主機(jī)是指功能和性能超強(qiáng)的大型機(jī)和巨型機(jī),主要用于高端/超高端應(yīng)用領(lǐng)域(如大型金融證卷交易所、衛(wèi)星地面控制站等)。(1)Unix系列:SUNSolaris、IBM-79主機(jī)操作系統(tǒng)結(jié)合了批處理和分時(shí)功能,功能全面,性能超強(qiáng)。目前,主機(jī)操作系統(tǒng)主要有VMS、VS、MVS、OS/390及Unix等。主機(jī)操作系統(tǒng)的開發(fā)商主要是IBM,IBM在主機(jī)操作系統(tǒng)領(lǐng)域可以說是一家獨(dú)大。■嵌入式操作系統(tǒng)
這是一個(gè)十分龐雜、品種繁多、競(jìng)爭(zhēng)激烈,但又是特具發(fā)展?jié)摿Φ念I(lǐng)域。目前,EOS可分為通用型EOS和專用EOS。通用型EOS可用于多種應(yīng)用環(huán)境,例如,常見的WindowsCE、VxWorks、μCLinux等。專用型EOS則用于一些特定領(lǐng)域,例如,應(yīng)用于手持?jǐn)?shù)字設(shè)備(PDA)的PlamOS,應(yīng)用于智能手機(jī)的iPhoneOS(基于MacOSX)、Android(基于Linux)、BlackBerryOS等。主機(jī)操作系統(tǒng)結(jié)合了批處理和分時(shí)功能,功能全面,性能超強(qiáng)802009年的全球互聯(lián)網(wǎng)用戶操作系統(tǒng)評(píng)價(jià)(部分)
操作系統(tǒng)反對(duì)票數(shù)贊成票數(shù)贊成率Linux21300037900064%FreeBSD673909093.1%UNIX148002720064.7%VMS1034884099.7%Windows4330007150014.1%MacOSX352002990045.9%2009年的全球互聯(lián)網(wǎng)用戶操作系統(tǒng)評(píng)價(jià)(部分)操作系統(tǒng)反對(duì)812.3操作系統(tǒng)的未來發(fā)展趨勢(shì)
隨著計(jì)算機(jī)的不斷普及,操作系統(tǒng)的功能會(huì)變得越來越復(fù)雜。在這種趨勢(shì)下,操作系統(tǒng)的發(fā)展面臨兩個(gè)方向的選擇:一是向微內(nèi)核方向發(fā)展,二是向大而全的全方位方向發(fā)展。微內(nèi)核操作系統(tǒng)雖然有不少人在研究,但在工業(yè)界獲得認(rèn)可的并不多。這方面的代表有MACH系統(tǒng)(卡內(nèi)基.梅隆大學(xué))。對(duì)工業(yè)界來說,操作系統(tǒng)是向著多功能、全方位方向發(fā)展。WindowsXP現(xiàn)在有4000萬行代碼,而某些Linux發(fā)行版已達(dá)2億行代碼。鑒于大而全的操作系統(tǒng)管理起來比較復(fù)雜,現(xiàn)代操作系統(tǒng)采取的都是模塊化的內(nèi)核結(jié)構(gòu)方式,即一個(gè)小的內(nèi)核加上模塊化的外圍管理功能。2.3操作系統(tǒng)的未來發(fā)展趨勢(shì)隨著計(jì)算機(jī)的不斷普及,82隨著人們對(duì)信息安全重視程度的不斷提升,如何構(gòu)建可靠、可用和安全的操作系統(tǒng)將成為一個(gè)十分重要的課題。而對(duì)可靠、可用和安全的追求無疑將使操作系統(tǒng)更為復(fù)雜,操作系統(tǒng)的規(guī)模也將不斷增大。從初期UNIX的1400行代碼到Linux的上億行代碼,這完全是一種爆炸性增長(zhǎng)。而爆炸性增長(zhǎng)的后果就是,沒有什么人能夠完全理解一個(gè)完整的操作系統(tǒng),而這種狀況又將限制操作系統(tǒng)的可靠、可用和安全性。當(dāng)然了,人們可以采用各種軟件工程的方法和手段來改善這種狀況,但無論如何,持續(xù)的爆炸性增長(zhǎng)恐怕是難以為繼的。讓我們拭目以待吧。隨著人們對(duì)信息安全重視程度的不斷提升,如何構(gòu)建可靠、可83§3操作系統(tǒng)的基本概念◆存儲(chǔ)器架構(gòu)與內(nèi)存結(jié)構(gòu)◆中斷◆核心態(tài)與用戶態(tài)◆并發(fā)◆操作系統(tǒng)的架構(gòu)◆操作系統(tǒng)的服務(wù)界面§3操作系統(tǒng)的基本概念◆存儲(chǔ)器架構(gòu)與內(nèi)存結(jié)構(gòu)843.1
存儲(chǔ)器架構(gòu)與內(nèi)存結(jié)構(gòu)
1.存儲(chǔ)器架構(gòu)現(xiàn)代計(jì)算機(jī)的存儲(chǔ)器系統(tǒng)一般由三個(gè)層次構(gòu)成,從大到?。ㄈ萘浚瑥穆娇欤ù嫒∷俣龋┓謩e為:輔存、主存和高速緩存(cache)。Cache主存輔存最小,最快,最貴
最大,最慢,最廉
圖1-8計(jì)算機(jī)的存儲(chǔ)器架構(gòu)3.1存儲(chǔ)器架構(gòu)與內(nèi)存結(jié)構(gòu)1.存儲(chǔ)器架構(gòu)Cache85■輔存(外存)用來永久存放大量信息的存儲(chǔ)器,但CPU不能直接尋址。存儲(chǔ)介質(zhì):磁盤、光盤、磁帶存儲(chǔ)容量:GB~TB級(jí)海量存取速度:ms級(jí)■主存是直接與計(jì)算機(jī)總線連接的存儲(chǔ)器,存放正在運(yùn)行的程序和數(shù)據(jù),是CPU可直接尋址的存儲(chǔ)器。存儲(chǔ)介質(zhì):DRAM和ROM存儲(chǔ)容量:MB~GB存取速度:ηs級(jí)(當(dāng)前DRAM速度已可達(dá)到<100ηs)■輔存(外存)86■Cache(高速緩存)Cache是CPU與主存之間的緩沖存儲(chǔ)器,CPU可直接尋址,它存放當(dāng)前被頻繁訪問的代碼和數(shù)據(jù),用于緩解CPU與主存的速度不匹配矛盾,提高CPU執(zhí)行程序的速度。存儲(chǔ)介質(zhì):SRAM存儲(chǔ)容量:MB存取速度:ηs(與CPU速度基本匹配)主存和cache合稱為內(nèi)存,即內(nèi)存是CPU可直接尋址的工作存儲(chǔ)器。任何需要運(yùn)行的程序必須被加載到內(nèi)存。■Cache(高速緩存)872.操作系統(tǒng)在內(nèi)存中的位置內(nèi)存被劃分成兩大區(qū)域:系統(tǒng)區(qū)和用戶區(qū)。操作系統(tǒng)和檢測(cè)診斷程序駐留系統(tǒng)區(qū)。計(jì)算機(jī)加電后,操作系統(tǒng)便被加載并駐留在系統(tǒng)區(qū)。系統(tǒng)區(qū)包括DRAM的一部分(通常為低地址部分)和全部ROM。ROM中存放必須受保護(hù)的操作系統(tǒng)代碼,如內(nèi)核原語、基本驅(qū)動(dòng)程序等。用戶區(qū)占據(jù)DRAM中的大部分,存放運(yùn)行中的所有的非操作系統(tǒng)程序和數(shù)據(jù)。操作系統(tǒng)(inDRAM)用戶區(qū)(inDRAM)圖1-9計(jì)算機(jī)內(nèi)存空間
0n-1操作系統(tǒng)(inROM)Cache2.操作系統(tǒng)在內(nèi)存中的位置內(nèi)存被劃分成兩大區(qū)域:系883.2中斷
中斷是計(jì)算機(jī)中一個(gè)最為重要的程序驅(qū)動(dòng)機(jī)制,它是操作系統(tǒng)獲得計(jì)算機(jī)控制權(quán)的根本保證,沒有中斷,很難想象操作系統(tǒng)如何完成人們所賦予的任務(wù)。中斷的基本原理是:設(shè)備在完成自己的任務(wù)后向CPU發(fā)出中斷信號(hào),CPU判斷優(yōu)先級(jí),然后確定是否響應(yīng)。如果響應(yīng),則中止現(xiàn)行程序,保留現(xiàn)行程序的現(xiàn)場(chǎng),啟動(dòng)執(zhí)行相應(yīng)事件的中斷服務(wù)程序;在中斷服務(wù)程序執(zhí)行完后,恢復(fù)被中斷程序的現(xiàn)場(chǎng),啟動(dòng)其繼續(xù)執(zhí)行。中斷是很復(fù)雜的過程,中斷處理過程中又可以發(fā)生中斷,且還可以有所謂的軟中斷,即軟件發(fā)出的中斷。透徹理解中斷對(duì)理解操作系統(tǒng)的運(yùn)行具有重要意義。因此希望大家復(fù)習(xí)在計(jì)算機(jī)組成原理課程中所學(xué)的中斷內(nèi)容。3.2中斷中斷是計(jì)算機(jī)中一個(gè)最為重要的程序驅(qū)動(dòng)機(jī)制,893.3核心態(tài)與用戶態(tài)就像世界上的人并不平等一樣,并不是所有的程序都是平等的。世界上有的人占有資源多,有的人占有資源少,有的人來了,別人得讓出資源,有的人則專門為別人讓出資源。程序也是這樣,有的程序可以訪問計(jì)算機(jī)的任何資源,有的程序則只能訪問有限的少量資源。操作系統(tǒng)作為計(jì)算機(jī)的管理者,自然不能和被管理者享受完全一樣的待遇,為保證管理的有效性,操作系統(tǒng)應(yīng)該享有特權(quán)。為此,人們發(fā)明了核心態(tài)和用戶態(tài)的概念。那么什么是核心態(tài)?什么是用戶態(tài)呢?只要想一想現(xiàn)實(shí)生活中,處于社會(huì)核心的人與處于社會(huì)邊緣的人有什么區(qū)別就能明白處于核心的人擁有的資源多或特權(quán)多!因此,核心態(tài)也稱特權(quán)態(tài)(早期也稱管態(tài)),就是具有特權(quán)3.3核心態(tài)與用戶態(tài)就像世界上的人并不平等一樣,并不90
的狀態(tài)。而用戶態(tài)就是非特權(quán)態(tài)(早期也稱目態(tài))。如果一個(gè)程序運(yùn)行在特權(quán)態(tài),則該程序可以訪問計(jì)算機(jī)的任何資源,即它的資源訪問權(quán)限不受限制。而如果一個(gè)程序運(yùn)行在用戶態(tài),則其資源需求將受到各種限制。例如,如果要訪問操作系統(tǒng)的內(nèi)核數(shù)據(jù)結(jié)構(gòu)(如進(jìn)程控制塊),則必須在特權(quán)態(tài)下才能做到。如果要訪問用戶程序里的數(shù)據(jù),則在用戶態(tài)下就可以了。由于核心態(tài)的程序可以訪問計(jì)算機(jī)的所有資源,這種程序的可靠性和安全性就顯得十分重要。試想如果一個(gè)不可靠的程序在核心態(tài)下修改了操作系統(tǒng)的各種內(nèi)核數(shù)據(jù)結(jié)構(gòu),結(jié)果會(huì)怎樣呢?——整個(gè)系統(tǒng)有可能崩潰。而運(yùn)行于用戶態(tài)的程序就比較簡(jiǎn)單了,如果其可靠性和安全性出了的狀態(tài)。而用戶態(tài)就是非特權(quán)態(tài)(早期也稱目態(tài))。如果一個(gè)程序91
問題,其造成的損失只不過是讓用戶程序崩潰,而操作系統(tǒng)將繼續(xù)工作。
很顯然,核心態(tài)和用戶態(tài)各有優(yōu)勢(shì):核心態(tài)程序可以訪問的資源多,但可靠性、安全性要求高,維護(hù)和管理都比較復(fù)雜;用戶態(tài)程序訪問的資源受限,但可靠性、安全性要求低,自然編寫和維護(hù)起來都比較簡(jiǎn)單。那么,什么程序可以是核心態(tài)程序呢?只有兩類程序:操作系統(tǒng)和診斷檢測(cè)程序。操作系統(tǒng)作為整個(gè)計(jì)算機(jī)的管理者,要管理所有的系統(tǒng)資源(可供所有用戶和應(yīng)用程序使用的資源),它應(yīng)該享有這個(gè)特權(quán)。但是不是所有的操作系統(tǒng)程序都是核心態(tài)程序呢?這個(gè)問題在后續(xù)的“操作系統(tǒng)架構(gòu)”一節(jié)中論述。
問題,其造成的損失只不過是讓用戶程序崩潰,而操作系統(tǒng)將繼續(xù)92診斷檢測(cè)程序?yàn)楹诵膽B(tài),是因?yàn)樗枰L問計(jì)算機(jī)的所有硬件資源,否則怎么判斷計(jì)算機(jī)是否正常呢?除了操作系統(tǒng)和診斷檢測(cè)程序外,所有的程序都是用戶態(tài)程序。可見,任何應(yīng)用程序都不能直接使用系統(tǒng)資源,要使用某種系統(tǒng)資源,必須通過操作系統(tǒng)提供的相應(yīng)服務(wù)。那么計(jì)算機(jī)是如何知道當(dāng)前正在運(yùn)行的程序是核心態(tài)程序呢?顯然作出這種判斷需要某種標(biāo)志,這個(gè)標(biāo)志就是程序狀態(tài)字(PSW)里面的一個(gè)字位——CPU狀態(tài)。在CPU里面設(shè)置有一個(gè)“程序狀態(tài)字寄存器”,它存放現(xiàn)行程序的PSW。我們通過設(shè)置程序狀態(tài)字,可以將CPU設(shè)置為核心態(tài)或用戶態(tài),或者其他的子態(tài)(有的CPU有更多種診斷檢測(cè)程序?yàn)楹诵膽B(tài),是因?yàn)樗枰L問計(jì)算機(jī)的所有硬件93
子態(tài))。一個(gè)程序運(yùn)行時(shí),CPU是什么態(tài),這個(gè)程序就運(yùn)行在什么態(tài)。可見,所謂的核心態(tài)和用戶態(tài)實(shí)際上是CPU的一種狀態(tài),而不是程序的狀態(tài)。
如前所述,核心態(tài)程序可以訪問任何資源,而用戶態(tài)程序的訪問則受到限制。那么這種限制是如何實(shí)現(xiàn)的呢?方案一:把機(jī)器指令系統(tǒng)中的所有指令劃分成兩類:特權(quán)指令和普通指令(非特權(quán)指令)。特權(quán)指令多為跟硬資源直接有關(guān)的指令,以及涉及系統(tǒng)安全性的指令;普通指令則是除特權(quán)指令外的所有指令。在核心態(tài)下,CPU可執(zhí)行指令系統(tǒng)的全集,包括特權(quán)指令,也就是說,只有處于核心態(tài)時(shí)CPU才能執(zhí)行特權(quán)指令。而在用戶態(tài)下,CPU只能執(zhí)行普通指令。CPU在執(zhí)行程序時(shí),每當(dāng)執(zhí)行到一條子態(tài))。一個(gè)程序運(yùn)行時(shí),CPU是什么態(tài),這個(gè)程序就運(yùn)行在什94特權(quán)指令時(shí)都自動(dòng)檢測(cè)PSW寄存器中的CPU狀態(tài)位,如果是核心態(tài),則執(zhí)行;否則拒絕執(zhí)行。從而確保特權(quán)指令執(zhí)行的合法性。方案二:操作系統(tǒng)把計(jì)算機(jī)中所有的系統(tǒng)資源都分別抽象成某種數(shù)據(jù)結(jié)構(gòu),通過這些數(shù)據(jù)結(jié)構(gòu)管理所有的系統(tǒng)資源。使用某個(gè)資源就是訪問相應(yīng)的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)都被存放在受存儲(chǔ)保護(hù)的操作系統(tǒng)內(nèi)核區(qū)內(nèi)。只有核心態(tài)程序可以訪問內(nèi)核區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu),而用戶態(tài)程序則被拒絕訪問。這種限制是通過地址檢查來實(shí)現(xiàn)的,當(dāng)一個(gè)用戶態(tài)程序要訪問內(nèi)核區(qū)中的數(shù)據(jù)結(jié)構(gòu)時(shí),地址檢查機(jī)構(gòu)將判斷是非法的地址越界而拒絕執(zhí)行。而核心態(tài)程序可以訪問內(nèi)存中的任何地址。特權(quán)指令時(shí)都自動(dòng)檢測(cè)PSW寄存器中的CPU狀態(tài)位,如果是953.4并發(fā)并發(fā)是操作系統(tǒng)關(guān)鍵的基本概念之一,來源于多道程序設(shè)計(jì)思想。所謂并發(fā),是指在計(jì)算機(jī)內(nèi)存中同時(shí)有多個(gè)程序在運(yùn)行,他們都處在各自的起點(diǎn)和終點(diǎn)之間。宏觀上,他們的代碼都在CPU上執(zhí)行,但微觀上,這些程序是輪換交替地在CPU上執(zhí)行。并發(fā)性使得計(jì)算機(jī)系統(tǒng)的效率(CPU的吞吐率)得到大大的提高,但操作系統(tǒng)的一切復(fù)雜性也主要來自并發(fā)性。
并發(fā)(concurrency)與并行(parallel)的異同:■共性:多個(gè)事件的同時(shí)進(jìn)行?!霾町悾翰⑿惺俏⒂^上或物理上的同時(shí)性概念,即多個(gè)事件在同一時(shí)刻發(fā)生;并發(fā)是宏觀上或邏輯上的同時(shí)性3.4并發(fā)并發(fā)是操作系統(tǒng)關(guān)鍵的基本概念之一,來源于96概念,即多個(gè)事件在同一時(shí)段發(fā)生。并行的事件一定是并發(fā)的,反之,并發(fā)的事件不一定是并行的。并行性是并發(fā)性的特例,并發(fā)性是并行性的擴(kuò)展。概念,即多個(gè)事件在同一時(shí)段發(fā)生。973.5操作系統(tǒng)的架構(gòu)操作系統(tǒng)可以說是軟件界中的巨無霸,它包含有許許多多的程序和數(shù)據(jù)結(jié)構(gòu),它們組成了許多的模塊和構(gòu)件(組件)。操作系統(tǒng)的架構(gòu)(體系結(jié)構(gòu))定義了模塊和構(gòu)件的組織方式和相互間的聯(lián)系方式。操作系統(tǒng)發(fā)展至今,主要有三種架構(gòu)模式:■單體模式■分層模式■內(nèi)核模式
3.5操作系統(tǒng)的架構(gòu)操作系統(tǒng)可以說是軟件界中的巨無霸981.單體模式按功能劃分成若干功能模塊,每個(gè)模塊相對(duì)獨(dú)立,又通過確定的接口互相聯(lián)系。任意一個(gè)模塊可以調(diào)用另一個(gè)模塊的服務(wù),整個(gè)操作系統(tǒng)構(gòu)成了一個(gè)巨大的單一體,且所有模塊都在核心態(tài)下運(yùn)行,為用戶和應(yīng)用程序提供服務(wù)。如圖1-10所示。這是早期操作系統(tǒng)或簡(jiǎn)單操作系統(tǒng)采用的結(jié)構(gòu),如OS/360、MS-DOS。這種架構(gòu)的缺點(diǎn)較多,如:功能模塊之間的關(guān)系復(fù)雜,修改任一模塊都將導(dǎo)致其他相關(guān)模塊也都需要修改,甚至牽一發(fā)而動(dòng)全身,從而導(dǎo)致操作系統(tǒng)設(shè)計(jì)、開發(fā)和維護(hù)的困難;模塊之間沒有層次關(guān)系的無序的網(wǎng)狀聯(lián)系容易造成循環(huán)調(diào)用,形成“死鎖”,從而導(dǎo)致操作系統(tǒng)的可靠性降低。1.單體模式按功能劃分成若干功能模塊,每個(gè)模塊相對(duì)獨(dú)99操作系統(tǒng)服務(wù)界面硬件應(yīng)用程序應(yīng)用程序用戶態(tài)核心態(tài)圖1-10
單體式操作系統(tǒng)架構(gòu)…操作系統(tǒng)服務(wù)界面硬件應(yīng)用程序應(yīng)用程序用戶態(tài)核心態(tài)圖1-101002.分層模式為了克服單體架構(gòu)模式的毛病,使模塊之間的無序關(guān)系變?yōu)橛行蜿P(guān)系,人們?cè)O(shè)計(jì)出了分層架構(gòu)模式。最早提出并實(shí)現(xiàn)了分層架構(gòu)思想的是軟件大師Dijkstra,他開發(fā)成功了第一個(gè)采用分層架構(gòu)模式的操作系統(tǒng)——The系統(tǒng)。分層架構(gòu)的基本思想是:按操作系統(tǒng)的管理功能將操作系統(tǒng)劃分成幾個(gè)層次,每一層由若干模塊組成;下層模塊為緊鄰的上層模塊提供服務(wù),上層模塊可以調(diào)用下層模塊,反之不行。如果某層中的模塊調(diào)用關(guān)系比較復(fù)雜,則可將該層進(jìn)一步劃分成若干子層,如進(jìn)程管理層可分為高級(jí)進(jìn)程管理和低級(jí)進(jìn)程管理。如圖1-11所示。分層架構(gòu)的一大優(yōu)點(diǎn)是大大降低了死鎖的可能性,系統(tǒng)也易于調(diào)試和維護(hù)。缺點(diǎn)是增加了模塊間的通信開銷,降低了效率。2.分層模式為了克服單體架構(gòu)模式的毛病,使模塊之間的101操作系統(tǒng)服務(wù)界面硬件文件系統(tǒng)內(nèi)存和I/O設(shè)備管理進(jìn)程管理與通信應(yīng)用程序用戶態(tài)核心態(tài)圖1-11
分層式操作系統(tǒng)架構(gòu)應(yīng)用程序…操作系統(tǒng)服務(wù)界面硬件文件系統(tǒng)內(nèi)存和I/O設(shè)備管理進(jìn)程管理與1023.內(nèi)核模式單體架構(gòu)和分層架構(gòu)的一個(gè)共同問題是:操作系統(tǒng)的所有功能模塊都在核心態(tài)下運(yùn)行。這帶來幾個(gè)問題:首先,操作系統(tǒng)提供的所有服務(wù)功能都需要進(jìn)入核心態(tài)才能使用,對(duì)于處于用戶態(tài)的應(yīng)用程序每一次請(qǐng)求操作系統(tǒng)的服務(wù)都需要進(jìn)行用戶態(tài)與核心態(tài)的切換,而這種切換是有時(shí)間成本的。這種頻繁的狀態(tài)切換,無疑降低了操作系統(tǒng)的效率。在操作系統(tǒng)還比較簡(jiǎn)單時(shí)這個(gè)問題并不突出,但隨著操作系統(tǒng)功能和復(fù)雜性的增加,這個(gè)問題就十分明顯了。其次,由于核心態(tài)程序可以訪問所有系統(tǒng)資源,因此其安全性和可靠性要求十分高。在操作系統(tǒng)很小時(shí),將其設(shè)計(jì)得可靠和安全不是特別困難。再說,早期沒有出現(xiàn)那么多的安全問題,自然安全上的考慮就不用太多。但隨著3.內(nèi)核模式單體架構(gòu)和分層架構(gòu)的一個(gè)共同問題是:操作103著操作系統(tǒng)越來越大,攻擊者的水平越來越高,操作系統(tǒng)的可靠性和安全性就變得很難達(dá)到,只要想一想,1400行代碼的操作系統(tǒng)和4000萬行代碼的操作系統(tǒng)有什么區(qū)別就知道了。因此,人們又提出了一種新的OS架構(gòu)模式——內(nèi)核架構(gòu),即只將OS中的關(guān)鍵功能模塊以及必須直接訪問系統(tǒng)資源的模塊設(shè)置為核心態(tài),它們構(gòu)成了OS的內(nèi)核;而其他所有模塊則構(gòu)成了OS的外殼(shell)并都設(shè)置為用戶態(tài)。這樣就同時(shí)提高了效率和安全性。如圖1-12所示。就如同把一個(gè)什么都管的龐大、低效的“集權(quán)政府”通過削減部分特權(quán)精簡(jiǎn)成一個(gè)高效的服務(wù)性“小政府”。通常在內(nèi)核中對(duì)各模塊又進(jìn)一步分層,如Linux,見圖1-13。著操作系統(tǒng)越來越大,攻擊者的水平越來越高,操作系統(tǒng)的可靠性104操作系統(tǒng)內(nèi)核硬件內(nèi)存服務(wù)器網(wǎng)絡(luò)服務(wù)器進(jìn)程服務(wù)器文件服務(wù)器設(shè)備服務(wù)器應(yīng)用程序/用戶用戶態(tài)核心態(tài)圖1-12
內(nèi)核式操作系統(tǒng)架構(gòu)Shell操作系統(tǒng)服務(wù)界面系統(tǒng)調(diào)用操作命令系統(tǒng)調(diào)用操作系統(tǒng)內(nèi)核硬件內(nèi)存服務(wù)器網(wǎng)絡(luò)服務(wù)器進(jìn)程服務(wù)器文件服務(wù)器設(shè)105內(nèi)核空間硬件操作系統(tǒng)服務(wù)界面網(wǎng)絡(luò)管理進(jìn)程管理進(jìn)程通信I/O管理與驅(qū)動(dòng)應(yīng)用程序/用戶用戶態(tài)核心態(tài)圖1-13
Linux的內(nèi)核架構(gòu)shell內(nèi)存管理虛擬文件系統(tǒng)物理文件系統(tǒng)內(nèi)核空間硬
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 炒黃豆教案反思
- 編織教案反思
- 氧化碳性質(zhì)說課稿
- 深度學(xué)習(xí)及自動(dòng)駕駛應(yīng)用 課件全套 第1-10章 汽車自動(dòng)駕駛技術(shù)概述 -強(qiáng)化學(xué)習(xí)理論及自動(dòng)駕駛應(yīng)用實(shí)踐
- 汽車燈光應(yīng)急
- 檢驗(yàn)科應(yīng)急演練
- 度假村自建房施工合同樣本
- 礦業(yè)安全規(guī)則承諾書
- 城市公園化糞池維修協(xié)議
- 管道安裝清包工施工合同
- 夏季反季節(jié)施工方案綠化
- 專業(yè)技術(shù)人員網(wǎng)絡(luò)安全知識(shí)提升
- 上期開特下期出特公式
- 中國(guó)藥科大藥大動(dòng)力學(xué)重點(diǎn)總結(jié)
- 高中生物必修一學(xué)考知識(shí)總結(jié)
- 火力發(fā)電廠設(shè)計(jì)技術(shù)規(guī)程(熱控部分)
- 中醫(yī)師承學(xué)員報(bào)名申請(qǐng)表
- MSDS(T-35)DBE溶劑
- DFMEA模板(完整版)
- 實(shí)驗(yàn)室6S管理實(shí)施細(xì)則
- 學(xué)習(xí)解讀2021年《全民科學(xué)素質(zhì)行動(dòng)規(guī)劃綱要(2021—2035年)》PPT演示課件
評(píng)論
0/150
提交評(píng)論