本系列文章力求用最簡潔的語言整理出操作系統的知識框架,幫助求職的同學對操作系統的知識做一個梳理。
1. 操作系統的基本概念
操作系統(Operating System,簡稱OS)是管理和控制計算機硬件與軟件資源,合理組織調度計算機工作與資源分配,為用戶及其他軟件提供方便的接口和環境的程序集合。
操作系統是運行在“裸機”上的最基本的系統軟件,任何其他軟件都必須在操作系統的支持下才能運行。
2. 操作系統的目標與作用
可以從不同的觀點來觀察操作系統的作用。
從資源的管理角度出發,可將操作系統視為計算機系統軟件與硬件資源的管理者;從用戶角度出發,操作系統則是用戶與計算機硬件系統間的接口。此外,操作系統還實現了對計算機資源的抽象,隱藏了硬件的操作細節。
2.1 操作系統作為計算機系統資源的管理者
-
處理機管理
在多道程序環境下,處理機的分配和運行都以進程(或線程)為基本單位。因此,對處理機的管理可歸結為對進程的管理。其主要的職責包括:進程控制、進程同步、進程通信、死鎖處理以及處理機調度等。
-
存儲器管理
存儲器管理的目標是給多道程序提供良好的環境,方便用戶使用以及提高內存的利用率。其主要職責包括內存分配、地址映射、內存擴充等。
-
文件管理
計算機中的信息都是以文件的形式存在的,操作系統中負責文件管理的部分稱為文件系統。文件管理包括文件存儲空間的管理、目錄管理及文件讀/寫管理和保護等。
-
設備管理
設備管理的主要任務是完成用戶的I/O請求,方便用戶對各種設備進行方便地使用,并提高各類設備的利用率。主要包括緩沖管理、設備分配、設備處理和虛擬設備等功能。
2.2 操作系統作為用戶與計算機硬件系統之間的接口
為方便用戶使用計算機,操作系統提供了用戶接口。
操行系統提供的接口分為兩類:一類是命令接口,用戶利用操作命令來組織和控制作業的執行;另一類是程序接口,編程人員可以利用這些接口來請求操作系統的服務。
2.3 操作系統實現了對計算機資源的抽象
沒有任何軟件支持的計算機稱為裸機,它向用戶提供實際的硬件接口,用戶必須對各類物理接口有一定的了解,并利用機器指令進行編程才能使用,使用難度較大。
為了方便用戶使用計算機硬件,人們在裸機上覆蓋上操作系統,由操作系統提供資源管理功能和各種服務,將裸機改造成功能更強、 使用更方便的機器。操作系統對隱藏了對硬件操作的細節,實現了對計算機資源的抽象。
3. 操作系統的基本特征
操作系統的基本特征包括:并發、共享、虛擬和異步。其中,并發和共享是操作系統的兩個最基本的特征。
3.1 并發
并發是指兩個或者多個事件在同一時間間隔內發生。值得一提的是,并行是指兩個或者多個事件在同一時刻發生。在單處理機操作系統中,進程間只能并發,但設備與設備,設備與進程間是可以并發執行的。
通常,程序是靜態實體。在多道程序系統中,引入進程的目的是為了使多個程序能夠并發執行。進程由程序、數據和PCB構成,是一個能夠獨立運行的活動實體。同時,進程也是資源的基本分配單位,在沒有引入線程的操作系統中,進程也是獨立調度的基本單位。
線程比進程更小,基本不擁有資源。因此,對線程的切換開銷比進程切換小得多,因而有效地提高了并發的程度。關于進程與線程間的討論將在以后的章節進一步展開。
3.2 共享
共享(資源共享)是指系統中的資源可供內存中多個并發執行的進程共同使用。共享進一步可以分為互斥方式共享和同時訪問共享。
-
互斥方式共享
系統中的某些資源,如打印機、磁帶機,雖然它們可以提供給多個進程使用,但為使所打印或記錄的結果不致造成混淆,應規定在一段時間內只允許一個進程訪問該資源。此類資源被稱為臨界資源或者獨占資源。
-
同時訪問共享
系統中還有另一類資源,允許在一段時間內由多個進程在宏觀上“同時”對它們進行訪問。(而在微觀上,這些進程可能是交替地對該資源進行訪問即 “分時共享”)典型的可供多個進程“同時”訪問的資源是磁盤設備,一些用重入碼編寫的文件也可以被“同時”共享,即若干個用戶同時訪問該文件。
3.3 虛擬
”虛擬“是指通過某種技術,把物理實體變為若干個邏輯上的對應物。用于實現虛擬的技術被稱為虛擬技術。
在操作系統中利用兩種方式實現虛擬技術:時分復用,空分復用。時分復用被用來實現虛擬處理機、虛擬設備等功能,空分復用的應用場景則為虛擬磁盤技術與虛擬存儲器技術等。
3.4 異步
在多道程序環境下,允許多個程序并發執行,但由于資源有限,進程只有在獲得所需的資源后才能執行。因此,進程的執行不是一貫到底,而是走走停停,以不可預知的速度向前推進,這就是進程的異步性。
異步性使得操作系統運行在一種隨機的環境下,可能導致進程出現與時間交錯有關的錯誤。但是,只要運行的環境相同,操作系統必須保證多次運行程序,獲得的結果是相同的。