ch1-1.3操作系統(tǒng)基本服務(wù)和用戶接口_第1頁
ch1-1.3操作系統(tǒng)基本服務(wù)和用戶接口_第2頁
ch1-1.3操作系統(tǒng)基本服務(wù)和用戶接口_第3頁
ch1-1.3操作系統(tǒng)基本服務(wù)和用戶接口_第4頁
ch1-1.3操作系統(tǒng)基本服務(wù)和用戶接口_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余23頁可下載查看

下載本文檔

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

文檔簡介

1.3.1操作系統(tǒng)基本服務(wù)1.基本服務(wù)創(chuàng)建程序執(zhí)行程序數(shù)據(jù)I/O信息存取通信服務(wù)錯(cuò)誤檢測和處理還具有其他功能:資源分配,統(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)的功能通過一組稱為系統(tǒng)調(diào)用(system

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

OperatingSystemInterface

for

Computer

Environment)標(biāo)準(zhǔn);API和庫函數(shù)庫函數(shù)和系統(tǒng)調(diào)用應(yīng)用程序、庫函數(shù)、系統(tǒng)調(diào)用的調(diào)用關(guān)系鏈調(diào)用fprintf()應(yīng)用程序C函數(shù)庫內(nèi)核系統(tǒng)調(diào)用處理程序C庫中的fprintf()封裝程序用戶態(tài)態(tài)sys_write()內(nèi)核函數(shù)Linux系統(tǒng)程序、庫函數(shù)、系統(tǒng)調(diào)用分層關(guān)系用戶(進(jìn)程管理、操作系統(tǒng)管理、文件管理、設(shè)備管理等)系統(tǒng)程序(實(shí)用程序)(匯編、編譯、編輯、S 等)標(biāo)準(zhǔn)庫函數(shù)(打開、關(guān)閉、讀、寫、創(chuàng)建、撤銷等)用戶接口庫函數(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)場保護(hù)區(qū),以保存發(fā)生系統(tǒng)調(diào)用時(shí)的處理器現(xiàn)場。系統(tǒng)調(diào)用處理過程System

CallA0

SUB0SUBiSUBnA1

SUB1AiAn……系統(tǒng)調(diào)用處理子程序取系統(tǒng)功能號找相應(yīng)地址表地址結(jié)束處理恢復(fù)現(xiàn)場A0A1…Ai…An保護(hù)CPU現(xiàn)場用戶程序 陷入指令系統(tǒng)調(diào)用陷入機(jī)構(gòu)地址表系統(tǒng)調(diào)用參數(shù)傳遞一是由訪管指令或陷入指令自帶參數(shù),直接參數(shù)間接參數(shù)二是通過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ù)

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

J制ob語言Control

Language)。用戶使用JCL語句,把運(yùn)行意圖(需要對作業(yè)進(jìn)行的控制和干予)寫在作業(yè)說明書上,將作業(yè)連同作業(yè)說明書一起提交給系統(tǒng)。批處理作業(yè)的調(diào)度執(zhí)行過程,系統(tǒng)調(diào)用JCL語句處理程序或命令解釋程序。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)程的地址空間,故這類命令不宜過多;二是由專門“實(shí)用程序”實(shí)現(xiàn),執(zhí)行時(shí)把命令對應(yīng)的處理文件裝入主存,完成命令功能。操作系統(tǒng)把兩者結(jié)合起來,簡單命令由命令解釋程序直接處理;復(fù)雜命令由獨(dú)立的實(shí)用程序完成。3.Linux命令解釋器s執(zhí)行流程id≠0無有讀命令行獲命令名,按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í)行、和 解決帶有共性的問題或執(zhí)行公共操作,操作系統(tǒng)以操作命令形式向用戶提供系統(tǒng)程序。它的功能和性能很大程度上反映了操作系統(tǒng)的功能和性能。支撐程系序統(tǒng)的程分序類(:2)文件管理狀態(tài)信息程序設(shè)計(jì)語言支持程序的裝入和執(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庫封裝例程統(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)場,進(jìn)行正確性檢查,根據(jù)系統(tǒng)調(diào)用號跳轉(zhuǎn)到具體內(nèi)核函數(shù),該內(nèi)核函數(shù)執(zhí)行完畢時(shí)轉(zhuǎn)向下一步。ret_from_sys_call(),完成返回用戶空間前的最后檢查,用RESTORE_ALL宏恢復(fù)現(xiàn)場并執(zhí)行iret指令返回用戶斷點(diǎn)。3)保護(hù)現(xiàn)場系統(tǒng)調(diào)用處理時(shí)的棧內(nèi)容硬件完成…SSESPEFLAGSCSEIP完成系統(tǒng)調(dià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ù)超過5個(gè)時(shí),存放在內(nèi)存參數(shù)區(qū),其地址通過寄存器傳送。5)

系統(tǒng)調(dià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)用號和系統(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論