ch1-1.3操作系統(tǒng)基本服務(wù)和用戶接口_第1頁(yè)
ch1-1.3操作系統(tǒng)基本服務(wù)和用戶接口_第2頁(yè)
ch1-1.3操作系統(tǒng)基本服務(wù)和用戶接口_第3頁(yè)
ch1-1.3操作系統(tǒng)基本服務(wù)和用戶接口_第4頁(yè)
ch1-1.3操作系統(tǒng)基本服務(wù)和用戶接口_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1.3.1操作系統(tǒng)基本服務(wù)1.基本服務(wù)創(chuàng)建程序執(zhí)行程序數(shù)據(jù)I/O信息存取通信服務(wù)錯(cuò)誤檢測(cè)和處理還具有其他功能:資源分配,統(tǒng)計(jì),保護(hù)。2用戶接口系統(tǒng)調(diào)用(程序接口)操作命令操作系統(tǒng)機(jī)應(yīng)用程序系統(tǒng)程序(操作接口)1.3.2程序接口與系統(tǒng)調(diào)用系統(tǒng)調(diào)用?系統(tǒng)調(diào)用的作用?系統(tǒng)調(diào)用是應(yīng)用程序獲得操作系統(tǒng)服務(wù)的唯一途徑。內(nèi)核的主體是系統(tǒng)調(diào)用的集合,內(nèi)核可以看成是特殊的公共子程序。系統(tǒng)調(diào)用?操作系統(tǒng)的功能通過(guò)一組稱為系統(tǒng)調(diào)用(system

call)的接口呈現(xiàn)給用戶,內(nèi)核提供一系列實(shí)現(xiàn)預(yù)定功能的內(nèi)核函數(shù),系統(tǒng)調(diào)用把應(yīng)用程序的請(qǐng)求傳達(dá)給內(nèi)核,內(nèi)核調(diào)用對(duì)應(yīng)的內(nèi)核函數(shù)完成請(qǐng)求所需處理后,再將處理結(jié)果返回給應(yīng)用程序。系統(tǒng)調(diào)用的作用系統(tǒng)調(diào)用是一種中介角色,把用戶與硬件開來(lái),應(yīng)用程序通過(guò)系統(tǒng)調(diào)用才能請(qǐng)求系統(tǒng)服務(wù)和使用系統(tǒng)資源,其作用有:一是內(nèi)核可基于權(quán)限和規(guī)則對(duì)資源進(jìn)行裁決,保證系統(tǒng)的安全性;二是系統(tǒng)調(diào)用封裝資源抽象,提供一致性接口,避免用戶使用資源時(shí)可能發(fā)生的錯(cuò)誤,且使編程方便效率高。API、庫(kù)函數(shù)、系統(tǒng)調(diào)用應(yīng)用程序能直接使用系統(tǒng)調(diào)用嗎?POSIX(Portable

OperatingSystemInterface

for

Computer

Environment)標(biāo)準(zhǔn);API和庫(kù)函數(shù)庫(kù)函數(shù)和系統(tǒng)調(diào)用應(yīng)用程序、庫(kù)函數(shù)、系統(tǒng)調(diào)用的調(diào)用關(guān)系鏈調(diào)用fprintf()應(yīng)用程序C函數(shù)庫(kù)內(nèi)核系統(tǒng)調(diào)用處理程序C庫(kù)中的fprintf()封裝程序用戶態(tài)態(tài)sys_write()內(nèi)核函數(shù)Linux系統(tǒng)程序、庫(kù)函數(shù)、系統(tǒng)調(diào)用分層關(guān)系用戶(進(jìn)程管理、操作系統(tǒng)管理、文件管理、設(shè)備管理等)系統(tǒng)程序(實(shí)用程序)(匯編、編譯、編輯、S 等)標(biāo)準(zhǔn)庫(kù)函數(shù)(打開、關(guān)閉、讀、寫、創(chuàng)建、撤銷等)用戶接口庫(kù)函數(shù)接口系統(tǒng)調(diào)用接口(處理器、硬件

器、磁盤、、終端等)用戶態(tài)核心態(tài)系統(tǒng)調(diào)用分類(1)進(jìn)程和作業(yè)管理:

(2)文件操作:(3)設(shè)備管理:

