new_ch1-13操作系統(tǒng)提供的服務(wù)和用戶接口_第1頁
new_ch1-13操作系統(tǒng)提供的服務(wù)和用戶接口_第2頁
new_ch1-13操作系統(tǒng)提供的服務(wù)和用戶接口_第3頁
new_ch1-13操作系統(tǒng)提供的服務(wù)和用戶接口_第4頁
new_ch1-13操作系統(tǒng)提供的服務(wù)和用戶接口_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1.3操作系統(tǒng)提供的服務(wù)和用戶接口 1.3.1 操作系統(tǒng)提供的基本服務(wù) 1.3.2 操作系統(tǒng)提供的用戶接口 1.3.3 程序接口與系統(tǒng)調(diào)用 1.3.4 操作接口與系統(tǒng)程序1.3.1操作系統(tǒng)提供的基本服務(wù)操作系統(tǒng)提供的基本服務(wù) 創(chuàng)建程序創(chuàng)建程序 執(zhí)行程序執(zhí)行程序 數(shù)據(jù)數(shù)據(jù)I/O I/O 信息存取信息存取 通信服務(wù)通信服務(wù) 錯誤檢測和處理錯誤檢測和處理 還具有另外一些功能還具有另外一些功能: :資源分配,統(tǒng)計,資源分配,統(tǒng)計, 保護保護。 操作系統(tǒng)提供的用戶接口操作系統(tǒng)提供的用戶接口(1) 用戶和操作系統(tǒng)間的兩種接口 系統(tǒng)調(diào)用 操作命令或 JCL 操 作 系 統(tǒng) 裸 機(操作接口)(程序接口)操作

2、系統(tǒng)提供的用戶接口(2) 程 序 接 口 又 稱 應(yīng) 用 編 程 接 口程 序 接 口 又 稱 應(yīng) 用 編 程 接 口 A P I(Application Programming Interface),允許運行程序調(diào)用操作系統(tǒng)的服務(wù)和功能。 程序接口由一組系統(tǒng)調(diào)用(System Call))組成,用戶程序使用“系統(tǒng)調(diào)用”就可獲得操作系統(tǒng)的底層服務(wù),使用或訪問系統(tǒng)的各種軟硬件資源。操作系統(tǒng)提供的用戶接口(3) 在程序設(shè)計語言(如C語言)中,往往提供與各系統(tǒng)調(diào)用對應(yīng)的庫函數(shù),應(yīng)用程序可通過對應(yīng)的庫函數(shù)來使用系統(tǒng)調(diào)用, 庫函數(shù)的目的是隱藏訪管指令細節(jié),使系統(tǒng)調(diào)用更象過程調(diào)用,但一般地說,庫函數(shù)屬于用

3、戶程序而非系統(tǒng)程序。 操作系統(tǒng)為用戶提供系統(tǒng)調(diào)用也出于安全和效率考慮,使得用戶態(tài)程序不能自由地訪問內(nèi)核關(guān)鍵數(shù)據(jù)結(jié)構(gòu)或直接訪問硬件資源。操作系統(tǒng)提供的用戶接口(4) UNIX/Linux系統(tǒng)程序、庫函數(shù)、系統(tǒng)調(diào)用的分層關(guān)系 操作系統(tǒng)(進程管理、存儲管理、文件管理、設(shè)備管理等) 標準庫函數(shù)(打開、關(guān)閉、讀、寫、創(chuàng)建、撤銷等) 標準系統(tǒng)程序(實用程序)(匯編、編譯、編輯、Shell等) 用戶用戶接口庫函數(shù)接口系統(tǒng)調(diào)用接口 硬件 (處理器、存儲器、磁盤、打印機、終端等)用戶態(tài)核心態(tài)操作系統(tǒng)提供的用戶接口(5) 操作接口又稱作業(yè)級接口操作接口又稱作業(yè)級接口,操作系統(tǒng)為用戶提供的操作控制計算機工作和提供服

