UNIT1操作系統(tǒng)導論講義課程課件_第1頁
UNIT1操作系統(tǒng)導論講義課程課件_第2頁
UNIT1操作系統(tǒng)導論講義課程課件_第3頁
UNIT1操作系統(tǒng)導論講義課程課件_第4頁
UNIT1操作系統(tǒng)導論講義課程課件_第5頁
已閱讀5頁,還剩227頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

操作系統(tǒng)原理馮耀霖E-mail:fengyaolin5@126.com操作系統(tǒng)原理馮耀霖E-mail:fengyaolin5@1課程說明

●理論教學內(nèi)容(講義)

Unit1操作系統(tǒng)導論8Unit2進程與線程8Unit3進程通信6Unit4進程同步8Unit5死鎖2Unit6實存管理4Unit7虛存管理8Unit8文件管理10Unit9設(shè)備管理6附:操作系統(tǒng)實驗準備知識(自學)課程說明●理論教學內(nèi)容(講義)2●實驗內(nèi)容本課程的實驗平臺是Linux操作系統(tǒng)。

實驗1熟悉Linux環(huán)境實驗2進程的創(chuàng)建與并發(fā)執(zhí)行(一)實驗3進程的創(chuàng)建與并發(fā)執(zhí)行(二)實驗4線程的創(chuàng)建與并發(fā)實驗5信號與管道通信實驗6線程同步(一)實驗7線程同步(二)實驗8分區(qū)內(nèi)存管理具體內(nèi)容見《OS2013_操作系統(tǒng)原理實驗》

●實驗內(nèi)容3

CPU是計算機系統(tǒng)的心臟,操作系統(tǒng)是計算機系統(tǒng)的大腦。半個多世紀以來,操作系統(tǒng)吸引了世界上一群最熱情、最有智慧的杰出人才、集中了人類現(xiàn)代創(chuàng)造性思維活動的精髓。操作系統(tǒng)是軟件世界的萬花筒、博覽會,是軟件王國中的一頂璀璨的皇冠。能夠有機會走進操作系統(tǒng)這個神奇、復雜而又充滿誘惑的大千世界,理解其中的基本概念、結(jié)構(gòu)和奧妙的管理機制是十分幸運的。

4Unit1操作系統(tǒng)導論操作系統(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)的資源管理功能◆為什么要學習操作系統(tǒng)§1什么是操作系統(tǒng)◆操作系統(tǒng)定義71.1操作系統(tǒng)的定義

操作系統(tǒng)=OperatingSystem(OS)

操作系統(tǒng)這個術(shù)語聽上去很稀松平常,并不給人任何興奮的感覺,甚至有點“土”,原因在于中文的“操作”這個詞。提到操作員(工),通常讓人想起操作機床、起重機等各種設(shè)備或工具的穿著油膩工作服的藍領(lǐng)工人(計算機操作員充其量也就是藍領(lǐng)中的白領(lǐng)),自然讓人興奮不起來。將Operating翻譯為中文的“操作”,是因為最初的譯者沒有真正理解英文Operatingsystem所蘊含的精髓。1.1操作系統(tǒng)的定義操作系統(tǒng)=Operating8

Operating?

圖1-1對Operating的誤讀Operating?圖1-1對Operating9那么,英文中的Operatingsystem實際意味著什么?我們先看兩個有關(guān)的英文術(shù)語。

OperatingSurgeon:外科主刀大夫。在整個手術(shù)過程中,主刀大夫具有至高無上的權(quán)威:他說要打麻藥,麻醉師就要趕緊打麻藥;他說需要手術(shù)鉗,助理大夫就趕忙遞給他手術(shù)鉗;他說需要止血,護士就得馬上拿止血藥棉來止血。整個手術(shù)最關(guān)鍵的部分:切開皮膚、拿掉器官、安裝移植器官等均由主刀大夫完成。當然,主刀大夫有時也會將某些任務(wù),如縫合創(chuàng)口交給助理大夫來做,但整個手術(shù)的過程皆由其主控。一句話,OperatingSurgeon就是掌控整個手術(shù)過程、具有精湛技術(shù)和敏銳判斷力的醫(yī)師。

OperatingPerson:操刀手,操控者。是操控/掌控事情的人。那么,英文中的Operatingsystem實際10從OperatingSurgeon和OperatingPerson這兩個術(shù)語的語義我們可理解Operating具有“掌控”的含義。因此,應(yīng)該把Operatingsystem理解為:

Operatingsystem=掌控局勢的一種系統(tǒng)這個術(shù)語是專為計算機系統(tǒng)設(shè)計的(IBM),指的是計算機系統(tǒng)里的一切事情均由OS來掌控。正如任何一種有效的組織或系統(tǒng)都會有一個核心機構(gòu)存在,該核心管理著該組織或系統(tǒng)的可用資源,掌控著系統(tǒng)的正常運轉(zhuǎn)。OS就是計算機系統(tǒng)中的核心機構(gòu),它是計算機軟件精英們設(shè)計的一種大型和極其復雜的軟件系統(tǒng),用于代替人并以人的思維方式來自動管理計算機上的從OperatingSurgeon和Operatin11

所有軟、硬資源,掌控在計算機系統(tǒng)上可能發(fā)生的一切事情。

那么,操作系統(tǒng)到底是什么?操作系統(tǒng)到底掌控什么事情?所有軟、硬資源,掌控在計算機系統(tǒng)上可能發(fā)生的一切事情。12●操作系統(tǒng)是一種大型系統(tǒng)軟件計算機軟件有應(yīng)用軟件與系統(tǒng)軟件之分。應(yīng)用軟件是計算機用戶為了應(yīng)用計算機解決某一特定問題而開發(fā)的軟件。系統(tǒng)軟件則是與具體應(yīng)用邏輯無關(guān)的軟件,是應(yīng)用軟件的開發(fā)和運行平臺。系統(tǒng)軟件一般分為四類:①操作系統(tǒng);②語言處理系統(tǒng)(編譯程序、解釋程序);③軟件開發(fā)實用工具(編輯、調(diào)試、診斷檢測、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ī)模則更大,已達到上億行源代碼。

1.操作系統(tǒng)到底是什么?

???●操作系統(tǒng)是一種大型系統(tǒng)軟件1.操作系統(tǒng)到底是什么?13●操作系統(tǒng)是系統(tǒng)軟件中的核心圖1-2是一個簡略的計算機系統(tǒng)視圖。從中可清楚地看到計算機系統(tǒng)的層次結(jié)構(gòu)。硬件是操作系統(tǒng)存在的物質(zhì)基礎(chǔ)。硬件向軟件提供的是物理機器界面(interface),即機器的指令系統(tǒng)。操作系統(tǒng)是加在“裸機”(純硬件)上的第一層軟件(最底層軟件),是直接建筑在硬件上的軟件,它使用機器指令實現(xiàn)對硬件的管理和控制。操作系統(tǒng)常駐內(nèi)存,它覆蓋了所有的硬件特性和功能,通過各種抽象,構(gòu)建了一個功能遠強于裸機且易用的“操作系統(tǒng)虛擬機”(如Windows虛擬機、Linux虛擬機)。操作系統(tǒng)向上層提供了兩種界面:用戶操作界面(操作命令)和編程界面●操作系統(tǒng)是系統(tǒng)軟件中的核心14硬件操作系統(tǒng)系統(tǒng)應(yīng)用軟件應(yīng)用軟件用戶物理機器界面編程界面用戶操作界面圖1-2計算機系統(tǒng)視圖計算機系統(tǒng)硬件操作系統(tǒng)系統(tǒng)應(yīng)用軟件應(yīng)用軟件用戶物理機器界面編程界面15(系統(tǒng)調(diào)用)。它們向上層掩蓋了所有的硬件特性細節(jié)。系統(tǒng)應(yīng)用軟件處于操作系統(tǒng)的上層,它們不是常駐內(nèi)存的,而是存放在磁盤等外存設(shè)備上,僅當需要運行這些軟件時,才把它們加載到內(nèi)存,并在操作系統(tǒng)的支持下工作,通過系統(tǒng)調(diào)用獲取操作系統(tǒng)提供的各種服務(wù)。系統(tǒng)應(yīng)用軟件有效地擴充了計算機系統(tǒng)的功能,它與操作系統(tǒng)一起組成系統(tǒng)軟件整體,起到了簡化程序設(shè)計、擴大計算機處理能力、提高計算機使用效率、充分發(fā)揮各種資源功能的作用。因此,可以把系統(tǒng)應(yīng)用軟件看作是操作系統(tǒng)的延伸,甚至可把它們看作是操作系統(tǒng)的一部分(如Linux發(fā)行版)。但是系統(tǒng)應(yīng)用軟件與操作系統(tǒng)的不同之處在于,其運行環(huán)境與普通應(yīng)用軟件一樣,它們?nèi)匀恍枰ㄟ^操作(系統(tǒng)調(diào)用)。它們向上層掩蓋了所有的硬件特性細節(jié)。16系統(tǒng)才能使用和控制系統(tǒng)資源。計算機系統(tǒng)層次結(jié)構(gòu)的最上層是應(yīng)用軟件。它們在系統(tǒng)軟件的支持下運行,通過系統(tǒng)調(diào)用獲取各種系統(tǒng)軟件的服務(wù)。用戶在終端上通過輸入各種操作命令(字符命令或圖形命令)使用操作系統(tǒng)虛擬機??梢姡辛瞬僮飨到y(tǒng),用戶和所有非操作系統(tǒng)程序不再直接面對物理機器界面,而是面對操作系統(tǒng)提供的掩蓋了所有硬件特性細節(jié)的虛擬機界面,通過這種虛擬機界面方便地使用功能被大大強化了的操作系統(tǒng)虛擬機。例如,如果用戶在裸機上直接編程是很困難的,因為各種數(shù)據(jù)轉(zhuǎn)移都需要用戶自己來控制,對不同設(shè)備要用不系統(tǒng)才能使用和控制系統(tǒng)資源。17同命令來驅(qū)動,而這對一般人來說是很難勝任的。操作系統(tǒng)將這些工作從用戶手中接過來,從而讓用戶感覺到編程是一件容易的事(相對來說,而對有些人來說編程永遠是很難的)。又如,操作系統(tǒng)通過進程抽象讓計算機的每一個用戶感覺到有一臺自己獨享的CPU;通過虛擬內(nèi)存的抽象,讓用戶感覺到物理內(nèi)存空間具有無限擴張性??傊?,通過操作系統(tǒng)對裸機的各種抽象,可魔幻般地實現(xiàn):少變多、難變易、弱變強?!癫僮飨到y(tǒng)是最基本的系統(tǒng)軟件

任何現(xiàn)代計算機都必須配置和安裝操作系統(tǒng)。在一臺同命令來驅(qū)動,而這對一般人來說是很難勝任的。操作系統(tǒng)將這些18計算機上你可以不安裝某些系統(tǒng)應(yīng)用軟件,如語言處理系統(tǒng)或DBMS,但操作系統(tǒng)是必須安裝的,否則,計算機就根本無法開始工作。計算機加電啟動時,除了必要的硬件檢測,首先將操作系統(tǒng)加載到內(nèi)存并啟動,此后,計算機系統(tǒng)的一切工作都在操作系統(tǒng)的掌控下進行。作為最基本的系統(tǒng)軟件,操作系統(tǒng)為所有的其它軟件(包括系統(tǒng)應(yīng)用軟件)提供了一個開發(fā)和運行的基礎(chǔ)平臺,即所有的其他軟件都需要在操作系統(tǒng)這個平臺上進行開發(fā),并在操作系統(tǒng)的掌控下運行,通過操作系統(tǒng)獲取所需的計算機資源。沒有操作系統(tǒng)任何軟件都無法運行。計算機上你可以不安裝某些系統(tǒng)應(yīng)用軟件,如語言處理系統(tǒng)或DB19

什么是抽象?

所謂抽象(abstract),就是根本上存在但現(xiàn)實中不存在的東西。抽象來源于具體,但又超越具體。例如繪畫史上有抽象派,抽象畫所表現(xiàn)的就是現(xiàn)實中不存在的東西,但這些東西確實又來源于現(xiàn)實。什么是抽象?20抽象畫01抽象畫0121抽象畫02:畢加索《格爾尼卡》

抽象畫02:畢加索《格爾尼卡》222.操作系統(tǒng)到底掌控什么事情?

當然是計算機上或計算機里發(fā)生的一切事情。最原始的計算機并沒有操作系統(tǒng),而是直接由人來掌控事情。但是隨著計算機復雜性的增長,人們已經(jīng)不能直接掌控計算機了,于是人們編寫出操作系統(tǒng)這個軟件來掌控計算機,將人類從日益復雜的任務(wù)中解脫出來。這個“掌控”有著多層深遠的意義。首先,由于計算機的功能和復雜性不斷發(fā)生變化(趨向更加復雜),操作系統(tǒng)所掌控的事情也就越來越多,越來越復雜。同時,操作系統(tǒng)本身能夠使用的資源也不斷增多(如內(nèi)存容量)。???2.操作系統(tǒng)到底掌控什么事情?當然是計算機上或計算23其次,既然操作系統(tǒng)是專門掌控計算機的,那么計算機上發(fā)生的所有事情自然需要操作系統(tǒng)的知曉和許可,未經(jīng)操作系統(tǒng)同意的任何事情均視為非法,包括用戶和應(yīng)用程序中的誤操作,以及病毒和入侵攻擊試圖運作的事情。操作系統(tǒng)設(shè)計人員當然要確保計算機不發(fā)生任何他們不知情或不同意的事情。雖然,操作系統(tǒng)是由Top級軟件精英們設(shè)計的,但是人的能力畢竟是有限的,人的思維也是有缺陷的,只要是由人設(shè)計出的系統(tǒng)自然不會十全十美,缺陷是難免的,這就給了攻擊者可乘之機。操作系統(tǒng)設(shè)計人員與攻擊者之間的博弈是當前驅(qū)動操作系統(tǒng)不斷改善的一個重要動力。再次,掌控事情的水平有高低之分,有效率不同之分其次,既然操作系統(tǒng)是專門掌控計算機的,那么計算機上發(fā)生24,就像外科主刀大夫之間也有水平高低之分。為了更好地掌控事情,更好地滿足人們永不滿足的各種越來越苛刻的需求,操作系統(tǒng)自然需要不斷改善,且將一直繼續(xù)下去。歸結(jié)起來,操作系統(tǒng)掌控的事情主要有兩大類:資源管理和安全性管理。操作系統(tǒng)管理計算機中的所有資源,包括硬件資源(設(shè)備資源)和軟件資源(信息資源)。硬件資源可大致分為四類:CPU、內(nèi)存、外存及I/O設(shè)備。操作系統(tǒng)通過各種策略提高硬件資源的工作效率和利用率,改善和優(yōu)化計算機的功能和性能。軟件資源就是存儲在計算機內(nèi)的各種文件,操作系統(tǒng)要對文件實施有效的保護,提供快速的文件查找,通過共享提高文件資源的利用率。,就像外科主刀大夫之間也有水平高低之分。為了更好地掌控事情25安全性管理功能主要解決兩個問題:(1)確保操作系統(tǒng)自身的正常運轉(zhuǎn),即確保操作系統(tǒng)自己不能出現(xiàn)崩潰性故障,這是計算機系統(tǒng)能正常工作的基礎(chǔ);(2)防止非法操作和非法入侵,主要是防止病毒和入侵攻擊。其中的第二個問題是是安全性管理需要解決的主要問題。隨著計算機應(yīng)用的越來越廣泛和深入,操作系統(tǒng)需要管理的資源也越來越多且越來越復雜,故對操作系統(tǒng)的要求也越來越高。由于操作系統(tǒng)存在缺陷是難免的,這就給了攻擊者可乘之機。針對對操作系統(tǒng)的攻擊,操作系統(tǒng)設(shè)計人員在不斷改進操作系統(tǒng)的安全性,這種操作系統(tǒng)設(shè)計

安全性管理功能主要解決兩個問題:26人員與攻擊者之間的博弈,使得操作系統(tǒng)安全水平和攻擊水平不斷交替上升,永不會停止。如今安全性管理越來越受到操作系統(tǒng)設(shè)計人員的重視,其重要性越來越突出。

如果我們把整個計算機系統(tǒng)比擬成一個國家的話,操作系統(tǒng)就相當于是管理整個國家的政府,是國家最高的政務(wù)管理機構(gòu)。

人員與攻擊者之間的博弈,使得操作系統(tǒng)安全水平和攻擊水平不斷27好了,至此我們可以給出操作系統(tǒng)的一個定義了:

★操作系統(tǒng)是最關(guān)鍵的系統(tǒng)軟件,它掌控計算機上的一切事情,包括:管理所有的計算機資源,維持計算機系統(tǒng)的安全及有序運轉(zhuǎn),并為用戶使用計算機提供方便且有效的環(huán)境。好了,至此我們可以給出操作系統(tǒng)的一個定義了:281.2

操作系統(tǒng)的資源管理功能

資源管理是操作系統(tǒng)的主要功能,它遵循著一切人類資源管理的基本目的,即如何有效地發(fā)掘資源、監(jiān)控資源、分配資源和回收資源,而其中的核心是分配資源。公平和有效,是操作系統(tǒng)資源管理的基本原則。

公平指的是每個用戶進程(進展/運行中的程序)都有享有系統(tǒng)資源的權(quán)利(就像“天賦人權(quán)”),系統(tǒng)要讓各個用戶進程感到某種平等,即系統(tǒng)不能“無限”延長對任一進程的資源請求的響應(yīng)時間。當然真正的公平是沒有的事,這很像人類生活的現(xiàn)實,不過追求公平乃是人類的本能,是PSJZ觀。只有公平了,才能談得上公正與和諧。在虛擬世界里盡可能公平一點還是非常應(yīng)該的,至少應(yīng)該是操作系統(tǒng)設(shè)計時的不懈追求。1.2操作系統(tǒng)的資源管理功能資源管理是操作系統(tǒng)的主要29

有效就是指不能浪費系統(tǒng)資源,要使資源盡可能被充分地利用,發(fā)揮出每個資源的最大效能。有效也為公平提供了必要的支持。這同樣也像人類生活的現(xiàn)實,一個社會/國家如果存在著大量的資源浪費,而浪費必定和腐敗聯(lián)系在一起,一個腐敗成風的社會能是一個公平、公正的社會嗎?總之,公平與效率是操作系統(tǒng)資源管理中永恒的主題。到底是效率重要?還是公平更重要?天平的不同傾斜將引出不同的管理模式。操作系統(tǒng)的資源管理功能一般分為四個子系統(tǒng):進程管理、內(nèi)存管理、外存管理及設(shè)備管理。有效就是指不能浪費系統(tǒng)資源,要使資源盡可能被充分地利用301.進程管理

進程(process)可簡單地理解為“運行中的程序”,其實質(zhì)是操作系統(tǒng)對CPU的抽象。進程管理的主要目的有三個:第一是公平分配,即每個進程都有機會使用到CPU;第二是非阻塞,即任何進程不能無休止地阻撓其他進程的正常推進,如果一個進程在執(zhí)行過程中需要I/O或者因別的什么事情而發(fā)生阻塞,這個阻塞不能妨礙無關(guān)進程繼續(xù)前進,就像人類世界,缺了誰地球都照樣轉(zhuǎn);第三是優(yōu)先級調(diào)度,在人類生活中人的地位不是完全一樣的,地位高的就比地位低的具有更高的資源獲取權(quán)及占有權(quán),OS設(shè)計者把人類生活中的這種關(guān)系搬到操作系統(tǒng)里面,就有了優(yōu)先級的概念,即賦予某些進程有較高的優(yōu)先級,如果優(yōu)先級高的進程需要執(zhí)行,則優(yōu)先級低的進程就要讓出CPU。1.進程管理進程(process)可簡單地理解為312.內(nèi)存管理