(4)主存管理:(5)信息

:(6)通信:系統(tǒng)調(diào)用實(shí)現(xiàn)一.是編寫系統(tǒng)調(diào)用處理內(nèi)核函數(shù);二.是設(shè)計(jì)一張系統(tǒng)調(diào)用地址表,每個(gè)

地址都指向一個(gè)系統(tǒng)調(diào)用的處理內(nèi)核函數(shù),有的系統(tǒng)還包含系統(tǒng)調(diào)用自帶參數(shù)的個(gè)數(shù);三.是陷入處理機(jī)制需開辟現(xiàn)場(chǎng)保護(hù)區(qū),以保存發(fā)生系統(tǒng)調(diào)用時(shí)的處理器現(xiàn)場(chǎng)。系統(tǒng)調(diào)用處理過(guò)程System

CallA0

SUB0SUBiSUBnA1

SUB1AiAn……系統(tǒng)調(diào)用處理子程序取系統(tǒng)功能號(hào)找相應(yīng)地址表地址結(jié)束處理恢復(fù)現(xiàn)場(chǎng)A0A1…Ai…An保護(hù)CPU現(xiàn)場(chǎng)用戶程序 陷入指令系統(tǒng)調(diào)用陷入機(jī)構(gòu)地址表系統(tǒng)調(diào)用參數(shù)傳遞一是由訪管指令或陷入指令自帶參數(shù),直接參數(shù)間接參數(shù)二是通過(guò)CPU的通用寄存器傳遞參數(shù),或在主存的一個(gè)塊或表中存放參數(shù),其首地址送入寄存器,實(shí)現(xiàn)參數(shù)傳遞。三是在主存中開辟

堆棧區(qū)域傳遞參數(shù)。系統(tǒng)調(diào)用與函數(shù)調(diào)用的區(qū)別調(diào)用形式 方式不同。被調(diào)用代碼的位置不同。提供方式不同。1.3.3操作接口與系統(tǒng)程序1.作業(yè)控制方式作業(yè)接口是操作系統(tǒng)為用戶操作控制計(jì)算機(jī)工作和提供服務(wù)

段集合,通??山柚僮骺刂泼睢D形操作界面(命令)、以及作業(yè)控制語(yǔ)言(命令)等來(lái)實(shí)現(xiàn)作業(yè)控制方式–聯(lián)機(jī)作業(yè)控制方式與作業(yè)控制語(yǔ)言–脫機(jī)作業(yè)控制方式與操作控制命令聯(lián)機(jī)作業(yè)控制接口--操作控制命令命令行方式批命令方式圖形化方式脫機(jī)?批作處理業(yè)接控口制:作接業(yè)口控制—語(yǔ)作言業(yè)JCL控(

J制ob語(yǔ)言Control

Language)。用戶使用JCL語(yǔ)句,把運(yùn)行意圖(需要對(duì)作業(yè)進(jìn)行的控制和干予)寫在作業(yè)說(shuō)明書上,將作業(yè)連同作業(yè)說(shuō)明書一起提交給系統(tǒng)。批處理作業(yè)的調(diào)度執(zhí)行過(guò)程,系統(tǒng)調(diào)用JCL語(yǔ)句處理程序或命令解釋程序。IBM370使用JCL處理批作業(yè)的例子······ARDS>··//

HAROLDJOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLASS=B//COMP

EXECPGM=IEYFORT//

SYSPRINT

DD

SYSOUT=A//

SYSLIN

DDDSNAME=SYSL,DISP=OLD,VOLUME=SER=123//

SYSIN

DD*??<SOURCE

PROGRAM

CARDS>??/*//

GO

EXECPGM=FORTLINK//

SYSPRINT

DD

SYSOUT=A//

FTOTF001

DD

UNIT=SYSCP//

GO

SYSIN

DD*??<D??/*//2.

命令解釋程序命令命令解釋程序的實(shí)現(xiàn):一是自帶命令執(zhí)行代碼,收到命令后,便轉(zhuǎn)向相應(yīng)命令處理代碼執(zhí)行,可以使用“系統(tǒng)調(diào)用