4、務(wù)手段的集合,通常有操作控制命令、圖形操作界面(命令)、以及批處理系統(tǒng)提供的作業(yè)控制語言(命令)等等。操作系統(tǒng)提供的用戶接口(6) Windows支持API的的三個組件: Kernel包含了多數(shù)操作系統(tǒng)函數(shù),如內(nèi)存管理、進程管理; User集中了窗口管理函數(shù),如窗口創(chuàng)建、撤銷、移動、對話等相關(guān)函數(shù); GDI提供畫圖函數(shù)、打印函數(shù)。 Windows將三個組件置于動態(tài)鏈接庫DLL中。 操作系統(tǒng)提供的用戶接口(7) Win32API和UNIX/Linux系統(tǒng)調(diào)用粗略對應(yīng)關(guān)系 UNIX/Linux Win32 說明說明fork CreatProcess 創(chuàng)建進程 waitpid WaitForSing

5、leObject 等待進程終止open/close CreatFile/CloseHandle 創(chuàng)建或打開/關(guān)閉文件read/write ReadFile/WriteFile 讀/寫文件lseek SetFilePointer 移動文件指針mkdir/rmdir Creat/Remove Directory 建立/刪除目錄stat GetFileAttributesEx 獲得文件屬性 1.3.3 程序接口與系統(tǒng)調(diào)用系統(tǒng)調(diào)用系統(tǒng)調(diào)用(1)(1)1.1. 系統(tǒng)調(diào)用的分類系統(tǒng)調(diào)用的分類1) 進程和作業(yè)管理:2) 文件操作: 3) 設(shè)備管理: 4) 內(nèi)存管理: 5) 信息維護:6) 通信:系統(tǒng)調(diào)用(2

6、) 2.系統(tǒng)調(diào)用的實現(xiàn)要點系統(tǒng)調(diào)用的實現(xiàn)要點 一. 是編寫系統(tǒng)調(diào)用處理程序; 二. 是設(shè)計一張系統(tǒng)調(diào)用入口地址表,每個入口地址都指向一個系統(tǒng)調(diào)用的處理程序,有的系統(tǒng)還包含系統(tǒng)調(diào)用自帶參數(shù)的個數(shù); 三. 是陷入處理機制需開辟現(xiàn)場保護區(qū),以保存發(fā)生系統(tǒng)調(diào)用時的處理器現(xiàn)場。 系統(tǒng)調(diào)用系統(tǒng)調(diào)用(3)(3)系統(tǒng)調(diào)用的處理過程 System Call用戶程序A0SUB0SUB1SUBiSUBnA1AiAn系統(tǒng)調(diào)用處理子程序取系統(tǒng)功能號找入口地址表相應(yīng)入口地址結(jié)束處理恢復(fù)現(xiàn)場A0A1AiAn保護CPU現(xiàn)場陷入指令系統(tǒng)調(diào)用陷入機構(gòu)入口地址表系統(tǒng)調(diào)用(4)系統(tǒng)調(diào)用的參數(shù)傳遞一是由訪管指令或陷入指令自帶參數(shù), 直

7、接參數(shù) 間接參數(shù)二是通過CPU的通用寄存器傳遞參數(shù),或 在內(nèi)存的一個塊或表中存放參數(shù),其首地址送入寄存器,實現(xiàn)參數(shù)傳遞。三是在內(nèi)存中開辟專用堆棧區(qū)域傳遞參數(shù)。系統(tǒng)調(diào)用系統(tǒng)調(diào)用(5)(5)傳遞參數(shù)的一種方法 系統(tǒng)調(diào)用8的處理子程序操作系統(tǒng)X: 參數(shù)LOAD AddR XSystem Call 8X從表X取參數(shù)寄存器系統(tǒng)調(diào)用(6)Linux系統(tǒng)調(diào)用 Linux系統(tǒng)調(diào)用由兩部分組成: 核心函數(shù)核心函數(shù) 是實現(xiàn)系統(tǒng)調(diào)用功能的(內(nèi)核)代碼。 接口函數(shù)接口函數(shù) 是提供給應(yīng)用程序的API,以庫函數(shù)形式存在Linux的lib.a中。系統(tǒng)調(diào)用(7) Linux系統(tǒng)調(diào)用控制程序的功能系統(tǒng)調(diào)用控制程序的功能 (1)

8、(1)取系統(tǒng)調(diào)用號,檢驗合法性;取系統(tǒng)調(diào)用號,檢驗合法性; (2)(2)建立調(diào)用堆棧,保護現(xiàn)場信息;建立調(diào)用堆棧,保護現(xiàn)場信息; (3)(3)根據(jù)系統(tǒng)調(diào)用號定位核心函數(shù)地址;根據(jù)系統(tǒng)調(diào)用號定位核心函數(shù)地址; (4)(4)根據(jù)通用寄存器內(nèi)容,從用戶棧中取根據(jù)通用寄存器內(nèi)容,從用戶棧中取入口參數(shù);入口參數(shù); (5)(5)核心函數(shù)執(zhí)行,把結(jié)果返回應(yīng)用程序;核心函數(shù)執(zhí)行,把結(jié)果返回應(yīng)用程序; (6)(6)執(zhí)行退棧操作,判別調(diào)度程序執(zhí)行退棧操作,判別調(diào)度程序schedulerscheduler是否要被執(zhí)行。是否要被執(zhí)行。系統(tǒng)調(diào)用(8)系統(tǒng)調(diào)用與過程系統(tǒng)調(diào)用與過程(函數(shù)函數(shù)) 調(diào)用的區(qū)別調(diào)用的區(qū)別一一 是

9、調(diào)用形式是調(diào)用形式二二 是被調(diào)用代碼的位置是被調(diào)用代碼的位置 三三 是提供方式是提供方式四四 是調(diào)用的實現(xiàn)是調(diào)用的實現(xiàn) 1.3.4 操作接口與系統(tǒng)程序(1) 操作接口操作接口又稱作業(yè)(或功能)級接口,是操作系統(tǒng)為用戶操作控制計算機工作和提供服務(wù)的手段的集合,通??山柚僮骺刂泼睢D形操作界面(命令)、以及作業(yè)控制語言(命令)等來實現(xiàn)。操作接口與系統(tǒng)程序(2) 1. 作業(yè)控制方式作業(yè)控制方式 操作系統(tǒng)提供聯(lián)機作業(yè)控制方式和脫操作系統(tǒng)提供聯(lián)機作業(yè)控制方式和脫機作業(yè)控制方式兩個作業(yè)級接口,使機作業(yè)控制方式兩個作業(yè)級接口,使用的手段為操作命令:用的手段為操作命令: 操作控制命令操作控制命令 作業(yè)控制

10、語言作業(yè)控制語言(命令命令)聯(lián)機用戶接口操作控制命令 命令行方式命令行方式 批命令方式批命令方式 圖形化方式圖形化方式批命令方式(1) 在使用操作命令過程中, 有時需要連續(xù)使用多條命令; 有時需要多次重復(fù)使用若干條命令; 有時需要選擇地使用不同命令 可用批命令實現(xiàn)。 批命令方式(2)批命令實現(xiàn)思想 規(guī)定特別的文件擴展名,用戶先把一系列命令組織在該文件中,一次建立,多次執(zhí)行。 操作系統(tǒng)支持命令文件使用一套控制子命令,可寫出帶形式參數(shù)的批命令文件。這樣的批命令文件可執(zhí)行不同的命令序列,增強命令接口的處理能力。UNIX的Shell(1) Shell是交互型命令解釋程序,也是命令級程序設(shè)計語言解釋系統(tǒng)

11、,例如, Myrun文件包含: cat $1 /* 顯示文件*/ cc $1 /* 編譯源程序*/ mv a.out $2 /*把目標程序改為$2*/ $2 /*運行$2*/ 執(zhí)行 csh myrun prog1.c prog ,將對源程序prog1.c進行顯示和編譯,把目標程序改名為prog并運行。UNIX的Shell(2)另一個UNIX Shell的例子 從/user/user1/fei文件中,利用循環(huán)控制語句找出含單詞:process、thread信息行。其Shell程序feipro為 for i do grep $i/user/usr1/fei done 執(zhí)行 csh feipro p

