操作系統(tǒng)是計(jì)算機(jī)學(xué)科的基礎(chǔ)課程,是理解計(jì)算機(jī)運(yùn)行原理的重要基石,學(xué)習(xí)操作系統(tǒng)不僅能夠讓編程人員了解計(jì)算機(jī)運(yùn)行邏輯而且還有助于培養(yǎng)編程“軟實(shí)力”,如果想真正在編程之路上走下去,那么操作系統(tǒng)將會(huì)是重要的加速器,本系列將走進(jìn)操作系統(tǒng)課程,了解在計(jì)算機(jī)世界的規(guī)則...
說到操作系統(tǒng),不少人會(huì)瞬間想到微軟的Windows系列,有經(jīng)驗(yàn)的編程人員或許會(huì)想到unix,Linux等,但對(duì)于操作系統(tǒng)的定義,不少人恐怕就說不上來了,其實(shí)在計(jì)算機(jī)學(xué)科領(lǐng)域至今也未形成一個(gè)統(tǒng)一的標(biāo)準(zhǔn)化的定義,出現(xiàn)這個(gè)問題一方面由于操作系統(tǒng)實(shí)現(xiàn)兩項(xiàng)相對(duì)獨(dú)立的功能---擴(kuò)展機(jī)器和管理資源,另一方面取決于從什么角度來看待操作系統(tǒng)---用戶觀點(diǎn)還是系統(tǒng)觀點(diǎn)。
1、操作系統(tǒng)作為擴(kuò)展機(jī)器
操作系統(tǒng)可以將硬件細(xì)節(jié)與編程人員隔離開,用戶可以使用操作系統(tǒng)提供的各種命令,直接打開文件、讀寫文件、更改目錄等,在做這些事情時(shí),只需要關(guān)心自己要實(shí)現(xiàn)的目標(biāo),并不用考慮硬件是如何動(dòng)作,從而隱藏了底層硬件的特性。通過操作系統(tǒng)的加工,呈現(xiàn)在用戶面前的機(jī)器是功能更強(qiáng),使用更方便的機(jī)器,通常把邏輯之上覆蓋各種軟件,從而形成功能更強(qiáng)的機(jī)器稱為擴(kuò)展機(jī)器或虛擬機(jī)。
2、操作系統(tǒng)作為資源管理器
操作系統(tǒng)可以用來管理硬件資源和數(shù)據(jù)、程序等軟件資源,控制、協(xié)調(diào)各個(gè)程序?qū)@些資源的利用,盡可能地充分發(fā)揮各種資源的作用,作為資源管理者,操作系統(tǒng)主要做以下工作:
3、用戶角度看操作系統(tǒng)
操作系統(tǒng)應(yīng)當(dāng)處于用戶與計(jì)算機(jī)硬件系統(tǒng)之間,為用戶提供使用計(jì)算機(jī)系統(tǒng)的接口。
4、系統(tǒng)角度看操作系統(tǒng)
操作系統(tǒng)是硬件之上的第一層軟件,它要管理計(jì)算機(jī)系統(tǒng)中各種硬件資源和軟件資源的分配問題,要解決大量對(duì)資源請(qǐng)求的沖突問題,決定把資源分配給誰,何時(shí)分配,分配多少等,使得資源的利用高效而且公平。此外操作系統(tǒng)要對(duì)IO設(shè)備和用戶程序加以控制,保證設(shè)備正常工作,防止非法操作,及時(shí)診斷設(shè)備的故障等。
綜上所述,可以得到:
總之,通??梢赃@樣定義操作系統(tǒng):操作系統(tǒng)是控制和管理計(jì)算機(jī)系統(tǒng)內(nèi)各種硬件和軟件資源,有效地組織多道程序運(yùn)行的系統(tǒng)軟件,是用戶和計(jì)算機(jī)之間的接口。
操作系統(tǒng)主要功能有一下5個(gè)方面:存儲(chǔ)管理、作業(yè)和進(jìn)程管理、設(shè)備管理、文件管理和用戶接口服務(wù)
1、存儲(chǔ)管理
存儲(chǔ)管理的主要功能包括:內(nèi)存分配,地址映射,內(nèi)存保護(hù)和內(nèi)存擴(kuò)充
1.1 內(nèi)存分配
內(nèi)存分配的主要任務(wù)是為每道程序分配一定的內(nèi)存空間,為此操作系統(tǒng)必須記錄整個(gè)內(nèi)存的使用情況,處理用戶提出的申請(qǐng),按照某種策略實(shí)施分配,接收系統(tǒng)或用戶釋放的內(nèi)存空間。由于內(nèi)存是寶貴的系統(tǒng)資源,在制定分配策略時(shí)應(yīng)該如何考慮提高內(nèi)存的利用率,減少內(nèi)存浪費(fèi)。
1.2 地址映射
CPU在執(zhí)行用戶程序時(shí),要從內(nèi)存中取出指令或數(shù)據(jù),為此就必須把所用的相對(duì)地址(或稱邏輯地址)轉(zhuǎn)換成內(nèi)存的物理地址。
1.3 內(nèi)存保護(hù)
不同用戶的程序都放在同一個(gè)內(nèi)存中,就必須要保證它們?cè)诟髯缘膬?nèi)存空間中活動(dòng),不能相互干擾,更不能侵占操作系統(tǒng)的空間,為此需要建立內(nèi)存保護(hù)機(jī)制。
1.4 內(nèi)存擴(kuò)充
一個(gè)系統(tǒng)中的內(nèi)存容量是有限的,不能隨意擴(kuò)充其大小。然而,當(dāng)對(duì)內(nèi)存“求大于供”的局面時(shí),就需要采取虛擬存儲(chǔ)技術(shù)。將程序當(dāng)前使用的部分放在內(nèi)存,而其余部分放在磁盤上,以后根據(jù)程序執(zhí)行時(shí)的要求和內(nèi)存當(dāng)時(shí)使用的情況,隨機(jī)地將所需部分調(diào)入內(nèi)存;必要時(shí)還要把已分配出去的內(nèi)存回收,供其他程序使用(內(nèi)存置換)
2、作業(yè)和進(jìn)程管理
操作系統(tǒng)中有兩個(gè)重要概念,即作業(yè)與進(jìn)程,簡(jiǎn)言之,用戶的計(jì)算任務(wù)稱為作業(yè),程序的執(zhí)行過程稱作進(jìn)程(進(jìn)程是分配資源和在處理機(jī)上運(yùn)行的基本單位)。眾所周知,計(jì)算機(jī)系統(tǒng)中最重要的資源是CPU,對(duì)它管理的優(yōu)劣直接影響整個(gè)系統(tǒng)的性能。所以,作業(yè)和進(jìn)程管理的基本功能包括:作業(yè)和進(jìn)程調(diào)度、進(jìn)程控制和進(jìn)程通信。
2.1 作業(yè)和進(jìn)程調(diào)度
一個(gè)作業(yè)通常經(jīng)過兩級(jí)調(diào)度才能在CPU上執(zhí)行,首先是作業(yè)調(diào)度,它把選中的一批作業(yè)放入內(nèi)存,并分配其他必要資源,為這些作業(yè)建立相應(yīng)的進(jìn)程,然后進(jìn)程調(diào)度按照一定的算法從就緒進(jìn)程中選出一個(gè)合適進(jìn)程,使之在CPU上運(yùn)行、
2.2 進(jìn)程控制
進(jìn)程是操作系統(tǒng)中活動(dòng)的實(shí)體,進(jìn)程控制包括創(chuàng)建進(jìn)程、撤銷進(jìn)程、封鎖進(jìn)程、喚醒進(jìn)程等。
2.3 進(jìn)程通信
多個(gè)進(jìn)程在活動(dòng)過程中彼此間會(huì)發(fā)生相互依賴或者相互制約的關(guān)系,為保證系統(tǒng)中所有的進(jìn)程都能正?;顒?dòng),就必須設(shè)置進(jìn)程同步機(jī)制,它分為同步方式與互斥方式。相互合作的進(jìn)程之間往往需要交換信息,為此,操作系統(tǒng)需要提供通信機(jī)制。
3、設(shè)備管理
設(shè)備的分配和驅(qū)動(dòng)由操作系統(tǒng)負(fù)責(zé),即設(shè)備管理的主要功能包括:緩沖區(qū)管理,設(shè)備分配,設(shè)備驅(qū)動(dòng)和設(shè)備無關(guān)性
3.1 緩沖區(qū)管理
緩沖區(qū)管理的目的是解決CPU和外設(shè)速度不匹配的矛盾,使它們充分并行工作,提高各自的利用率。
3.2 設(shè)備分配
根據(jù)用戶的IO請(qǐng)求和相應(yīng)的分配策略,為該用戶分配外部設(shè)備、通道和控制器等
3.3 設(shè)備驅(qū)動(dòng)
實(shí)現(xiàn)CPU與通道和外設(shè)之間的通信,由CPU向通道發(fā)出IO指令,后者驅(qū)動(dòng)相應(yīng)設(shè)備進(jìn)行IO操作。當(dāng)IO任務(wù)完成后,通道向CPU發(fā)出中斷信號(hào),由相應(yīng)的中斷處理程序進(jìn)行處理
3.4 設(shè)備無關(guān)性
設(shè)備無關(guān)性又稱設(shè)備獨(dú)立性,即用戶編寫的程序與實(shí)際使用的物理設(shè)備無關(guān),由操作系統(tǒng)把用戶程序中使用的邏輯設(shè)備映射到物理設(shè)備。
4、文件管理
文件管理功能包括:文件存儲(chǔ)空間的管理,文件操作的一般管理,目錄管理,文件的讀寫管理和存取控制
4.1 文件存儲(chǔ)空間的管理
系統(tǒng)文件和用戶文件都要放在磁盤上,為此,需要由文件系統(tǒng)對(duì)所有文件以及文件的存儲(chǔ)空間進(jìn)行統(tǒng)一管理:為新文件分配必要的外存空間,回收釋放的文件空間,提高外存的利用率。
4.2 文件操作的一般管理
文件操作的一般管理包括:文件的創(chuàng)建、刪除、打開、關(guān)閉等
4.3 目錄管理
目錄管理包括目錄文件的組織、實(shí)現(xiàn)用戶對(duì)文件的“按名存取”,以及目錄的快速查詢和文件共享等
4.4 文件的讀寫管理與存取控制
根據(jù)用戶的請(qǐng)求,從外存中讀取數(shù)據(jù)或者將數(shù)據(jù)寫入外存中。為了保證文件信息的安全性,防止未授權(quán)用戶的存取或破壞,對(duì)各個(gè)文件(包括目錄)進(jìn)行存取控制
5、用戶接口服務(wù)
用戶上機(jī)操作時(shí)直接使用到操作系統(tǒng)提供的用戶接口,操作系統(tǒng)對(duì)外提供多種服務(wù),使得用戶可以方便、有效地使用計(jì)算機(jī)硬件和運(yùn)行自己的程序,使得軟件開發(fā)變的容易、高效?,F(xiàn)代操作系統(tǒng)提供三種用戶接口:程序接口,命令行接口以及圖形用戶接口。
5.1 程序接口
也稱系統(tǒng)調(diào)用接口,系統(tǒng)調(diào)用是操作系統(tǒng)內(nèi)核與用戶程序、應(yīng)用程序之間的接口,它位于操作系統(tǒng)核心層的最外層。所有內(nèi)核之外的程序都必須經(jīng)由系統(tǒng)調(diào)用才能獲得操作系統(tǒng)的服務(wù)。系統(tǒng)調(diào)用只能在程序中使用,不能直接作為命令在終端上輸入和執(zhí)行。由于系統(tǒng)調(diào)用能夠改變處理機(jī)的執(zhí)行狀態(tài),從用戶態(tài)變?yōu)楹诵膽B(tài),直接進(jìn)入內(nèi)核執(zhí)行,所以執(zhí)行效率很高。用戶在自己程序中使用系統(tǒng)調(diào)用,從而獲取系統(tǒng)提供的眾多基層服務(wù),
5.2 命令行接口
在提示符之后用戶從鍵盤上輸入命令,命令解釋程序接收并解釋這些命令,然后把它們傳遞給操作系統(tǒng)內(nèi)部程序,執(zhí)行相應(yīng)功能。命令行接口不屬于操作系統(tǒng)內(nèi)核,相應(yīng)的程序是在用戶空間中運(yùn)行的。
5.3 圖形用戶接口
用戶利用鼠標(biāo),窗口,菜單,圖標(biāo)等圖形用戶界面工具,可以直觀、方便,有效地使用系統(tǒng)服務(wù)和各種應(yīng)用程序及實(shí)用工具。圖形用戶接口也不屬于操作系統(tǒng)內(nèi)核,相應(yīng)的程序是在用戶空間中運(yùn)行的。
操作系統(tǒng)基本類型可分為5種:批處理系統(tǒng),分時(shí)系統(tǒng)、實(shí)時(shí)系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)和分布式系統(tǒng)
1、批處理系統(tǒng)
早期的計(jì)算機(jī)操作系統(tǒng)大多數(shù)是批處理系統(tǒng),在這種系統(tǒng)中,把用戶的計(jì)算任務(wù)按“作業(yè)”進(jìn)行管理。其工作流程一般如下:
上述步驟將一直重復(fù)下去,使得各作業(yè)一個(gè)接一個(gè)地流入系統(tǒng),直到?jīng)]有作業(yè)。各個(gè)作業(yè)經(jīng)過處理后又順序地退出系統(tǒng),形成一個(gè)源源不斷的作業(yè)流。
可以看出批處理系統(tǒng)具有兩個(gè)特點(diǎn)---“多道”與“成批”
批操作系統(tǒng)優(yōu)點(diǎn):
批操作系統(tǒng)缺點(diǎn):
2、分時(shí)系統(tǒng)
針對(duì)批操作系統(tǒng)的缺點(diǎn),人們提出了分時(shí)系統(tǒng),它讓用戶通過終端設(shè)備聯(lián)機(jī)使用計(jì)算機(jī)。
在單CPU系統(tǒng)中無法真正的實(shí)現(xiàn)多個(gè)程序的并行(兩個(gè)或兩個(gè)以上事件或活動(dòng)在同時(shí)刻發(fā)生就稱作并行),為了在多道程序環(huán)境中提高資源利用率,往往采用多道程序分時(shí)共享硬件和軟件資源的技術(shù),分時(shí)就是對(duì)時(shí)間的共享。在分時(shí)系統(tǒng)中,分時(shí)主要是指若干程序?qū)PU時(shí)間的共享。分享的時(shí)間單位稱為時(shí)間片,它往往很短,如幾十毫秒。這種分時(shí)的實(shí)現(xiàn),需要有中斷機(jī)構(gòu)和時(shí)鐘系統(tǒng)的支持。利用時(shí)鐘系統(tǒng)把CPU時(shí)間分成一個(gè)一個(gè)的時(shí)間片,操作系統(tǒng)輪流把每個(gè)時(shí)間片分給各個(gè)程序,每道程序一次只可以運(yùn)行一個(gè)時(shí)間片。當(dāng)時(shí)間片計(jì)數(shù)到時(shí)后,產(chǎn)生時(shí)間中斷,控制轉(zhuǎn)向操作系統(tǒng),操作系統(tǒng)選擇另一道程序并分給它時(shí)間片,讓其投入運(yùn)行。到達(dá)給定時(shí)間,再發(fā)中斷,重新選程序(或作業(yè))運(yùn)行,如此反復(fù)。
兩個(gè)或兩個(gè)以上的程序在一段時(shí)間內(nèi),在同一CPU上執(zhí)行就稱作并發(fā),在分時(shí)系統(tǒng)中利用并發(fā)機(jī)制實(shí)現(xiàn)了一個(gè)物理CPU(也可以是多個(gè)物理CPU)在若干道程序之間的多路復(fù)用。
分時(shí)系統(tǒng)的基本特征:
分時(shí)系統(tǒng)的優(yōu)點(diǎn):
常用的通用操作系統(tǒng)是分時(shí)系統(tǒng)與批處理系統(tǒng)的結(jié)合,其原則是:分時(shí)優(yōu)先,批處理在后?!扒芭_(tái)”響應(yīng)需頻繁交互的作業(yè),“后臺(tái)”處理時(shí)間性不強(qiáng)的作業(yè)。
3、實(shí)時(shí)系統(tǒng)
在計(jì)算機(jī)的很多應(yīng)用領(lǐng)域內(nèi),要求對(duì)實(shí)時(shí)采樣數(shù)據(jù)進(jìn)行及時(shí)處理,做出相應(yīng)的反應(yīng),如果超出限定的時(shí)間就可能丟失信息或影響下一批信息的處理。實(shí)時(shí)系統(tǒng)是指計(jì)算機(jī)能及時(shí)響應(yīng)外部事件的請(qǐng)求,在規(guī)定的時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有設(shè)備和任務(wù)協(xié)調(diào)一致工作的操作系統(tǒng)。實(shí)時(shí)系統(tǒng)的目標(biāo)是:對(duì)外部請(qǐng)求在嚴(yán)格時(shí)間范圍內(nèi)做出反應(yīng),并有高可靠性和完整性。其主要特點(diǎn)是:資源的分配和調(diào)度首先要考慮實(shí)時(shí)性,然后才是效率。此外實(shí)時(shí)系統(tǒng)還應(yīng)該具有較強(qiáng)的容錯(cuò)能力。實(shí)時(shí)系統(tǒng)現(xiàn)在有三種典型的應(yīng)用形式:過程控制系統(tǒng)、信息查詢系統(tǒng)和事務(wù)處理系統(tǒng)。
實(shí)時(shí)系統(tǒng)與分時(shí)系統(tǒng)的差別:
4、網(wǎng)絡(luò)操作系統(tǒng)
由于單臺(tái)計(jì)算機(jī)資源畢竟有限,為了實(shí)現(xiàn)異地計(jì)算機(jī)之間的數(shù)據(jù)通信和資源共享,可將分布在各處的計(jì)算機(jī)和終端設(shè)備通過數(shù)據(jù)通信系統(tǒng)聯(lián)結(jié)在一起,構(gòu)成一個(gè)系統(tǒng),這就是計(jì)算機(jī)網(wǎng)絡(luò),計(jì)算機(jī)網(wǎng)絡(luò)需要兩大支柱----計(jì)算機(jī)技術(shù)和通信技術(shù)。
計(jì)算機(jī)網(wǎng)絡(luò)的特征:
網(wǎng)絡(luò)操作系統(tǒng)一般建立在各個(gè)主機(jī)的本地操作系統(tǒng)基礎(chǔ)之上,其功能是實(shí)現(xiàn)網(wǎng)絡(luò)通信,資源共享和保護(hù),以及提供網(wǎng)絡(luò)服務(wù)和網(wǎng)絡(luò)接口等。在網(wǎng)絡(luò)操作系統(tǒng)的作用下,對(duì)用戶屏蔽了各個(gè)主機(jī)對(duì)同樣資源所具有的不同存取方法。
網(wǎng)絡(luò)操作系統(tǒng)的特性:
5、分布式操作系統(tǒng)
分布式操作系統(tǒng)把大量的計(jì)算機(jī)組織在一起,彼此通過高速網(wǎng)絡(luò)進(jìn)行連接。分布式系統(tǒng)有效地解決了地域分布很廣的若干計(jì)算機(jī)系統(tǒng)間的資源共享,并行工作,信息傳輸和數(shù)據(jù)保護(hù)等問題。
分布式操作系統(tǒng)特點(diǎn):
分布式系統(tǒng)是網(wǎng)絡(luò)操作系統(tǒng)的更高形式,它保持了網(wǎng)絡(luò)操作系統(tǒng)的全部功能,而且還具有可靠性和高性能。網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)雖然都屬于管理分布在不同地理位置的計(jì)算機(jī),但最大的差別是:網(wǎng)絡(luò)操作系統(tǒng)知道計(jì)算機(jī)確切的地址,而分布式系統(tǒng)則不知道計(jì)算機(jī)的確切地址;分布式操作系統(tǒng)負(fù)責(zé)整個(gè)資源的分配,能很好地隱藏系統(tǒng)內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),如對(duì)象的物理位置,這些對(duì)用戶都是透明的。
從硬件的角度看,現(xiàn)代通用計(jì)算機(jī)系統(tǒng)是由CPU、內(nèi)存和若干IO設(shè)備組成,它們經(jīng)由系統(tǒng)總線鏈接在一起,實(shí)現(xiàn)彼此通信。從功能上講,是由五大功能部件組成,即運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備。這五大功能部件相互配合,協(xié)同工作。其中運(yùn)算器和控制器集成在一片或幾片大規(guī)?;虺笠?guī)模集成電路中,稱為中央處理器(CPU)。
1、處理器
CPU是計(jì)算機(jī)的“大腦”,它從內(nèi)存中提取指令并執(zhí)行它們。CPU工作的基本周期是:提取指令,譯碼分析,執(zhí)行指令。對(duì)后面的的指令按類似步驟進(jìn)行處理。CPU內(nèi)部包含若干寄存器,其中,一類是通用寄存器,用來存放關(guān)鍵變量和中間結(jié)果。另一類是專用寄存器,如程序計(jì)數(shù)器(PC),棧指針寄存器和程序狀態(tài)字(PSW)。同時(shí)一般操作系統(tǒng)都提供核心態(tài)與用戶態(tài)兩種處理機(jī)執(zhí)行狀態(tài)。其目的是為了保護(hù)操作系統(tǒng)程序(特別是內(nèi)核部分),防止受到用戶程序的損害。當(dāng)執(zhí)行操作系統(tǒng)程序時(shí),處理機(jī)處于核心態(tài)。這時(shí)它具有較高特權(quán),可以執(zhí)行所有指令,包括普通用戶程序中不能使用的特權(quán)指令,從而能對(duì)所有寄存器和內(nèi)存進(jìn)行訪問,以及啟動(dòng)IO操作等。而用戶程序是在用戶態(tài)下執(zhí)行的,它的的權(quán)限較低,只能執(zhí)行指令集中非特權(quán)指令。
2、存儲(chǔ)器
在任何計(jì)算機(jī)中,存儲(chǔ)器都是最主要的組成部分之一。按照速度、容量和成本劃分,存儲(chǔ)器系統(tǒng)構(gòu)成一個(gè)層次結(jié)構(gòu),如下圖所示:
3、IO設(shè)備
IO設(shè)備是人機(jī)交互的工具,它通常由控制器和設(shè)備本身兩部分組成??刂破魇荌O設(shè)備的電子部分,它協(xié)調(diào)和控制一臺(tái)或多臺(tái)IO設(shè)備的操作,實(shí)現(xiàn)設(shè)備操作與整個(gè)系統(tǒng)操作的同步。設(shè)備控制器本身有一些緩沖區(qū)和一組專用寄存器,負(fù)責(zé)在外部設(shè)備和本地緩沖區(qū)之間移動(dòng)數(shù)據(jù)。設(shè)備實(shí)際上隱藏在控制器的后面,因而,操作系統(tǒng)總是與控制器打交道,而不是與設(shè)備直接作用。由于設(shè)備的種類有很多,因而設(shè)備控制器的類別就很多,這就需要不同的軟件來控制它們。這些向控制器發(fā)布命令并接收其回答信息的軟件就是設(shè)備驅(qū)動(dòng)程序。不同操作系統(tǒng)上的不同控制器分別對(duì)應(yīng)不同的設(shè)備驅(qū)動(dòng)程序,理論上講,驅(qū)動(dòng)程序可以在核心之外運(yùn)行,但當(dāng)前的系統(tǒng)都把它放在操作系統(tǒng)中,使其在核心方式下運(yùn)行。
4、總線
按照總線上傳送的信息所起的作用,系統(tǒng)總線基本上可以分為如下三部分:
本文內(nèi)容參考孟慶昌老師所著《操作系統(tǒng)》一書
意見反饋
×
Copyright © 1998-2019 甘肅信息港 All rights reserved.