版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 1第九章 操作系統(tǒng)接口第九章第九章 操作系統(tǒng)接口操作系統(tǒng)接口9.1 用戶接口9.2 Shell 命令語(yǔ)言9.3 聯(lián)機(jī)命令接口的實(shí)現(xiàn)9.4 系統(tǒng)調(diào)用的概念和類型9.5 UNIX系統(tǒng)調(diào)用9.6 系統(tǒng)調(diào)用的實(shí)現(xiàn)2 2第九章 操作系統(tǒng)接口9.4 系統(tǒng)調(diào)用的概念和類型通常,在OS的核心中都設(shè)置了一組用于實(shí)現(xiàn)各種系統(tǒng)功能的子程序(過(guò)程),它們是OS系統(tǒng)本身程序模塊中的一部分。為了保護(hù)操作系統(tǒng)程序不被用戶程序破壞,一般都不允許用戶程序訪問(wèn)操作系統(tǒng)的程序和數(shù)據(jù),所以也不允許應(yīng)用程序采用一般的過(guò)程調(diào)用方式來(lái)直接調(diào)用系統(tǒng)過(guò)程系統(tǒng)過(guò)程,而是向應(yīng)用程序提供了一系列的系統(tǒng)系統(tǒng)調(diào)用調(diào)用命令,讓應(yīng)用程序通過(guò)系統(tǒng)調(diào)用去調(diào)
2、用所需的系統(tǒng)過(guò)程。系統(tǒng)調(diào)用系統(tǒng)調(diào)用(system call)構(gòu)成了用戶程序和操作系統(tǒng)之間的接口,即程序接口程序接口。它是操作系統(tǒng)專門為用戶程序設(shè)置的,提供給程序員在編程時(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)在計(jì)算機(jī)系統(tǒng)中運(yùn)行著兩類程序:系統(tǒng)程序和應(yīng)用程序?yàn)楸WC系統(tǒng)程序不被應(yīng)用程序破壞,計(jì)算機(jī)設(shè)置了兩種狀態(tài):系統(tǒng)態(tài)(也稱為管態(tài)或核心態(tài))和用戶態(tài)(也稱為目態(tài))。在實(shí)際運(yùn)行過(guò)程中,處理機(jī)會(huì)在兩種裝態(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)時(shí)運(yùn)行的指令,是關(guān)系到系統(tǒng)全局的指令。其對(duì)內(nèi)存空間的訪問(wèn)范圍基本不受限制,不僅能訪問(wèn)用戶存儲(chǔ)空間,也能訪問(wèn)系統(tǒng)存儲(chǔ)空間,如啟動(dòng)各種外部設(shè)備、設(shè)置系統(tǒng)時(shí)鐘時(shí)間、關(guān)中斷、清主存、修改存儲(chǔ)器管理寄存器、執(zhí)行停機(jī)指令、轉(zhuǎn)換執(zhí)行狀態(tài)等。特權(quán)指令只允許操作系統(tǒng)使用,不允許應(yīng)用程序使用,否則會(huì)引起系統(tǒng)混亂。 5 5第九章 操作系統(tǒng)接口(2) 非特權(quán)指令非特權(quán)指令是在用戶態(tài)時(shí)運(yùn)行的指令。一般應(yīng)用程序所使用的都是非特權(quán)指令,它只能完成一般性的操作和任務(wù),不能對(duì)系統(tǒng)中的硬件和軟件直接進(jìn)行訪問(wèn),其對(duì)內(nèi)存的訪問(wèn)范圍也局限于用戶空間。這樣,可以防止應(yīng)用程序的運(yùn)行異
4、常對(duì)系統(tǒng)造成的破壞。這種限制是由硬件實(shí)現(xiàn)的,如果在應(yīng)用程序中使用了特權(quán)指令,就會(huì)發(fā)出權(quán)限出錯(cuò)信號(hào),操作系統(tǒng)捕獲到這個(gè)信號(hào)后,將轉(zhuǎn)入相應(yīng)的錯(cuò)誤處理程序,并將停止該應(yīng)用程序的運(yùn)行,重新調(diào)度。6 6第九章 操作系統(tǒng)接口2. 系統(tǒng)調(diào)用如上所述,應(yīng)用程序不能直接調(diào)用操作系統(tǒng)的過(guò)程。為此,操作系統(tǒng)提供了系統(tǒng)調(diào)用,使應(yīng)用程序可以通過(guò)系統(tǒng)調(diào)用的方法,間接調(diào)用操作系統(tǒng)的相關(guān)過(guò)程,取得相應(yīng)的服務(wù)。當(dāng)應(yīng)用程序中需要操作系統(tǒng)提供服務(wù)時(shí),如請(qǐng)求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)接口可見(jiàn),系統(tǒng)調(diào)用在本質(zhì)上是應(yīng)用程序請(qǐng)求OS內(nèi)核完成某功能時(shí)的一種過(guò)程調(diào)用,但它是一種特殊的過(guò)程調(diào)用。它與一般的過(guò)程調(diào)用有下述的明顯差別差別:(1)運(yùn)行在不同的系統(tǒng)狀態(tài)。一般的過(guò)程調(diào)用,其調(diào)用程序和被調(diào)用程序都運(yùn)行在相同的狀態(tài)系統(tǒng)態(tài)或用戶態(tài);而系統(tǒng)調(diào)用與一般調(diào)用的最大區(qū)別就在于:調(diào)用程序是運(yùn)行在用戶態(tài),而被調(diào)用程序是運(yùn)行在系統(tǒng)態(tài)。 8 8第九章 操作系統(tǒng)接口(2)狀態(tài)的轉(zhuǎn)換通過(guò)軟中斷軟中斷進(jìn)入。由于一般的過(guò)程調(diào)用并不涉及到系統(tǒng)狀態(tài)的轉(zhuǎn)換,可直接由調(diào)用過(guò)程轉(zhuǎn)向被調(diào)用過(guò)程。但在運(yùn)行系統(tǒng)調(diào)用時(shí),由于調(diào)用和
6、被調(diào)用過(guò)程是工作在不同的系統(tǒng)狀態(tài),通常通過(guò)軟中斷機(jī)制,先由用戶態(tài)轉(zhuǎn)換為系統(tǒng)態(tài),經(jīng)核心分析后,才能轉(zhuǎn)向相應(yīng)的系統(tǒng)調(diào)用處理子程序。(3)返回問(wèn)題。在采用了搶占式調(diào)度方式的系統(tǒng)中,在被調(diào)用過(guò)程執(zhí)行完后,要對(duì)系統(tǒng)中所有要求運(yùn)行的進(jìn)程做優(yōu)先權(quán)分析。當(dāng)調(diào)用進(jìn)程仍具有最高優(yōu)先級(jí)時(shí),才返回到調(diào)用進(jìn)程繼續(xù)執(zhí)行;否則,將引起重新調(diào)度,以便讓優(yōu)先權(quán)最高的進(jìn)程優(yōu)先執(zhí)行。此時(shí),將把調(diào)用進(jìn)程放入就緒隊(duì)列。 9 9第九章 操作系統(tǒng)接口(4)嵌套調(diào)用。像一般過(guò)程一樣,系統(tǒng)調(diào)用也可以嵌套進(jìn)行,即在一個(gè)被調(diào)用過(guò)程的執(zhí)行期間,還可以利用系統(tǒng)調(diào)用命令去調(diào)用另一個(gè)系統(tǒng)調(diào)用。當(dāng)然,每個(gè)系統(tǒng)對(duì)嵌套調(diào)用的深度都有一定的限制,例如最大深度為6
7、。但一般的過(guò)程對(duì)嵌套的深度則沒(méi)有什么限制。圖9-6示出了沒(méi)有嵌套及有嵌套的兩種系統(tǒng)調(diào)用情況。10 10第九章 操作系統(tǒng)接口圖9-6 系統(tǒng)功能的調(diào)用11 11第九章 操作系統(tǒng)接口3. 中斷機(jī)制系統(tǒng)調(diào)用是通過(guò)中斷機(jī)制實(shí)現(xiàn)的,并且一個(gè)操作系統(tǒng)的所有系統(tǒng)調(diào)用都通過(guò)同一個(gè)中斷入口來(lái)實(shí)現(xiàn)。如MS-DOS提供了INT 21H,應(yīng)用程序通過(guò)該中斷獲取操作系統(tǒng)的服務(wù)。對(duì)于擁有保護(hù)機(jī)制的操作系統(tǒng)來(lái)說(shuō),中斷機(jī)制本身也是受保護(hù)的,在IBM PC上,Intel提供了多達(dá)255 個(gè)中斷號(hào),但只有授權(quán)給應(yīng)用程序保護(hù)等級(jí)的中斷號(hào),才是可以被應(yīng)用程序調(diào)用的。對(duì)于未被授權(quán)的中斷號(hào),如果應(yīng)用程序進(jìn)行調(diào)用,同樣會(huì)引起保護(hù)異常,而導(dǎo)致
8、自己被操作系統(tǒng)停止。如Linux 僅僅給應(yīng)用程序授權(quán)了4 個(gè)中斷號(hào):3、4、5以及80h,前三個(gè)中斷號(hào)是提供給應(yīng)用程序調(diào)試所使用的,而80h正是系統(tǒng)調(diào)用(system call)的中斷號(hào)。 12 12第九章 操作系統(tǒng)接口9.4.2 系統(tǒng)調(diào)用的類型 1. 進(jìn)程控制類系統(tǒng)調(diào)用主要用于對(duì)進(jìn)程控制的系統(tǒng)調(diào)用有:(1) 創(chuàng)建和終止進(jìn)程的系統(tǒng)調(diào)用。(2) 獲得和設(shè)置進(jìn)程屬性的系統(tǒng)調(diào)用。(3) 等待某事件出現(xiàn)的系統(tǒng)調(diào)用。 13 13第九章 操作系統(tǒng)接口2. 文件操縱類系統(tǒng)調(diào)用對(duì)文件進(jìn)行操縱的主要系統(tǒng)調(diào)用如下:(1) 創(chuàng)建和刪除文件。(2) 打開(kāi)和關(guān)閉文件的系統(tǒng)調(diào)用。(3) 讀和寫文件的系統(tǒng)調(diào)用。 14 14
9、第九章 操作系統(tǒng)接口3. 進(jìn)程通信類系統(tǒng)調(diào)用在單處理機(jī)系統(tǒng)中,OS經(jīng)常采用消息傳遞方式和共享存儲(chǔ)區(qū)方式。當(dāng)采用消息傳遞方式時(shí),在通信前需先打開(kāi)一個(gè)連接。為此,應(yīng)由源進(jìn)程發(fā)出一條打開(kāi)連接的系統(tǒng)調(diào)用,而目標(biāo)進(jìn)程則應(yīng)利用接受連接的系統(tǒng)調(diào)用表示同意進(jìn)行通信;然后,在源和目標(biāo)進(jìn)程之間便可開(kāi)始通信??梢岳冒l(fā)送消息的系統(tǒng)調(diào)用或者用接收消息的系統(tǒng)調(diào)用來(lái)交換信息。通信結(jié)束后,還須再利用關(guān)閉連接的系統(tǒng)調(diào)用結(jié)束通信。除這三類外,還有設(shè)備管理類設(shè)備管理類系統(tǒng)調(diào)用和信息維護(hù)類信息維護(hù)類系統(tǒng)調(diào)用。15 15第九章 操作系統(tǒng)接口9.4.3 POSIX標(biāo)準(zhǔn)目前許多操作系統(tǒng)都提供了上面所介紹的各種類型的系統(tǒng)調(diào)用,實(shí)現(xiàn)的功能相
10、類似,但在實(shí)現(xiàn)的細(xì)節(jié)和形式方面卻相差很大,這種差異給實(shí)現(xiàn)應(yīng)用程序與操作系統(tǒng)平臺(tái)的無(wú)關(guān)性帶來(lái)了很大的困難。為解決這一問(wèn)題,國(guó)際標(biāo)準(zhǔn)化組織ISO給出的有關(guān)系統(tǒng)調(diào)用的國(guó)際標(biāo)準(zhǔn) POSIX1003.1(Portable Operating System IX),也稱為“基于UNIX的可移植操作系統(tǒng)接口”。16 16第九章 操作系統(tǒng)接口圖9-7 UNIX/Linux系統(tǒng)程序、庫(kù)函數(shù)、系統(tǒng)調(diào)用的分層關(guān)系17 17第九章 操作系統(tǒng)接口9.5 UNIX系統(tǒng)調(diào)用9.5.1 進(jìn)程控制該類系統(tǒng)調(diào)用包括創(chuàng)建進(jìn)程的系統(tǒng)調(diào)用fork、終止進(jìn)程的系統(tǒng)調(diào)用exit、等待子進(jìn)程結(jié)束的系統(tǒng)調(diào)用wait等十多條。18 18第九章
11、操作系統(tǒng)接口1. 進(jìn)程的創(chuàng)建和終止(1) 創(chuàng)建進(jìn)程(fork)。(2) 終止進(jìn)程(exit)。 19 19第九章 操作系統(tǒng)接口2. 改變進(jìn)程映像和等待(1) 執(zhí)行一個(gè)文件(exec)。(2) 等待子進(jìn)程結(jié)束(wait)。 2020第九章 操作系統(tǒng)接口3. 其它進(jìn)程調(diào)用(1) 獲得進(jìn)程ID。(2) 獲得用戶ID。(3) 進(jìn)程暫停(pause)。 21 21第九章 操作系統(tǒng)接口9.5.2 文件操縱用于對(duì)文件進(jìn)行操縱的系統(tǒng)調(diào)用是數(shù)量最多的一類系統(tǒng)調(diào)用,其中包括創(chuàng)建文件、 打開(kāi)文件、關(guān)閉文件、讀文件及寫文件等二十多條。2222第九章 操作系統(tǒng)接口1. 文件的創(chuàng)建和刪除(1) 創(chuàng)建文件(creat)。
12、(2) 刪除文件。 2323第九章 操作系統(tǒng)接口2. 文件的打開(kāi)和關(guān)閉(1) 打開(kāi)文件(open)。(2) 關(guān)閉文件(close)。 2424第九章 操作系統(tǒng)接口3. 文件的讀和寫讀和寫文件的系統(tǒng)調(diào)用是read和write。僅當(dāng)用戶利用open打開(kāi)指定文件后,方可調(diào)用read或write對(duì)文件執(zhí)行讀或?qū)懖僮?。兩個(gè)系統(tǒng)調(diào)用都要求用戶提供三個(gè)輸入?yún)?shù): 文件描述符fd。 buf緩沖區(qū)首址。對(duì)讀而言,這是用戶所要求的信息傳送的目標(biāo)地址;對(duì)寫而言,則是信息傳送的源地址。 用戶要求傳送的字節(jié)數(shù)nbyte。2525第九章 操作系統(tǒng)接口4. 建立與文件的連接和去連接(1) 連接(link)。 (2) 去連接(unlink)。 2626第九章 操作系統(tǒng)接口9.5.3 進(jìn)程通信和信息保護(hù) 1. 進(jìn)程通信(1) 消息機(jī)制。(2) 共享存儲(chǔ)器機(jī)制。(3) 信號(hào)量機(jī)制。 2727第九章 操作
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大頭針制造機(jī)產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 特教生口語(yǔ)突破-探索有效訓(xùn)練方法
- 芯片集成電路產(chǎn)品供應(yīng)鏈分析
- 剃須凝膠產(chǎn)品供應(yīng)鏈分析
- 5G智能物流行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 商業(yè)戰(zhàn)略規(guī)劃服務(wù)行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 制藥廢水處理行業(yè)營(yíng)銷策略方案
- 電子教學(xué)學(xué)習(xí)機(jī)商業(yè)機(jī)會(huì)挖掘與戰(zhàn)略布局策略研究報(bào)告
- 表盤項(xiàng)目營(yíng)銷計(jì)劃書
- 美甲凝膠項(xiàng)目運(yùn)營(yíng)指導(dǎo)方案
- 【基于杜邦分析法的企業(yè)盈利能力研究國(guó)內(nèi)外文獻(xiàn)綜述4000字】
- 常見(jiàn)上市公司名稱證券名稱中英對(duì)照表
- 第三次全國(guó)國(guó)土調(diào)查工作分類與三大地類對(duì)照表
- 寓教于樂(lè)-淺談?dòng)螒蚧虒W(xué) 論文
- 零部件英文縮寫及零部件中英文對(duì)照
- 血源性病原體職業(yè)接觸防護(hù)導(dǎo)則
- 煉鋼廠6機(jī)6流小方坯連鑄機(jī)技術(shù)操作規(guī)程
- 跌倒的護(hù)理 (養(yǎng)老護(hù)理員培訓(xùn)課件)
- 領(lǐng)導(dǎo)行為理論案例
- 醫(yī)院術(shù)前準(zhǔn)備單
- GB/T 3512-2014硫化橡膠或熱塑性橡膠熱空氣加速老化和耐熱試驗(yàn)
評(píng)論
0/150
提交評(píng)論