12、rocess thread依次打印出含process和thread的信息行。MS-DOS操作系統(tǒng)的批文件 testbat是查找某文件是否存在的批文件: echo off if exist %1 goto lab1 echo %1 not found! goto lab2 :lab1 echo %1 is found! :lab2 用戶鍵入命令:test wpsexe 執(zhí)行批文件,若找到 文 件 顯 示 wpsexe is found! ;否 則 顯 示 wps.exe not found!脫機用戶接口作業(yè)控制語言 批處理接口:作業(yè)控制語言JCL( Job Control Language) 用

13、戶使用JCL語句,把運行意圖(需要對作業(yè)進行的控制和干予)寫在作業(yè)說明書上,將作業(yè)連同作業(yè)說明書一起提交給系統(tǒng) 批處理作業(yè)的調(diào)度執(zhí)行過程,系統(tǒng)調(diào)用JCL語句處理程序或命令解釋程序IBM JCL的一個例子/ HAROLD JOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLASS=b/ COMP EXEC PGM=IEYFORT/ SYSPRINT DD SYSOUT=A/ SYSIN DD* . . /*/ GO EXEC PGM=FORTLINK/ SYSPRINT DD SYSOUT=A/ FTOTF001 DD UNIT=SYSCP/ GO SYSIN DD* . ./

14、*/2. 命令解釋程序 命令解釋程序的主要功能是:接受和執(zhí)行下一條用戶從鍵盤輸入的命令。當新的批作業(yè)被啟動,或新的交互型用戶登錄時,系統(tǒng)就自動地執(zhí)行命令解釋程序,它負責讀入控制卡或命令行,并作出相應(yīng)解釋和執(zhí)行。命令解釋程序?qū)崿F(xiàn)的兩種方式 一種是它自身包含了命令的執(zhí)行代碼。 另一種是由專門的“系統(tǒng)程序” 實現(xiàn),自身不含命令處理代碼,也不進行處理,僅僅把這條命令對應(yīng)的命令文件裝入內(nèi)存執(zhí)行。 命令解釋程序的處理過程 系統(tǒng)啟動命令解釋程序,輸出命令提示符,等待鍵盤中斷。用戶打入命令并按回車換行,申請鍵盤中斷。 CPU響應(yīng)后,控制權(quán)交給命令解釋程序,它讀入命令緩沖區(qū)內(nèi)容,分析命令、接受參數(shù)。 若為簡單命

15、令立即轉(zhuǎn)向命令處理代碼執(zhí)行。否則查找命令處理文件,裝入主存,傳遞參數(shù),將控制權(quán)交給其執(zhí)行。 命令處理結(jié)束后,再次輸出命令提示符,等待下一條命令。系統(tǒng)程序(1) 系統(tǒng)程序系統(tǒng)程序又稱標準程序或?qū)嵱贸绦颍║tilities),雖非操作系統(tǒng)的核心,但卻必不可少,為用戶程序的開發(fā)、調(diào)試、執(zhí)行、和維護解決帶有共性的問題或執(zhí)行公共操作, 操作系統(tǒng)以外部操作命令形式向用戶提供系統(tǒng)程序。它的功能和性能很大程度上反映了操作系統(tǒng)的功能和性能。 系統(tǒng)程序(2) 系統(tǒng)程序的分類:系統(tǒng)程序的分類: 文件管理文件管理 狀態(tài)信息狀態(tài)信息 程序設(shè)計語言支持程序設(shè)計語言支持 程序的裝入和執(zhí)行支持程序的裝入和執(zhí)行支持 通信通信 其它軟件工具其它軟件工具 UNIX系統(tǒng)調(diào)用 系 統(tǒng) 調(diào) 用 符 合 可 移 植 操 作 系 統(tǒng)POSIX1003.1標準,每個兼容的UNIX都必須支持它。 UNIX的標準系統(tǒng)調(diào)用分進程管理、文件管理、設(shè)備管理、及狀態(tài)控制等五十余條,系統(tǒng)調(diào)用是軟件開發(fā)者進入UNIX內(nèi)核的入口。UNIX標準函數(shù) UNIX提供標準函數(shù),POSIX1003.1標準定義了庫過程的集合,組成了標準函數(shù)庫,其中較重要的是I/O庫函數(shù)。 庫函數(shù)用匯編語言編寫

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論