2-1 計算機硬件
1.計算機系統體系結構
2.設備控制器
①I/O設備與CPU可並行執行(execute concurrently)
②每一設備控制器負責一個設備類型
③每一設備控制器有一局部緩存(CPU與I/O交互)
③CPU通過局部緩存與主緩存交換數據
④I/O從設備到設備控制器的局部緩存
⑤設備控制器通過引起中斷來通知CPU的操作已經完成
3.中斷定義:
①硬件中斷(hardware interrupt)device controller informs CPU that it has finished its operation by causing an interrupt.(disk, timer)
②軟件中斷(software interrupt)
a trap(or an exception) 如division by zero,invalid memory access
a system call 系統調用 (also called a monitor call) 如read(),write()
4.中斷將控制權轉移到中斷服務程序
①separate segments of code determine what action should be taken for each type of interrupt.
②a generic routine to examine the interrupt information, and in turn call the specific handler.
③through the interrupt vector, which contains the address of all the service routines.
5.I/O 結構
6.I/O Interrupt
兩種I/O操作:
①同步 synchronous: after I/O starts, control returns to user program only upon I/O completion.
②異步 asynchronous: after I/O starts, control returns to user program without waiting for I/O completion.
2-2 硬件保護
1.Dual-Mode Operation 兩狀態操作
①共享系統資源要求操作系統確保錯誤程序不會引起其他程序的運行錯誤。
②至少在兩個運行狀態之間提供硬件支持和保護
User mode 用戶態--代表用戶執行
Monitor mode(also supervisor mode or system mode) 管態(核心態、特權模式或系統模式)--代表操作系統執行
2.mode bit 模式位
①模式位添加到計算機硬件,表示當前模式。
②系統引導時,硬件處於管態;在用戶模式下執行用戶進程。當出現中斷或陷阱時,硬件切換到管態。
3.特權指令(privileged instructions)
①特權指令只能在管態下運行
②在用戶態下使用特權指令:使用系統調用(軟件中斷),切換到管態
③在管臺下:直接運行。
4.I/O保護
①所有I/O指令都是特權指令。用戶不能直接用I/O指令,必須用過系統調用,可以確保用戶程序不能在管態下控制計算機。
②必須保護內存,必須保護中斷向量和中斷服務(在內存中)。
③保護的方法:確定進程能訪問的合法空間(進程地址和空間)
base register 基址寄存器 --->指向起始地址
limit register 界限寄存器 --->指向長度
上述兩者合作確定了進程的合法工作範圍,實現內存保護。base register和limit register的操作都是特權指令,用戶指令無法操作它們。
④用戶態下生成的每個地址都要經過硬件檢查。
5.CPU保護
問題:需防止用戶程序陷入死循環或者不調用系統服務且不將控制權返回到OS
方法:timer定時器
管態轉到用戶態時,設定定時器。當定時器到固定時間時,定時器觸發中斷操作,一旦觸發中斷則陷入操作系統,操作系統重新獲得控制權。
2-3 操作系統服務
1.對用戶來說:
①用戶接口(user interface),如 Command Line(CLI), Graphics User Interface(GUI), batch(批處理)
②程序執行(program execution)
③I/O Operation,如 system call
④File-system manipulation
⑤Communication, 進程之間交換信息,通過共享存儲器或消息傳遞實現
⑥Error detection
⑦其他操作系統服務
2.總結操作系統服務:
①資源分配(Resource Allocator):把資源分配給多個用戶或者多個同時運行的作業。
②賬務(Accounting):跟蹤和記錄用戶對資源的使用,用戶賬單和統計。
③保護(Protection):確保對資源的所有訪問均在控制中。
2-4 系統調用 system call
1.定義
系統調用提供在運行程序和操作系統之間的接口。通常以彙編語言指令形式提供,也有C、C++形式。
2.現今常用API
①win32 API for windows
②POSIX API for POSIX based systems (UNIX, Linux, MacOS)
③Java API for Java virtual machine
3.系統調用過程
①用戶使用系統調用,產生一條相應的指令。
②CPU執行到該指令是發生中斷,發出有關信號給陷入處理機構。
③處理機構收到信號後,啓動相關程序去完成該系統調用所要求的功能。
④在處理系統調用之前,陷入處理機構還需要保存處理現場。
4.入口地址表
①入口地址表,每個入口地址與相應的系統程序對接。
②陷入處理程序用系統調用功能號查找入口地址表,得到該系統程序的入口地址,並執行。
③系統調用結束後,要恢復現場,從而用戶程序可以繼續執行。
下圖爲系統調用來進行I/O任務
5.三種常用方式用於運行程序和操作系統之間:
①寄存器中的參數傳遞
②參數存於內存的一張表中,表地址作爲寄存器的參數傳遞
③程序吧參數壓入棧,由操作系統彈出
6.Types of System Calls 分類
①進程的控制 process control
②文件的管理 file management
③設備管理 device management
④信息維護 information maintenance
⑤通信 communications
2-5 操作系統結構
1.MS-DOS層次結構
①以最小空間提供最多功能,結構簡單。特點是不劃分模塊,接口與功能層沒有劃分清楚。
2.簡單結構
內核 the kernel.
包括在物理硬件之上,系統調用之下的一切,提供文件系統、CPU調度、存儲管理,每一層都有大量功能。
3.層次化結構
①操作系統分爲若干層,在低層上構建高層,底層(0層)爲硬件,最高層(N層)爲用戶層。考慮模塊層,層的選擇是每層只使用其底層所提供的功能和服務。
②分層的原則:每一層都是用其底層所提供的功能和服務,以便系統調試和驗證。
困難:層次劃分,保證不出現雙向依賴關係。
③實例:THE OS的層次化結構
優點:
- 底層和高層可分別實現(便於擴充);
- 高層錯誤不會影響低層,便於調試,利於功能的增刪改;
- 調用關係清晰(高層對低層單向依賴),避免遞歸調用,有利於保證設計和顯示的正確性。
缺點:系統中所有進程的控制轉移、通訊等全部任務交給系統核心管理,花費一定代價。
4.Microkernels
①通過劃分系統程序,把所有不必要的部件移出內核,形成小內核。
②微內核提供最少量的進程管理、存儲管理以及通信功能。
③操作系統由兩大部分組成:運行在覈心態的內核、運行在用戶態並以C/S方式運行的進程層。
④典型系統如MACH和Windows NT
⑤微內核的特點:
- 內核精巧。提供任務管理、內存管理、進程通信
- 面向多處理機和分佈式系統
- 基於C/S體系結構
本文知識以及部分圖片來源:慕課_操作系統原理_田麗華
網址:https://www.icourse163.org/learn/XJTU-1003409001?tid=1206408203#/learn/content