




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1.3操作系統(tǒng)提供的服務(wù)和用戶(hù)接口 1.3.1 操作系統(tǒng)提供的基本服務(wù) 1.3.2 操作系統(tǒng)提供的用戶(hù)接口 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ù) 錯(cuò)誤檢測(cè)和處理錯(cuò)誤檢測(cè)和處理 還具有另外一些功能還具有另外一些功能: :資源分配資源分配, ,統(tǒng)計(jì)統(tǒng)計(jì), , 保護(hù)。保護(hù)。 1.3.2操作系統(tǒng)提供的用戶(hù)接口操作系統(tǒng)提供的用戶(hù)接口 操作系統(tǒng)為用戶(hù)提供兩 種接口接口: 程序接口程序接口 操作接口操作接口 操作系統(tǒng)提供的用戶(hù)接口操作
2、系統(tǒng)提供的用戶(hù)接口(1) 用戶(hù)和操作系統(tǒng)間的兩種接口 系統(tǒng)調(diào)用 操作命令或 JCL 操 作 系 統(tǒng) 裸 機(jī)(操作接口)(程序接口)操作系統(tǒng)提供的用戶(hù)接口(2) 程 序 接 口 又 稱(chēng) 應(yīng) 用 編 程 接 口程 序 接 口 又 稱(chēng) 應(yīng) 用 編 程 接 口 A P I(Application Programming Interface),允許運(yùn)行程序調(diào)用操作系統(tǒng)的服務(wù)和功能。 程序接口由一組系統(tǒng)調(diào)用(System Call))組成,用戶(hù)程序使用“系統(tǒng)調(diào)用”就可獲得操作系統(tǒng)的底層服務(wù),使用或訪問(wèn)系統(tǒng)的各種軟硬件資源。操作系統(tǒng)提供的用戶(hù)接口(3) 在程序設(shè)計(jì)語(yǔ)言(如C語(yǔ)言)中,往往提供與各系統(tǒng)調(diào)用對(duì)應(yīng)
3、的庫(kù)函數(shù),應(yīng)用程序可通過(guò)對(duì)應(yīng)的庫(kù)函數(shù)來(lái)使用系統(tǒng)調(diào)用, 庫(kù)函數(shù)的目的是隱藏訪管指令細(xì)節(jié),使系統(tǒng)調(diào)用更象過(guò)程調(diào)用,但一般地說(shuō),庫(kù)函數(shù)屬于用戶(hù)程序而非系統(tǒng)程序。 操作系統(tǒng)提供的用戶(hù)接口(4)操作系統(tǒng)為用戶(hù)提供系統(tǒng)調(diào)用也出于安全和效率考慮,使得用戶(hù)態(tài)程序不能自由地訪問(wèn)內(nèi)核關(guān)鍵數(shù)據(jù)結(jié)構(gòu)或直接訪問(wèn)硬件資源。操作系統(tǒng)提供的用戶(hù)接口(5) UNIX/Linux系統(tǒng)程序、庫(kù)函數(shù)、系統(tǒng)調(diào)用的分層關(guān)系 操作系統(tǒng)(進(jìn)程管理、存儲(chǔ)管理、文件管理、設(shè)備管理等) 標(biāo)準(zhǔn)庫(kù)函數(shù)(打開(kāi)、關(guān)閉、讀、寫(xiě)、創(chuàng)建、撤銷(xiāo)等) 標(biāo)準(zhǔn)系統(tǒng)程序(實(shí)用程序)(匯編、編譯、編輯、Shell等) 用戶(hù)用戶(hù)接口庫(kù)函數(shù)接口系統(tǒng)調(diào)用接口 硬件 (處理器、存
4、儲(chǔ)器、磁盤(pán)、打印機(jī)、終端等)用戶(hù)態(tài)核心態(tài)操作系統(tǒng)提供的用戶(hù)接口(6) 操作接口又稱(chēng)作業(yè)級(jí)接口操作接口又稱(chēng)作業(yè)級(jí)接口,操作系統(tǒng)為用戶(hù)提供的操作控制計(jì)算機(jī)工作和提供服務(wù)手段的集合,通常有操作控制命令、圖形操作界面(命令)、以及批處理系統(tǒng)提供的作業(yè)控制語(yǔ)言(命令)等等。操作系統(tǒng)提供的用戶(hù)接口(7) Windows支持API的的三個(gè)組件: Kernel包含了多數(shù)操作系統(tǒng)函數(shù),如內(nèi)存管理、進(jìn)程管理; User集中了窗口管理函數(shù),如窗口創(chuàng)建、撤銷(xiāo)、移動(dòng)、對(duì)話(huà)等相關(guān)函數(shù); GDI提供畫(huà)圖函數(shù)、打印函數(shù)。 Windows將三個(gè)組件置于動(dòng)態(tài)鏈接庫(kù)DLL中。 操作系統(tǒng)提供的用戶(hù)接口(8) Win32API和UNI
5、X/Linux系統(tǒng)調(diào)用粗略對(duì)應(yīng)關(guān)系 UNIX/Linux Win32 說(shuō)明說(shuō)明fork CreatProcess 創(chuàng)建進(jìn)程 waitpid WaitForSingleObject 等待進(jìn)程終止open/close CreatFile/CloseHandle 創(chuàng)建或打開(kāi)/關(guān)閉文件read/write ReadFile/WriteFile 讀/寫(xiě)文件lseek SetFilePointer 移動(dòng)文件指針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)用的分類(lèi)系統(tǒng)調(diào)用的分類(lèi) (1)進(jìn)程和作業(yè)管理: (2)文件操作: (3)設(shè)備管理: (4)內(nèi)存管理: (5)信息維護(hù): (6)通信:系統(tǒng)調(diào)用(2) 2.系統(tǒng)調(diào)用的實(shí)現(xiàn)要點(diǎn)系統(tǒng)調(diào)用的實(shí)現(xiàn)要點(diǎn) 一. 是編寫(xiě)系統(tǒng)調(diào)用處理程序; 二. 是設(shè)計(jì)一張系統(tǒng)調(diào)用入口地址表,每個(gè)入口地址都指向一個(gè)系統(tǒng)調(diào)用的處理程序,有的系統(tǒng)還包含系統(tǒng)調(diào)用自帶參數(shù)的個(gè)數(shù); 三. 是陷入處理機(jī)制需開(kāi)辟現(xiàn)場(chǎng)保護(hù)區(qū),以保存發(fā)生系統(tǒng)調(diào)用時(shí)的處理器現(xiàn)場(chǎng)。 系統(tǒng)調(diào)用系統(tǒng)調(diào)用(3)(3)系統(tǒng)調(diào)用的處理過(guò)程 System Call用戶(hù)程序A0SUB0SUB1SUBiSUBnA1AiAn系統(tǒng)調(diào)用處理子程序取系統(tǒng)功能號(hào)找入口地址
7、表相應(yīng)入口地址結(jié)束處理恢復(fù)現(xiàn)場(chǎng)A0A1AiAn保護(hù)CPU現(xiàn)場(chǎng)陷入指令系統(tǒng)調(diào)用陷入機(jī)構(gòu)入口地址表系統(tǒng)調(diào)用(4)系統(tǒng)調(diào)用的參數(shù)傳遞一是由訪管指令或陷入指令自帶參數(shù), 直接參數(shù) 間接參數(shù)二是通過(guò)CPU的通用寄存器傳遞參數(shù),或 在內(nèi)存的一個(gè)塊或表中存放參數(shù),其首地址送入寄存器,實(shí)現(xiàn)參數(shù)傳遞。三是在內(nèi)存中開(kāi)辟專(zhuān)用堆棧區(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ù) 是實(shí)現(xiàn)系統(tǒng)調(diào)用功能的(內(nèi)核)代碼。
8、 接口函數(shù)接口函數(shù) 是提供給應(yīng)用程序的API,以庫(kù)函數(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)用號(hào)就是系統(tǒng)調(diào)用入口表中位置序號(hào),系統(tǒng)調(diào)用通過(guò)接口函數(shù)將調(diào)用號(hào)傳給內(nèi)核,內(nèi)核轉(zhuǎn)入系統(tǒng)調(diào)用控制程序再通過(guò)調(diào)用號(hào)位置來(lái)定位核心函數(shù),Linux內(nèi)核的陷入由0 x80(int80h)中斷實(shí)現(xiàn)。系統(tǒng)調(diào)用(9) Linux系統(tǒng)調(diào)用控制程序的功能系統(tǒng)調(diào)用控制程序的功能 (1)(1)取系統(tǒng)調(diào)用號(hào),檢驗(yàn)合法性;取系統(tǒng)調(diào)用號(hào),檢驗(yàn)合法性; (2)(2)建立調(diào)用堆棧,保護(hù)現(xiàn)場(chǎng)信息;建立調(diào)用堆棧,保護(hù)現(xiàn)場(chǎng)信息; (3)(3)根據(jù)系統(tǒng)調(diào)用號(hào)定位核心函數(shù)地址;根據(jù)系統(tǒng)調(diào)用號(hào)定位核心函數(shù)地
10、址; (4)(4)根據(jù)通用寄存器內(nèi)容,從用戶(hù)棧中取根據(jù)通用寄存器內(nèi)容,從用戶(hù)棧中取入口參數(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)用與過(guò)程系統(tǒng)調(diào)用與過(guò)程(函數(shù)函數(shù)) 調(diào)用的區(qū)別調(diào)用的區(qū)別一一 是調(diào)用形式是調(diào)用形式二二 是被調(diào)用代碼的位置是被調(diào)用代碼的位置 三三 是提供方式是提供方式四四 是調(diào)用的實(shí)現(xiàn)是調(diào)用的實(shí)現(xiàn) 1.3.4 操作接口與系統(tǒng)程序(1) 操作接口操作接口又稱(chēng)作業(yè)(或功能)級(jí)接口,
11、是操作系統(tǒng)為用戶(hù)操作控制計(jì)算機(jī)工作和提供服務(wù)的手段的集合,通??山柚僮骺刂泼?、圖形操作界面(命令)、以及作業(yè)控制語(yǔ)言(命令)等來(lái)實(shí)現(xiàn)。操作接口與系統(tǒng)程序(2) 1. 作業(yè)控制方式作業(yè)控制方式 操作系統(tǒng)提供聯(lián)機(jī)作業(yè)控制方式和脫操作系統(tǒng)提供聯(lián)機(jī)作業(yè)控制方式和脫機(jī)作業(yè)控制方式兩個(gè)作業(yè)級(jí)接口,使機(jī)作業(yè)控制方式兩個(gè)作業(yè)級(jí)接口,使用的手段為操作命令:用的手段為操作命令: 操作控制命令操作控制命令 作業(yè)控制語(yǔ)言作業(yè)控制語(yǔ)言(命令命令)聯(lián)機(jī)用戶(hù)接口操作控制命令 命令行方式命令行方式 批命令方式批命令方式 圖形化方式圖形化方式命令行方式While (TRUE) /*TRUE=1,無(wú)限循環(huán)*/ type-pr
12、ompt( ); /*輸出屏幕提示符*/ read-command(command,parameters); /*從鍵盤(pán)讀入?yún)?shù)*/ pid=fork( ); /*創(chuàng)建子進(jìn)程*/ if(pid0 printf(“unable to fork!”); /*輸出創(chuàng)建失敗信息*/ continue; /*繼續(xù)循環(huán) */ if(pid!=0) /*創(chuàng)建成功*/ waitpid(-1,&status,0); /*父進(jìn)程等子進(jìn)程結(jié)束*/ else execve(command,prraters,0); /*子進(jìn)程執(zhí)行命令*/ 批命令方式(1) 在使用操作命令過(guò)程中, 有時(shí)需要連續(xù)使用多條命令; 有
13、時(shí)需要多次重復(fù)使用若干條命令; 有時(shí)需要選擇地使用不同命令 可用批命令實(shí)現(xiàn)。 批命令方式(2)批命令實(shí)現(xiàn)思想 規(guī)定特別的文件擴(kuò)展名,用戶(hù)先把一系列命令組織在該文件中,一次建立,多次執(zhí)行。 操作系統(tǒng)支持命令文件使用一套控制子命令,可寫(xiě)出帶形式參數(shù)的批命令文件。這樣的批命令文件可執(zhí)行不同的命令序列,增強(qiáng)命令接口的處理能力。UNIX的Shell(1) Shell是交互型命令解釋程序,也是命令級(jí)程序設(shè)計(jì)語(yǔ)言解釋系統(tǒng),例如, Myrun文件包含: cat $1 /* 顯示文件*/ cc $1 /* 編譯源程序*/ mv a.out $2 /*把目標(biāo)程序改為$2*/ $2 /*運(yùn)行$2*/ 執(zhí)行 csh
14、myrun prog1.c prog ,將對(duì)源程序prog1.c進(jìn)行顯示和編譯,把目標(biāo)程序改名為prog并運(yùn)行。UNIX的Shell(2)另一個(gè)UNIX Shell的例子 從/user/user1/fei文件中,利用循環(huán)控制語(yǔ)句找出含單詞: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 用戶(hù)鍵入命令:test wpsexe 執(zhí)行批文件,若找到 文 件 顯 示 wpsexe is found! ;否 則 顯 示 wps.exe not found!脫機(jī)用戶(hù)接口作業(yè)控制語(yǔ)言 批處理接口:作業(yè)控制語(yǔ)言JCL( Job Control Language) 用戶(hù)使用JCL語(yǔ)句,把運(yùn)行意圖(需要對(duì)作業(yè)進(jìn)行的控制和干予)寫(xiě)在作業(yè)說(shuō)明書(shū)上,將作業(yè)連同作業(yè)說(shuō)明書(shū)一起提交給系統(tǒng) 批處理作業(yè)的調(diào)度執(zhí)行過(guò)程,系統(tǒng)調(diào)用JCL語(yǔ)句處理程序或命令解釋程序IBM JCL
16、的一個(gè)例子(1) 一個(gè)需要編譯、連結(jié)編輯的作業(yè),源程序和數(shù)據(jù)穿在卡片上,編譯、連結(jié)編輯的結(jié)果需在行式打印機(jī)上輸出,編譯結(jié)果要存盤(pán),連結(jié)編輯結(jié)果還要從穿孔機(jī)輸出,此作業(yè)用JCL語(yǔ)句組織如下:IBM JCL的一個(gè)例子(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í)行下一條用戶(hù)從鍵盤(pán)輸入的命令。當(dāng)新的批作業(yè)被啟動(dòng),或新的交互型用戶(hù)登錄時(shí),系統(tǒng)就自動(dòng)地執(zhí)行命令解釋程序,它負(fù)責(zé)讀入控制卡或命令行,并作出相應(yīng)解釋和執(zhí)行。命令解釋程序?qū)崿F(xiàn)的兩種方式 一種是它自身包含了命令的執(zhí)行代碼。 另一種是由專(zhuān)門(mén)的“系統(tǒng)程序” 實(shí)現(xiàn),自身不含命令處理代碼,也不進(jìn)行處理,僅僅把這條命令對(duì)應(yīng)的命令文件裝入內(nèi)存執(zhí)行。 命令解釋程序的處理過(guò)程 系統(tǒng)啟動(dòng)命令解釋程序,輸出命令提示符,等待鍵盤(pán)中斷。用戶(hù)打入命令并按回車(chē)換行,申請(qǐng)鍵盤(pán)中斷。 CPU響應(yīng)后,控制權(quán)交給命令解釋程序,它讀入命令緩沖區(qū)內(nèi)容,分析命令、接受參
18、數(shù)。 若為簡(jiǎn)單命令立即轉(zhuǎn)向命令處理代碼執(zhí)行。否則查找命令處理文件,裝入主存,傳遞參數(shù),將控制權(quán)交給其執(zhí)行。 命令處理結(jié)束后,再次輸出命令提示符,等待下一條命令。3系統(tǒng)程序(1) 系統(tǒng)程序系統(tǒng)程序又稱(chēng)標(biāo)準(zhǔn)程序或?qū)嵱贸绦颍║tilities),雖非操作系統(tǒng)的核心,但卻必不可少,為用戶(hù)程序的開(kāi)發(fā)、調(diào)試、執(zhí)行、和維護(hù)解決帶有共性的問(wèn)題或執(zhí)行公共操作, 操作系統(tǒng)以外部操作命令形式向用戶(hù)提供系統(tǒng)程序。它的功能和性能很大程度上反映了操作系統(tǒng)的功能和性能。 系統(tǒng)程序(2) 系統(tǒng)程序的分類(lèi):系統(tǒng)程序的分類(lèi): 文件管理文件管理 狀態(tài)信息狀態(tài)信息 程序設(shè)計(jì)語(yǔ)言支持程序設(shè)計(jì)語(yǔ)言支持 程序的裝入和執(zhí)行支持程序的裝入和執(zhí)行支持 通信通信 其它軟件工具其它軟件工具 UNIX系統(tǒng)調(diào)用 系 統(tǒng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025━2030年豬鬃制品行業(yè)深度研究報(bào)告
- 工學(xué)之旅:博士答辯全紀(jì)錄
- 脾胃病患者心理護(hù)理
- 營(yíng)銷(xiāo)演講培訓(xùn)課件
- 2025年止咳化痰類(lèi)藥物項(xiàng)目發(fā)展計(jì)劃
- 2025年鋰鈷氧化物鋰鎳氧化物鋰錳氧化物項(xiàng)目發(fā)展計(jì)劃
- 河南省三門(mén)峽市重點(diǎn)中學(xué)2024年高三第四次高考適應(yīng)性考試(4月)數(shù)學(xué)試題
- 2025年醫(yī)藥研發(fā)服務(wù)外包項(xiàng)目建議書(shū)
- 中職高考數(shù)學(xué)二輪復(fù)習(xí)專(zhuān)項(xiàng)突破練習(xí)專(zhuān)題07 一次、二次函數(shù)及反比例函數(shù)(含答案)
- 染料作物批發(fā)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 初中英語(yǔ)教學(xué)設(shè)計(jì)Its-time-to-watch-a-cartoon
- 2023高中物理步步高大一輪 第十章 第1講 磁場(chǎng)及其對(duì)電流的作用
- 空分設(shè)備安全培訓(xùn)課件
- Adobe-Illustrator-(Ai)基礎(chǔ)教程
- 沒(méi)頭腦和不高興-竇桂梅.精選優(yōu)秀PPT課件
- 第三方單位考核管理辦法
- 造粒塔外壁清洗施工方案
- 鋼棧橋計(jì)算書(shū)(excel版)
- 中醫(yī)診斷學(xué)第七章第二節(jié)六經(jīng)辨證
- 租賃合同審批表
- 數(shù)據(jù)庫(kù)及其應(yīng)用-重點(diǎn)復(fù)習(xí)資料.代碼02120
評(píng)論
0/150
提交評(píng)論