內(nèi)存管理一般是管理由主存和緩存所形成的內(nèi)存架構(gòu)。為了有力地支持多進程并發(fā)以及應(yīng)用程序不斷增大的需求,OS設(shè)計者發(fā)明了虛擬內(nèi)存的概念,即通過軟件技術(shù)將物理內(nèi)存邏輯擴充到磁盤上,這樣就極大地增大了物理內(nèi)存空間。因此,現(xiàn)代操作系統(tǒng)管理的實際上是由主存、緩存及磁盤所形成的虛擬內(nèi)存架構(gòu)。內(nèi)存管理要解決的問題之一是如何給不同的用戶進程分配內(nèi)存空間;要解決的另一個問題是怎樣讓很多用戶進程共用同一個物理內(nèi)存,這就需要對物理內(nèi)存進行分割和保護,每個進程占用一個受保護的內(nèi)存空間,一個進程不能訪問另一個進程所占用的內(nèi)存空間,即進程不能越界。2.內(nèi)存管理內(nèi)存管理一般是管理由主存和緩存所形成的內(nèi)323.外存管理

外存管理也稱文件系統(tǒng)管理或文件管理。文件系統(tǒng)是操作系統(tǒng)對外存介質(zhì)(磁盤、磁帶、光盤)的抽象。文件則是對外存空間單位的抽象。外存管理要解決的的問題之一是如何分配外存空間給不同的進程。要解決的另一個問題是怎樣將外存變成一個很容易使用的存儲介質(zhì)提供給用戶使用,使得用戶在訪問外存時無需了解外存設(shè)備的物理屬性或程序和數(shù)據(jù)在外存空間上的精確位置,例如磁盤上的磁道、磁柱、扇區(qū)等。磁盤是最重要的外存介質(zhì),是外存管理的重點。3.外存管理外存管理也稱文件系統(tǒng)管理或文件管理。文件334.設(shè)備管理設(shè)備管理就是管理I/O設(shè)備,其主要目的有三個:其一,解決如何給不同的進程分配I/O設(shè)備;其二,屏蔽不同設(shè)備的差異性,即使得進程可以用同樣的方式訪問不同的設(shè)備,從而降低編程的難度;其三,提供并發(fā)訪問,即將那些看上去并不具備共享特性的設(shè)備(如打印機)變得可以共享。

4.設(shè)備管理設(shè)備管理就是管理I/O設(shè)備,其主要目的有341.3為什么要學習操作系統(tǒng)我們已明確了OS的重要性,但僅僅因為很重要就一定要學習它嗎?世界上重要的事情多去了,難道我們都要學習嗎?即使是計算機專業(yè)的學生,不學OS也照樣可以編程寫軟件。那我們?yōu)槭裁匆獙W呢?當然我們可以有一千個理由,在這里僅提出兩個。

1)OS都是由軟件界中的Top精英們開發(fā)的,它的優(yōu)秀設(shè)計和經(jīng)典思路是計算機科學知識的薈精集萃,會給我們以激濁揚清的思考,對OS的掌握程度,決定著計算機專業(yè)學習者的發(fā)展水平及方向。舉例說:1.3為什么要學習操作系統(tǒng)我們已明確了OS的重要性35①OS的功能在很多IT領(lǐng)域都使用。如果你做并發(fā)程序的開發(fā)——WebService、分布式系統(tǒng)和網(wǎng)絡(luò),你會發(fā)現(xiàn),這些領(lǐng)域大量使用了OS的概念和技術(shù)。如果你學好了OS,你就可以對你要做的事情更加有信心。②OS的技巧也在很多領(lǐng)域使用,如抽象、緩存、并發(fā)等。如數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計就大量使用了抽象,記得抽象數(shù)據(jù)類型和抽象類嗎?很多地方都用緩存,你做Web要不要用緩存呢?這些你都得做。如果學好了OS,你就掌握了這些內(nèi)容,觸類旁通,你學習別的東西時就會容易多了。①OS的功能在很多IT領(lǐng)域都使用。如果你做并發(fā)程362)更重要的是OS真的很有意思。對于一個計算機專業(yè)的人來說,難道你不想知道自己寫的程序到底是如何在計算機上運行的嗎?很多人買車后第一件事是什么?打開前蓋。打開前蓋看到的是什么呢?馬達、變速箱。為什么第一件事要打開前蓋呢?因為好奇這輛車是怎么開動的。那么,對于一個計算機特別是軟件專業(yè)的人來說,有沒有在看到一臺計算機的時候,想過為什么計算機能進行計算?為什么計算機系統(tǒng)能有條不紊的運轉(zhuǎn)?多數(shù)人恐怕沒有打開過計算機外殼。不過,沒有打開過也不用遺憾,因為即使你把計算機后蓋打開,還是不能明白計算機是怎么運轉(zhuǎn)的,此時只看到一堆硬件:主板、芯片、布線等,而這些硬件并不會告訴你太多有關(guān)計算機運轉(zhuǎn)的信息。如果真的想知道計算機系統(tǒng)到底是怎么運轉(zhuǎn)的,你就得學習OS。2)更重要的是OS真的很有意思。對于一個計算機專業(yè)的37雖然學習OS很有趣,但并不是所有人都有這樣的感覺,因為OS的特點是概念多、抽象和涉及面廣,而從整體實現(xiàn)上看,其思想和技術(shù)又往往令“我們”難于理解。歷史證明,對很多人來說學習OS是一件很痛苦的事情。不過本人希望我們在一起學習這門課程對大家來說是一件樂事,難道窺探計算機系統(tǒng)的奧秘不是一件激動人心的事嗎?雖然學習OS很有趣,但并不是所有人都有這樣的感覺,因為38§2

操作系統(tǒng)的形成與發(fā)展◆操作系統(tǒng)的發(fā)展歷史◆操作系統(tǒng)的分類◆操作系統(tǒng)的未來發(fā)展趨勢§2操作系統(tǒng)的形成與發(fā)展◆操作系統(tǒng)的發(fā)展歷史392.1操作系統(tǒng)的發(fā)展歷史

操作系統(tǒng)的形成與發(fā)展由兩個基本因素驅(qū)動:■硬件成本的不斷下降;■計算機的功能和復雜性不斷提升。硬件成本的不斷降低,就以硬盤為例,IBM制造的第一張硬磁盤直徑達2米,造價100多萬美元,而容量只有1MB;而現(xiàn)在一個容量100GB的硬盤成本只有幾十美元。當然,過去的硬盤和今天的硬盤的制造技術(shù)完全不同,早期硬盤的質(zhì)量堅挺,可以當作咖啡桌來使用,而現(xiàn)在的硬盤片根本不能承受重物。計算機硬件及其組成的發(fā)展速度從一開始就很驚人。最初,計算機的組件雖然巨大,但數(shù)量少,功能簡單,現(xiàn)在,一臺計算機里包括的元件數(shù)量實在是太多了。2.1操作系統(tǒng)的發(fā)展歷史操作系統(tǒng)的形成與發(fā)展由兩個40硬件成本的下降和計算機復雜性的提高推動了操作系統(tǒng)的演變。成本降低意味著同樣的價格可以買到更為先進的計算機。而計算機復雜性的提高自然需要操作系統(tǒng)的能力也得到提高。就是這些變化使得操作系統(tǒng)從最初的僅僅只有幾百或幾千行源代碼發(fā)展到今天的多達幾千萬行到上億行源代碼。操作系統(tǒng)之所以越來越復雜的基本因素是因為硬件質(zhì)量和數(shù)量的不斷提升使得操作系統(tǒng)管理的東西增多,而且人類永不滿足的各種越來越苛刻的要求也使得操作系統(tǒng)的復雜性不斷增加。除了上述兩個基本驅(qū)動因素,在操作系統(tǒng)的發(fā)展過程中,效率和公平始終是操作系統(tǒng)設(shè)計人員追求的關(guān)鍵目硬件成本的下降和計算機復雜性的提高推動了操作系統(tǒng)的演變41標,它們是導致操作系統(tǒng)越來越復雜的重要因素。另外,還有一個附加因素影響著操作系統(tǒng)的發(fā)展,這就是操作系統(tǒng)和攻擊者之間的博弈。這個世界上總有些人想利用計算機的缺陷來進行各種損人利己或損人又不利己的活動。操作系統(tǒng)在最初設(shè)計時就根本沒有想到會有人從事破壞活動。大概因為早期的計算機工作者認為到達能夠使用計算機的水平的人都是好人,是君子,是紳士,無需設(shè)計任何安全機制。這樣,在后來發(fā)現(xiàn)有人試圖利用計算機進行不良操作時,就迫不得已修改操作系統(tǒng),使其具有安全上的防范功能。每當操作系統(tǒng)改進了安全性,攻擊者也會改良他們的攻擊手段,這樣循環(huán)往復,就造成操作系統(tǒng)安全水平和攻擊水平不斷交替上升的歷史。標,它們是導致操作系統(tǒng)越來越復雜的重要因素。42第零代:SOSC操作系統(tǒng)(20世紀40年代)

SOSC(SingleOperator,SingleConsole單操作員單控制臺)控制方式是最原始的計算機控制方式,用于第一代電子計算機,如ENIAC。當時并沒有操作系統(tǒng)的整體概念,人們能夠想到的最直觀的控制計算機的方式,就是提供一些標準的人機交互命令供用戶(當時的用戶既是編程者也是操作員)使用,這些標準命令的集合就構(gòu)成了SOSC標準函數(shù)庫。這可認為是操作系統(tǒng)的最原始形式。

