-操作系統(tǒng)提供的服務(wù)和用戶接口._第1頁
-操作系統(tǒng)提供的服務(wù)和用戶接口._第2頁
-操作系統(tǒng)提供的服務(wù)和用戶接口._第3頁
-操作系統(tǒng)提供的服務(wù)和用戶接口._第4頁
-操作系統(tǒng)提供的服務(wù)和用戶接口._第5頁
已閱讀5頁,還剩38頁未讀 繼續(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)計, , 保護。保護。 1.3.2操作系統(tǒng)提供的用戶接口操作系統(tǒng)提供的用戶接口 操作系統(tǒng)為用戶提供兩 種接口接口: 程序接口程序接口 操作接口操作接口 操作系統(tǒng)提供的用戶接口操作

2、系統(tǒng)提供的用戶接口(1) 用戶和操作系統(tǒng)間的兩種接口 系統(tǒng)調(diào)用 操作命令或 JCL 操 作 系 統(tǒng) 裸 機(操作接口)(程序接口)操作系統(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)

3、的庫函數(shù),應(yīng)用程序可通過對應(yīng)的庫函數(shù)來使用系統(tǒng)調(diào)用, 庫函數(shù)的目的是隱藏訪管指令細節(jié),使系統(tǒng)調(diào)用更象過程調(diào)用,但一般地說,庫函數(shù)屬于用戶程序而非系統(tǒng)程序。 操作系統(tǒng)提供的用戶接口(4)操作系統(tǒng)為用戶提供系統(tǒng)調(diào)用也出于安全和效率考慮,使得用戶態(tài)程序不能自由地訪問內(nèi)核關(guān)鍵數(shù)據(jù)結(jié)構(gòu)或直接訪問硬件資源。操作系統(tǒng)提供的用戶接口(5) UNIX/Linux系統(tǒng)程序、庫函數(shù)、系統(tǒng)調(diào)用的分層關(guān)系 操作系統(tǒng)(進程管理、存儲管理、文件管理、設(shè)備管理等) 標(biāo)準(zhǔn)庫函數(shù)(打開、關(guān)閉、讀、寫、創(chuàng)建、撤銷等) 標(biāo)準(zhǔn)系統(tǒng)程序(實用程序)(匯編、編譯、編輯、Shell等) 用戶用戶接口庫函數(shù)接口系統(tǒng)調(diào)用接口 硬件 (處理器、存

4、儲器、磁盤、打印機、終端等)用戶態(tài)核心態(tài)操作系統(tǒng)提供的用戶接口(6) 操作接口又稱作業(yè)級接口操作接口又稱作業(yè)級接口,操作系統(tǒng)為用戶提供的操作控制計算機工作和提供服務(wù)手段的集合,通常有操作控制命令、圖形操作界面(命令)、以及批處理系統(tǒng)提供的作業(yè)控制語言(命令)等等。操作系統(tǒng)提供的用戶接口(7) 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)提供的用戶接口(8) Win32API和UNI

5、X/Linux系統(tǒng)調(diào)用粗略對應(yīng)關(guān)系 UNIX/Linux Win32 說明說明fork CreatProcess 創(chuàng)建進程 waitpid WaitForSingleObject 等待進程終止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

6、)(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) 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)功能號找入口地址

7、表相應(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ù), 直接參數(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)核)代碼。

8、 接口函數(shù)接口函數(shù) 是提供給應(yīng)用程序的API,以庫函數(shù)形式存在Linux的lib.a中。系統(tǒng)調(diào)用(7)Linux系統(tǒng)調(diào)用入口程序entry.s ENTRY(sys-call-table) .long SYMBOL-NAME(sys-ni-syscall) 0 .long SYMBOL-NAME (sys-exit) 1 .long SYMBOL-NAME (sys-fork) 2 .long SYMBOL-NAME (sys-read) 3 .long SYMBOL-NAME (sys-write) 4 .long SYMBOL-NAME (sys-open) 5 .long SYMBOL-N

9、AME(sys-close) 6 .long SYMBOL-NAME (sys-vfork ) 190系統(tǒng)調(diào)用(8) Linux系統(tǒng)調(diào)用號就是系統(tǒng)調(diào)用入口表中位置序號,系統(tǒng)調(diào)用通過接口函數(shù)將調(diào)用號傳給內(nèi)核,內(nèi)核轉(zhuǎn)入系統(tǒng)調(diào)用控制程序再通過調(diào)用號位置來定位核心函數(shù),Linux內(nèi)核的陷入由0 x80(int80h)中斷實現(xiàn)。系統(tǒng)調(diào)用(9) Linux系統(tǒng)調(diào)用控制程序的功能系統(tǒng)調(diào)用控制程序的功能 (1)(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ù)地

