電子工業(yè)出版社獨(dú)家提供,嚴(yán)禁轉(zhuǎn)載!
第一章 操作系統(tǒng)概述
隨著計(jì)算機(jī)的發(fā)展,計(jì)算機(jī)系統(tǒng)的硬件和軟件資源越來越豐富。為了提高這些資源的利用率和增強(qiáng)系統(tǒng)的處理能力,出現(xiàn)了相應(yīng)的操作管理程序,作為用戶與計(jì)算機(jī)之間的接口。操作系統(tǒng)(Operating System,OS)是計(jì)算機(jī)系統(tǒng)中最重要、最基本的系統(tǒng)軟件,位于硬件和用戶之間。一方面,它能向用戶提供接口,方便用戶使用計(jì)算機(jī);另一方面,它能管理計(jì)算機(jī)軟、硬件資源,以便合理充分地利用它們。根據(jù)考試大綱要求,本章要求考生掌握以下知識(shí)點(diǎn):
(1)操作系統(tǒng)的概念、特征、功能和提供的服務(wù);
(2)操作系統(tǒng)的發(fā)展與分類;
(3)操作系統(tǒng)的運(yùn)行環(huán)境。
1.1 操作系統(tǒng)的基本概念
操作系統(tǒng)的出現(xiàn)、使用和發(fā)展是近四十余年來計(jì)算機(jī)軟件的一個(gè)重大進(jìn)步,它的出現(xiàn)為人們使用各種各樣的計(jì)算機(jī)奠定了重要基礎(chǔ)。
1.1.1 操作系統(tǒng)概念
計(jì)算機(jī)發(fā)展到今天,從個(gè)人機(jī)到巨型機(jī),無一例外都配置一種或多種操作系統(tǒng),操作系統(tǒng)已經(jīng)成為現(xiàn)代計(jì)算機(jī)系統(tǒng)不可分割的重要組成部分,它為人們建立各種各樣的應(yīng)用環(huán)境奠定了重要基礎(chǔ)。計(jì)算機(jī)系統(tǒng)包括硬件和軟件兩個(gè)組成部分。硬件是所有軟件運(yùn)行的物質(zhì)基礎(chǔ),軟件能充分發(fā)揮硬件潛能和擴(kuò)充硬件功能,完成各種系統(tǒng)及應(yīng)用任務(wù),兩者互相促進(jìn)、相輔相成、缺一不可。圖1-1給出了一個(gè)計(jì)算機(jī)系統(tǒng)的軟、硬件層次結(jié)構(gòu)。
硬件層提供了基本的可計(jì)算性資源,包括處理器、寄存器、存儲(chǔ)器,以及各種I/O設(shè)施和設(shè)備,是操作系統(tǒng)和上層軟件賴以工作的基礎(chǔ)。操作系統(tǒng)層通常是最靠近硬件的軟件層,對(duì)計(jì)算機(jī)硬件作首次擴(kuò)充和改造,主要完成資源的調(diào)度和分配、信息的存取和保護(hù)、并發(fā)活動(dòng)的協(xié)調(diào)和控制等許多工作。操作系統(tǒng)是上層其他軟件運(yùn)行的基礎(chǔ),為編譯程序和數(shù)據(jù)庫管理系統(tǒng)等系統(tǒng)程序的設(shè)計(jì)者提供了有力支撐。系統(tǒng)程序?qū)拥墓ぷ骰A(chǔ)建立在操作系統(tǒng)改造和擴(kuò)充過的機(jī)器上,利用操作系統(tǒng)提供的擴(kuò)展指令集,可以較為容易地實(shí)現(xiàn)各種各樣的語言處理程序、數(shù)據(jù)庫管理系統(tǒng)和其他系統(tǒng)程序。此外,還提供種類繁多的實(shí)用程序,如連接裝配程序、庫管理程序、診斷排錯(cuò)程序、分類/合并程序等供用戶使用。應(yīng)用程序?qū)咏鉀Q用戶特定的或不同應(yīng)用需要的問題,應(yīng)用程序開發(fā)者借助于程序設(shè)計(jì)語言來表達(dá)應(yīng)用問題,開發(fā)各種應(yīng)用程序,既快捷又方便。而最終用戶則通過應(yīng)用程序與計(jì)算機(jī)系統(tǒng)交互來解決他的應(yīng)用問題。
圖1-1 計(jì)算機(jī)系統(tǒng)的軟、硬件層次結(jié)構(gòu)
計(jì)算機(jī)系統(tǒng)由硬件、軟件和數(shù)據(jù)組成。在計(jì)算機(jī)系統(tǒng)的運(yùn)行中,操作系統(tǒng)提供了利用這些資源的合理途徑。操作系統(tǒng)與政府十分相似。像一個(gè)政府,其本身并不能做什么。操作系統(tǒng)僅僅提供了一個(gè)環(huán)境,其他程序可以在此做有用的工作。我們可以從兩個(gè)視角來研究操作系統(tǒng):資源視角和用戶視角。
從資源管理的角度來看,操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中的資源管理器,負(fù)責(zé)對(duì)系統(tǒng)的硬、軟件資源實(shí)施有效的控制和管理,提高系統(tǒng)資源的利用率。
從方便用戶使用的角度看,操作系統(tǒng)是一臺(tái)虛擬機(jī),是對(duì)計(jì)算機(jī)硬件的首次擴(kuò)充,隱藏了硬件操作細(xì)節(jié),使用戶與硬件細(xì)節(jié)隔離,從而方便用戶使用。
盡管操作系統(tǒng)尚未有一個(gè)嚴(yán)格的定義,但一般認(rèn)為:
操作系統(tǒng)是控制和管理計(jì)算機(jī)軟、硬件資源,以盡量合理有效的方法組織多個(gè)用戶共享多種資源的程序集合。
1.1.2 操作系統(tǒng)特征
一般操作系統(tǒng)具有以下4個(gè)基本特征。
1.并發(fā)性
并發(fā)性(Concurrence)是指兩個(gè)或兩個(gè)以上的事件或活動(dòng)在同一時(shí)間間隔內(nèi)發(fā)生。系統(tǒng)內(nèi)部具有并發(fā)機(jī)制,能協(xié)調(diào)多個(gè)終端用戶同時(shí)使用計(jì)算機(jī)和資源,能控制多道程序同時(shí)運(yùn)行。
在多處理器系統(tǒng)中,程序的并發(fā)性不僅體現(xiàn)在宏觀上,而且體現(xiàn)在微觀上(即在多個(gè)CPU 上)也是并發(fā)的,又稱并行的。并行性(Parallelism)是指兩個(gè)或兩個(gè)以上事件或活動(dòng)在同一時(shí)刻發(fā)生。在多道程序環(huán)境下,并行性使多個(gè)程序同一時(shí)刻可在不同的CPU上同時(shí)執(zhí)行。而在分布式系統(tǒng)中,多臺(tái)計(jì)算機(jī)的并存使程序的并發(fā)性得到了更充分的發(fā)揮。但在單處理機(jī)系統(tǒng)中,每一個(gè)時(shí)刻CPU僅能執(zhí)行一道程序,故微觀上這些程序是在交替運(yùn)行的。
可見并行性是并發(fā)性的特例,而并發(fā)性是并行性的擴(kuò)展。
2.共享性
共享性是操作系統(tǒng)的另一個(gè)重要特性。共享是指操作系統(tǒng)中的資源(包括硬件資源和軟件資源)可被多個(gè)并發(fā)執(zhí)行的進(jìn)程共同使用,而不是被一個(gè)進(jìn)程所獨(dú)占。共享的方式可以分成兩種:
第一種是互斥訪問。系統(tǒng)中的某些資源如打印機(jī)、磁帶機(jī)、卡片機(jī),雖然它們可提供給多個(gè)進(jìn)程使用,但在同一時(shí)間內(nèi)卻只允許一個(gè)進(jìn)程訪問這些資源,即要求互相排斥地使用這些資源。當(dāng)一個(gè)進(jìn)程還在使用該資源時(shí),其他欲訪問該資源的進(jìn)程必須等待,僅當(dāng)該進(jìn)程訪問完畢并釋放資源后,才允許另一進(jìn)程對(duì)該資源訪問;
第二種是同時(shí)訪問。系統(tǒng)中還有許多資源,允許同一時(shí)間內(nèi)多個(gè)進(jìn)程對(duì)它們進(jìn)行訪問,這里“同時(shí)”是宏觀上的說法。典型的可供多進(jìn)程同時(shí)訪問的資源是磁盤,可重入程序也可被同時(shí)訪問。
與共享性有關(guān)的問題是資源分配、信息保護(hù)、存取控制等,必須要妥善解決好這些問題。
并發(fā)性和共享性相輔相成,是操作系統(tǒng)的兩個(gè)最基本的特征,兩者之間互為存在條件。一方面,資源的共享是以程序的并發(fā)執(zhí)行為條件的,若系統(tǒng)不允許程序的并發(fā)執(zhí)行,自然不存在資源共享問題;另一方面,若系統(tǒng)不能對(duì)資源共享實(shí)施有效的管理,也必然影響到程序的并發(fā)執(zhí)行,甚至根本無法并發(fā)執(zhí)行。
3.虛擬性
虛擬性是指操作系統(tǒng)中的一種管理技術(shù),它把一個(gè)物理上的實(shí)體映射為若干個(gè)邏輯上的對(duì)應(yīng)物。前者是實(shí)際存在的,后者是虛幻的,只是用戶的一種感覺。采用虛擬技術(shù)的目的是為用戶提供易于使用、方便高效的操作環(huán)境。例如,Spooling技術(shù)可把物理上的一臺(tái)獨(dú)占設(shè)備變成邏輯上的多臺(tái)虛擬設(shè)備;窗口技術(shù)可把一個(gè)物理屏幕變成邏輯上的多個(gè)虛擬屏幕;IBM的VM技術(shù)把物理上的一臺(tái)計(jì)算機(jī)變成邏輯上的多臺(tái)計(jì)算機(jī)。虛擬存儲(chǔ)器則是把物理上的多個(gè)存儲(chǔ)器(主存和輔存)變成邏輯上的一個(gè)存儲(chǔ)器(虛存)。
4.不確定性
在操作系統(tǒng)中,由于運(yùn)行環(huán)境的影響,程序的運(yùn)行時(shí)間、運(yùn)行順序及同一程序或數(shù)據(jù)的多次運(yùn)行結(jié)果等均具有不確定性。不確定性有兩種含義:程序執(zhí)行結(jié)果是不確定的,即對(duì)同一程序,使用相同的輸入,在相同的環(huán)境下運(yùn)行,卻可能獲得完全不同的結(jié)果,即程序是不可再現(xiàn)的。多道程序環(huán)境下,程序的執(zhí)行是以異步方式進(jìn)行的。換言之,每個(gè)程序在何時(shí)執(zhí)行、多個(gè)程序間的執(zhí)行順序,以及完成每道程序所需的時(shí)間都是不確定的,因而也是不可預(yù)知的。例如,作業(yè)到達(dá)系統(tǒng)的類型和時(shí)間是不確定的;操作員發(fā)出命令或按按鈕的時(shí)刻是不確定的;程序運(yùn)行發(fā)生錯(cuò)誤或異常的時(shí)刻是不確定的;各種各樣硬件和軟件中斷事件發(fā)生的時(shí)刻是不確定的,等等。