SOSC的設(shè)計目的就是滿足基本的功能,并提供人機交互。在SOSC下,任何時候只能做一件事。即不支持并發(fā)和多道程序運行。SOSC本身只是一組標準庫函數(shù)而已,并不自我運行,而是等待響應(yīng)用戶輸入的命令,然后加載相應(yīng)的庫函數(shù)來執(zhí)行。用戶想使用什么服務(wù),就輸入代表第零代:SOSC操作系統(tǒng)(20世紀40年代)SOSC43該服務(wù)的庫函數(shù)名即可。這種控制方式的資源利用率很低:用戶輸入一個命令就執(zhí)行一個SOSC庫函數(shù),撥一下動一下;當用戶在思考時或進行輸入輸出時,CPU則靜靜地等待。當然了,從人的角度來看,效率并不低,你輸入什么,計算機就立即執(zhí)行什么。但從機器的角度考慮,因為CPU時刻都等著人相對很慢的動作,效率就太低了。由于這個時代的計算機很稀少,整個世界也只有幾臺,而人卻不是,提高計算機的利用率就變得十分重要。該服務(wù)的庫函數(shù)名即可。這種控制方式的資源利用率很低:用戶輸44第一代:批處理操作系統(tǒng)(20世紀50年代)為了提高SOSC的效率,人們提出了“批處理”的概念。在仔細考察了SOSC后,人們發(fā)現(xiàn),SOSC效率之所以低下,是因為計算機總是在等待人的下一步動作,而人的動作總是很慢。因此,人們覺得如果取消人的因素,讓所有的用戶先想好自己要運行的命令,列成一個清單(稱作業(yè)說明書),再把要運行的程序、數(shù)據(jù)連同作業(yè)說明書一起制作(穿孔)在紙帶/卡片上,然后將制作好的紙帶/卡片交給計算機管理員來一批一批地處理,效率不就提高了嗎?這就形成了批處理操作系統(tǒng)。批處理針對的是第二代通用計算機,如IBM的1401和7094等,通過取消用戶與計算機的直接人機交互達到CPU和輸入輸出設(shè)備利用率的改善。第一代:批處理操作系統(tǒng)(20世紀50年代)為了提高SO45

批處理的過程是:用戶將自己的作業(yè)(=程序+數(shù)據(jù)+作業(yè)說明書)制作在穿孔卡片/紙帶上,交給計算機管理員;管理員在收到一定數(shù)量的用戶作業(yè)后,將卡片/紙帶上的作業(yè)通過輸入輸出衛(wèi)星機IBM1401讀入,并寫入到磁帶(輸入磁帶)上,這樣每盤輸入磁帶通常會含有多個用戶作業(yè);然后,計算機操作員將這盤磁帶裝入到作為主機的IBM7094上,由駐留在IBM7094上的批處理監(jiān)控程序(batchmonitor)順序解釋執(zhí)行各用戶作業(yè),實現(xiàn)了作業(yè)之間的自動切換,作業(yè)運行的結(jié)果被寫入另一個磁帶(輸出磁帶)上;所有的用戶作業(yè)運行結(jié)束后,將輸出磁帶取下來,裝到衛(wèi)星機IBM1401上進行結(jié)果打印;然后就可以將打印結(jié)果交給各個用戶了。圖1-3描述了批處理的過程。批處理的過程是:用戶將自己的作業(yè)(=程序+數(shù)據(jù)+作業(yè)46圖1-3批處理系統(tǒng)示意圖圖1-3批處理系統(tǒng)示意圖47

批處理監(jiān)控程序和原先就有的標準函數(shù)庫就組成了批處理操作系統(tǒng)。(不過,那時還沒有出現(xiàn)“操作系統(tǒng)”這個術(shù)語)很顯然,批處理操作系統(tǒng)的功能和復雜性較之SOSC均得到了提升。批處理操作系統(tǒng)開始具備了初步的系統(tǒng)管理功能:■設(shè)備管理——讀卡機、磁帶機、打印機等I/O設(shè)備的驅(qū)動;■文件管理——首次引入了文件概念,每個用戶作業(yè)被抽象成一個文件;■解釋執(zhí)行作業(yè)說明書;■實現(xiàn)各用戶作業(yè)之間的自動切換。批處理監(jiān)控程序和原先就有的標準函數(shù)庫就組成了批處理操作48批處理操作系統(tǒng)一般被認為是操作系統(tǒng)的雛形,后也被稱之為單道批處理操作系統(tǒng),一般把它稱之為第一代操作系統(tǒng)。其重要實例有IBM開發(fā)的FMS和IBSYS,密歇根大學開發(fā)的UMES,分別運行于IBM7090和IBM7094。

驅(qū)動這個階段操作系統(tǒng)發(fā)展的動力是改善效率。因為機器的昂貴,使得CPU在操作員思考或I/O設(shè)備工作期間閑置起來是難以容忍的。批處理操作系統(tǒng)一般被認為是操作系統(tǒng)的雛形,后也被稱之為49第二代:多道批處理操作系統(tǒng)(20世紀60年代)

雖然批處理操作系統(tǒng)通過無需人機交互過程而在一定程度上提高了計算機的效率,但還是不那么令人滿意。因為,它只支持一個用戶作業(yè)進入內(nèi)存運行,且CPU和I/O設(shè)備的運行是串行的,即在程序進行輸入輸出時,CPU只能等待,CPU需要不斷地探詢I/O是否完成,因而不能執(zhí)行別的程序。由于昂貴的CPU的速度要遠遠高于I/O設(shè)備,故CPU常常處于閑置狀態(tài),其浪費是很大的。為此,人們又設(shè)想,能否將CPU和I/O設(shè)備并行工作呢?即在一個程序進行輸入輸出時,讓CPU去執(zhí)行另一個程序,換言之,能否將CPU和I/O設(shè)備的運行重疊起來從而改善整個計算機系統(tǒng)的效率呢?答案是肯定的,不過需要付出代價,因為CPU和I/O重疊需要我們將多個程序同第二代:多道批處理操作系統(tǒng)(20世紀60年代)雖然批50時加載到計算機內(nèi)存里,由此,引出了多道程序設(shè)計(multiprogramming)的思想。

多道程序設(shè)計是指允許多個程序同時進入計算機內(nèi)存并發(fā)運行的方法。也就是說,計算機內(nèi)存中可同時存放多道(兩個或以上)相互獨立的程序,它們均處于起點和終點之間,通過操作系統(tǒng)的調(diào)度使各道程序輪流交替地使用CPU。當現(xiàn)行程序啟動I/O并需要等待I/O的完成時,操作系統(tǒng)可立即調(diào)度CPU去執(zhí)行另一個駐留在內(nèi)存中的程序,使得CPU與I/O設(shè)備并行工作,利用這種多部件的并行工作,使系統(tǒng)可同時運行多個不同的程序。從而可大大減少CPU的閑置時間,充分提高了CPU的利用率。時加載到計算機內(nèi)存里,由此,引出了多道程序設(shè)計(multi51例如,假設(shè)一個程序用20%的時間使用CPU進行計算,另外80%的時間用來進行I/O。則在單道系統(tǒng)中,CPU的利用率只有20%;但如果同時運行兩個這樣的程序,則CPU的利用率將提高到36%(CPU只在兩個程序同時進行I/O時才處于閑置狀態(tài),因此CPU的利用率為1-0.8×0.8=36%),這里忽略了程序切換所需要的系統(tǒng)開銷。同理,如果同時運行3個這樣的程序,CPU利用率將提高到48.8%;4個程序的CPU利用率將為59%;5個程序的CPU利用率將為67.2%。這樣,隨著程序道數(shù)的增加,CPU利用率將逐步提升,直到某個臨界點為止。這個臨界點就是多道程序設(shè)計的上限,超過這個上限,多道程序設(shè)計的好處將逐步消失,甚至呈下降趨勢。例如,假設(shè)一個程序用20%的時間使用CPU進行計算,另52圖1-4多道編程度數(shù)、I/O時間和CPU利用率的關(guān)系圖1-4多道編程度數(shù)、I/O時間和CPU利用率的關(guān)系53將多道程序設(shè)計思想引入到批處理操作系統(tǒng)便形成了多道批處理操作系統(tǒng)。顯而易見,比起簡單批處理多道批處理操作系統(tǒng)的功能要強得多,但也要復雜得多:既要管理多個作業(yè),又要管理內(nèi)存,還要管理CPU調(diào)度。但多道批處理操作系統(tǒng)構(gòu)建了操作系統(tǒng)的基本架構(gòu),奠定了操作系統(tǒng)的基本理論,操作系統(tǒng)也因此而成就了一門獨立學科。

驅(qū)動多道批處理操作系統(tǒng)的問世及發(fā)展的動力仍然是改善效率。因為當時的CPU非常昂貴,人們不能容忍CPU在I/O設(shè)備工作期間被閑置下來。同時,用戶對計算機的需求也開始多了起來,從純粹的科學計算發(fā)展到商業(yè)應(yīng)用。因此,這個階段還伴隨著滿足用戶不斷增長的需求。將多道程序設(shè)計思想引入到批處理操作系統(tǒng)便形成了多道批處54

藍色巨人IBM對多道批處理操作系統(tǒng)的問世作出了巨大貢獻。在1961年年底,IBM開始實施“360系統(tǒng)電子計算機計劃”,整個計劃投資約50億美元(而“曼哈頓工程”才花了20億),超過了當時IBM一年的產(chǎn)值。在人力上,光軟件工程師就投入了2000多名。

IBM在實施360計劃時,首次正式提出了Operating

System這個術(shù)語,并開發(fā)出了一個真正的多道批處理操作系統(tǒng)OS/360,這是一個不僅從理念上也從技術(shù)上都是劃時代的操作系統(tǒng),是操作系統(tǒng)發(fā)展史上的一個里程碑。隨著OS/360的問世,誕生了一批嶄新的概念和術(shù)語,如:多道程序設(shè)計、任務(wù)(進程)、調(diào)度、并發(fā)、作業(yè)管理、藍色巨人IBM對多道批處理操作系統(tǒng)的問世作出了巨大貢獻55CPU管理、內(nèi)存管理、設(shè)備管理、文件管理等,它們構(gòu)成了操作系統(tǒng)理論的基礎(chǔ)。同時,計算機應(yīng)用從純科學計算應(yīng)用開始進入了商業(yè)應(yīng)用。CPU管理、內(nèi)存管理、設(shè)備管理、文件管理等,它們構(gòu)成了操作56圖靈獎獲得者(1999)FrederickBrooks

圖1-5OS/360總設(shè)計師

圖靈獎獲得者(1999)FrederickBrooks57第三代之一:分時操作系統(tǒng)(20世紀70年代)多道批處理操作系統(tǒng)的出現(xiàn)使計算機的效率(主要是吞吐量)大大提高。但它的一大問題是用戶是“脫機”(Offline)使用計算機的,用戶無法即時獲知其程序的運行結(jié)果。想想如果你編了一個程序,卻需要別人去運行,并可能要等上若干天才能知道結(jié)果,這個滋味顯然不好受。萬一計算機管理員疏忽了,忘記運行你的作業(yè),或者操作錯誤,導致程序丟失,情況就更糟。另外,脫機性也大大限制了計算機的商業(yè)性應(yīng)用。為此,人們又設(shè)想,能否讓用戶回到計算機前面來,由每個用戶自己操作和控制自己的程序。隨著符號鍵盤、顯示器等計算機終端設(shè)備的問世,人們的這種設(shè)想的實現(xiàn)成為了可能。第三代之一:分時操作系統(tǒng)(20世紀70年代)多道批處理58批處理系統(tǒng)是對SOSC的否定,而這種想法的提出是對SOSC的否定之否定。人的因素又引了回來,這看上去與原始的SOSC似乎一樣,但有個關(guān)鍵的不同:多個用戶同時與計算機聯(lián)機(On-line),每個用戶被看作只是一個I/O終端而已。即每個用戶都擁有一個聯(lián)機終端(顯示器+鍵盤),它們都通過RS232串行線纜與計算機主機連接,終端只能發(fā)送和接收有限的文本命令和信息。操作系統(tǒng)在所有的聯(lián)機用戶之間進行CPU分時,即一次分給一個用戶進程有限的CPU時間——時間片,只要時間片一完,就立即切換一個用戶進程,給該進程分配一個CPU時間片。就是基于這種基本思想,引來了第三代操作系統(tǒng)——分時操作系統(tǒng)。批處理系統(tǒng)是對SOSC的否定,而這種想法的提出是對SO59在分時操作系統(tǒng)下,任意時間可以運行多個程序,且用戶直接與計算機交互,現(xiàn)場調(diào)試程序,這就和SOSC不一樣了。在SOSC下,一切等著人,計算機執(zhí)行一條命令就等人。分時系統(tǒng)則是人等計算機。這個模式帶來一個直接的結(jié)果就是計算機再不用等你,等你想問題時機器就切換到別的程序,等你想完了機器再切換回來,接受你的再次輸入。就這樣,計算機就在很多人之間來回切換,你輸入個命令就響應(yīng),然后切換走。如果時間掌握的好,用戶輸入完一個命令計算機正好轉(zhuǎn)回來,用戶就沒有等待的感覺。當然,如果一個用戶打字足夠快,可能會覺得計算機慢;如果打字較慢,就有可能覺得計算機很快。不同的人感覺有可能完全不同。在分時操作系統(tǒng)下,任意時間可以運行多個程序,且用戶直接60

圖1-6分時系統(tǒng)示意圖圖1-6分時系統(tǒng)示意圖61顯然,與前面幾代的操作系統(tǒng)相比,分時操作系統(tǒng)要復雜得多。相比于多道批處理操作系統(tǒng),最主要的變化是資源的公平管理。在多道批處理下,公平不公平?jīng)]有人知道,大家遞交了作業(yè)后只管回家等結(jié)果。至于自己的程序排在誰前面誰后面,或者占用了多少CPU時間是無關(guān)緊要的?,F(xiàn)在,大家都坐在計算機終端前面,任何的不公平將立即感覺到。因此,公平地管理用戶的CPU時間就變得非常重要。

驅(qū)動這個階段操作系統(tǒng)發(fā)展的動力是響應(yīng)時間和對越來越多資源的管理。因為機器昂貴,不能容忍CPU在I/O設(shè)備工作期間閑置下來。同時,因為人的時間寶貴,不能容忍用戶坐在機器前進行漫長的等待。因此,人們顯然,與前面幾代的操作系統(tǒng)相比,分時操作系統(tǒng)要復雜得多62發(fā)明了分時操作系統(tǒng)來解決這兩個問題。此外,分時操作系統(tǒng)還需要應(yīng)對競爭、同步、互斥、通信、死鎖、保護等一系列的新問題,使得分時操作系統(tǒng)變得空前復雜,進一步完善了操作系統(tǒng)的基本理論。對分時操作系統(tǒng)的研發(fā)成為了當時計算機界的最大熱門,競爭十分激烈。最為著名的分時操作系統(tǒng)是由AT&T的貝爾實驗室、麻省理工學院(MIT)及數(shù)字設(shè)備公司(DEC)三家合作開發(fā)的Multics分時操作系統(tǒng)和貝爾實驗室開發(fā)的Unix分時操作系統(tǒng)。Unix后來演變成了兩大系列:SystemⅤ(AT&T貝爾實驗室)和BSD(加洲大學伯克利分校)。發(fā)明了分時操作系統(tǒng)來解決這兩個問題。此外,分時操作系統(tǒng)還需63

成功分時操作系統(tǒng)的典范無疑當推UNIX,它是史上第一個用高級程序設(shè)計語言(C語言)編寫的操作系統(tǒng),并成功運行于PDP、VAX、CRAY等當時的主流機器上,其發(fā)明者因此而獲得了圖靈獎。UNIX的問世極大地推動了操作系統(tǒng)的發(fā)展,奠定了操作系統(tǒng)理論和技術(shù)的架構(gòu),是操作系統(tǒng)發(fā)展史上的一個偉大的里程碑,對操作系統(tǒng)的發(fā)展產(chǎn)生著巨大和深遠的影響。發(fā)展到今天,UNIX仍久經(jīng)不衰,表現(xiàn)出它的強大生命力,它已從一個分時操作系統(tǒng)發(fā)展成為“通用”操作系統(tǒng),成為了跨越從微型機到巨型機范圍的唯一操作系統(tǒng),被譽為是操作系統(tǒng)的工業(yè)標準。(貴族)成功分時操作系統(tǒng)的典范無疑當推UNIX,它是史上第一個64

圖靈獎(1983)獲得者肯?湯普遜UNIX發(fā)明者丹尼斯?里奇C語言發(fā)明者

圖1-7UNIX與C語言的發(fā)明者圖靈獎(1983)獲得者肯?湯普遜丹尼斯?里奇圖1-765第三代之二:實時操作系統(tǒng)

實時操作系統(tǒng)是專門為計算機實時應(yīng)用系統(tǒng)(簡稱實時系統(tǒng))而開發(fā)的。實時系統(tǒng)要求計算機對某些實時過程進行監(jiān)視,并在需要的時刻及時采取動作。實時系統(tǒng)具備一個特點:計算機對相關(guān)實時過程必須在規(guī)定時間內(nèi)作出響應(yīng),不然就有可能發(fā)生事故或災難。例如,在工業(yè)裝配線上,當一個部件從流水線上的一個工作站流到下一個工作站時,這個工作站上的操作必須在規(guī)定時間內(nèi)完成,否則就有可能造成流水線癱瘓。又例如,在導彈防衛(wèi)系統(tǒng)中,對來襲導彈的軌跡計算必須在規(guī)定時間內(nèi)完成,否則就有可能被來襲導彈擊中而無法作出反應(yīng)。其他如航空飛行控制系統(tǒng)、核反應(yīng)堆狀態(tài)監(jiān)視系統(tǒng)、化學反應(yīng)堆監(jiān)視系統(tǒng)等。第三代之二:實時操作系統(tǒng)實時操作系統(tǒng)是專門為計算機實66這里必須清楚一個概念:實時系統(tǒng)并不一定是響應(yīng)很快的系統(tǒng),而是其響應(yīng)具有時序可預測性的系統(tǒng)。當然了,在實際中實時系統(tǒng)通常是響應(yīng)很快的系統(tǒng),但這是實時系統(tǒng)的一個結(jié)果,而不是其定義。顯然,實時操作系統(tǒng)的最重要部分就是作業(yè)調(diào)度或進程調(diào)度,只有精確、合理和及時的進程調(diào)度才能保證響應(yīng)時間。當然,對資源的管理也非常重要,沒有精密復雜的資源管理,確保進程按時完成就成為一句空話。另外,基于其使用環(huán)境,實時操作系統(tǒng)對可靠性和可用性的要求也非常高。如果在這些方面出了問題,時序可預測性將無法達到。這里必須清楚一個概念:實時系統(tǒng)并不一定是響應(yīng)很快的系統(tǒng)67第四代:現(xiàn)代操作系統(tǒng)(1980年至今)自20世紀80年代起,計算機工業(yè)獲得了井噴式的發(fā)展,各種計算機和操作系統(tǒng)不斷出現(xiàn)和發(fā)展,計算機和操作系統(tǒng)領(lǐng)域均進入到了一個百花齊放、百家爭鳴的時代,尤其是工作站和PC機的出現(xiàn),使計算機大為普及。這個時代的操作系統(tǒng)代表有:DOS、Windows、Linux、UNIX和各種主機操作系統(tǒng),如VM、MVS等。隨著微電子技術(shù)的飛速發(fā)展,計算機硬件越來越便宜,個人電腦(PC)出現(xiàn)在人們的視野中。人們可以擁有自己的電腦,無需與他人分享。由于PC機由用戶一個人獨享,分時操作系統(tǒng)的許多功能就無需存在,因此,PC機操作系統(tǒng)又變回到了標準函數(shù)庫系統(tǒng)。初期的PC操作系統(tǒng)是單用戶單任務(wù)的,這類OS最有名的是DOS、第四代:現(xiàn)代操作系統(tǒng)(1980年至今)自20世紀80年68Windows3x、MacOS(蘋果機操作系統(tǒng))等。

