計算機操作系統第一章 操作系統引論

計算機操作系統第一章 操作系統引論

文章目錄

操作系統的目標和作用

操作系統的目標

  • 方便性
  • 有效性
  • 可擴充性
  • 開放性

操作系統的作用

作爲用戶與計算機硬件系統之間的接口

OS作爲用戶與計算機硬件系統之間接口的含義是:OS處於用戶與計算機硬件系統之間,用戶通過OS來使用計算機系統。

OS作爲計算機系統資源的管理者

在一個計算機系統中,通常都含有多種硬件和軟件資源。歸納起來可將這些資源分爲四類:處理機、存儲器、I/O設備以及文件(數據和程序)。

OS的主要功能也正是對這四類資源進行有效的管理。

處理機管理是用於分配和控制處理機;

存儲器管理主要負責內存的分配與回收;

I/O設備管理是負責I/O設備的分配(回收)與操縱;

文件管理是用於實現對文件的存取、共享和保護。

OS實現了對計算機資源的抽象

對於一臺完全無軟件的計算機系統(即裸機),由於它向用戶提供的僅是硬件接口(物理接口),因此,用戶必須對物理接口的實現細節有充分的瞭解,這就致使該物理機器難於廣泛使用。爲了方便用戶使用I/O設備,人們在裸機上覆蓋上一層I/O設備管理軟件,由它來實現對I/O設備操作的細節,並向上將I/O設備抽象爲一組數據結構以及一組I/O操作命令,如read和write命令,這樣用戶即可利用這些數據結構及操作命令來進行數據輸入或輸出,而無需關心I/O是如何具體實現的。

推動操作系統發展的主要動力

  • 不斷提高計算機資源利用率
  • 方便用戶
  • 器件的不斷更新換代
  • 計算機體系結構的不斷髮展
  • 不斷提出新的應用需求

操作系統的發展過程

未配置操作系統的計算機系統

人工操作方式

早期的操作方式是由程序員將事先已穿孔的紙帶(或卡片),裝入紙帶輸入機(或卡片輸入機),再啓動它們將紙帶(或卡片)上的程序和數據輸入計算機,然後啓動計算機運行。僅當程序運行完畢並取走計算結果後,才允許下一個用戶上機。

缺點:

  • 用戶獨佔全機,即一臺計算機的全部資源由上機用戶所獨佔。
  • CPU等待人工操作。當用戶進行裝帶(卡)、卸帶(卡)等人工操作時,CPU及內存等資源是空閒的。

脫機輸入/輸出(Off-Line I/O)方式

目的:解決人機矛盾及CPU和I/O設備之間速度不匹配的矛盾

過程:該技術是事先將裝有用戶程序和數據的紙帶裝入紙帶輸入機,在一臺外圍機的控制下,把紙帶(卡片)上的數據(程序)輸入到磁帶上。當CPU需要這些程序和數據時,再從磁帶上高速地調入內存。

單道批處理系統

目的:爲實現對作業的連續處理

處理過程:需要先把一批作業以脫機方式輸入到磁帶上,並在系統中配上監督程序(Monitor),在它的控制下,使這批作業能一個接一個地連續處理。

缺點:系統中的資源得不到充分的利用。這是因爲在內存中僅有一道程序,每逢該程序在運行中發出I/O請求後,CPU便處於等待狀態,必須在其I/O完成後才繼續運行。又因I/O設備的低速性,更使CPU的利用率顯著降低。

多道批處理系統

目的:爲了進一步提高資源的利用率和系統吞吐量

過程:在20世紀60年代中期引入了多道程序設計技術,由此形成了多道批處理系統

優點:

  • 資源利用率高:引入多道批處理能使多道程序交替運行,以保持CPU處於忙碌狀態;在內存中裝入多道程序可提高內存的利用率;此外還可以提高I/O設備的利用率。
  • 系統吞吐量大:能提高系統吞吐量的主要原因可歸結爲:① CPU和其它資源保持“忙碌”狀態;② 僅當作業完成時或運行不下去時才進行切換,系統開銷小。

缺點:

  • 平均週轉時間長:由於作業要排隊依次進行處理,因而作業的週轉時間較長,通常需幾個小時,甚至幾天。
  • 無交互能力:用戶一旦把作業提交給系統後,直至作業完成,用戶都不能與自己的作業進行交互,修改和調試程序極不方便。

需要解決的問題:

  • 處理機爭用問題:既要能滿足各道程序運行的需要,又要能提高處理機的利用率
  • 內存分配和保護問題:系統應能爲每道程序分配必要的內存空間,使它們“各得其所”,且不會因某道程序出現異常情況而破壞其它程序。
  • I/O設備分配問題:系統應採取適當的策略來分配系統中的I/O設備,以達到既能方便用戶對設備的使用,又能提高設備利用率的目的。
  • 文件的組織和管理問題:系統應能有效地組織存放在系統中的大量的程序和數據,使它們既便於用戶使用,又能保證數據的安全性。
  • 作業管理問題:系統中存在着各種作業(應用程序),系統應能對系統中所有的作業進行合理的組織,以滿足這些作業用戶的不同要求。
  • 用戶與系統的接口問題:爲使用戶能方便的使用操作系統,OS還應提供用戶與OS之間的接口。

分時系統

目的:爲了滿足用戶對人—機交互的需求

關鍵問題:及時接受、及時處理

特徵:多路性、獨立性、及時性、交互性

實時系統

常用類型:工業(武器)控制系統、信息查詢系統、多媒體系統、嵌入式系統。

實時任務的類型:週期性實時任務和非週期性實時任務、硬實時任務和軟實時任務

實時系統與分時系統特徵的比較:多路性、獨立性、及時性、交互性、可靠性

微機操作系統的發展

單用戶單任務操作系統

CP/M、MS-DOS

單用戶多任務操作系統

含義:只允許一個用戶上機,但允許用戶把程序分爲若干個任務,使它們併發執行,從而有效地改善了系統的性能。

多用戶多任務操作系統

含義:允許多個用戶通過各自的終端,使用同一臺機器,共享主機系統中的各種資源,而每個用戶程序又可進一步分爲幾個任務,使它們能併發執行,從而可進一步提高資源利用率和系統吞吐量。

代表OS:UINX、LINUX

操作系統的基本特性

批處理系統有着高的資源利用率和系統吞吐量;分時系統能獲得及時響應;實時系統具有實時特徵。除此之外,它們還共同具有併發、共享、虛擬和異步四個基本特徵。

併發

提高系統中的資源利用率,增加系統的吞吐量。

併發與並行

併發含義:兩個或多個事件在同一時間間隔內發生。

並行含義:兩個或多個事件在同一時刻發生

引入進程

在一個未引入進程的系統中,在屬於同一個應用程序的計算程序和I/O程序之間只能是順序執行,即只有在計算程序執行告一段落後,才允許I/O程序執行;反之,在程序執行I/O操作時,計算程序也不能執行。但在爲計算程序和I/O程序分別建立一個進程(Process)後,這兩個進程便可併發執行。若對內存中的多個程序都分別建立一個進程,它們就可以併發執行,這樣便能極大地提高系統資源的利用率,增加系統的吞吐量。

共享

互斥共享方式

系統中的某些資源,如打印機、磁帶機等,雖然可以提供給多個進程(線程)使用,但應規定在一段時間內,只允許一個進程訪問該資源。

同時訪問方式

系統中還有另一類資源,允許在一段時間內由多個進程“同時”對它們進行訪問。這裏所謂的“同時”,在單處理機環境下是宏觀意義上的,而在微觀上,這些進程對該資源的訪問是交替進行的。典型的可供多個進程“同時”訪問的資源是磁盤設備。一些用重入碼編寫的文件也可以被“同時”共享,即允許若干個用戶同時訪問該文件。

虛擬(Virtual)

時分複用技術

(1) 虛擬處理機技術。

(2) 虛擬設備技術。

空分複用技術

20世紀初,電信業中就已使用頻分複用技術來提高信道的利用率。它是指將一個頻率範圍比較寬的信道劃分成多個頻率範圍較窄的信道(稱爲頻帶),其中的任何一個頻帶都僅供一對用戶通話。早期的頻分複用技術只能將一條物理信道劃分爲幾條到幾十條話路,後來又很快發展到成千上萬條話路,每條話路供一對用戶通話。再後來在計算機中也把空分複用技術用於對存儲空間的管理,用以提高存儲空間的利用率。

操作系統的主要功能

引入OS的主要目的是,爲多道程序的運行提供良好的運行環境,以保證多道程序能有條不紊地、高效地運行,並能最大程度地提高系統中各種資源的利用率,方便用戶的使用。爲此,在傳統的OS中應具有處理機管理、存儲器管理、設備管理和文件管理等基本功能。此外,爲了方便用戶使用OS,還需向用戶提供方便的用戶接口。

處理機管理功能

1. 進程控制
  2. 進程同步
  3. 進程通信
  4. 調度
(1) 作業調度。
(2) 進程調度。

存儲器管理功能

內存分配

內存分配的主要任務是:
 (1) 爲每道程序分配內存空間,使它們“各得其所”。
 (2) 提高存儲器的利用率,儘量減少不可用的內存空間(碎片)。
 (3) 允許正在運行的程序申請附加的內存空間,以適應程序和數據動態增長的需要。

OS在實現內存分配時,可採取靜態和動態兩種方式:
 (1) 靜態分配方式。每個作業的內存空間是在作業裝入時確定的,在作業裝入後的整個運行期間不允許該作業再申請新的內存空間,也不允許作業在內存中“移動”。
 (2) 動態分配方式。每個作業所要求的基本內存空間雖然也是在裝入時確定的,但允許作業在運行過程中繼續申請新的附加內存空間,以適應程序和數據的動態增長,也允許作業在內存中“移動”。

內存保護

內存保護的主要任務是:① 確保每道用戶程序都僅在自己的內存空間內運行,彼此互不干擾。② 絕不允許用戶程序訪問操作系統的程序和數據,也不允許用戶程序轉移到非共享的其它用戶程序中去執行。

地址映射

在多道程序環境下,由於每道程序經編譯和鏈接後所形成的可裝入程序其地址都是從0開始的,但不可能將它們從“0”地址(物理)開始裝入內存,致使(各程序段的)地址空間內的邏輯地址與其在內存空間中的物理地址並不相一致。爲保證程序能正確運行,存儲器管理必須提供地址映射功能,即能夠將地址空間中的邏輯地址轉換爲內存空間中與之對應的物理地址。該功能應在硬件的支持下完成。

內存擴充

內存擴充並非是從物理上去擴大內存的容量,而是藉助於虛擬存儲技術,從邏輯上擴充內存容量,使用戶所感覺到的內存容量比實際內存容量大得多,以便讓更多的用戶程序能併發運行。這樣既滿足了用戶的需要,又改善了系統的性能。爲了能在邏輯上擴充內存,系統必須設置內存擴充機制(包含少量的硬件),用於實現下述各功能:
 (1) 請求調入功能。
 (2) 置換功能。

設備管理功能

設備管理的主要任務如下:
 (1) 完成用戶進程提出的I/O請求,爲用戶進程分配所需的I/O設備,並完成指定的I/O操作。
 (2) 提高CPU和I/O設備的利用率,提高I/O速度,方便用戶使用I/O設備。
 爲實現上述任務,設備管理應具有緩衝管理、設備分配和設備處理以及虛擬設備等功能。

1. 緩衝管理
 2. 設備分配
 3. 設備處理

文件管理功能

1. 文件存儲空間的管理
  2. 目錄管理
  3. 文件的讀/寫管理和保護
(1) 文件的讀/寫管理。
(2) 文件保護。

操作系統與用戶之間的接口

用戶接口

(1) 聯機用戶接口。
(2) 脫機用戶接口。
(3) 圖形用戶接口。

程序接口

程序接口是爲用戶程序在執行中訪問系統資源而設置的,是用戶程序取得操作系統服務的唯一途徑。它是由一組系統調用組成的,每一個系統調用都是一個能完成特定功能的子程序。每當應用程序要求OS提供某種服務(功能)時,便調用具有相應功能的系統調用(子程序)。早期的系統調用都是用彙編語言提供的,只有在用彙編語言書寫的程序中才能直接使用系統調用。

現代操作系統的新功能

現代操作系統是在傳統操作系統基礎上發展起來的,它除了具有傳統操作系統的功能外,還增加了面向安全、面向網絡和麪向多媒體等功能。

系統安全

(1) 認證技術。
(2) 密碼技術。
(3) 訪問控制技術。
(4) 反病毒技術。

網絡的功能和服務

(1) 網絡通信。
(2) 資源管理。
(3) 應用互操作。

支持多媒體

(1) 接納控制功能。
(2) 實時調度。
(3) 多媒體文件的存儲。

OS結構設計

傳統操作系統結構

無結構操作系統

在早期開發操作系統時,設計者只是把他的注意力放在功能的實現和獲得高的效率上,缺乏首尾一致的設計思想。此時的OS是爲數衆多的一組過程的集合,每個過程可以任意地相互調用其它過程,致使操作系統內部既複雜又混亂,因此,這種OS是無結構的,也有人把它稱爲整體系統結構。

模塊化結構OS

  1. 模塊化程序設計技術的基本概念
     模塊化程序設計技術是20世紀60年代出現的一種結構化程序設計技術。該技術基於“分解”和“模塊化”的原則來控制大型軟件的複雜度。爲使OS具有較清晰的結構,OS不再是由衆多的過程直接構成的,而是按其功能精心地劃分爲若干個具有一定獨立性和大小的模塊。

  1. 模塊獨立性
     在模塊-接口法中,關鍵問題是模塊的劃分和規定好模塊之間的接口。如果我們在劃分模塊時將模塊劃分得太小,雖然可以降低模塊本身的複雜性,但會引起模塊之間的聯繫過多,從而會造成系統比較混亂;如果將模塊劃分得過大,又會增加模塊內部的複雜性,使內部的聯繫增加,因此在劃分模塊時,應在兩者間進行權衡。

  2. 模塊接口法的優缺點
     利用模塊-接口法開發的OS,較之無結構OS具有以下明顯的優點:
     (1) 提高OS設計的正確性、可理解性和可維護性。
     (2) 增強OS的可適應性。
     (3) 加速OS的開發過程。

模塊化結構設計仍存在下述問題:
 (1) 在OS設計時,對各模塊間的接口規定很難滿足在模塊設計完成後對接口的實際需求。
 (2) 在OS設計階段,設計者必須做出一系列的決定(決策),每一個決定必須建立在上一個決定的基礎上,但模塊化結構設計中,各模塊的設計齊頭並進,無法尋找一個可靠的決定順序,造成各種決定的“無序性”,這將使程序人員很難做到“設計中的每一步決定”都是建立在可靠的基礎上,因此模塊-接口法又被稱爲“無序模塊法”。

分層式結構OS

  1. 分層式結構的基本概念
     爲了將模塊-接口法中“決定順序”的無序性變爲有序性,引入了有序分層法,分層法的設計任務是,在目標系統An和裸機系統(又稱宿主系統)A0之間,鋪設若干個層次的軟件A1、A2、A3、…、An-1,使An通過An-1、An-2、…、A2、A1層,最終能在A0上運行。在操作系統中,常採用自底向上法來鋪設這些中間層。

  2. 分層結構的優缺點
     分層結構的主要優點有:
     (1) 易保證系統的正確性。
     (2) 易擴充和易維護性。
     分層結構的主要缺點是系統效率降低。由於層次結構是分層單向依賴的,必須在每層之間都建立層次間的通信機制,OS每執行一個功能,通常要自上而下地穿越多個層次,這無疑會增加系統的通信開銷,從而導致系統效率的降低。

客戶/服務器模式(Client/Server Model) 簡介

客戶/服務器模式的由來、組成和類型

客戶/服務器系統主要由三部分組成。
 (1) 客戶機:
 (2) 服務器:
 (3) 網絡系統:

客戶/服務器之間的交互

(1) 客戶發送請求消息。
(2) 服務器接收消息。
(3) 服務器回送消息。
(4) 客戶機接收消息。

客戶/服務器模式的優點

(1) 數據的分佈處理和存儲。
(2) 便於集中管理。
(3) 靈活性和可擴充性。
(4) 易於改編應用軟件。

面向對象的程序設計(Object-Orientated Programming)技術簡介

  1. 對象
     在面嚮對象的技術中,是利用被封裝的數據結構(變量)和一組對它進行操作的過程(方法)來表示系統中的某個對象的,如圖1-8所示。對象中的變量(數據)也稱爲屬性,它可以是單個標量或一張表。面向對象中的方法是用於執行某種功能的過程,它可以改變對象的狀態,更新對象中的某些數據值或作用於對象所要訪問的外部資源。如果把一個文件作爲一個對象,該對象的變量便是文件類型、文件大小、文件的創建者等。對象中的方法包含對文件的操作,如創建文件、打開文件、讀文件、寫文件、關閉文件等。

  1. 對象類
     在實踐中,有許多對象可能表示的是同一類事物,每個對象具有自己的變量集合,而它們所具有的方法是相同的。如果爲每一個相似的對象都定義一組變量和方法,顯然是低效的,由此產生了“對象類”的概念,利用“對象類”來定義一組大體相似的對象。一個類同樣定義了一組變量和針對該變量的一組方法,用它們來描述一組對象的共同屬性和行爲。類是在對象上的抽象,對象則是類的實例。對象類中所定義的變量在實例中均有具體的值。

  2. 繼承
     在面嚮對象的技術中,可以根據已有類來定義一個新的類,新類被稱爲子類(B),原來的類被稱爲父類(A)

