第9章操作系統(tǒng)接口_第1頁
第9章操作系統(tǒng)接口_第2頁
第9章操作系統(tǒng)接口_第3頁
第9章操作系統(tǒng)接口_第4頁
第9章操作系統(tǒng)接口_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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的核心中都設置了一組用于實現(xiàn)各種系統(tǒng)功能的子程序(過程),它們是OS系統(tǒng)本身程序模塊中的一部分。為了保護操作系統(tǒng)程序不被用戶程序破壞,一般都不允許用戶程序訪問操作系統(tǒng)的程序和數(shù)據(jù),所以也不允許應用程序采用一般的過程調(diào)用方式來直接調(diào)用系統(tǒng)過程系統(tǒng)過程,而是向應用程序提供了一系列的系統(tǒng)系統(tǒng)調(diào)用調(diào)用命令,讓應用程序通過系統(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)專門為用戶程序設置的,提供給程序員在編程時使用的,也用戶程序取得OS服務的唯一途徑。它是由一組系統(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)程序和應用程序為保證系統(tǒng)程序不被應用程序破壞,計算機設置了兩種狀態(tài):系統(tǒng)態(tài)(也稱為管態(tài)或核心態(tài))和用戶態(tài)(也稱為目態(tài))。在實際運行過程中,處理機會在兩種裝態(tài)間切換。相應地,現(xiàn)代多數(shù)操作系統(tǒng)將CPU的指令集分為特權指令和非特權指令兩類。 4 4第九章

3、 操作系統(tǒng)接口(1) 特權指令所謂特權指令,就是在系統(tǒng)態(tài)時運行的指令,是關系到系統(tǒng)全局的指令。其對內(nèi)存空間的訪問范圍基本不受限制,不僅能訪問用戶存儲空間,也能訪問系統(tǒng)存儲空間,如啟動各種外部設備、設置系統(tǒng)時鐘時間、關中斷、清主存、修改存儲器管理寄存器、執(zhí)行停機指令、轉(zhuǎn)換執(zhí)行狀態(tài)等。特權指令只允許操作系統(tǒng)使用,不允許應用程序使用,否則會引起系統(tǒng)混亂。 5 5第九章 操作系統(tǒng)接口(2) 非特權指令非特權指令是在用戶態(tài)時運行的指令。一般應用程序所使用的都是非特權指令,它只能完成一般性的操作和任務,不能對系統(tǒng)中的硬件和軟件直接進行訪問,其對內(nèi)存的訪問范圍也局限于用戶空間。這樣,可以防止應用程序的運行異

4、常對系統(tǒng)造成的破壞。這種限制是由硬件實現(xiàn)的,如果在應用程序中使用了特權指令,就會發(fā)出權限出錯信號,操作系統(tǒng)捕獲到這個信號后,將轉(zhuǎn)入相應的錯誤處理程序,并將停止該應用程序的運行,重新調(diào)度。6 6第九章 操作系統(tǒng)接口2. 系統(tǒng)調(diào)用如上所述,應用程序不能直接調(diào)用操作系統(tǒng)的過程。為此,操作系統(tǒng)提供了系統(tǒng)調(diào)用,使應用程序可以通過系統(tǒng)調(diào)用的方法,間接調(diào)用操作系統(tǒng)的相關過程,取得相應的服務。當應用程序中需要操作系統(tǒng)提供服務時,如請求I/O資源或執(zhí)行I/O操作,應用程序必須使用系統(tǒng)調(diào)用命令。由操作系統(tǒng)捕獲到該命令后,便將CPU的狀態(tài)從用戶態(tài)轉(zhuǎn)換到系統(tǒng)態(tài),然后執(zhí)行操作系統(tǒng)中相應的子程序(例程),完成所需的功能。

