計(jì)算機(jī)組成原理第八章:計(jì)算機(jī)系統(tǒng)服務(wù)筆記
一、 計(jì)算機(jī)系統(tǒng)服務(wù)概述
計(jì)算機(jī)系統(tǒng)服務(wù),也稱為系統(tǒng)軟件或系統(tǒng)服務(wù)程序,是運(yùn)行在計(jì)算機(jī)硬件之上、應(yīng)用程序之下的一層軟件。它是用戶與計(jì)算機(jī)硬件之間的橋梁,負(fù)責(zé)管理和優(yōu)化硬件資源,為上層應(yīng)用程序提供統(tǒng)一、高效的運(yùn)行環(huán)境。本章主要探討這些服務(wù)的基本原理、功能及其在計(jì)算機(jī)系統(tǒng)中的核心作用。
二、 系統(tǒng)服務(wù)的核心功能
- 資源管理:系統(tǒng)服務(wù)的核心任務(wù)。它包括:
- 處理器管理:通過(guò)進(jìn)程調(diào)度算法(如先來(lái)先服務(wù)、時(shí)間片輪轉(zhuǎn)、優(yōu)先級(jí)調(diào)度等)分配CPU時(shí)間,實(shí)現(xiàn)多道程序并發(fā)執(zhí)行,提高CPU利用率。
- 存儲(chǔ)管理:負(fù)責(zé)內(nèi)存的分配與回收,提供虛擬內(nèi)存技術(shù),利用硬盤空間擴(kuò)展邏輯內(nèi)存,使程序可以運(yùn)行在比物理內(nèi)存更大的空間上。
- 設(shè)備管理:管理所有I/O設(shè)備,通過(guò)設(shè)備驅(qū)動(dòng)程序屏蔽硬件差異,提供統(tǒng)一的接口,并處理設(shè)備的并發(fā)請(qǐng)求與中斷。
- 文件管理:提供對(duì)存儲(chǔ)設(shè)備上文件的組織、存取、共享和保護(hù)機(jī)制,使用戶和程序能夠方便地操作文件,而無(wú)需關(guān)心其物理存儲(chǔ)細(xì)節(jié)。
- 用戶接口:為用戶提供使用計(jì)算機(jī)的方式。
- 命令接口:如命令行(CLI),用戶通過(guò)輸入特定命令來(lái)操作計(jì)算機(jī)。
- 圖形用戶接口(GUI):通過(guò)窗口、圖標(biāo)、菜單等可視化元素與用戶交互,是目前主流的用戶接口形式。
- 程序接口(API):為應(yīng)用程序提供的一組系統(tǒng)調(diào)用,是應(yīng)用程序請(qǐng)求操作系統(tǒng)服務(wù)的唯一途徑。
- 系統(tǒng)保護(hù)與安全:確保系統(tǒng)的穩(wěn)定運(yùn)行和數(shù)據(jù)安全。
- 內(nèi)存保護(hù):防止用戶程序非法訪問(wèn)操作系統(tǒng)或其他用戶程序的內(nèi)存空間。
- 權(quán)限管理:通過(guò)用戶身份驗(yàn)證和訪問(wèn)控制列表(ACL)等機(jī)制,控制對(duì)系統(tǒng)資源和數(shù)據(jù)的訪問(wèn)。
- 異常與中斷處理:處理硬件故障、非法指令、除零錯(cuò)誤等異常事件,以及來(lái)自外設(shè)的中斷請(qǐng)求,保證系統(tǒng)能夠從錯(cuò)誤中恢復(fù)或正常響應(yīng)外部事件。
三、 系統(tǒng)調(diào)用的實(shí)現(xiàn)機(jī)制
系統(tǒng)調(diào)用是應(yīng)用程序主動(dòng)請(qǐng)求內(nèi)核服務(wù)的接口,是用戶態(tài)切換到內(nèi)核態(tài)的唯一入口。其典型執(zhí)行過(guò)程如下:
- 應(yīng)用程序通過(guò)調(diào)用庫(kù)函數(shù)(如
read, write)發(fā)起請(qǐng)求。
- 庫(kù)函數(shù)將系統(tǒng)調(diào)用號(hào)和相關(guān)參數(shù)存入特定寄存器或棧中。
- 執(zhí)行一條特殊的指令(如
int 0x80(x86)、svc(ARM))觸發(fā)一個(gè)軟中斷或陷入(Trap)。
- CPU響應(yīng)中斷,硬件自動(dòng)將程序狀態(tài)(如PC、PSW)保存到內(nèi)核棧,并切換到內(nèi)核態(tài),跳轉(zhuǎn)到預(yù)設(shè)的中斷服務(wù)程序入口。
- 內(nèi)核的中斷處理程序根據(jù)系統(tǒng)調(diào)用號(hào),查詢系統(tǒng)調(diào)用表,找到對(duì)應(yīng)的服務(wù)例程并執(zhí)行。
- 服務(wù)例程執(zhí)行完畢后,將結(jié)果返回給用戶程序,并通過(guò)中斷返回指令恢復(fù)用戶程序的現(xiàn)場(chǎng),切換回用戶態(tài)。
這個(gè)過(guò)程體現(xiàn)了計(jì)算機(jī)體系結(jié)構(gòu)對(duì)操作系統(tǒng)的支持,如特權(quán)指令、處理器狀態(tài)位(用戶態(tài)/內(nèi)核態(tài))、中斷/異常機(jī)制等。
四、 中斷與異常處理
這是硬件與系統(tǒng)服務(wù)軟件協(xié)同工作的典型范例。
- 中斷(Interrupt):來(lái)自CPU外部(I/O設(shè)備、定時(shí)器等)的異步事件。硬件中斷控制器(如8259A)負(fù)責(zé)接收和優(yōu)先級(jí)仲裁。
- 異常(Exception):由CPU內(nèi)部正在執(zhí)行的指令引發(fā)的同步事件,如缺頁(yè)、除零、非法指令等。
處理流程:
1. 中斷請(qǐng)求(IRQ):設(shè)備發(fā)出中斷信號(hào)。
2. 中斷響應(yīng):CPU在每條指令執(zhí)行結(jié)束后檢查是否有中斷請(qǐng)求。若有且未被屏蔽,則響應(yīng)。
3. 現(xiàn)場(chǎng)保護(hù):硬件自動(dòng)將程序計(jì)數(shù)器(PC)和程序狀態(tài)字(PSW)壓入系統(tǒng)棧(通常是內(nèi)核棧)。
4. 關(guān)中斷與向量獲取:可能先關(guān)閉中斷以防止嵌套,然后根據(jù)中斷類型號(hào)獲取中斷向量(即中斷服務(wù)程序ISR的入口地址)。
5. 執(zhí)行ISR:跳轉(zhuǎn)到ISR執(zhí)行。ISR由操作系統(tǒng)編寫,負(fù)責(zé)處理具體的中斷事務(wù)(如從鍵盤緩沖區(qū)讀取數(shù)據(jù))。
6. 恢復(fù)與返回:ISR執(zhí)行完畢,執(zhí)行中斷返回指令(如iret),硬件自動(dòng)從棧中恢復(fù)PC和PSW,CPU繼續(xù)執(zhí)行被中斷的程序。
五、 存儲(chǔ)服務(wù)的核心:虛擬內(nèi)存
虛擬內(nèi)存是系統(tǒng)服務(wù)中存儲(chǔ)管理的關(guān)鍵技術(shù)。它使得程序可以使用比物理內(nèi)存更大的地址空間。
- 基本原理:每個(gè)進(jìn)程擁有獨(dú)立的虛擬地址空間。內(nèi)存管理單元(MMU)負(fù)責(zé)將虛擬地址通過(guò)頁(yè)表轉(zhuǎn)換為物理地址。
- 關(guān)鍵機(jī)制:
- 分頁(yè):將虛擬空間和物理空間劃分為固定大小的頁(yè)(如4KB)。
- 頁(yè)表:存儲(chǔ)虛擬頁(yè)到物理頁(yè)幀的映射關(guān)系。引入多級(jí)頁(yè)表以節(jié)省空間。
- 缺頁(yè)中斷:當(dāng)程序訪問(wèn)的頁(yè)不在物理內(nèi)存中時(shí),MMU觸發(fā)缺頁(yè)異常。操作系統(tǒng)介入,從磁盤(交換區(qū))將所需頁(yè)調(diào)入內(nèi)存,更新頁(yè)表,然后重新執(zhí)行引發(fā)異常的指令。
- 頁(yè)面置換算法:當(dāng)物理內(nèi)存已滿時(shí),需要選擇一頁(yè)換出到磁盤,如最佳置換(OPT)、先進(jìn)先出(FIFO)、最近最少使用(LRU)算法等。
六、
計(jì)算機(jī)系統(tǒng)服務(wù)是計(jì)算機(jī)組成原理中軟硬件結(jié)合最緊密的部分。它建立在CPU的中斷、特權(quán)態(tài)、MMU等硬件機(jī)制之上,通過(guò)系統(tǒng)調(diào)用、中斷處理、虛擬內(nèi)存等核心技術(shù),實(shí)現(xiàn)了對(duì)處理器、存儲(chǔ)器、I/O設(shè)備等硬件資源高效、安全、抽象的管理。理解系統(tǒng)服務(wù)的工作原理,對(duì)于從整體上把握計(jì)算機(jī)系統(tǒng)的工作流程至關(guān)重要,也是理解現(xiàn)代操作系統(tǒng)內(nèi)核設(shè)計(jì)的基礎(chǔ)。
如若轉(zhuǎn)載,請(qǐng)注明出處:http://m.hzjhj.com.cn/product/46.html
更新時(shí)間:2026-04-11 20:45:23