1.1 計算機硬體結構
計算機系統基本組成
1.1.1 處理器
- CPU工作的基本週期是:
提取指令、譯碼分析、執行命令
每個CPU可以執行的指令集是專用的 - CPU的組成:
1、運算器:是計算核心,負責指令的算術和邏輯運算,由算術邏輯單元、累加暫存器、資料緩衝暫存器、條件狀態暫存器等組成。
2、控制器:是控制核心,控制執行的流程、包括取指令、維護CPU狀態、實現CPU與記憶體的互動等。
3、暫存器:暫存指令、資料、地址資訊。
4、快取記憶體:位於CPU和記憶體之間,提高CPU效能。 - CPU的暫存器:
1、常規暫存器(使用者程序和系統程序都可使用):
通用暫存器:可以存放資料、也可以參與地址轉換。
條件碼暫存器:條件判定使用,選擇不同分支。
2、控制和狀態暫存器(一般只允許系統程序使用):
程式計數器(PC):存放將要讀取的指令的記憶體地址。
指令暫存器(IR):儲存要執行的指令。
記憶體地址暫存器和記憶體資料暫存器
I/O埠地址暫存器和I/O埠資料暫存器
程式狀態字暫存器(PSW):紀錄CPU的執行模式和狀態資訊,如中斷允許/禁止、CPU優先順序、執行模式(核心態還是使用者態)等。
(一組)中斷暫存器:每個中斷暫存器指向一箇中斷處理程式。 - 特權指令和非特權指令:
計算機系統的指令分為特權指令和非特權指令。指令的執行如果可能直接影響到系統工作,則指令屬於特權指令,否則屬於非特權指令。特權指令可以控制中斷、存取所有資源、設定工作狀態等,所以在使用者模式(使用者態)下只能執行非特權指令,在系統模式(核心態)下可以執行所有指令,包括特權指令。 - 兩種處理機執行狀態(在PSW(程式狀態字暫存器)裡區分):核心態
使用者態
1.1.2 記憶體
記憶體分為系統區、使用者區、系統區。
1.1.3 I/O 裝置
- I/O裝置通常由控制器和裝置本身兩部分組成
- 裝置驅動程式
1.1.4 匯流排
1.2 什麼是作業系統
- Windows XP、Windows 10、UNIX、Linux等
- 作業系統實際上有很多種:專用、通用
- 巨型機、大型電腦、中型機、小型機、微機各種機器,對應也有各種各樣的作業系統
- 我國研製自己的巨型機,對應也有相應的作業系統,如銀河系列就使用的是銀河麒麟伺服器作業系統
1.2.1 作業系統概念
- 虛擬機器器的觀點——作業系統擴充套件器紅能
在硬體(裸機)上的第一層擴充
把硬體細節與程式設計師隔離開,隱藏了底層硬體的特性
功能更強、使用更方便 - 資源管理的觀點——作業系統作為系統資源的管理者
- 監視系統各種資源,隨時記錄它們的狀態
- 實施策略以決定誰獲得資源,何時獲得,獲得 多少
- 分配資源供需求者使用
- 回收資源,以便再分配
- 人機互動的觀點——作業系統是機器和使用者之間的介面
使用者通過作業系統使用機器
作業系統為使用者提供各種操作機器的方式
- 綜合:系統觀點和使用者觀點
- 管理計算機系統的各種資源
- 向使用者提供使用的介面
- 作業系統定義: 作業系統是控制和管理計算機系統內各種硬體和軟體資源,有效地組織多道程式執行的系統軟體(或程式集合),是使用者與計算機之間的介面。
① 作業系統是系統軟體
② 基本職能是控制和管理系統內各種資源,有效地組織多道程式的執行
③ 提供眾多服務、方便使用者使用,擴充硬體功能。
1.2.2 作業系統的地位
計算機系統的層次關係
1.2.3 作業系統的歷史
1.3 作業系統發展歷程
1.3.1 作業系統的形成
1. 手工操作方式(1946 — 50年代,電子管時代)
【主要器件工藝】:電子管
【運算速度】:慢,1000次/秒
【作業系統】:無
【控制檯】:包括顯示燈、觸發器、輸入裝置和印表機
【工作方式】:
使用者:使用者既是程式設計師、操作員,還是計算機專業人員
程式語言:為機器語言
輸入輸出:紙帶或卡片
- 手工操作存在的問題?
- 使用者獨佔全機
- CPU等待使用者,CPU利用率低
- 工作量大、難度高、易出錯、需要大量人力物力
2. 單道批次處理系統
系統對作業的處理都是成批進行的、且記憶體中始終只保持一道作業,稱為單道批次處理系統。
系統有一個監督程式(Monitor)——早期作業系統的雛形
單道批次處理系統的優點:提高系統資源的利用率和吞吐量
單道批次處理系統的特徵:
* 自動性:磁帶上一批作業能自動逐個依次執行。
- 順序性:作業順序進入記憶體,執行與完成的順序和調入的順序完全相同。
- 單道性:記憶體中僅有一道程式,只有該程式完成或發生異常時,才調入後繼程式進入記憶體執行。
單道批次處理系統的問題:程式在進行輸入輸出時,CPU只能等待。(可用離線方式緩解)
3. 多批道處理系統
在計算機記憶體中同時存放幾道相互獨立的程式,它們在管理程式的控制下相互穿插著交替執行,共用CPU及外設等資源,採用MultiProgramming的批次處理系統稱為多道批次處理系統。
- 多道程式設計:在記憶體中同時存放多道程式,在管理程式的控制下交替執行。它們共用CPU和系統中的其他資源。
- 並行:多道程式在CPU上交替執行。
- 系統吞吐量:在一段給定的時間內,計算機所能完成的總工作量。
- 多道批次處理的優點 :
資源利用率高:CPU和記憶體利用率較高
作業吞吐量大:單位時間內完成工作總量大 - 多道批次處理的缺點:
使用者互動性差:整個作業完成後或中間出錯時,才與使用者互動,不利於偵錯和修改
作業平均週轉時間長:短作業的週轉時間(從作業提交到完成的這段時間)顯著增長
單道與多道對比:記憶體使用和作業執行順序
1.3.2 推動作業系統發展的動力
- 技術的不斷髮展與更新
硬體技術、軟體技術 - 各種應用與需求的發展與擴大
使用者的需求、不同的應用需求
1.3.3 作業系統的發展
- 作業系統有
批次處理系統
分時系統
實時系統
網路系統
分散式系統
微機作業系統
嵌入式作業系統
多處理機作業系統 等等
一、批次處理系統
- 基本概念
作業:是使用者定義的、由計算機完成的工作單位。它通常包括一組計算機程式、檔案和對作業系統的控制語句。
作業步:由作業控制語句明確標識的計算機程式的執行過程 - 工作流程:多道批次處理系統中的作業流程
- 特點
· 多道:系統在記憶體中存放多個作業,並且在外存上還儲存大量的後備作業。
· 成批:系統按批次排程作業,而在系統執行過程中不允許使用者和機器之間發生互動作用。 - 批次處理系統的主要優點:
① 系統資源利用率高
② 系統吞吐量大 - 批次處理系統的主要缺點:
① 作業的平均週轉時間長
② 沒有互動能力
二、分時系統
1、分時系統的產生背景
- 人機互動的需求
- 共用昂貴機器的需求
- 方便上機使用的需求
如果說多道批次處理系統的形成和發展是為了提高資源利用率和系統吞吐量。那麼,推動分時系統的主要動力則是使用者的需求。
2、分時系統中的基本概念
- 分時:廣義上,是指對時間的共用。在分時系統中,分時主要是指若干並行程式對CPU時間的共用
- 並行:是指在同一時刻有兩個或兩個以上的活動發生
- 終端命令:新的操作介面,直接接收使用者命令
- 時間片:一個長度的CPU執行時間
- 響應時間:使用者輸入一個請求(如擊鍵)到系統給出首次響應(如螢幕顯示)的時間。響應時間取決於時間片的長短和使用者個數。
響應時間T與時間片大小q和使用者個數n之間的關係:
T=n*q (q包括切換時間和真正用來處理的時間)
3、分時系統展示
4、分時系統特徵:
- 多路性:多使用者同時操作、使用計算機
- 獨佔性:各終端使用者感覺到自己獨佔了計算機
- 及時性:使用者的請求能在較短時間內相應
- 互動性:使用者能與計算機進行人機對話
5、分時系統的主要優點:
①人機互動友好
②應用方便
③資源共用
三、實時系統
1、實時系統的引入
- 實時作業系統:主要用於過程控制、事務處理等有實時要求的領域,其主要特徵是實時性和可靠性,對時間有嚴格限制和要求。
- 三種典型應用形式:
(1)實時控制系統(過程控制)
(2)實時資訊查詢(資訊查詢)
(3)事務處理系統(事務處理)
2、實時任務/系統的型別
- 按是否具有周期性分為:
(1)週期性實時任務/系統
(2)非週期性實時任務/系統 - 按是否有嚴格的截止時間分為:
(1)硬式實時系統:對時間嚴格約束
(2)軟式實時系統:對時間限制稍弱一些 - 常見的商業實時作業系統有VxWorks, VRTX/OS,pSOS+,RTMX,OS/9和Lynx OS等等。
3、一個嚴格的實時系統應該具備的特徵
- 1)高精度計時系統
2)多級中斷機制
3)實時排程機制
4、實時系統特徵:
- 可靠性:對系統要求更高,安全可靠。
實時性:時間要求更精確,更及時。
多路性:主要是連線的硬體終端。
互動性:互動性要求較低。
5、實時系統與分時系統的差別
- 目標不同:分時系統是提供一種隨時可供多個使用者使用的通用型作業系統,而實時作業系統大多數是具有特殊用途的專用系統。
- 互動性不同:分時具有較強的對話與互動能力,而實時系統互動性很弱。
- 響應時間要求不同:實時系統要求高,通常是微秒級的;分時系統通常是秒級的。
- 實時性:實時系統要求高,分時系統要求低。
- 可靠性:分時只要能滿足一般使用者能接收的等待時間即可,而實時系統的響應時間要求嚴格。
四、通用作業系統
為了提高系統適應性和效能,現在的許多作業系統都同時具有多種作業系統功能,如同時兼有批次處理、分時、實時系統功能。
實際中,一般一個系統會兼具分時和批次處理系統的功能,或者兼具實時和批次處理系統的功能等。
練習:
在設計分時作業系統時,首先要考慮的是 互動性和響應時間 ;
在設計實時作業系統時,首先要考慮的是實時性和可靠性 ;
在設計批次處理系統時,首先要考慮的是週轉時間和系統吞吐量 。
五、網路作業系統
1、計算機網路的概念:
計算機網路是把分佈在不同地點,並具有獨立功能的多個計算機系統通過通訊裝置和線路連線起來,在功能完善的網路軟體和協定的管理下,以實現網路中資料傳遞與資源共用的系統。
2、計算機網路的特徵:
(1)分佈性 (2)自治性
(3)互連性 (4)可見性
3、網路作業系統
- 伺服器 客戶機
- 網路作業系統 — 實現網路通訊、資源共用和保護,
以及提供網路服務和網路介面等 - 本地作業系統 — 完成本地資源的管理和服務功能
- 客戶 – 伺服器模式
- 常用的網路作業系統:Sun公司的NFS、Novell公司的Netware 5.0、Microsoft公司的Windows NT Server 4.0、IBM公司的LAN Server 4.0、自由軟體Linux
六、分散式作業系統
1、分散式計算機系統的概念:是以計算機網路為基礎的計算機系統,包含多臺處理機,每臺處理機完成系統中指定的一部分功能。從硬體上講,它與計算機區域網沒有任何區別,關鍵是軟體。
- 以計算機網路為基礎;
- 「執行在不具有共用記憶體的多臺計算機上 ,但在使用者眼裡卻像一臺計算機」:一群聯網的計算機,其行為像是一臺虛擬的單處理機,使用者不必關心計算機的資源在什麼地方、什麼時間工作以及資源如何調配工作。
2、分散式系統的概念:分散式系統是建立在網路之上的軟體系統。分散式系統具有高度的內聚性和透明性。網路和分散式系統之間的區別更多的在於高層軟體(特別是作業系統),而不是硬體。
- 內聚性是指每一個資料庫分佈節點高度自治,有原生的資料庫管理系統。
- 透明性是指每一個資料庫分佈節點對使用者的應用來說都是透明的,看不出是本地還是遠端。
- 在分散式資料庫系統中,使用者感覺不到資料是分佈的,即使用者不須知道關係是否分割、有無副本、資料存於哪個站點以及事務在哪個站點上執行等。
3、分散式系統的特點:
4、分散式軟體系統:分散式軟體系統是支援分散式處理的軟體系統,是在由通訊網路互聯的多處理機體系結構上執行任務的系統。它包括分散式作業系統、分散式程式設計語言及其編譯(解釋)系統、分散式檔案系統和分散式資料庫系統等。
- 分散式作業系統:負責管理分散式處理系統資源和控制分散式程式執行。
- 分散式程式設計語言:用於編寫執行於分散式計算機系統上的分散式程式。
- 分散式檔案系統:具有執行遠端檔案存取的能力,並以透明方式對分佈在網路上的檔案進行管理和存取。
- 分散式資料庫系統:由分佈於多個計算機結點上的若干個資料庫系統組成。分散式資料庫在使用上可視為一個完整的資料庫,而實際上它是分佈在地理分散的各個結點上。當然,分佈在各個結點上的子資料庫在邏輯上是相關的。
- 分散式郵件系統:分散式郵件系統的部署設計,即同一域名下,跨地域部署的郵件系統。
5、網路作業系統和分散式作業系統的區別:
- 1)分散式系統的各個計算機之間處於平等地位無主從關係;網路有一些主從關係。
2)分散式系統資源為所有使用者共用;而網路有限制地共用。
3)分散式系統中一項任務可分給若干處理單元相互共同作業共同完成,而網路往往是各司其責。
練習:
為了提高計算機的處理機和外部裝置的利用率,把多個程式同時放入主記憶體,在宏觀上並行執行是 多道程式設計 ;
把一個程式劃分成若干個同時執行的程式模組的設計方法是 並行程式設計 ;
多個使用者在終端裝置上的互動方式輸入、排錯和控制其程式的執行是 分時OS ;
由多個計算機組成的一個系統,這些計算機之間可以通訊來交換資訊,互相之間無主次之分,它們共用系統資源,程式由系統中的全部或部分計算機協同執行,管理上述計算機系統的作業系統是 分散式OS ;
有一類作業系統的系統響應時間的重要性超過系統資源的利用率,它被廣泛地應用於衛星控制、飛機訂票業務等領域是 實時OS 。
作業系統的操作歷程
七、微機作業系統
微機作業系統使用於PC(個人電腦:桌上型電腦和筆電等)。
微機作業系統分類:
- 1)單使用者單任務作業系統:只允許一個使用者上機,且只允許使用者每次執行一個任務,如DOS。
- 2)單使用者多工作業系統:同一時間只允許一個使用者上機,但允許一個使用者並行執行多個任務,從而提高系統的效能,如Windows。
- 3)多使用者多工作業系統:多使用者共用主機,如UNIX、Linux、Windows Sever等。
八、嵌入式作業系統
**嵌入式作業系統(EOS)**是一種用途廣泛的系統軟體,過去它主要應用於工業控制和國防系統領域。
隨著Internet技術的發展、資訊家電的普及應用及EOS的微型化和專業化,EOS開始從單一的弱功能向高專業化的強功能方向發展。
手錶、微波爐、家用電器、DV、汽車、路由器、印表機、機器人等裝置中都可以使用EOS。
嵌入式系統設計時考慮的因素:
- 能源、成本和可靠性通常是影響設計的重要因素
- 體積、記憶體容量及電源等方面受到限制
嵌入式系統的特徵:
九、多處理器作業系統
多處理器系統是由多臺處理器組成的計算機系統。多處理作業系統的出現是為了提高計算機系統效能和可靠性。
提高效能有兩條途徑:一是提高各個組成部分的速度,二是增大處理的並行程度。
1975年前後,出現多處理機系統(multi-processor)。
多處理器系統的特點:
多處理機的結構:
- 緊密耦合多處理機:交叉主記憶體
- 鬆散耦合多處理機:通過通訊線路連線
多處理機作業系統的型別:
十、大中型計算機作業系統
大中型計算機結構複雜,效能優秀,功能強大
- 批次處理、分時、實時系統
- 批次處理與分時、批次處理與實時
例如:IBM OS/390、IBM Z900 等
十一、雲作業系統
雲作業系統:是以雲端計算、雲端儲存技術作為支撐的作業系統,是雲端計算後臺資料中心的整體管理運營系統,它是指構架於伺服器、儲存、網路等基礎硬體資源和單機作業系統、中介軟體、資料庫等基礎軟體之上的、管理海量的基礎硬體、軟體資源的雲平臺綜合管理系統。
雲作業系統通常包含以下幾個模組:大規模基礎軟硬體管理、虛擬計算管理、分散式檔案系統、業務/資源排程管理、安全管理控制等幾大模組組成。
雲作業系統有以下幾個作用:一是治眾如治寡,能管理和驅動海量伺服器、儲存等基礎硬體,將一個資料中心的硬體資源邏輯上整合成一臺伺服器;二是為雲應用軟體提供統一、標準的介面;三是管理海量的計算任務以及資源調配。
- 雲作業系統產品:一般來講,國內外大的網站,比如Google、網易、騰訊等,都有該類產品,但由於該系統是各自的核心競爭力,都是自產自用,並對外發售。
- 浪潮的雲海:浪潮雲海是第一款國產雲作業系統,採用「linux+Xen」開放標準技術路線,支援分散式計算、分散式儲存等,效能更好、可用性更強、成本更低。
- 還有:VMware的vSphere、微軟的 Windows Server 2012、甲骨文的 Solaris 11、華為、曙光等。
十二、行動作業系統
Android
iOS
Windows 10 Mobile
十三、單核心和微核心作業系統
-
單體核心:大核心,將OS的全部功能都做進核心中,包括排程、檔案系統、網路、裝置驅動器、儲存管理。比如裝置驅動管理、資源分配、程序間通訊、程序間切換管理、檔案系統、儲存管理、網路等。單體核心是指在一大塊程式碼中實際包含了所有作業系統功能,並作為一個單一程序執行,具有唯一地址空間。
UNIX(包括Linux)系統都採用的單體核心。
-
微核心:微核心與單體核心不同,微核心只是將OS中最核心的功能加入核心,包括IPC通訊、地址空間分配和基本的排程,這些東西處在核心態執行。如:WINCE系統。而其他功能如裝置驅動、檔案系統、儲存管理、網路等作為一個個處於使用者態的程序而向外提供某種服務來實現,而且這些處於使用者態的程序可以針對某些特定的應用和環境需求進行客製化。有時,也稱這些程序為伺服器。
-
微核心由一群儘可能將數量最小化的軟體程式組成,它們負責提供實現一個作業系統所需要的各種機制與功能,微核心作業系統就是一種基於微核心架構的作業系統。
-
微核心作業系統結構,是20世紀80年代後期發展起來的。由於它能有效地支援多處理機執行,故非常適用於分散式系統環境。當前比較流行的、能支援多處理機執行的作業系統,幾乎全部都採用了微核心結構,如卡耐基梅隆大學研製的MachOS,便屬於微核心結構作業系統。又如當前廣泛使用的Windows作業系統(還屬於單核心作業系統),也逐漸採用了一定的微核心結構。還有手機作業系統Android屬於微核心結構。
-
微核心結構的特徵:
1)足夠小的核心
2)基於客戶/伺服器模式
3)應用「機制與策略分離」原理
4)採用物件導向技術
十四、庫作業系統
- 庫作業系統:是可用於跨眾多雲端計算平臺和行動平臺,構建安全的、高效能的網路應用程式。其工作原理是將虛擬機器器管理程式當成一個穩定的硬體平臺,讓使用者專注於實施高效能協定,沒必要為支援傳統作業系統裡面的成千上萬個裝置驅動程式而操心。典型的如 MirageOS。
- 庫作業系統是一種新的方法:只包含作業系統的必要元件,連同應用程式一起編譯到單一核心。這帶來非常高效、極其精簡的軟體裝置,同時攻擊面要小得多。這種軟體裝置可以直接部署到雲端和嵌入式裝置,好處就是降低了成本,提高了安全性和可延伸性。
1.4 作業系統的功能與特徵
1.4.1 作業系統的功能
1.4.2 作業系統的特徵
1、並行性:在多道程式處理時,宏觀上並行,微觀上交替執行(在單處理器情況下)。
- 並行:是指兩個或多個事件在同一時間段內發生。作業系統是一個並行系統,各程序間的並行,系統與應用間並行。作業系統要完成這些並行過程的管理。
- 並行:是指兩個或多個事件在同一時刻發生。
2、共用性:多個程序共用有限的計算機系統資源。作業系統要對系統資源進行合理分配和使用。資源在一個時間段內交替被多個程序所用。
- 互斥共用方式(如印表機等資源),資源分配後到釋放前,不能被其他程序所用。
- 同時存取方式(如可重入程式碼,磁碟檔案),一段時間可以允許多個存取。
3、非同步性:非同步性也稱不確定性,指程序的執行順序和執行時間及執行結果的不確定性。
- 多道程式設計環境下,程序並行執行,按非同步方式執行,時走時停,不可預知每個程序的執行推進快慢,引發執行順序與時間的不確定。
- 執行結果不確定,不可再現。相同輸入與環境下多次執行結果不同。
4、虛擬性:一個物理實體對映為若干個對應的邏輯實體(分時或分空間)。虛擬是作業系統管理系統資源的重要手段,可提高資源利用率。
- 虛擬記憶體
- 虛擬裝置
- 還有如:虛擬光碟機,虛擬機器器等,但意義不盡相同。
1.5 作業系統結構設計
1.5.1 整體系統
- 分模組,相互呼叫
- 特點:
1.任意呼叫,耦合緊密
2.實現的效率高 - 缺點:
1.結構關係不清晰
2.系統的可靠性降低
模組呼叫示意圖
1.5.2 層次式系統
- 分層次,按規則在層次間呼叫
- 具有整體系統的長處,同時結構關係清晰,提高了系統的可靠性、可移植性和可維護性。
1.5.3 虛擬機器器結構
- 通過共用物理機器資源來實現
- 主要優點:同時執行多個作業系統;提供良好的工作環境;系統安全,有效地保護系統資源;組建虛擬網路。
帶CMS的VM/370結構
1.5.4 客戶——伺服器系統
客戶——伺服器系統模型:
分散式系統中的客戶-伺服器模型 :
1.6 擴充套件知識
-
the first Microcomputer
-
Apple
-
Apple:Macintosh
-
Apple:iMAC一體機
-
IBM PC: