批處理系統有着較高的資源利用率和系統吞吐量;分時系統能獲得及時響應;實時系統具有實時特征。
總的來說操作系統具有以下4個基本特性:
- 並發性
- 共享性
- 虛擬性
- 異步性
一、並發性
- 並行性是指兩個或多個事件在同一時刻發生。
- 並發性是指兩個或多個事件在同一時間間隔內發生。
多道程序環境中,並發是指一段時間內宏觀上多道程序同時執行。在單處理機系統中,微觀上多道程序交替執行;多處理機系統中,微觀上多道程序並行執行。
為了使程序能並發執行,操作系統中引入進程的的概念;極大的提高系統資源的利用率,增加系統的吞吐量。
什么是進程
進程在系統中能獨立運行並作為資源分配的基本單位,是由一組機器指令、數據和堆棧等組成,是一個能獨立運行的活動實體。
同屬於一個應用程序的計算程序和I/O程序分別建立一個進程,兩個進程並發執行。多進程之間可以並發執行和交換信息。
這里就只簡單說以下進程,之后的博客會對進程進行詳細的說明。
二、共享性
在操作系統環境下,所謂共享是指系統中的資源可供內存中多個並發執行的進程(線程)共同使用。
由於資源屬性的不同,進程對資源共享的方式也不同,目前主要有以下兩種資源共享方式。
1、互斥共享方式
系統中的某些資源,如打印機、磁帶機,雖然它們可以提供給多個進程(線程)使用,但為使所打印或記錄的結果不致造成混淆,應規定在一段時間內只允許一個進程(線程)訪問該資源。把在一段時間內只允許一個進程訪問的資源稱為臨界資源或獨占資源。
計算機系統中的大多數物理設備,以及某些軟件中所用的棧、變量和表格,都屬於臨界資源,它們要求被互斥地共享。
2、同時訪問方式
允許在一段時間內由多個進程“同時”對它們進行訪問。這里所謂的“同時”往往是宏觀上的,而在微觀上,這些進程可能是交替地對該資源進行訪問。
並發和共享是操作系統兩個最基本的特征,這兩者之間又是互為存在條件的。資源共享是以進程的並發執行為條件;系統要對資源共享實施有效管理,協調各個進程對共享資源的訪問。
三、虛擬性
在操作系統中,虛擬,是指把一個物理上的實體,變為若干個邏輯上的對應物。物理實體(前者)是實的, 而后者是虛的,相應地,用於實現虛擬的技術,稱為虛擬技術。
在OS中利用時分復用和空分復用技術來實現“虛擬”。
1、時分復用技術
時分復用技術能提高資源利用率的根本原因是利用某設備為一用戶服務的空閑時間,去服務其他用戶。
(1)虛擬處理機技術
通過多道程序設計技術,讓多道程序並發執行的方法,來分時使用一台處理機的,把一台物理上的處理機虛擬為多台邏輯上的處理機。
(2)虛擬設備技術
將一台物理I/O設備虛擬為多台邏輯上的I/O設備,並允許每個用戶占用一台邏輯上的I/O設備,這樣便可使原來僅允許在一段時間內由一個用戶訪問的設備(即臨界資源),變為在一段時間內允許多個用戶同時訪問的共享設備。
2、空分復用技術
將空分復用技術用於空間管理,利用存儲器的空閑空間分區域存放和運行多道程序,可以提高存儲空間的利用率。
引入虛擬存儲技術(通過分時復用內存的方式),將一台機器的物理存儲器變為虛擬存儲器,以便從邏輯上來擴充存儲器的容量。此時,雖然物理內存的容量可能不大(如32 MB), 但它可以運行比它大得多的用戶程序(如128 MB)。這使用戶所感覺到的內存容量比實際內存容量大得多,認為該機器的內存至少也有128 MB。
四、異步性
多道程序環境下程序的執行,是以異步方式進行的。
進程的執行並不是“一氣呵成”,而是“走走停停”,進程是以人們不可預知的速度向前推進。
每個程序在何時執行,多個程序間的執行順序以及完成每道程序所需的時間都是不確定和不可預知的。