但在獨享了一陣PC機后,人們發(fā)現(xiàn),沒有分時功能的操作系統(tǒng)使一些事情做不了,因為雖然只有一個人在用計算機,但他可能想同時運行幾個程序,而沒有分時功能這是不可能的。于是,人們覺得需要對PC機操作系統(tǒng)進行改善,將各種有關(guān)的分時功能又加了進去,形成了單用戶多任務(wù)的PC操作系統(tǒng),如windows2000/xp、Xenix、Ulttrix、MacOSX。推動PC電腦的迅猛發(fā)展的一個重要因素是操作系統(tǒng)圖形用戶界面(GUI)的出現(xiàn)。傳統(tǒng)操作系統(tǒng)的用戶操作界面都是字符/文本用戶界面。蘋果公司率先開發(fā)出了實用的GUI,并應(yīng)用在它的MacOS操作系統(tǒng)上。微軟大量Windows3x、MacOS(蘋果機操作系統(tǒng))等。69抄襲了MacOS的GUI技術(shù)而形成了最為流行的GUI——Windows。圖形用戶界面的出現(xiàn)對操作系統(tǒng)的發(fā)展產(chǎn)生了深遠的影響?,F(xiàn)在一般認為GUI的技術(shù)和標準是由蘋果公司打下的基礎(chǔ)。但正確地說,GUI技術(shù)實際上是由施樂帕羅奧托研究中心創(chuàng)始的。這個時代的另外一個重要特征是網(wǎng)絡(luò)的出現(xiàn)和興起。網(wǎng)絡(luò)觸發(fā)了網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)的出現(xiàn)。計算機網(wǎng)絡(luò)有(普通)計算機網(wǎng)絡(luò)和分布式系統(tǒng)之分,分布式系統(tǒng)是種特殊的計算機網(wǎng)絡(luò)。網(wǎng)絡(luò)操作系統(tǒng)是為計算機網(wǎng)絡(luò)開發(fā)的,分布式操作系統(tǒng)則是為分布式系統(tǒng)開發(fā)的。分布式系統(tǒng)與計算機網(wǎng)絡(luò)的主要區(qū)別不在于它們的物理結(jié)構(gòu)上,而是在操作系統(tǒng)。抄襲了MacOS的GUI技術(shù)而形成了最為流行的GUI——70分布式系統(tǒng)與計算機網(wǎng)絡(luò)的差別:■計算機網(wǎng)絡(luò)一般采用客戶/服務(wù)器(Client/Server)模式;而分布式系統(tǒng)采用的是對等(Peer-to-Peer)模式,即網(wǎng)中的站點機沒有主次之分,每一個站點既可作為客戶機,又可作為服務(wù)器?!鲈谟嬎銠C網(wǎng)絡(luò)中,兩臺客戶機之間的通信是通過服務(wù)器來實現(xiàn)的;分布式系統(tǒng)中的任意兩臺計算機之間可以直接通信。■對于計算機網(wǎng)絡(luò),有服務(wù)器操作系統(tǒng)和客戶端操作系統(tǒng)之分,他們之間的功能差異很大;分布式系統(tǒng)使用的是統(tǒng)一的操作系統(tǒng),即網(wǎng)中所有計算機運行的是同一個操作系統(tǒng)。

分布式系統(tǒng)與計算機網(wǎng)絡(luò)的差別:71

■分布式系統(tǒng)中的資源為全網(wǎng)共享,每個站點上的資源都可為其他站點所共享,并且這種共享對用戶是透明的;而在計算機網(wǎng)絡(luò)中,只能客戶機共享服務(wù)器上的資源,且對用戶是不透明的?!龇植际讲僮飨到y(tǒng)可將一個大型或復雜的任務(wù)分解成若干子任務(wù),并將它們分布在若干個站點機上同時執(zhí)行。換言之,分布式操作系統(tǒng)能使多個站點協(xié)同完成同一個任務(wù),而且這對用戶是透明的。網(wǎng)絡(luò)服務(wù)器操作系統(tǒng)最初是Unix獨領(lǐng)風騷。后來形成了Unix與Windows分庭抗禮的局面,但在高端應(yīng)用領(lǐng)域Unix的地位不可動搖,Windows則主要占據(jù)著低端領(lǐng)域。進入90年代后,一種類Unix的操作系統(tǒng)Linux異軍■分布式系統(tǒng)中的資源為全網(wǎng)共享,每個站點上的資源都可為72突起,掀起了一股Linux“自由”風暴,在短時期內(nèi)就與Unix和Windows形成了三足鼎立的局面。Linux不僅在低端領(lǐng)域廣受歡迎,而且成功地立足于高端領(lǐng)域。據(jù)2012年的統(tǒng)計數(shù)據(jù)表明,Linux在高端領(lǐng)域的裝機數(shù)量已經(jīng)超越了Unix。分布式操作系統(tǒng)比網(wǎng)絡(luò)操作系統(tǒng)更為復雜,是操作系統(tǒng)研發(fā)的難點,目前還無商業(yè)性的分布式操作系統(tǒng)面市。現(xiàn)代操作系統(tǒng)的另一個重要分支是為計算機嵌入式(embeded)系統(tǒng)開發(fā)的嵌入式操作系統(tǒng)。計算機嵌入式應(yīng)用就是把微型機嵌入到一個對象體系(如數(shù)碼相機、手機、家用電器、醫(yī)療設(shè)備、交通燈、航空電子設(shè)備和工廠控制設(shè)備等)中,以實現(xiàn)對該對象的智能化控制。顯突起,掀起了一股Linux“自由”風暴,在短時期內(nèi)就與Un73而易見,嵌入式系統(tǒng)在一定程度上改變了通用計算機系統(tǒng)的形態(tài)與功能。嵌入式操作系統(tǒng)(EOS)的主要特點:■微型化。由于嵌入式系統(tǒng)硬件平臺的局限性(內(nèi)存小、不配置外存、微處理器字長短且運算速度有限等),在保證應(yīng)用功能的前提下,微型化是設(shè)計EOS主要出發(fā)點?!隹啥ㄖ疲杉舨茫?。EOS運行的平臺多種多樣,其宿主對象更是五花八門,因而表現(xiàn)出專業(yè)化的特點。從而要求EOS的各個功能模塊都作為可選件,以供用戶根據(jù)實際需要選擇。■實時性。EOS廣泛應(yīng)用于過程控制、數(shù)據(jù)采集、傳輸通信多媒體信息處理及關(guān)鍵要害領(lǐng)域等要求迅速響應(yīng)的而易見,嵌入式系統(tǒng)在一定程度上改變了通用計算機系統(tǒng)的形態(tài)與74場合,實時響應(yīng)要求嚴格,故實時性是其主要特點之一?!隹煽啃?。系統(tǒng)構(gòu)件、模塊和體系結(jié)構(gòu)必須達到應(yīng)有的可靠性,對關(guān)鍵要害應(yīng)用(如軍事、航空航天、交通)還要提供容錯和防故障措施,進一步改進可靠性?!鲆滓浦残?。為了適應(yīng)多種多樣的硬件平臺,EOS應(yīng)該可以在不做大量修改的情況下穩(wěn)定地運行在不同平臺上。

場合,實時響應(yīng)要求嚴格,故實時性是其主要特點之一。752.2操作系統(tǒng)的分類

操作系統(tǒng)種類繁多,很難用單一標準統(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),可分為單機操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)(Netware、WindowsNT、OS/2warp)、多媒體操作系統(tǒng)(Amiga)、和分布式操作系統(tǒng)等;根據(jù)操作系統(tǒng)的使用環(huán)境和對作業(yè)處理方式來考慮,2.2操作系統(tǒng)的分類操作系統(tǒng)種類繁多,很難用單一76可分為批處理操作系統(tǒng)(如MVX、DOS/VSE)、分時操作系統(tǒng)(如Linux、UNIX、XENIX、MacOSX)、實時操作系統(tǒng)(如iEMX、VRTX、RTWINDOWS等);根據(jù)存儲器尋址的寬度可以將操作系統(tǒng)分為8位、16位、32位、64位、128位的操作系統(tǒng)。早期的操作系統(tǒng)一般只支持8位和16位存儲器尋址寬度,現(xiàn)代的操作系統(tǒng)如Linux和Windows7都支持32位和64位。

根據(jù)應(yīng)用領(lǐng)域劃分則是當前最為流行的操作系統(tǒng)分類法,即操作系統(tǒng)可分為四種:桌面操作系統(tǒng)、服務(wù)器操作系統(tǒng)、主機操作系統(tǒng)和嵌入式操作系統(tǒng)??煞譃榕幚聿僮飨到y(tǒng)(如MVX、DOS/VSE)、分時操作77■桌面操作系統(tǒng)桌面操作系統(tǒng)主要用于個人計算機上。主要分為兩大類: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ù)器計算機配置的操作系統(tǒng),比如Web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器等。當前,服務(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操作系統(tǒng)這里的主機是指功能和性能超強的大型機和巨型機,主要用于高端/超高端應(yīng)用領(lǐng)域(如大型金融證卷交易所、衛(wèi)星地面控制站等)。(1)Unix系列:SUNSolaris、IBM-79主機操作系統(tǒng)結(jié)合了批處理和分時功能,功能全面,性能超強。目前,主機操作系統(tǒng)主要有VMS、VS、MVS、OS/390及Unix等。主機操作系統(tǒng)的開發(fā)商主要是IBM,IBM在主機操作系統(tǒng)領(lǐng)域可以說是一家獨大。■嵌入式操作系統(tǒng)

這是一個十分龐雜、品種繁多、競爭激烈,但又是特具發(fā)展?jié)摿Φ念I(lǐng)域。目前,EOS可分為通用型EOS和專用EOS。通用型EOS可用于多種應(yīng)用環(huán)境,例如,常見的WindowsCE、VxWorks、μCLinux等。專用型EOS則用于一些特定領(lǐng)域,例如,應(yīng)用于手持數(shù)字設(shè)備(PDA)的PlamOS,應(yīng)用于智能手機的iPhoneOS(基于MacOSX)、Android(基于Linux)、BlackBerryOS等。主機操作系統(tǒng)結(jié)合了批處理和分時功能,功能全面,性能超強802009年的全球互聯(lián)網(wǎng)用戶操作系統(tǒng)評價(部分)

操作系統(tǒng)反對票數(shù)贊成票數(shù)贊成率Linux21300037900064%FreeBSD673909093.1%UNIX148002720064.7%VMS1034884099.7%Windows4330007150014.1%MacOSX352002990045.9%2009年的全球互聯(lián)網(wǎng)用戶操作系統(tǒng)評價(部分)操作系統(tǒng)反對812.3操作系統(tǒng)的未來發(fā)展趨勢

隨著計算機的不斷普及,操作系統(tǒng)的功能會變得越來越復雜。在這種趨勢下,操作系統(tǒng)的發(fā)展面臨兩個方向的選擇:一是向微內(nèi)核方向發(fā)展,二是向大而全的全方位方向發(fā)展。微內(nèi)核操作系統(tǒng)雖然有不少人在研究,但在工業(yè)界獲得認可的并不多。這方面的代表有MACH系統(tǒng)(卡內(nèi)基.梅隆大學)。對工業(yè)界來說,操作系統(tǒng)是向著多功能、全方位方向發(fā)展。WindowsXP現(xiàn)在有4000萬行代碼,而某些Linux發(fā)行版已達2億行代碼。鑒于大而全的操作系統(tǒng)管理起來比較復雜,現(xiàn)代操作系統(tǒng)采取的都是模塊化的內(nèi)核結(jié)構(gòu)方式,即一個小的內(nèi)核加上模塊化的外圍管理功能。2.3操作系統(tǒng)的未來發(fā)展趨勢隨著計算機的不斷普及,82隨著人們對信息安全重視程度的不斷提升,如何構(gòu)建可靠、可用和安全的操作系統(tǒng)將成為一個十分重要的課題。而對可靠、可用和安全的追求無疑將使操作系統(tǒng)更為復雜,操作系統(tǒng)的規(guī)模也將不斷增大。從初期UNIX的1400行代碼到Linux的上億行代碼,這完全是一種爆炸性增長。而爆炸性增長的后果就是,沒有什么人能夠完全理解一個完整的操作系統(tǒng),而這種狀況又將限制操作系統(tǒng)的可靠、可用和安全性。當然了,人們可以采用各種軟件工程的方法和手段來改善這種狀況,但無論如何,持續(xù)的爆炸性增長恐怕是難以為繼的。讓我們拭目以待吧。隨著人們對信息安全重視程度的不斷提升,如何構(gòu)建可靠、可83§3操作系統(tǒng)的基本概念◆存儲器架構(gòu)與內(nèi)存結(jié)構(gòu)◆中斷◆核心態(tài)與用戶態(tài)◆并發(fā)◆操作系統(tǒng)的架構(gòu)◆操作系統(tǒng)的服務(wù)界面§3操作系統(tǒng)的基本概念◆存儲器架構(gòu)與內(nèi)存結(jié)構(gòu)843.1

存儲器架構(gòu)與內(nèi)存結(jié)構(gòu)

1.存儲器架構(gòu)現(xiàn)代計算機的存儲器系統(tǒng)一般由三個層次構(gòu)成,從大到?。ㄈ萘浚?,從慢到快(存取速度)分別為:輔存、主存和高速緩存(cache)。Cache主存輔存最小,最快,最貴

最大,最慢,最廉

圖1-8計算機的存儲器架構(gòu)3.1存儲器架構(gòu)與內(nèi)存結(jié)構(gòu)1.存儲器架構(gòu)Cache85■輔存(外存)用來永久存放大量信息的存儲器,但CPU不能直接尋址。存儲介質(zhì):磁盤、光盤、磁帶存儲容量:GB~TB級海量存取速度:ms級■主存是直接與計算機總線連接的存儲器,存放正在運行的程序和數(shù)據(jù),是CPU可直接尋址的存儲器。存儲介質(zhì):DRAM和ROM存儲容量:MB~GB存取速度:ηs級(當前DRAM速度已可達到<100ηs)■輔存(外存)86■Cache(高速緩存)Cache是CPU與主存之間的緩沖存儲器,CPU可直接尋址,它存放當前被頻繁訪問的代碼和數(shù)據(jù),用于緩解CPU與主存的速度不匹配矛盾,提高CPU執(zhí)行程序的速度。存儲介質(zhì):SRAM存儲容量:MB存取速度:ηs(與CPU速度基本匹配)主存和cache合稱為內(nèi)存,即內(nèi)存是CPU可直接尋址的工作存儲器。任何需要運行的程序必須被加載到內(nèi)存?!鯟ache(高速緩存)872.操作系統(tǒng)在內(nèi)存中的位置內(nèi)存被劃分成兩大區(qū)域:系統(tǒng)區(qū)和用戶區(qū)。操作系統(tǒng)和檢測診斷程序駐留系統(tǒng)區(qū)。計算機加電后,操作系統(tǒng)便被加載并駐留在系統(tǒng)區(qū)。系統(tǒng)區(qū)包括DRAM的一部分(通常為低地址部分)和全部ROM。ROM中存放必須受保護的操作系統(tǒng)代碼,如內(nèi)核原語、基本驅(qū)動程序等。用戶區(qū)占據(jù)DRAM中的大部分,存放運行中的所有的非操作系統(tǒng)程序和數(shù)據(jù)。操作系統(tǒng)(inDRAM)用戶區(qū)(inDRAM)圖1-9計算機內(nèi)存空間

0n-1操作系統(tǒng)(inROM)Cache2.操作系統(tǒng)在內(nèi)存中的位置內(nèi)存被劃分成兩大區(qū)域:系883.2中斷

中斷是計算機中一個最為重要的程序驅(qū)動機制,它是操作系統(tǒng)獲得計算機控制權(quán)的根本保證,沒有中斷,很難想象操作系統(tǒng)如何完成人們所賦予的任務(wù)。中斷的基本原理是:設(shè)備在完成自己的任務(wù)后向CPU發(fā)出中斷信號,CPU判斷優(yōu)先級,然后確定是否響應(yīng)。如果響應(yīng),則中止現(xiàn)行程序,保留現(xiàn)行程序的現(xiàn)場,啟動執(zhí)行相應(yīng)事件的中斷服務(wù)程序;在中斷服務(wù)程序執(zhí)行完后,恢復被中斷程序的現(xiàn)場,啟動其繼續(xù)執(zhí)行。中斷是很復雜的過程,中斷處理過程中又可以發(fā)生中斷,且還可以有所謂的軟中斷,即軟件發(fā)出的中斷。透徹理解中斷對理解操作系統(tǒng)的運行具有重要意義。因此希望大家復習在計算機組成原理課程中所學的中斷內(nèi)容。3.2中斷中斷是計算機中一個最為重要的程序驅(qū)動機制,893.3核心態(tài)與用戶態(tài)就像世界上的人并不平等一樣,并不是所有的程序都是平等的。世界上有的人占有資源多,有的人占有資源少,有的人來了,別人得讓出資源,有的人則專門為別人讓出資源。程序也是這樣,有的程序可以訪問計算機的任何資源,有的程序則只能訪問有限的少量資源。操作系統(tǒng)作為計算機的管理者,自然不能和被管理者享受完全一樣的待遇,為保證管理的有效性,操作系統(tǒng)應(yīng)該享有特權(quán)。為此,人們發(fā)明了核心態(tài)和用戶態(tài)的概念。那么什么是核心態(tài)?什么是用戶態(tài)呢?只要想一想現(xiàn)實生活中,處于社會核心的人與處于社會邊緣的人有什么區(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))。如果一個程序運行在特權(quán)態(tài),則該程序可以訪問計算機的任何資源,即它的資源訪問權(quán)限不受限制。而如果一個程序運行在用戶態(tài),則其資源需求將受到各種限制。例如,如果要訪問操作系統(tǒng)的內(nèi)核數(shù)據(jù)結(jié)構(gòu)(如進程控制塊),則必須在特權(quán)態(tài)下才能做到。如果要訪問用戶程序里的數(shù)據(jù),則在用戶態(tài)下就可以了。由于核心態(tài)的程序可以訪問計算機的所有資源,這種程序的可靠性和安全性就顯得十分重要。試想如果一個不可靠的程序在核心態(tài)下修改了操作系統(tǒng)的各種內(nèi)核數(shù)據(jù)結(jié)構(gòu),結(jié)果會怎樣呢?——整個系統(tǒng)有可能崩潰。而運行于用戶態(tài)的程序就比較簡單了,如果其可靠性和安全性出了的狀態(tài)。而用戶態(tài)就是非特權(quán)態(tài)(早期也稱目態(tài))。如果一個程序91

問題,其造成的損失只不過是讓用戶程序崩潰,而操作系統(tǒng)將繼續(xù)工作。