5、執(zhí)行完成后,系統(tǒng)又將CPU狀態(tài)從系統(tǒng)態(tài)轉(zhuǎn)換到用戶態(tài),再繼續(xù)執(zhí)行應用程序。 7 7第九章 操作系統(tǒng)接口可見,系統(tǒng)調(diào)用在本質(zhì)上是應用程序請求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)向相應的系統(tǒng)調(diào)用處理子程序。(3)返回問題。在采用了搶占式調(diào)度方式的系統(tǒng)中,在被調(diào)用過程執(zhí)行完后,要對系統(tǒng)中所有要求運行的進程做優(yōu)先權分析。當調(diào)用進程仍具有最高優(yōu)先級時,才返回到調(diào)用進程繼續(xù)執(zhí)行;否則,將引起重新調(diào)度,以便讓優(yōu)先權最高的進程優(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)用。當然,每個系統(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,應用程序通過該中斷獲取操作系統(tǒng)的服務。對于擁有保護機制的操作系統(tǒng)來說,中斷機制本身也是受保護的,在IBM PC上,Intel提供了多達255 個中斷號,但只有授權給應用程序保護等級的中斷號,才是可以被應用程序調(diào)用的。對于未被授權的中斷號,如果應用程序進行調(diào)用,同樣會引起保護異常,而導致

8、自己被操作系統(tǒng)停止。如Linux 僅僅給應用程序授權了4 個中斷號:3、4、5以及80h,前三個中斷號是提供給應用程序調(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) 獲得和設置進程屬性的系統(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) 打開和關閉文件的系統(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ū)方式。當采用消息傳遞方式時,在通信前需先打開一個連接。為此,應由源進程發(fā)出一條打開連接的系統(tǒng)調(diào)用,而目標進程則應利用接受連接的系統(tǒng)調(diào)用表示同意進行通信;然后,在源和目標進程之間便可開始通信??梢岳冒l(fā)送消息的系統(tǒng)調(diào)用或者用接收消息的系統(tǒng)調(diào)用來交換信息。通信結(jié)束后,還須再利用關閉連接的系統(tǒng)調(diào)用結(jié)束通信。除這三類外,還有設備管理類設備管理類系統(tǒng)調(diào)用和信息維護類信息維護類系統(tǒng)調(diào)用。15 15第九章 操作系統(tǒng)接口9.4.3 POSIX標準目前許多操作系統(tǒng)都提供了上面所介紹的各種類型的系統(tǒng)調(diào)用,實現(xiàn)的功能相

10、類似,但在實現(xiàn)的細節(jié)和形式方面卻相差很大,這種差異給實現(xiàn)應用程序與操作系統(tǒng)平臺的無關性帶來了很大的困難。為解決這一問題,國際標準化組織ISO給出的有關系統(tǒng)調(diào)用的國際標準 POSIX1003.1(Portable Operating System IX),也稱為“基于UNIX的可移植操作系統(tǒng)接口”。16 16第九章 操作系統(tǒng)接口圖9-7 UNIX/Linux系統(tǒng)程序、庫函數(shù)、系統(tǒng)調(diào)用的分層關系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)建文件、 打開文件、關閉文件、讀文件及寫文件等二十多條。2222第九章 操作系統(tǒng)接口1. 文件的創(chuàng)建和刪除(1) 創(chuàng)建文件(creat)。

12、(2) 刪除文件。 2323第九章 操作系統(tǒng)接口2. 文件的打開和關閉(1) 打開文件(open)。(2) 關閉文件(close)。 2424第九章 操作系統(tǒng)接口3. 文件的讀和寫讀和寫文件的系統(tǒng)調(diào)用是read和write。僅當用戶利用open打開指定文件后,方可調(diào)用read或write對文件執(zhí)行讀或?qū)懖僮?。兩個系統(tǒng)調(diào)用都要求用戶提供三個輸入?yún)?shù): 文件描述符fd。 buf緩沖區(qū)首址。對讀而言,這是用戶所要求的信息傳送的目標地址;對寫而言,則是信息傳送的源地址。 用戶要求傳送的字節(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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論