面向對象技術的優點

在操作系統設計時,將計算機中的實體作爲對象來處理,可帶來如下好處:
 (1) 通過“重用”提高產品質量和生產率。
 (2) 使系統具有更好的易修改性和易擴展性。
 (3) 更易於保證系統的“正確性”和“可靠性”。

微內核OS結構

微內核操作系統的基本概念

  1. 足夠小的內核
     在微內核操作系統中,內核是指精心設計的、能實現現代OS最基本核心功能的小型內核,微內核並非是一個完整的OS,而只是將操作系統中最基本的部分放入微內核,通常包含有:① 與硬件處理緊密相關的部分;② 一些較基本的功能;③ 客戶和服務器之間的通信。這些OS最基本的部分只是爲構建通用OS提供一個重要基礎,這樣就可以確保把操作系統內核做得很小。

  2. 基於客戶/服務器模式
     由於客戶/服務器模式具有非常多的優點,故在單機微內核操作系統中幾乎無一例外地都採用客戶/服務器模式,將操作系統中最基本的部分放入內核中,而把操作系統的絕大部分功能都放在微內核外面的一組服務器(進程)中實現,如用於提供對進程(線程)進行管理的進程(線程)服務器、提供虛擬存儲器管理功能的虛擬存儲器服務器、提供I/O設備管理的I/O設備管理服務器等,它們都是被作爲進程來實現的,運行在用戶態,客戶與服務器之間是藉助微內核提供的消息傳遞機制來實現信息交互的。

  1. 應用“機制與策略分離”原理
     在現在操作系統的結構設計中,經常利用“機制與策略分離”的原理來構造OS結構。所謂機制,是指實現某一功能的具體執行機構。而策略,則是在機制的基礎上藉助於某些參數和算法來實現該功能的優化,或達到不同的功能目標。

  2. 採用面向對象技術
     操作系統是一個極其複雜的大型軟件系統,我們不僅可以通過結構設計來分解操作系統的複雜度,還可以基於面向對象技術中的“抽象”和“隱蔽”原則控制系統的複雜性,再進一步利用“對象”、“封裝”和“繼承”等概念來確保操作系統的“正確性”、“可靠性”、“易修改性”、“易擴展性”等,並提高操作系統的設計速度。正因爲面向對象技術能帶來如此多的好處,故面向對象技術被廣泛應用於現代操作系統的設計中。

微內核的基本功能

現在一般都採用“機制與策略分離”的原理,將機制部分以及與硬件緊密相關的部分放入微內核中。由此可知微內核通常具有如下幾方面的功能:
 1) 進程(線程)管理
 2) 低級存儲器管理
 3) 中斷和陷入處理

微內核操作系統的優點

由於微內核OS結構是建立在模塊化、層次化結構的基礎上的,並採用了客戶/服務器模式和麪向對象的程序設計技術,因此,微內核結構的操作系統是集各種技術優點之大成,因而使之具有如下優點:
 (1) 提高了系統的可擴展性。
 (2) 增強了系統的可靠性。
 (3) 可移植性強。
 (4) 提供了對分佈式系統的支持。
 (5) 融入了面向對象技術。

微內核操作系統存在的問題

應當指出,在微內核操作系統中,由於採用了非常小的內核,客戶/服務器模式和消息傳遞機制雖給微內核操作系統帶來了許多優點,但由此也使微內核OS存在着潛在缺點,其中最主要的是,較之早期的操作系統,微內核操作系統的運行效率有所降低。
 實際情況是往往還會引起更多的上下文切換。例如,當某個服務器自身尚無能力完成客戶請求而需要其它服務器的幫助時,其中的文件服務器還需要磁盤服務器的幫助,這時就需要進行8次上下文的切換。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章