很顯然,核心態(tài)和用戶態(tài)各有優(yōu)勢:核心態(tài)程序可以訪問的資源多,但可靠性、安全性要求高,維護和管理都比較復雜;用戶態(tài)程序訪問的資源受限,但可靠性、安全性要求低,自然編寫和維護起來都比較簡單。那么,什么程序可以是核心態(tài)程序呢?只有兩類程序:操作系統(tǒng)和診斷檢測程序。操作系統(tǒng)作為整個計算機的管理者,要管理所有的系統(tǒng)資源(可供所有用戶和應(yīng)用程序使用的資源),它應(yīng)該享有這個特權(quán)。但是不是所有的操作系統(tǒng)程序都是核心態(tài)程序呢?這個問題在后續(xù)的“操作系統(tǒng)架構(gòu)”一節(jié)中論述。

問題,其造成的損失只不過是讓用戶程序崩潰,而操作系統(tǒng)將繼續(xù)92診斷檢測程序為核心態(tài),是因為它需要訪問計算機的所有硬件資源,否則怎么判斷計算機是否正常呢?除了操作系統(tǒng)和診斷檢測程序外,所有的程序都是用戶態(tài)程序??梢?,任何應(yīng)用程序都不能直接使用系統(tǒng)資源,要使用某種系統(tǒng)資源,必須通過操作系統(tǒng)提供的相應(yīng)服務(wù)。那么計算機是如何知道當前正在運行的程序是核心態(tài)程序呢?顯然作出這種判斷需要某種標志,這個標志就是程序狀態(tài)字(PSW)里面的一個字位——CPU狀態(tài)。在CPU里面設(shè)置有一個“程序狀態(tài)字寄存器”,它存放現(xiàn)行程序的PSW。我們通過設(shè)置程序狀態(tài)字,可以將CPU設(shè)置為核心態(tài)或用戶態(tài),或者其他的子態(tài)(有的CPU有更多種診斷檢測程序為核心態(tài),是因為它需要訪問計算機的所有硬件93

子態(tài))。一個程序運行時,CPU是什么態(tài),這個程序就運行在什么態(tài)??梢?,所謂的核心態(tài)和用戶態(tài)實際上是CPU的一種狀態(tài),而不是程序的狀態(tài)。

如前所述,核心態(tài)程序可以訪問任何資源,而用戶態(tài)程序的訪問則受到限制。那么這種限制是如何實現(xiàn)的呢?方案一:把機器指令系統(tǒng)中的所有指令劃分成兩類:特權(quán)指令和普通指令(非特權(quán)指令)。特權(quán)指令多為跟硬資源直接有關(guān)的指令,以及涉及系統(tǒng)安全性的指令;普通指令則是除特權(quán)指令外的所有指令。在核心態(tài)下,CPU可執(zhí)行指令系統(tǒng)的全集,包括特權(quán)指令,也就是說,只有處于核心態(tài)時CPU才能執(zhí)行特權(quán)指令。而在用戶態(tài)下,CPU只能執(zhí)行普通指令。CPU在執(zhí)行程序時,每當執(zhí)行到一條子態(tài))。一個程序運行時,CPU是什么態(tài),這個程序就運行在什94特權(quán)指令時都自動檢測PSW寄存器中的CPU狀態(tài)位,如果是核心態(tài),則執(zhí)行;否則拒絕執(zhí)行。從而確保特權(quán)指令執(zhí)行的合法性。方案二:操作系統(tǒng)把計算機中所有的系統(tǒng)資源都分別抽象成某種數(shù)據(jù)結(jié)構(gòu),通過這些數(shù)據(jù)結(jié)構(gòu)管理所有的系統(tǒng)資源。使用某個資源就是訪問相應(yīng)的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)都被存放在受存儲保護的操作系統(tǒng)內(nèi)核區(qū)內(nèi)。只有核心態(tài)程序可以訪問內(nèi)核區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu),而用戶態(tài)程序則被拒絕訪問。這種限制是通過地址檢查來實現(xiàn)的,當一個用戶態(tài)程序要訪問內(nèi)核區(qū)中的數(shù)據(jù)結(jié)構(gòu)時,地址檢查機構(gòu)將判斷是非法的地址越界而拒絕執(zhí)行。而核心態(tài)程序可以訪問內(nèi)存中的任何地址。特權(quán)指令時都自動檢測PSW寄存器中的CPU狀態(tài)位,如果是953.4并發(fā)并發(fā)是操作系統(tǒng)關(guān)鍵的基本概念之一,來源于多道程序設(shè)計思想。所謂并發(fā),是指在計算機內(nèi)存中同時有多個程序在運行,他們都處在各自的起點和終點之間。宏觀上,他們的代碼都在CPU上執(zhí)行,但微觀上,這些程序是輪換交替地在CPU上執(zhí)行。并發(fā)性使得計算機系統(tǒng)的效率(CPU的吞吐率)得到大大的提高,但操作系統(tǒng)的一切復雜性也主要來自并發(fā)性。

并發(fā)(concurrency)與并行(parallel)的異同:■共性:多個事件的同時進行?!霾町悾翰⑿惺俏⒂^上或物理上的同時性概念,即多個事件在同一時刻發(fā)生;并發(fā)是宏觀上或邏輯上的同時性3.4并發(fā)并發(fā)是操作系統(tǒng)關(guān)鍵的基本概念之一,來源于96概念,即多個事件在同一時段發(fā)生。并行的事件一定是并發(fā)的,反之,并發(fā)的事件不一定是并行的。并行性是并發(fā)性的特例,并發(fā)性是并行性的擴展。概念,即多個事件在同一時段發(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.單體模式按功能劃分成若干功能模塊,每個模塊相對獨立,又通過確定的接口互相聯(lián)系。任意一個模塊可以調(diào)用另一個模塊的服務(wù),整個操作系統(tǒng)構(gòu)成了一個巨大的單一體,且所有模塊都在核心態(tài)下運行,為用戶和應(yīng)用程序提供服務(wù)。如圖1-10所示。這是早期操作系統(tǒng)或簡單操作系統(tǒng)采用的結(jié)構(gòu),如OS/360、MS-DOS。這種架構(gòu)的缺點較多,如:功能模塊之間的關(guān)系復雜,修改任一模塊都將導致其他相關(guān)模塊也都需要修改,甚至牽一發(fā)而動全身,從而導致操作系統(tǒng)設(shè)計、開發(fā)和維護的困難;模塊之間沒有層次關(guān)系的無序的網(wǎng)狀聯(lián)系容易造成循環(huán)調(diào)用,形成“死鎖”,從而導致操作系統(tǒng)的可靠性降低。1.單體模式按功能劃分成若干功能模塊,每個模塊相對獨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)系,人們設(shè)計出了分層架構(gòu)模式。最早提出并實現(xiàn)了分層架構(gòu)思想的是軟件大師Dijkstra,他開發(fā)成功了第一個采用分層架構(gòu)模式的操作系統(tǒng)——The系統(tǒng)。分層架構(gòu)的基本思想是:按操作系統(tǒng)的管理功能將操作系統(tǒng)劃分成幾個層次,每一層由若干模塊組成;下層模塊為緊鄰的上層模塊提供服務(wù),上層模塊可以調(diào)用下層模塊,反之不行。如果某層中的模塊調(diào)用關(guān)系比較復雜,則可將該層進一步劃分成若干子層,如進程管理層可分為高級進程管理和低級進程管理。如圖1-11所示。分層架構(gòu)的一大優(yōu)點是大大降低了死鎖的可能性,系統(tǒng)也易于調(diào)試和維護。缺點是增加了模塊間的通信開銷,降低了效率。2.分層模式為了克服單體架構(gòu)模式的毛病,使模塊之間的101操作系統(tǒng)服務(wù)界面硬件文件系統(tǒng)內(nèi)存和I/O設(shè)備管理進程管理與通信應(yīng)用程序用戶態(tài)核心態(tài)圖1-11

分層式操作系統(tǒng)架構(gòu)應(yīng)用程序…操作系統(tǒng)服務(wù)界面硬件文件系統(tǒng)內(nèi)存和I/O設(shè)備管理進程管理與1023.內(nèi)核模式單體架構(gòu)和分層架構(gòu)的一個共同問題是:操作系統(tǒng)的所有功能模塊都在核心態(tài)下運行。這帶來幾個問題:首先,操作系統(tǒng)提供的所有服務(wù)功能都需要進入核心態(tài)才能使用,對于處于用戶態(tài)的應(yīng)用程序每一次請求操作系統(tǒng)的服務(wù)都需要進行用戶態(tài)與核心態(tài)的切換,而這種切換是有時間成本的。這種頻繁的狀態(tài)切換,無疑降低了操作系統(tǒng)的效率。在操作系統(tǒng)還比較簡單時這個問題并不突出,但隨著操作系統(tǒng)功能和復雜性的增加,這個問題就十分明顯了。其次,由于核心態(tài)程序可以訪問所有系統(tǒng)資源,因此其安全性和可靠性要求十分高。在操作系統(tǒng)很小時,將其設(shè)計得可靠和安全不是特別困難。再說,早期沒有出現(xiàn)那么多的安全問題,自然安全上的考慮就不用太多。但隨著3.內(nèi)核模式單體架構(gòu)和分層架構(gòu)的一個共同問題是:操作103著操作系統(tǒng)越來越大,攻擊者的水平越來越高,操作系統(tǒng)的可靠性和安全性就變得很難達到,只要想一想,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)。這樣就同時提高了效率和安全性。如圖1-12所示。就如同把一個什么都管的龐大、低效的“集權(quán)政府”通過削減部分特權(quán)精簡成一個高效的服務(wù)性“小政府”。通常在內(nèi)核中對各模塊又進一步分層,如Linux,見圖1-13。著操作系統(tǒng)越來越大,攻擊者的水平越來越高,操作系統(tǒng)的可靠性104操作系統(tǒng)內(nèi)核硬件內(nèi)存服務(wù)器網(wǎng)絡(luò)服務(wù)器進程服務(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ù)器進程服務(wù)器文件服務(wù)器設(shè)105內(nèi)核空間硬件操作系統(tǒng)服務(wù)界面網(wǎng)絡(luò)管理進程管理進程通信I/O管理與驅(qū)動應(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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論