計算機系統(tǒng)自下而上可大致分為四部分: 硬件 、 操作系統(tǒng) 、 應用程序 和 用戶 (這里的劃分與計算機組成原理中的分層不同)。操作系統(tǒng)管理各種計算機硬件,為應用程序提供基礎(chǔ),并充當計算機硬件與用戶之間的中介。
操作系統(tǒng)(Operating System,OS) 是指控制和管理整個計算機系統(tǒng)的硬件與軟件資源,合理地組織、調(diào)度計算機的工作與資源的分配,進而為用戶和其他軟件提供方便接口與環(huán)境的程序集合。操作系統(tǒng)是計算機系統(tǒng)中最基本的系統(tǒng)軟件。
操作系統(tǒng)的用戶觀點即根據(jù)用戶所使用計算機的不同而設(shè)計不同類型的操作系統(tǒng)。
從資源管理的角度來看,操作系統(tǒng)是計算機系統(tǒng)的資源管理程序。在計算機系統(tǒng)中有兩類資源: 硬件資源 和 軟件資源 。按其作用又可以將它們分為四大類資源: 處理器 、 存儲器 、 外設(shè) 和 信息(程序和數(shù)據(jù)) 。這四類資源構(gòu)成了操作系統(tǒng)本身和用戶作業(yè)賴以活動的物質(zhì)基礎(chǔ)和工作環(huán)境。它們的使用方法和管理策略決定了整個操作系統(tǒng)的規(guī)模、類型、功能和實現(xiàn)。與上述四類資源相對應,操作系統(tǒng)可被劃分成處理器管理、存儲器管理、設(shè)備管理和信息管理(即文件系統(tǒng)),并分別進行分析研究。由此,可以用資源管理的觀點組織操作系統(tǒng)的有關(guān)內(nèi)容。
這種觀點把操作系統(tǒng)看作由若干個可以獨立運行的程序和一個對這些程序進行協(xié)調(diào)的核心所組成的。這些運行的程序稱為進程,每個進程都完成某一項特定任務(如控制用戶作業(yè)的運行,處理某個設(shè)備的輸入/輸出...)。而操作系統(tǒng)的核心則是控制和協(xié)調(diào)這些進程的運行,解決進程之間的通信;它從系統(tǒng)各部分以并發(fā)工作為出發(fā)點,考慮管理任務的分割和相互之間的關(guān)系,通過進程之間的通信來解決共享資源時所帶來的競爭問題。通常, 進程 可以分為 用戶進程 和 系統(tǒng)進程 兩大類,由這兩類進程在核心控制下的協(xié)調(diào)運行來完成用戶的要求。
虛擬機的觀點也稱為機器擴充的觀點。從這一觀點來看,操作系統(tǒng)為用戶使用計算機提供了許多服務功能和良好的工作環(huán)境。用戶不再直接使用硬件機器(稱為 裸機 ),而是通過操作系統(tǒng)來控制和使用計算機。計算機被擴充為功能更強大、使用更加方便的虛擬計算機。從功能分解的角度出發(fā),考慮操作系統(tǒng)的結(jié)構(gòu),將操作系統(tǒng)分為若干個層次,每一層次完成特定的功能,從而構(gòu)成一個虛擬機,并為上一層提供支持,構(gòu)成它的運行環(huán)境。通過逐層的功能擴充,最終完成操作系統(tǒng)虛擬機,從而為用戶提供全套的服務,滿足用戶的要求。
并發(fā)是指兩個或多個事件在 同一時間間隔內(nèi) 發(fā)生。操作系統(tǒng)的并發(fā)性是指計算機系統(tǒng)中同時存在多個運行的程序,因此它具有處理和調(diào)度多個程序同時執(zhí)行的能力。在操作系統(tǒng)中,引入進程的目的是使程序能并發(fā)執(zhí)行。
在多道程序環(huán)境下,一段時間內(nèi),宏觀上有多道程序在同時執(zhí)行,而在每個時刻,單處理機環(huán)境下實際僅能有一道程序執(zhí)行,因此微觀上這些程序仍是分時交替執(zhí)行的。操作系統(tǒng)的并發(fā)性是通過分時得以實現(xiàn)的。
注意,并行性是指系統(tǒng)具有同時進行運算或操作的特性,在同一時刻能完成兩種或兩種以上的工作。并行性需要有相關(guān)硬件的支持,如多流水線或多處理機硬件環(huán)境。
并行性是指兩個或多個事件在同一時刻發(fā)生;而并發(fā)性是指兩個或多個事件在同一時間間隔內(nèi)發(fā)生。
并發(fā)和并行的例子:如果你在18:00-18:10看視頻,在18:11-18:20吃晚飯,在18:21-18:30看視頻,在18:00-18:30這段時間內(nèi)吃晚飯和看視頻兩種行為就是并發(fā)執(zhí)行的;但如果你在18:00-18:30這段時間內(nèi)邊吃晚飯邊看視頻,那么這兩個行為就是并行執(zhí)行的。
資源共享即共享,是指系統(tǒng)中的資源可供內(nèi)存中多個并發(fā)執(zhí)行的進程共同使用。根據(jù)資源性質(zhì)的不同,可將資源共享方式分為兩種:
系統(tǒng)中可供共享的某些資源,如打印機、某些變量、隊列等一段時間內(nèi)只能供一個作業(yè)使用的資源,只有當前作業(yè)使用完畢并釋放后,才能被其他作業(yè)使用。而把在一段時間內(nèi)只允許一個進程訪問的資源稱為 臨界資源 或 獨占資源 。計算機系統(tǒng)中的大多數(shù)物理設(shè)備及某些軟件中所用的棧、變量和表格,都屬于臨界資源,它們都要求被互斥地共享。
系統(tǒng)中的另一類資源,如磁盤、可重入代碼等,可以供多個作業(yè)同時訪問。雖然這種“同時”是指宏觀上的“同時”,微觀上可能是作業(yè)交替訪問該資源,但作業(yè)訪問資源的順序不會影響訪問的結(jié)果。
并發(fā)和共享是操作系統(tǒng)兩個最基本的特征,兩者之間互為存在的條件:
虛擬是指把一個物理上的實體變?yōu)槿舾蛇壿嬌系膶?。物理實體(前者)是實的,即實際存在的;而后者是虛的,是用戶感覺上的事物。用于實現(xiàn)虛擬的技術(shù),稱為虛擬技術(shù)。操作系統(tǒng)中利用了多種虛擬技術(shù)來實現(xiàn)虛擬處理器、虛擬內(nèi)存和虛擬外部設(shè)備等。虛擬處理器技術(shù)是通過多道程序設(shè)計技術(shù),采用讓多道程序并發(fā)執(zhí)行的方法,來分時使用個處理器的。此時,雖然只有一個處理器,但它能同時為多個用戶服務,使每個終端用戶都感覺有一個中央處理器(CPU)在專門為它服務。利用多道程序設(shè)計技術(shù)把一個物理上的CPU虛擬為多個邏輯上的CPU,稱為虛擬處理器。
類似地,可以采用虛擬存儲器技術(shù)將一臺機器的物理存儲器變?yōu)樘摂M存儲器,以便從邏輯上擴充存儲器的容量。當然,這時用戶所感覺到的內(nèi)存容量是虛的。我們把用戶感覺到(但實際不存在)的存儲器稱為虛擬存儲器。
還可采用虛擬設(shè)備技術(shù)將一臺物理IO設(shè)備虛擬為多臺邏輯上的IO設(shè)備,并允許每個用戶占用一臺邏輯上的IO設(shè)備,使原來僅允許在一段時間內(nèi)由一個用戶訪問的設(shè)備(即臨界資源)變?yōu)樵谝欢螘r間內(nèi)允許多個用戶同時訪問的共享設(shè)備。因此,操作系統(tǒng)的虛擬技術(shù)可歸納為: 時分復用技術(shù) ,如處理器的分時共享; 空分復用技術(shù) ,如虛擬存儲器。
在操作系統(tǒng)中,虛擬是指把一個物理上的實體變?yōu)槿舾蓚€邏輯上的對應物,前者是實際存在的,后者是虛擬的,這只是用戶的一種感覺。例如,在操作系統(tǒng)中引入多道程序設(shè)計技術(shù)后,雖然只有一個CPU,每次只能執(zhí)行一道程序,但通過分時使用,在一段時間間隔內(nèi)宏觀上這臺處理器能同時運行多道程序。它給用戶的感覺是每道程序都有一個CPU為其服務。也就是說,多道程序設(shè)計技術(shù)可以把一臺物理上的CPU虛擬為多臺邏輯上的CPU。此外還有虛擬存儲器(從邏輯上擴充存儲器的容量)、虛擬設(shè)備(獨占設(shè)備變?yōu)楣蚕碓O(shè)備)等技術(shù)。
多道程序環(huán)境允許多個程序并發(fā)執(zhí)行,但由于資源等因素的限制,進程的執(zhí)行并不是一貫到底的,而是“走走停?!钡?,它以不可預知的速度向前推進,這就是進程的異步性。
異步性使得操作系統(tǒng)運行在一種隨機的環(huán)境下,可能導致進程產(chǎn)生與時間有關(guān)的錯誤(就像對全局變量的訪問順序不當會導致程序出錯一樣)。然而,只要運行環(huán)境相同,操作系統(tǒng)就須保證多次運行進程后都能獲得相同的結(jié)果。
處理器管理的主要任務是對處理器的分配和運行實施有效的管理。在多道程序環(huán)境下,處理器的分配和運行是以進程為基本單位的,因此對處理器的管理可歸結(jié)為對進程的管理。
進程管理應實現(xiàn)下述主要功能:進程控制:負責進程的創(chuàng)建、撤銷及狀態(tài)轉(zhuǎn)換。進程同步:對并發(fā)執(zhí)行的進程進行協(xié)調(diào)。進程通信:負責完成進程間的信息交換。進程調(diào)度:按一定算法進行處理器分配。
存儲器管理的主要任務是對內(nèi)存進行分配、保護和擴充。
存儲器管理應實現(xiàn)下述主要功能:內(nèi)存分配:按一定的策略為每道程序分配內(nèi)存。內(nèi)存保護:保證各程序在自己的內(nèi)存區(qū)域內(nèi)運行而不相互干擾。內(nèi)存擴充:為允許大型作業(yè)或多作業(yè)的運行,必須借助虛擬存儲技術(shù)去獲得增加內(nèi)存的效果。
設(shè)備管理的主要任務是對計算機系統(tǒng)內(nèi)的所有設(shè)備實施有效管理。
設(shè)備管理應具有下述功能:設(shè)備分配:根據(jù)一定的設(shè)備分配原則對設(shè)備進行分配。為了使設(shè)備與主機并行工作,還需采用緩沖技術(shù)和虛擬技術(shù)。設(shè)備傳輸控制:實現(xiàn)物理的輸入/輸出操作,即啟動設(shè)備、中斷處理、結(jié)東處理等。設(shè)備獨立性:即用戶程序中的設(shè)備與實際使用的物理設(shè)備無關(guān)。
操作系統(tǒng)中負責信息管理的部分稱為文件系統(tǒng),因此稱為文件管理。文件管理的主要任務就是有效地支持文件的存儲、檢索和修改等操作,解決文件的共享、保密和保護問題。
文件管理應實現(xiàn)下述功能:文件存儲空間的管理:負責對文件存儲空間進行管理,包括存儲空間的分配與回收等功能。目錄管理:目錄是為方便文件管理而設(shè)置的數(shù)據(jù)結(jié)構(gòu),它能提供按名存取的功能。文件操作管理:實現(xiàn)文件的操作,負責完成數(shù)據(jù)的讀寫。文件保護:提供文件保護功能,防止文件遭到破壞。
通常,操作系統(tǒng)以如下三種接方式提供給用戶使用:
參考文獻:
[1] 王道論壇組, 2021年操作系統(tǒng)考研復習指導, 北京:電子工業(yè)出版社, 2020.
[2] 劉泱 等, 操作系統(tǒng)高分筆記:2022版:天勤第10版, 北京:機械工業(yè)出版社, 2020.
??周一至周五更新,期待你的關(guān)注??
聯(lián)系客服