操作系統(一)概論
1、在OS中有以下重要概念:
內存管理機制、進程線程調度、信號、內核對象、系統調用、協議棧的實現等,以及理解如何尋址內存、
如何管理虛擬存儲、如何實現中斷等,深刻理解和掌握這些是很重要的。
2、操作系統層是最靠近硬件的軟件層,負責管理和控制計算機硬件并對其作首次擴充和改造,主要做好資源的調度和分配、信息的存取與保護、并發活動的協調與控制工作,把上層的支撐軟件和應用軟件與計算機硬件隔離開來,為其運行提供良好的基礎和強有力的支撐。
3、OS有權分配資源,而其他程序只能使用資源。OS實現資源管理機制,運行應用程序提供資源管理策略。
4、OS的資源管理技術:資源管理、資源虛化、資源抽象、組合使用抽象和虛化技術。
5、OS中的基礎抽象:進程、虛存、文件。
計算機系統的物理資源分為兩大類:計算類、存儲及接口類。
?。?)進程抽象——進程是對于進入貯存的當前運行程序在處理器上操作的狀態集的一個抽象,他是并發和并行操作的基礎。每個進程都是一個自治執行單元,執行時需要使用計算機資源,至少需要處理器(包括程序計數器、通用寄存器、堆棧指針寄存器和其他寄存器)和主存。
?。?)虛擬抽象——物理主存被抽象成虛擬主存,給每個進程造成一種假象,認為它正在獨占和使用整個主存。
進程可以獲得一個偌大的來內需地址空間,其中存放著可執行程序和數據,可以使用虛擬地址來引用物理主存單元。而虛擬存儲器是通過結合對主存和磁盤的管理來實現的。
?。?)文件抽象——文件是磁盤等設備的抽象,通過將文件中的字節映射到存儲設備的物理塊中來實現文件抽象。程序員通過創建打開讀寫和關閉操作類控制文件,而磁盤的所有I/O操作細節都對用戶隱藏起來。
OS有兩項基本任務:防止硬件資源被失控的應用程序濫用;屏蔽復雜的硬件操作細節。
以上三種抽象存在一種包含關系,文件是對設備的抽象,虛寸是對主存和設備的抽象,進程是對處理器、主存和設備的抽象。
而進程是相對獨立的自治單元,進程之間僅能通過內核鎖提供的有限數目的原語或系統調用進行交互。
每一個應用程序運行在自己的虛擬機上,在一臺虛擬機上運行的程序稱為“進程”。
6、虛擬計算機——虛擬機是有操作系統通過共享硬件資源的方式來實現的,它定義進程運行的邏輯計算環境。
?。?)虛處理器沒有中斷。
?。?)每個進程都有自己的虛處理器,用以實現多進程的并發執行。
(3)OS禁止某些特權指令在虛處理器上執行。
進程通過使用系統調用可以做到:創建新進程(虛擬機),與其他進程(虛擬機)進行通信,申請資源,操作文件,執行I/O操作等。
7、OS的作用:作為用戶接口和服務提供者。
作為擴展機和虛擬機。
作為資源的管理者和控制者。
8、處理器管理:對處理器的管理最終歸結為對進程和線程的管理和調度,包括:
進程控制和管理、進程同步和互斥、進程通信、進程死鎖、線程控制和管理、處理器調度(又分為高中低級調度)
9、存儲器管理功能:主存分配、地址轉換與存儲保護、主存共享、存儲擴充。
10、設備管理功能:通過設備中斷處理、提供緩沖區管理、提供設備獨立性實現邏輯設備到物理設備之間的映射、設備的分配和回收、實現共享型設備的驅動調度、實現虛擬設備。
11、文件管理任務:提供文件的邏輯組織和物理組織方法、提供文件的存取和使用方法、實現文件的目錄管理、實現文件的共享和安全控制、實現文件的存儲空間管理。
12、OS的主要特性
(1)并發性——是指兩個或兩個以上的活動或事件在同一時間間隔內發生。當一個程序正在等待執行I/O操作時,就要求它讓出CPU,調度另一個程序占有CPU運行。
并行活動一定是并發的,反之并發活動文未必是并行的,并行性是并發性的特例,而并發性是并行性的擴展。
?。?)共享性——指計算機系統中的資源可以被多個并發執行的程序共同使用,而不是被某個程序獨占。
主要有三方面:
透明資源共享:必須妥善處理資源隔離和授權訪問。存儲器隔離機制允許兩個應用程序同時加載到主存的不同區域,但是任何虛擬機都不能訪問其他虛擬機的主存塊;處理器隔離機制強制虛擬機串行地共享物理處理器。
顯式資源共享:一個程序在使用某種資源時,其他欲訪問此資源的程序必須等待,僅當占有者訪問完畢并釋放資源后,才允許資源唄再次分配。
異步性:又稱隨機性,并發程序是以異步方式運行的。OS必須保證只要運行環境相同,多次運行同一程序,都會獲得完全相同的計算結果。
13、程序接口與系統調用
?。?)系統調用:內核提供一系列具備預定功能的內核函數,通過一組稱為系統調用的接口呈現給用戶。內核的主體是系統調用的集合,可以將內核看成特殊的公共子程序。
程序的運行空間分為內核空間和用戶空間。應用程序不能直接訪問內核數據,也無法直接調用內核函數,它們只能在用戶空間操縱用戶數據,調用用戶空間函數。系統調用是一種中介角色把用戶和硬件隔離開來,應用程序只有通過系統調用才能請求系統服務并使用系統資源。
?。?)API、庫函數和系統調用:一個庫函數(封裝函數)就是一種API,它介于應用程序和操作系統之間。API是一個函數定義,說明如何獲得給定的服務。Windows操作系統不會公開系統調用,僅提供以庫函數形式定義的API,稱為Win32 API。庫函數屬于應用程序,在用戶態運行,系統調用屬于系統程序,在核心態運行。
?。ㄏ到y調用的實現要點)一是編寫系統調用服務函數,二是設計系統調用的入口地址表,三是陷阱處理機制。
14、內核——是一組程序模塊,通常駐留在內核空間,運行與核心態,具有訪問硬件設備和所有主存空間的權限,
是僅有的能夠執行特權指令的程序。內核可以控制所有進程。
?。?)內核的功能:資源抽象、資源分配、資源共享。
?。?)屬性:內核是由中斷驅動的,是不可搶占的,內核部分程序在屏蔽中斷狀態下執行,內核可使用特權指令。
15、進程線程——進程是系統進行保護和資源分配的單位,線程則是進程中的一條執行路徑,允許每個進程中有多個 線程,而線程是系統調度的獨立單位。
16、管程——是管理共享資源的一種同步機制,對管程的調用表示對共享資源的請求與釋放,管程可被多個進程或管程嵌套調用,但是它們只能互斥地訪問管程。
17、類程——用于管理私有資源,可以看成是子程序概念的一種擴充。
18、實時OS——由4部分組成:數據采集、加工處理、操作控制、反饋處理。三種典型:過程控制系統、信息查詢系統、事務處理系統。
相關文章: