




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1 1第九章 操作系統(tǒng)接口第九章第九章 操作系統(tǒng)接口操作系統(tǒng)接口9.1 用戶接口9.2 Shell 命令語言9.3 聯(lián)機命令接口的實現(xiàn)9.4 系統(tǒng)調(diào)用的概念和類型9.5 UNIX系統(tǒng)調(diào)用9.6 系統(tǒng)調(diào)用的實現(xiàn)2 2第九章 操作系統(tǒng)接口9.4 系統(tǒng)調(diào)用的概念和類型通常,在OS的核心中都設(shè)置了一組用于實現(xiàn)各種系統(tǒng)功能的子程序(過程),它們是OS系統(tǒng)本身程序模塊中的一部分。為了保護操作系統(tǒng)程序不被用戶程序破壞,一般都不允許用戶程序訪問操作系統(tǒng)的程序和數(shù)據(jù),所以也不允許應(yīng)用程序采用一般的過程調(diào)用方式來直接調(diào)用系統(tǒng)過程系統(tǒng)過程,而是向應(yīng)用程序提供了一系列的系統(tǒng)系統(tǒng)調(diào)用調(diào)用命令,讓應(yīng)用程序通過系統(tǒng)調(diào)用去調(diào)
2、用所需的系統(tǒng)過程。系統(tǒng)調(diào)用系統(tǒng)調(diào)用(system call)構(gòu)成了用戶程序和操作系統(tǒng)之間的接口,即程序接口程序接口。它是操作系統(tǒng)專門為用戶程序設(shè)置的,提供給程序員在編程時使用的,也用戶程序取得OS服務(wù)的唯一途徑。它是由一組系統(tǒng)調(diào)用組成的。 3 3第九章 操作系統(tǒng)接口9.4.1 系統(tǒng)調(diào)用的基本概念 1. 系統(tǒng)態(tài)和用戶態(tài)在計算機系統(tǒng)中運行著兩類程序:系統(tǒng)程序和應(yīng)用程序為保證系統(tǒng)程序不被應(yīng)用程序破壞,計算機設(shè)置了兩種狀態(tài):系統(tǒng)態(tài)(也稱為管態(tài)或核心態(tài))和用戶態(tài)(也稱為目態(tài))。在實際運行過程中,處理機會在兩種裝態(tài)間切換。相應(yīng)地,現(xiàn)代多數(shù)操作系統(tǒng)將CPU的指令集分為特權(quán)指令和非特權(quán)指令兩類。 4 4第九章
3、 操作系統(tǒng)接口(1) 特權(quán)指令所謂特權(quán)指令,就是在系統(tǒng)態(tài)時運行的指令,是關(guān)系到系統(tǒng)全局的指令。其對內(nèi)存空間的訪問范圍基本不受限制,不僅能訪問用戶存儲空間,也能訪問系統(tǒng)存儲空間,如啟動各種外部設(shè)備、設(shè)置系統(tǒng)時鐘時間、關(guān)中斷、清主存、修改存儲器管理寄存器、執(zhí)行停機指令、轉(zhuǎn)換執(zhí)行狀態(tài)等。特權(quán)指令只允許操作系統(tǒng)使用,不允許應(yīng)用程序使用,否則會引起系統(tǒng)混亂。 5 5第九章 操作系統(tǒng)接口(2) 非特權(quán)指令非特權(quán)指令是在用戶態(tài)時運行的指令。一般應(yīng)用程序所使用的都是非特權(quán)指令,它只能完成一般性的操作和任務(wù),不能對系統(tǒng)中的硬件和軟件直接進行訪問,其對內(nèi)存的訪問范圍也局限于用戶空間。這樣,可以防止應(yīng)用程序的運行異
4、常對系統(tǒng)造成的破壞。這種限制是由硬件實現(xiàn)的,如果在應(yīng)用程序中使用了特權(quán)指令,就會發(fā)出權(quán)限出錯信號,操作系統(tǒng)捕獲到這個信號后,將轉(zhuǎn)入相應(yīng)的錯誤處理程序,并將停止該應(yīng)用程序的運行,重新調(diào)度。6 6第九章 操作系統(tǒng)接口2. 系統(tǒng)調(diào)用如上所述,應(yīng)用程序不能直接調(diào)用操作系統(tǒng)的過程。為此,操作系統(tǒng)提供了系統(tǒng)調(diào)用,使應(yīng)用程序可以通過系統(tǒng)調(diào)用的方法,間接調(diào)用操作系統(tǒng)的相關(guān)過程,取得相應(yīng)的服務(wù)。當(dāng)應(yīng)用程序中需要操作系統(tǒng)提供服務(wù)時,如請求I/O資源或執(zhí)行I/O操作,應(yīng)用程序必須使用系統(tǒng)調(diào)用命令。由操作系統(tǒng)捕獲到該命令后,便將CPU的狀態(tài)從用戶態(tài)轉(zhuǎn)換到系統(tǒng)態(tài),然后執(zhí)行操作系統(tǒng)中相應(yīng)的子程序(例程),完成所需的功能。
5、執(zhí)行完成后,系統(tǒng)又將CPU狀態(tài)從系統(tǒng)態(tài)轉(zhuǎn)換到用戶態(tài),再繼續(xù)執(zhí)行應(yīng)用程序。 7 7第九章 操作系統(tǒng)接口可見,系統(tǒng)調(diào)用在本質(zhì)上是應(yīng)用程序請求OS內(nèi)核完成某功能時的一種過程調(diào)用,但它是一種特殊的過程調(diào)用。它與一般的過程調(diào)用有下述的明顯差別差別:(1)運行在不同的系統(tǒng)狀態(tài)。一般的過程調(diào)用,其調(diào)用程序和被調(diào)用程序都運行在相同的狀態(tài)系統(tǒng)態(tài)或用戶態(tài);而系統(tǒng)調(diào)用與一般調(diào)用的最大區(qū)別就在于:調(diào)用程序是運行在用戶態(tài),而被調(diào)用程序是運行在系統(tǒng)態(tài)。 8 8第九章 操作系統(tǒng)接口(2)狀態(tài)的轉(zhuǎn)換通過軟中斷軟中斷進入。由于一般的過程調(diào)用并不涉及到系統(tǒng)狀態(tài)的轉(zhuǎn)換,可直接由調(diào)用過程轉(zhuǎn)向被調(diào)用過程。但在運行系統(tǒng)調(diào)用時,由于調(diào)用和
6、被調(diào)用過程是工作在不同的系統(tǒng)狀態(tài),通常通過軟中斷機制,先由用戶態(tài)轉(zhuǎn)換為系統(tǒng)態(tài),經(jīng)核心分析后,才能轉(zhuǎn)向相應(yīng)的系統(tǒng)調(diào)用處理子程序。(3)返回問題。在采用了搶占式調(diào)度方式的系統(tǒng)中,在被調(diào)用過程執(zhí)行完后,要對系統(tǒng)中所有要求運行的進程做優(yōu)先權(quán)分析。當(dāng)調(diào)用進程仍具有最高優(yōu)先級時,才返回到調(diào)用進程繼續(xù)執(zhí)行;否則,將引起重新調(diào)度,以便讓優(yōu)先權(quán)最高的進程優(yōu)先執(zhí)行。此時,將把調(diào)用進程放入就緒隊列。 9 9第九章 操作系統(tǒng)接口(4)嵌套調(diào)用。像一般過程一樣,系統(tǒng)調(diào)用也可以嵌套進行,即在一個被調(diào)用過程的執(zhí)行期間,還可以利用系統(tǒng)調(diào)用命令去調(diào)用另一個系統(tǒng)調(diào)用。當(dāng)然,每個系統(tǒng)對嵌套調(diào)用的深度都有一定的限制,例如最大深度為6
7、。但一般的過程對嵌套的深度則沒有什么限制。圖9-6示出了沒有嵌套及有嵌套的兩種系統(tǒng)調(diào)用情況。10 10第九章 操作系統(tǒng)接口圖9-6 系統(tǒng)功能的調(diào)用11 11第九章 操作系統(tǒng)接口3. 中斷機制系統(tǒng)調(diào)用是通過中斷機制實現(xiàn)的,并且一個操作系統(tǒng)的所有系統(tǒng)調(diào)用都通過同一個中斷入口來實現(xiàn)。如MS-DOS提供了INT 21H,應(yīng)用程序通過該中斷獲取操作系統(tǒng)的服務(wù)。對于擁有保護機制的操作系統(tǒng)來說,中斷機制本身也是受保護的,在IBM PC上,Intel提供了多達255 個中斷號,但只有授權(quán)給應(yīng)用程序保護等級的中斷號,才是可以被應(yīng)用程序調(diào)用的。對于未被授權(quán)的中斷號,如果應(yīng)用程序進行調(diào)用,同樣會引起保護異常,而導(dǎo)致
8、自己被操作系統(tǒng)停止。如Linux 僅僅給應(yīng)用程序授權(quán)了4 個中斷號:3、4、5以及80h,前三個中斷號是提供給應(yīng)用程序調(diào)試所使用的,而80h正是系統(tǒng)調(diào)用(system call)的中斷號。 12 12第九章 操作系統(tǒng)接口9.4.2 系統(tǒng)調(diào)用的類型 1. 進程控制類系統(tǒng)調(diào)用主要用于對進程控制的系統(tǒng)調(diào)用有:(1) 創(chuàng)建和終止進程的系統(tǒng)調(diào)用。(2) 獲得和設(shè)置進程屬性的系統(tǒng)調(diào)用。(3) 等待某事件出現(xiàn)的系統(tǒng)調(diào)用。 13 13第九章 操作系統(tǒng)接口2. 文件操縱類系統(tǒng)調(diào)用對文件進行操縱的主要系統(tǒng)調(diào)用如下:(1) 創(chuàng)建和刪除文件。(2) 打開和關(guān)閉文件的系統(tǒng)調(diào)用。(3) 讀和寫文件的系統(tǒng)調(diào)用。 14 14
9、第九章 操作系統(tǒng)接口3. 進程通信類系統(tǒng)調(diào)用在單處理機系統(tǒng)中,OS經(jīng)常采用消息傳遞方式和共享存儲區(qū)方式。當(dāng)采用消息傳遞方式時,在通信前需先打開一個連接。為此,應(yīng)由源進程發(fā)出一條打開連接的系統(tǒng)調(diào)用,而目標(biāo)進程則應(yīng)利用接受連接的系統(tǒng)調(diào)用表示同意進行通信;然后,在源和目標(biāo)進程之間便可開始通信??梢岳冒l(fā)送消息的系統(tǒng)調(diào)用或者用接收消息的系統(tǒng)調(diào)用來交換信息。通信結(jié)束后,還須再利用關(guān)閉連接的系統(tǒng)調(diào)用結(jié)束通信。除這三類外,還有設(shè)備管理類設(shè)備管理類系統(tǒng)調(diào)用和信息維護類信息維護類系統(tǒng)調(diào)用。15 15第九章 操作系統(tǒng)接口9.4.3 POSIX標(biāo)準(zhǔn)目前許多操作系統(tǒng)都提供了上面所介紹的各種類型的系統(tǒng)調(diào)用,實現(xiàn)的功能相
10、類似,但在實現(xiàn)的細節(jié)和形式方面卻相差很大,這種差異給實現(xiàn)應(yīng)用程序與操作系統(tǒng)平臺的無關(guān)性帶來了很大的困難。為解決這一問題,國際標(biāo)準(zhǔn)化組織ISO給出的有關(guān)系統(tǒng)調(diào)用的國際標(biāo)準(zhǔn) POSIX1003.1(Portable Operating System IX),也稱為“基于UNIX的可移植操作系統(tǒng)接口”。16 16第九章 操作系統(tǒng)接口圖9-7 UNIX/Linux系統(tǒng)程序、庫函數(shù)、系統(tǒng)調(diào)用的分層關(guān)系17 17第九章 操作系統(tǒng)接口9.5 UNIX系統(tǒng)調(diào)用9.5.1 進程控制該類系統(tǒng)調(diào)用包括創(chuàng)建進程的系統(tǒng)調(diào)用fork、終止進程的系統(tǒng)調(diào)用exit、等待子進程結(jié)束的系統(tǒng)調(diào)用wait等十多條。18 18第九章
11、操作系統(tǒng)接口1. 進程的創(chuàng)建和終止(1) 創(chuàng)建進程(fork)。(2) 終止進程(exit)。 19 19第九章 操作系統(tǒng)接口2. 改變進程映像和等待(1) 執(zhí)行一個文件(exec)。(2) 等待子進程結(jié)束(wait)。 2020第九章 操作系統(tǒng)接口3. 其它進程調(diào)用(1) 獲得進程ID。(2) 獲得用戶ID。(3) 進程暫停(pause)。 21 21第九章 操作系統(tǒng)接口9.5.2 文件操縱用于對文件進行操縱的系統(tǒng)調(diào)用是數(shù)量最多的一類系統(tǒng)調(diào)用,其中包括創(chuàng)建文件、 打開文件、關(guān)閉文件、讀文件及寫文件等二十多條。2222第九章 操作系統(tǒng)接口1. 文件的創(chuàng)建和刪除(1) 創(chuàng)建文件(creat)。
12、(2) 刪除文件。 2323第九章 操作系統(tǒng)接口2. 文件的打開和關(guān)閉(1) 打開文件(open)。(2) 關(guān)閉文件(close)。 2424第九章 操作系統(tǒng)接口3. 文件的讀和寫讀和寫文件的系統(tǒng)調(diào)用是read和write。僅當(dāng)用戶利用open打開指定文件后,方可調(diào)用read或write對文件執(zhí)行讀或?qū)懖僮?。兩個系統(tǒng)調(diào)用都要求用戶提供三個輸入?yún)?shù): 文件描述符fd。 buf緩沖區(qū)首址。對讀而言,這是用戶所要求的信息傳送的目標(biāo)地址;對寫而言,則是信息傳送的源地址。 用戶要求傳送的字節(jié)數(shù)nbyte。2525第九章 操作系統(tǒng)接口4. 建立與文件的連接和去連接(1) 連接(link)。 (2) 去連接(unlink)。 2626第九章 操作系統(tǒng)接口9.5.3 進程通信和信息保護 1. 進程通信(1) 消息機制。(2) 共享存儲器機制。(3) 信號量機制。 2727第九章 操作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)防瘧疾主題班會課件
- 化學(xué)工業(yè)企業(yè)安全質(zhì)量環(huán)保標(biāo)準(zhǔn)化培訓(xùn)體系
- 項目集成管理工程師課件
- 項目介紹框架課件
- 音樂里的中國年課件
- 門診護理培訓(xùn)課件
- 汽車配套產(chǎn)業(yè)基地項目環(huán)境影響報告書(范文)
- 城市污水管網(wǎng)建設(shè)工程招投標(biāo)方案(參考模板)
- 2025年煤礦鉆孔監(jiān)測系統(tǒng)合作協(xié)議書
- 高效節(jié)能電機項目申請報告
- 文創(chuàng)產(chǎn)品定制合同范本
- 科普版四年級上冊英語全冊同步練習(xí)
- 2024年巴西血液透析膜市場機會及渠道調(diào)研報告
- 2024全新標(biāo)準(zhǔn)黃金回收合同任意下載
- 《中國噬血細胞綜合征診斷與治療指南(2022年版)》解讀
- 奇瑞汽車在線測評題庫
- 初中英語語法、詞匯及固定搭配專題訓(xùn)練100題(含參考答案)
- 2024年浙江寧波市水務(wù)環(huán)境集團有限公司招聘筆試參考題庫含答案解析
- 能效對標(biāo)管理制度范文
- 監(jiān)測斷面超標(biāo)原因分析報告
- PE管生產(chǎn)記錄單
評論
0/150
提交評論