10、址; (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)用(10)系統(tǒng)調(diào)用與過程系統(tǒng)調(diào)用與過程(函數(shù)函數(shù)) 調(diào)用的區(qū)別調(diào)用的區(qū)別一一 是調(diào)用形式是調(diào)用形式二二 是被調(diào)用代碼的位置是被調(diào)用代碼的位置 三三 是提供方式是提供方式四四 是調(diào)用的實現(xiàn)是調(diào)用的實現(xiàn) 1.3.4 操作接口與系統(tǒng)程序(1) 操作接口操作接口又稱作業(yè)(或功能)級接口,

11、是操作系統(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è)控制語言作業(yè)控制語言(命令命令)聯(lián)機用戶接口操作控制命令 命令行方式命令行方式 批命令方式批命令方式 圖形化方式圖形化方式命令行方式While (TRUE) /*TRUE=1,無限循環(huán)*/ type-pr

12、ompt( ); /*輸出屏幕提示符*/ read-command(command,parameters); /*從鍵盤讀入?yún)?shù)*/ pid=fork( ); /*創(chuàng)建子進程*/ if(pid0 printf(“unable to fork!”); /*輸出創(chuàng)建失敗信息*/ continue; /*繼續(xù)循環(huán) */ if(pid!=0) /*創(chuàng)建成功*/ waitpid(-1,&status,0); /*父進程等子進程結(jié)束*/ else execve(command,prraters,0); /*子進程執(zhí)行命令*/ 批命令方式(1) 在使用操作命令過程中, 有時需要連續(xù)使用多條命令; 有

13、時需要多次重復(fù)使用若干條命令; 有時需要選擇地使用不同命令 可用批命令實現(xiàn)。 批命令方式(2)批命令實現(xiàn)思想 規(guī)定特別的文件擴展名,用戶先把一系列命令組織在該文件中,一次建立,多次執(zhí)行。 操作系統(tǒng)支持命令文件使用一套控制子命令,可寫出帶形式參數(shù)的批命令文件。這樣的批命令文件可執(zhí)行不同的命令序列,增強命令接口的處理能力。UNIX的Shell(1) Shell是交互型命令解釋程序,也是命令級程序設(shè)計語言解釋系統(tǒng),例如, Myrun文件包含: cat $1 /* 顯示文件*/ cc $1 /* 編譯源程序*/ mv a.out $2 /*把目標(biāo)程序改為$2*/ $2 /*運行$2*/ 執(zhí)行 csh

14、myrun prog1.c prog ,將對源程序prog1.c進行顯示和編譯,把目標(biāo)程序改名為prog并運行。UNIX的Shell(2)另一個UNIX Shell的例子 從/user/user1/fei文件中,利用循環(huán)控制語句找出含單詞:process、thread信息行。其Shell程序feipro為 for i do grep $i/usr/usr1/fei done 執(zhí)行 csh feipro process thread依次打印出含process和thread的信息行。MS-DOS操作系統(tǒng)的批文件 testbat是查找某文件是否存在的批文件: echo off if exist %1

15、 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) 用戶使用JCL語句,把運行意圖(需要對作業(yè)進行的控制和干予)寫在作業(yè)說明書上,將作業(yè)連同作業(yè)說明書一起提交給系統(tǒng) 批處理作業(yè)的調(diào)度執(zhí)行過程,系統(tǒng)調(diào)用JCL語句處理程序或命令解釋程序IBM JCL

16、的一個例子(1) 一個需要編譯、連結(jié)編輯的作業(yè),源程序和數(shù)據(jù)穿在卡片上,編譯、連結(jié)編輯的結(jié)果需在行式打印機上輸出,編譯結(jié)果要存盤,連結(jié)編輯結(jié)果還要從穿孔機輸出,此作業(yè)用JCL語句組織如下:IBM JCL的一個例子(2)/ 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

17、DD* . ./*/2. 命令解釋程序 命令解釋程序的主要功能是:接受和執(zhí)行下一條用戶從鍵盤輸入的命令。當(dāng)新的批作業(yè)被啟動,或新的交互型用戶登錄時,系統(tǒng)就自動地執(zhí)行命令解釋程序,它負責(zé)讀入控制卡或命令行,并作出相應(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)容,分析命令、接受參

18、數(shù)。 若為簡單命令立即轉(zhuǎn)向命令處理代碼執(zhí)行。否則查找命令處理文件,裝入主存,傳遞參數(shù),將控制權(quán)交給其執(zhí)行。 命令處理結(jié)束后,再次輸出命令提示符,等待下一條命令。3系統(tǒng)程序(1) 系統(tǒng)程序系統(tǒng)程序又稱標(biāo)準(zhǔn)程序或?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)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論