第一章、OS引论1
1.1 操作系統(tǒng)的目標(biāo)和作用
1.1.1 操作系統(tǒng)的目標(biāo)
- 計(jì)算機(jī)上安裝操作系統(tǒng),主要目標(biāo)是:方便性、有效性、可擴(kuò)充性和開放性。
- 方便性:方便用戶,使計(jì)算機(jī)變得易學(xué)易用
- 有效性:提高系統(tǒng)資源(資源指CPU(處理機(jī)),存儲(chǔ)器,文件(數(shù)據(jù)和程序),外設(shè))利用率和系統(tǒng)的吞吐量(吞吐量為單位時(shí)間完成的作業(yè)數(shù)量)
- 可擴(kuò)充性:是為了適應(yīng)計(jì)算機(jī)硬件、體系結(jié)構(gòu)以及計(jì)算機(jī)應(yīng)用發(fā)展,OS從早期的無(wú)結(jié)構(gòu)化?\Rightarrow?模塊化結(jié)構(gòu)?\Rightarrow?層次化結(jié)構(gòu)?\Rightarrow?微內(nèi)核結(jié)構(gòu)。如今的微內(nèi)核結(jié)構(gòu)可以方便添加新的功能和模塊,易于擴(kuò)充。
- 開放性:系統(tǒng)遵循世界標(biāo)準(zhǔn)規(guī)范,可以彼此兼容,方便互聯(lián)。
1.1.1 操作系統(tǒng)的作用
下面我們從用戶角度,資源管理角度和資源抽象角度進(jìn)行敘述。
OS作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口(用戶角度)
用戶可以通過(guò)三種方式使用計(jì)算機(jī)
- 命令方式
- 系統(tǒng)調(diào)用方式
- 圖形—窗口方式
OS作為計(jì)算機(jī)系統(tǒng)資源的管理者(資源管理角度)
? 計(jì)算機(jī)系統(tǒng)的資源分為?\Longrightarrow?處理機(jī)(CPU),存儲(chǔ)器, 外設(shè)(I/O設(shè)備)以及文件(數(shù)據(jù)和程序), OS的主要功能也是對(duì)這四類資源進(jìn)行有效的管理。
- CPU的分配和控制
- 內(nèi)存的分配和回收
- I/O設(shè)備的分配和操控
- 文件的存取、共享和保護(hù)。
OS實(shí)現(xiàn)了對(duì)計(jì)算機(jī)資源的抽象(資源抽象角度)
? 操作系統(tǒng)OS是鋪設(shè)在計(jì)算機(jī)硬件上的多層軟件的集合,不僅增強(qiáng)了系統(tǒng)的功能,還隱藏了對(duì)硬件操作的具體細(xì)節(jié),實(shí)現(xiàn)了對(duì)計(jì)算機(jī)硬件操作的多個(gè)層次的抽象模型。
? 虛擬機(jī)說(shuō)白了就是:相同硬件基礎(chǔ)上,通過(guò)軟件進(jìn)行擴(kuò)充
1.1.3 推動(dòng)操作系統(tǒng)的主要?jiǎng)恿?/h2>
不斷提高計(jì)算機(jī)資源利用率
方便用戶
器件的迭代更新
硬件推動(dòng)軟件,軟件(遠(yuǎn)遠(yuǎn))落后于硬件
計(jì)算機(jī)體系結(jié)構(gòu)的不斷發(fā)展
單處理機(jī)系統(tǒng)–>多處理機(jī)系統(tǒng),以及計(jì)算機(jī)網(wǎng)絡(luò)的出現(xiàn),OS也不斷發(fā)展
人們不斷提出新的應(yīng)用需求
1.2 操作系統(tǒng)的發(fā)展過(guò)程
操作系統(tǒng)默認(rèn)不包括單任務(wù)操作系統(tǒng)(已經(jīng)被淘汰了)
1.2.1 未配置操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)
人工操作方式
- 人工操作方式直接使用計(jì)算機(jī)硬件系統(tǒng),即由程序員將事先已穿孔(對(duì)應(yīng)于程序和數(shù)據(jù))的紙帶裝入紙帶輸入機(jī),再啟動(dòng)它們將程序和數(shù)據(jù)輸入計(jì)算機(jī),然后啟動(dòng)計(jì)算機(jī)運(yùn)行,當(dāng)程序運(yùn)行完畢并取走計(jì)算結(jié)果之后,才讓下一個(gè)用戶上機(jī)。
- 缺點(diǎn)如下
- 用戶獨(dú)占全機(jī)。此時(shí),計(jì)算機(jī)及其全部資源只能由上機(jī)用戶獨(dú)占。
- CPU等待人工操作。
- 嚴(yán)重降低了計(jì)算機(jī)資源的利用率,此即所謂的人機(jī)矛盾。隨著CPU速度的提高和系統(tǒng)規(guī)模的擴(kuò)大,人機(jī)矛盾變得日趨嚴(yán)重。此外,隨著CPU速度的迅速提高而I/O設(shè)備的速度卻提高緩慢,這又使CPU與I/O設(shè)備之間速度不匹配的矛盾更加突出
脫機(jī)輸入輸出方式
- 事先將裝有用戶程序和數(shù)據(jù)的紙帶裝入紙帶輸入機(jī),在一臺(tái)外圍機(jī)的控制下,把紙帶上的數(shù)據(jù)輸入到磁帶上。當(dāng)CPU需要這些程序和數(shù)據(jù)時(shí),再從磁帶上將其高速地調(diào)入內(nèi)存。
如下圖所示:
?
- 由于程序和數(shù)據(jù)的輸入和輸出都是在外圍機(jī)的控制下完成的,即它們是在脫離主機(jī)的情況下進(jìn)行的,故稱為脫機(jī)輸入/輸出方式;反之,在主機(jī)的直接控制下進(jìn)行輸入/輸出的方式稱為聯(lián)機(jī) 。
- 優(yōu)點(diǎn)
- 減少了CPU的空閑時(shí)間,緩和了人機(jī)矛盾。
- 提高了I/O速度。當(dāng)CPU在運(yùn)行中需要數(shù)據(jù)時(shí),是直接從高速的磁帶或磁盤上將數(shù)據(jù)調(diào)入內(nèi)存的,不再是從低速I/O設(shè)備上輸入,極大地提高了I/O速度,從而緩和了CPU和I/O設(shè)備速度不匹配的矛盾,進(jìn)一步減少了CPU的空閑時(shí)間。
1.2.2 單道批處理系統(tǒng)
單道批處理系統(tǒng)的處理過(guò)程(Simple Batch Processing System)
單道批處理系統(tǒng)是最早出現(xiàn)的一種OS。嚴(yán)格地說(shuō),它只能算作是OS的前身而并非是現(xiàn)在人們所理解的OS。
- 自動(dòng)性。在順利情況下,在磁帶上的一批作業(yè)能自動(dòng)地逐個(gè)地依次運(yùn)行,而無(wú)需人工干預(yù)。
- 順序性。磁帶上的各道作業(yè)是順序地進(jìn)入內(nèi)存,各道作業(yè)的完成順序與它們進(jìn)入內(nèi)存的順序,在正常情況下應(yīng)完全相同,亦即先調(diào)入內(nèi)存的作業(yè)先完成。
- 單道性。監(jiān)督程序每次從磁帶上只調(diào)入一道程序進(jìn)入內(nèi)存運(yùn)行,當(dāng)該程序完成或發(fā)生異常情況時(shí),才換入其后繼程序進(jìn)入內(nèi)存運(yùn)行。即,內(nèi)存中僅有一道程序運(yùn)行。
1.2.3 多批處理系統(tǒng)(Multiprogrammed Batch Processing System)
多道程序設(shè)計(jì)的基本概念
單道批處理系統(tǒng)中,內(nèi)存中僅有一道作業(yè),它無(wú)法充分利用系統(tǒng)中的所有資源,致使系統(tǒng)性能較差
多道批處理系統(tǒng)中,用戶所提交的作業(yè)都先存放在外存上并排成一個(gè)隊(duì)列,稱為*“后備隊(duì)列”*。由作業(yè)調(diào)度程序按一定的調(diào)度算法從后備隊(duì)列中選擇若干個(gè)作業(yè)調(diào)入內(nèi)存,使它們共享CPU和系統(tǒng)中的各種資源。
- 提高CPU的利用率
-
可提高內(nèi)存和I/O設(shè)備利用率
-
增加系統(tǒng)吞吐量
- 吞吐量是指對(duì)網(wǎng)絡(luò)、設(shè)備、端口、虛電路或其他設(shè)施,單位時(shí)間內(nèi)成功地傳送數(shù)據(jù)的數(shù)量(以比特、字節(jié)、分組等測(cè)量)。
多道批處理系統(tǒng)的優(yōu)缺點(diǎn)
- 由于在內(nèi)存中駐留了多道程序,它們共享資源,可保持資源處于忙碌狀態(tài),從而使各種資源得以充分利用。
- 第一,CPU和其它資源保持“忙碌”狀態(tài);
- 第二,僅當(dāng)作業(yè)完成時(shí)或運(yùn)行不下去時(shí)才進(jìn)行切換,系統(tǒng)開銷小。
- 作業(yè)的周轉(zhuǎn)時(shí)間(cycling time)) : 從作業(yè)進(jìn)入系統(tǒng)開始,直至其完成并退出系統(tǒng)為止所經(jīng)歷的時(shí)間。
- 由于作業(yè)要排隊(duì),依次進(jìn)行處理,因而作業(yè)的周轉(zhuǎn)時(shí)間較長(zhǎng),通常需幾個(gè)小時(shí),甚至幾天。
- 用戶一旦把作業(yè)提交給系統(tǒng)后,直至作業(yè)完成,用戶都不能與自己的作業(yè)進(jìn)行交互,不利于修改和調(diào)試程序。
多道批處理系統(tǒng)需要解決的問(wèn)題
? 多道批處理系統(tǒng)是一種有效、但十分復(fù)雜的系統(tǒng)。為使系統(tǒng)中的多道程序間能協(xié)調(diào)地運(yùn)行,必須解決下述一系列問(wèn)題。
處理機(jī)管理問(wèn)題
- 多道程序之間,應(yīng)如何分配共享的處理機(jī),又應(yīng)在何時(shí)收回
- 既能滿足程序運(yùn)行需要,又提高處理機(jī)利用率
內(nèi)存分配和保護(hù)問(wèn)題
-
為每道程序分配必要的內(nèi)存空間,不致因相互重疊而丟失信息
-
防止因某道程序出現(xiàn)異常情況而破壞其它程序
I/O設(shè)備分配問(wèn)題
- 如何分配這些I/O設(shè)備,如何做到既方便用戶對(duì)設(shè)備的使用,又能提高設(shè)備的利用率
文件組織和管理問(wèn)題
- 應(yīng)如何組織程序和數(shù)據(jù),才能使它們既便于用戶使用,又能保證數(shù)據(jù)的安全性和一致性
作業(yè)管理問(wèn)題(調(diào)度)
- 對(duì)于系統(tǒng)中的各種應(yīng)用程序,有各種各樣作業(yè)。其中有些作業(yè)既重要又緊迫;而有的作業(yè)則要求系統(tǒng)能及時(shí)響應(yīng),這時(shí)應(yīng)如何組織這些作業(yè)
用戶與系統(tǒng)的接口問(wèn)題
1.2.4 分時(shí)系統(tǒng)
-
分時(shí)系統(tǒng)的引入
? 分時(shí)系統(tǒng)(Time Sharing System)與多道批處理系統(tǒng)之間有著截然不同的性能差別,它能很好地將一臺(tái)計(jì)算機(jī)提供給多個(gè)用戶同時(shí)使用,提高計(jì)算機(jī)的利用率。
? 經(jīng)常應(yīng)用于查詢系統(tǒng)中,滿足許多查詢用戶的需要。用戶的需求具體表現(xiàn)在以下幾個(gè)方面:
- 人-機(jī)交互, eg:以邊運(yùn)行邊修改的方式,對(duì)程序中的錯(cuò)誤進(jìn)行修改
- 共享主機(jī), eg : 計(jì)算機(jī)非常昂貴,多個(gè)用戶共享一臺(tái),而且用戶在使用機(jī)器時(shí)應(yīng)能夠像自己獨(dú)占計(jì)算機(jī)一樣
- 便于用戶上機(jī), eg : 用戶希望能通過(guò)自己的終端直接將作業(yè)傳送到機(jī)器上進(jìn)行處理,并能對(duì)自己的作業(yè)進(jìn)行控制
-
分時(shí)系統(tǒng)中實(shí)現(xiàn)的關(guān)鍵問(wèn)題
-
及時(shí)接收
-
系統(tǒng)中配置一個(gè)多路卡
-
每個(gè)終端配置一個(gè)緩沖區(qū),用來(lái)暫存用戶鍵入的命令
-
-
及時(shí)處理
- 各個(gè)用戶的作業(yè)都必須在內(nèi)存中,且應(yīng)能頻繁地獲得處理機(jī)而運(yùn)行。批處理系統(tǒng)的運(yùn)行方式無(wú)法實(shí)現(xiàn)。
- 作業(yè)應(yīng)直接進(jìn)入內(nèi)存,規(guī)定每個(gè)作業(yè)只運(yùn)行一個(gè)很短的時(shí)間
- 在不長(zhǎng)的時(shí)間(如3秒)內(nèi)能使所有的用戶作業(yè)都執(zhí)行一次
- 從而,使用戶的請(qǐng)求得到及時(shí)響應(yīng)
-
-
分時(shí)系統(tǒng)的特征
- 多路性
- 允許在一臺(tái)主機(jī)上同時(shí)聯(lián)接多臺(tái)聯(lián)機(jī)終端,系統(tǒng)按分時(shí)原則為每個(gè)用戶服務(wù)。
- 宏觀上,是多個(gè)用戶同時(shí)工作,共享系統(tǒng)資源;而微觀上,則是每個(gè)用戶作業(yè)輪流運(yùn)行一個(gè)時(shí)間片。
- 多路性即同時(shí)性,它提高了資源利用率,降低了使用費(fèi)用,從而促進(jìn)了計(jì)算機(jī)更廣泛的應(yīng)用。
- 獨(dú)立性
- 每個(gè)用戶各占一個(gè)終端,彼此獨(dú)立操作,互不干擾
- 及時(shí)性
- 用戶的請(qǐng)求能在很短的時(shí)間內(nèi)獲得響應(yīng)。
- 交互性
- 用戶可通過(guò)終端與系統(tǒng)進(jìn)行廣泛的人機(jī)對(duì)話。
- 其廣泛性表現(xiàn)在:用戶可以請(qǐng)求系統(tǒng)提供多方面的服務(wù),如文件編輯、數(shù)據(jù)處理和資源共享等。
- 多路性
1.2.5 實(shí)時(shí)系統(tǒng)
所謂“實(shí)時(shí)”,是表示“及時(shí)”,
? 實(shí)時(shí)系統(tǒng)**(Real Time System)**是指系統(tǒng)能及時(shí)響應(yīng)外部事件的請(qǐng)求,在規(guī)定的時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致地運(yùn)行。
- 實(shí)時(shí)系統(tǒng)的類型
實(shí)時(shí)控制:
? 當(dāng)把計(jì)算機(jī)用于生產(chǎn)過(guò)程的控制,以形成以計(jì)算機(jī)為中心的控制系統(tǒng)時(shí),系統(tǒng)要求能實(shí)時(shí)采集現(xiàn)場(chǎng)數(shù)據(jù),并對(duì)所采集的數(shù)據(jù)進(jìn)行及時(shí)處理,進(jìn)而自動(dòng)地控制相應(yīng)的執(zhí)行機(jī)構(gòu),使某些(個(gè))參數(shù)(如溫度、壓力、方位等)能按預(yù)定的規(guī)律變化,以保證產(chǎn)品的質(zhì)量和提高產(chǎn)量。通常把用于進(jìn)行實(shí)時(shí)控制的系統(tǒng)稱為實(shí)時(shí)系統(tǒng)。
實(shí)時(shí)信息處理:
? 人們把用于對(duì)信息進(jìn)行實(shí)時(shí)處理的系統(tǒng)稱為實(shí)時(shí)信息處理系統(tǒng)。
? 該系統(tǒng)由一臺(tái)或多臺(tái)主機(jī)通過(guò)通信線路連接到成百上千個(gè)遠(yuǎn)程終端上,計(jì)算機(jī)接收從遠(yuǎn)程終端上發(fā)來(lái)的服務(wù)請(qǐng)求,根據(jù)用戶提出的請(qǐng)求對(duì)信息進(jìn)行檢索和處理,并在很短的時(shí)間內(nèi)為用戶做出正確的響應(yīng)。
? 典型的實(shí)時(shí)信息處理系統(tǒng)有早期的飛機(jī)或火車的訂票系統(tǒng)、情報(bào)檢索系統(tǒng)
-
實(shí)時(shí)任務(wù)的類型
- 按照是否呈現(xiàn)出周期性劃分
- 周期性實(shí)時(shí)任務(wù)。
- 即外部設(shè)備周期性地發(fā)出激勵(lì)信號(hào)給計(jì)算機(jī),要求它按指定周期循環(huán)執(zhí)行,以便周期性地控制某外部設(shè)備。
- 非周期性實(shí)時(shí)任務(wù)。
- 外部設(shè)備所發(fā)出的激勵(lì)信號(hào)并無(wú)明顯的周期性,但都必須聯(lián)系著一個(gè)截止時(shí)間(Deadline)。
- 截止時(shí)間分為開始截止時(shí)間和完成截止時(shí)間。
- 周期性實(shí)時(shí)任務(wù)。
- 根據(jù)對(duì)截止時(shí)間的要求來(lái)劃分
- 硬實(shí)時(shí)任務(wù)(Hard real-time Task)。系統(tǒng)必須滿足任務(wù)對(duì)截止時(shí)間的要求,否則可能出現(xiàn)難以預(yù)測(cè)的結(jié)果
- 軟實(shí)時(shí)任務(wù)(Soft real-time Task)。它也聯(lián)系著一個(gè)截止時(shí)間,但并不嚴(yán)格,若偶爾錯(cuò)過(guò)了任務(wù)的截止時(shí)間,對(duì)系統(tǒng)產(chǎn)生的影響也不會(huì)太大。
- 按照是否呈現(xiàn)出周期性劃分
-
實(shí)時(shí)系統(tǒng)與分時(shí)系統(tǒng)特征的比較
- 多路性。實(shí)時(shí)信息處理系統(tǒng)也按分時(shí)原則為多個(gè)終端用戶服務(wù)。實(shí)系統(tǒng)的多路性則主要表現(xiàn)在系統(tǒng)周期性地對(duì)多路現(xiàn)場(chǎng)時(shí)控制信息進(jìn)行采集,以及對(duì)多個(gè)對(duì)象或多個(gè)執(zhí)行機(jī)構(gòu)進(jìn)行控制。而分時(shí)系統(tǒng)中的多路性則與用戶情況有關(guān),時(shí)多時(shí)少。多路性有著些許差別
- 獨(dú)立性。實(shí)時(shí)信息處理系統(tǒng)中的每個(gè)終端用戶在向?qū)崟r(shí)系統(tǒng)提出服務(wù)請(qǐng)求時(shí),是彼此獨(dú)立地操作,互不干擾;而實(shí)時(shí)控制系統(tǒng)中,對(duì)信息的采集和對(duì)對(duì)象的控制也都是彼此互不干擾。
- 及時(shí)性。實(shí)時(shí)信息處理系統(tǒng)對(duì)實(shí)時(shí)性的要求與分時(shí)系統(tǒng)類似,都是以人所能接受的等待時(shí)間來(lái)確定的;而實(shí)時(shí)控制系統(tǒng)的及時(shí)性,則是以控制對(duì)象所要求的開始截止時(shí)間或完成截止時(shí)間來(lái)確定的,一般為秒級(jí)到毫秒級(jí),甚至有的要低于100微秒。
- 交互性。實(shí)時(shí)信息處理系統(tǒng)雖然也具有交互性,但這里人與系統(tǒng)的交互僅限于訪問(wèn)系統(tǒng)中某些特定的專用服務(wù)程序。它不像分時(shí)系統(tǒng)那樣能向終端用戶提供數(shù)據(jù)處理和資源共享等服務(wù)。 即,分時(shí)系統(tǒng)的交互性更強(qiáng)。
- 可靠性。分時(shí)系統(tǒng)雖然也要求系統(tǒng)可靠,但相比之下,實(shí)時(shí)系統(tǒng)則要求系統(tǒng)具有高度的可靠性。因?yàn)槿魏尾铄e(cuò)都可能帶來(lái)巨大的經(jīng)濟(jì)損失,甚至是無(wú)法預(yù)料的災(zāi)難性后果,所以在實(shí)時(shí)系統(tǒng)中,往往都采取了多級(jí)容錯(cuò)措施來(lái)保障系統(tǒng)的安全性及數(shù)據(jù)的安全性。即,實(shí)時(shí)系統(tǒng)要求更高的可靠性
1.2.6 微機(jī)操作系統(tǒng)的發(fā)展
主要幾個(gè)大公司 : IBM, 微軟(MS), Apple
-
單用戶單任務(wù)操作系統(tǒng)
? 只允許一個(gè)用戶上機(jī),且只允許用戶程序作為一個(gè)任務(wù)運(yùn)行。
? 這是最簡(jiǎn)單的微機(jī)操作系統(tǒng),主要配置在8位和16位微機(jī)上。最有代表性的單用戶單任務(wù)微機(jī)操作系統(tǒng)是CP/M(8bitOS)、MS-DOS。
不但有MS Doc,其實(shí)還有 一個(gè) IBM Dos
-
單用戶多任務(wù)操作系統(tǒng)
只允許一個(gè)用戶上機(jī),但允許用戶把程序分為若干個(gè)任務(wù),使它們并發(fā)執(zhí)行,從而有效地改善了系統(tǒng)的性能。
主要是 Windows
-
多用戶多任務(wù)操作系統(tǒng)
允許多個(gè)用戶通過(guò)各自的終端使用同一臺(tái)機(jī)器,共享主機(jī)系統(tǒng)中的各種資源,每個(gè)用戶程序又可進(jìn)一步分為幾個(gè)任務(wù),使它們能并發(fā)執(zhí)行,從而可進(jìn)一步提高資源利用率和系統(tǒng)吞吐量
- Unix,因?yàn)楦鱾€(gè)大公司各自為政,造成了最大問(wèn)題就是不兼容
- Linux 是 Unix 的一個(gè)變種,源碼公開,免費(fèi),沒有版權(quán)問(wèn)題,Linux只能通過(guò)維護(hù)、提供服務(wù)賺錢。
1.3 操作系統(tǒng)的基本特性
1.3.1 并發(fā)性(concurrence)
并行與并發(fā)
- 并行性和并發(fā)性(Concurrence)是既相似又有區(qū)別
- 并行性是指兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生
- 并發(fā)性是指兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生
- 并行的要求更高,需要多核。并發(fā)包括并行。
進(jìn)程
- 為使多個(gè)程序能并發(fā)執(zhí)行,系統(tǒng)必須分別為每個(gè)程序建立進(jìn)程(Process)
- 程序的每一次執(zhí)行形成一個(gè)進(jìn)程,進(jìn)程是指在系統(tǒng)中能獨(dú)立運(yùn)行,并作為資源分配的基本單位,是由一組機(jī)器指令、數(shù)據(jù)和堆棧等組成的,是一個(gè)能獨(dú)立運(yùn)行的活動(dòng)實(shí)體。
- 多個(gè)進(jìn)程之間可以并發(fā)執(zhí)行和交換信息。一個(gè)進(jìn)程在運(yùn)行時(shí)需要一定的資源。
- 一個(gè)進(jìn)程包括多個(gè)線程。
- 在引入線程的OS中,通常都是把進(jìn)程作為分配資源的基本單位,而把線程作為獨(dú)立運(yùn)行和獨(dú)立調(diào)度的基本單位。
1.3.2 共享性(sharing)
互斥共享方式
同時(shí)訪問(wèn)方式
1.3.3 虛擬性(virtual)
時(shí)分復(fù)用技術(shù)
虛擬處理機(jī)技術(shù)
虛擬設(shè)備技術(shù)
空分復(fù)用技術(shù)
1.3.4 異步性(asynchronism)
總結(jié)
- 上一篇: 外星人装深度linux,17xR4深度拆
- 下一篇: Java基础10(反射)