”幫助完成任務(wù),由于用到終端進(jìn)程的地址空間,故這類命令不宜過(guò)多;二是由專門“實(shí)用程序”實(shí)現(xiàn),執(zhí)行時(shí)把命令對(duì)應(yīng)的處理文件裝入主存,完成命令功能。操作系統(tǒng)把兩者結(jié)合起來(lái),簡(jiǎn)單命令由命令解釋程序直接處理;復(fù)雜命令由獨(dú)立的實(shí)用程序完成。3.Linux命令解釋器s執(zhí)行流程id≠0無(wú)有讀命令行獲命令名,按exec()組織參數(shù)id=fork()終端進(jìn)程Id=0有”&”嗎Wait等子進(jìn)程結(jié)束顯示提示符”$”子進(jìn)程exec()替換進(jìn)程映象運(yùn)行命令文件exit()出讓處理器子進(jìn)程終止子進(jìn)程運(yùn)行4.系統(tǒng)程序(1)系統(tǒng)程序又稱實(shí)用程序或支撐程序(Utilities),雖非操作系統(tǒng)的,但卻必不可少,為用戶程序的開發(fā)、調(diào)試、執(zhí)行、和 解決帶有共性的問(wèn)題或執(zhí)行公共操作,操作系統(tǒng)以操作命令形式向用戶提供系統(tǒng)程序。它的功能和性能很大程度上反映了操作系統(tǒng)的功能和性能。支撐程系序統(tǒng)的程分序類(:2)文件管理狀態(tài)信息程序設(shè)計(jì)語(yǔ)言支持程序的裝入和執(zhí)行支持通信其它 工具.3.1實(shí)u

系調(diào)用及現(xiàn)機(jī)x)

u行流int

main(

){

…read(

…);…}int

read

{…int

$0x80;…}Entry

(system_call)push

%eaxSAVE_ALL…Call*SYS_NAME(sys_call_table)(,%eax;)…Entry

(

ret_from_sys_call)restore_all:RESTORE_ALLIret;}asmlinkage

longsys_read(

)

{…return;}用戶態(tài)內(nèi)核態(tài)應(yīng)用程序L

C庫(kù)封裝例程統(tǒng)異常處理程序內(nèi)核函數(shù)制(2)Linux系統(tǒng)調(diào)用實(shí)現(xiàn)機(jī)制1)系統(tǒng)調(diào)用初始化set_system_gate(0x80,&system_call)2)系統(tǒng)調(diào)用公共

system_call(

)是系統(tǒng)調(diào)用的公共

,功能是:保護(hù)現(xiàn)場(chǎng),進(jìn)行正確性檢查,根據(jù)系統(tǒng)調(diào)用號(hào)跳轉(zhuǎn)到具體內(nèi)核函數(shù),該內(nèi)核函數(shù)執(zhí)行完畢時(shí)轉(zhuǎn)向下一步。ret_from_sys_call(),完成返回用戶空間前的最后檢查,用RESTORE_ALL宏恢復(fù)現(xiàn)場(chǎng)并執(zhí)行iret指令返回用戶斷點(diǎn)。3)保護(hù)現(xiàn)場(chǎng)系統(tǒng)調(diào)用處理時(shí)的棧內(nèi)容硬件完成…SSESPEFLAGSCSEIP完成系統(tǒng)調(diào)用號(hào)ESDSEAXEBPEDIESIEDXECXEBX….4)參數(shù)傳遞系統(tǒng)調(diào)用參數(shù)在5個(gè)以下。依次存放在寄存器EBX、ECX、EDX、ESI及EDI中。系統(tǒng)調(diào)用返回值放在EAX中返回。系統(tǒng)調(diào)用參數(shù)超過(guò)5個(gè)時(shí),存放在內(nèi)存參數(shù)區(qū),其地址通過(guò)寄存器傳送。5)

系統(tǒng)調(diào)用號(hào)和系統(tǒng)調(diào)用表(1)#define_NR_exit#define

_NR_fork#define

_NR_read#define

_NR_write#define

_NR_open#define_NR_close…123456系統(tǒng)調(diào)用號(hào)和系統(tǒng)調(diào)用表(2).dataENTRY(sys_call_table).long

SYMBOL_NAME(sys_ni_syscall).long

SYMBOL_NAME(sys_exit).long

SYMBOL_NAME(sys_fork).long

SYMBOL_NAME(sys_re

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論