第十章-操作系統(tǒng)接口要點(diǎn)課件_第1頁(yè)
第十章-操作系統(tǒng)接口要點(diǎn)課件_第2頁(yè)
第十章-操作系統(tǒng)接口要點(diǎn)課件_第3頁(yè)
第十章-操作系統(tǒng)接口要點(diǎn)課件_第4頁(yè)
第十章-操作系統(tǒng)接口要點(diǎn)課件_第5頁(yè)
已閱讀5頁(yè),還剩63頁(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)介

第十章

操作系統(tǒng)接口教學(xué)目的:

OS向用戶提供“用戶與操作系統(tǒng)的接口”,該接口支持用戶與OS之間進(jìn)行交互,該接口分為命令接口和程序接口兩類。掌握用戶與OS接口可使用戶更全面掌握OS使用。教學(xué)要求:熟悉用戶與操作系統(tǒng)的兩類接口:命令接口和程序接口。了解MS-DOS、WINDOWS98和UNIX的接口。2023/12/71(一)用戶與操作系統(tǒng)的接口

用戶接口

用戶接口是計(jì)算機(jī)系統(tǒng)與用戶之間進(jìn)行交互作用和通信的通路。對(duì)絕大多數(shù)用戶而言,一個(gè)計(jì)算機(jī)系統(tǒng)的可接受性在很大程度上取決于這個(gè)用戶接口。用戶接口分為命令接口和程序接口兩類。1。命令接口命令接口是籍助于在用戶和操作系統(tǒng)之間提供高級(jí)通信來(lái)控制一組程序的處理。這個(gè)接口之所以稱命令接口,是因?yàn)橛脩艨梢酝ㄟ^(guò)打入或在作業(yè)中發(fā)出一系列命令,告訴OS執(zhí)行那些功能。這一類接口是用于作業(yè)控制的,其中又分聯(lián)機(jī)用戶接口和脫機(jī)用戶接口。2023/12/72

聯(lián)機(jī)用戶接口:聯(lián)機(jī)用戶接口也叫交互式用戶接口,它用于聯(lián)機(jī)作業(yè)控制,它是由一組鍵盤操作命令組成。交互式用戶接口交互方式又分成二類,一類是字符方式終端命令,提供面向流的通信,如MS-DOS。另一類是圖形方式,提供“對(duì)話框”、“圖標(biāo)”、“菜單”等圖形用戶接口(GUI)如Windows。

脫機(jī)用戶接口也稱批處理用戶接口,它用于脫機(jī)作業(yè)控制。脫機(jī)作業(yè)控制又分為作業(yè)控制卡和作業(yè)說(shuō)明書(shū)兩種方式。2023/12/73用戶接口-1作業(yè)控制卡方式是指用戶將其操作意圖,用控制語(yǔ)言提供的有關(guān)作業(yè)控制命令穿孔在若干卡片上,以控制作業(yè)的運(yùn)行的一種形式。用戶按照要求將作業(yè)控制卡插入到作業(yè)卡片疊的適當(dāng)位置上。系統(tǒng)分批讀入這些卡片后開(kāi)始運(yùn)行,并按照這些控制卡的信息,指揮和控制作業(yè)的運(yùn)行,這些作業(yè)控制卡是早期的一種作業(yè)控制方式。作業(yè)說(shuō)明書(shū)也是用作業(yè)控制語(yǔ)言來(lái)表達(dá)用戶對(duì)作業(yè)控制意識(shí)的,在形式上同用高級(jí)編程語(yǔ)言編制的程序相似。相對(duì)于作業(yè)控制卡分散的缺點(diǎn)它具有集中、便于修改、靈活等優(yōu)點(diǎn)。美國(guó)1905機(jī)GEOGE語(yǔ)言是典型的高級(jí)算法的作業(yè)控制語(yǔ)言。2023/12/74用戶接口-22。程序接口程序接口是OS為正要運(yùn)行的程序提供服務(wù)并與之通信的一個(gè)設(shè)施,它供所有的用戶程序使用,也供OS的其它組成部分,特別是命令處理程序使用。當(dāng)一個(gè)程序正在執(zhí)行時(shí),程序接口接受對(duì)系統(tǒng)服務(wù)及資源申請(qǐng),并與OS的資源管理程序進(jìn)行通信。這個(gè)程序接口主要由系統(tǒng)調(diào)用組成。2023/12/75

系統(tǒng)調(diào)用是用戶在程序中調(diào)用OS所提供的一些子功能模塊,它是一種特殊的過(guò)程調(diào)用。用戶程序運(yùn)行在用戶態(tài)下,它通過(guò)軟件中斷進(jìn)入核心,調(diào)用系統(tǒng)過(guò)程(子模塊),運(yùn)行在核心態(tài),返回后仍在用戶態(tài)下運(yùn)行。用戶程序系統(tǒng)調(diào)用從功能上分可包括進(jìn)程管理、文件管理、信息維護(hù)、設(shè)備I/O管理等幾方面。系統(tǒng)調(diào)用過(guò)程大體上分成以下三步:設(shè)置系統(tǒng)調(diào)用號(hào)和參數(shù);系統(tǒng)調(diào)用命令的一般處理;系統(tǒng)調(diào)用命令處理程序做具體處理。2023/12/76(2)MS-DOS的接口1. MS-DOS層次模塊結(jié)構(gòu)

MS-DOS采用層次模塊結(jié)構(gòu),它有三個(gè)層次模塊和一個(gè)引導(dǎo)程序組成。這三個(gè)模塊是命令處理程序(COMMAND.COM)、文件系統(tǒng)(MS-DOS.SYS)和輸入輸出系統(tǒng)。其中基本輸入輸出系統(tǒng)又由駐在ROM中的基本輸入輸出系統(tǒng)BIOS和系統(tǒng)盤上的BIOS接口模塊(IO.SYS)兩部分組成。引導(dǎo)程序在盤引導(dǎo)區(qū)中。三個(gè)模塊的層次關(guān)系如圖所示。(返1)

INT10-INT1AINT21用戶程序

鍵盤命令命令處理程序

文件系統(tǒng)

輸入輸出系統(tǒng)2023/12/77(二)、命令接口1)命令接口在操作系統(tǒng)與計(jì)算機(jī)用戶之間提供易于理解的雙向通信機(jī)制基本任務(wù):解釋命令,傳送命令以便執(zhí)行接收系統(tǒng)信息,提交給用戶(以響應(yīng)語(yǔ)言的形式)包括:一組聯(lián)機(jī)命令,終端處理程序,命令解釋程序交互式命令的接口復(fù)雜含功能結(jié)構(gòu),可能問(wèn)題的處理,如各種約定、前端處理、命令日志、命令注解、宏命令及命令組等2023/12/78命令接口-1命令接口由命令處理器來(lái)實(shí)現(xiàn)命令處理器的實(shí)現(xiàn)方式:(a)作為OS的一個(gè)部分如,OS/MVT或VAX/VMS(b)作為OS的一個(gè)獨(dú)特模塊,能方便地修改或替換如,RT-11或CP/M(c)作為一易于被替換的普通程序如,UNIX操作系統(tǒng)(d)在某些系統(tǒng)中,可能用專門設(shè)計(jì)的命令接口替代標(biāo)準(zhǔn)的命令接口如,多用戶UNIX,用戶可有不同命令接口2023/12/792)終端處理程序用戶與操作系統(tǒng)的通信通過(guò)一個(gè)輸入/輸出裝置來(lái)實(shí)現(xiàn)I/O裝置是顯示終端和鍵盤輸入通過(guò)鍵盤:在有的系統(tǒng)中,可通過(guò)指示裝置(例如鼠標(biāo))輸入系統(tǒng)輸入呈現(xiàn)在顯示屏幕上,一次顯示若干正文行(某些系統(tǒng)中,提供圖形顯示功能)不管哪種I/O方式,終端裝置是由終端處理程序管理和控制2023/12/710終端處理程序-1終端處理程序提供的輸入輸出方式對(duì)整個(gè)用戶命令接口有重大影響,也確定了用戶與其應(yīng)用程序之間的通信方式終端處理程序必須作為用戶接口的一個(gè)組成部分來(lái)考慮即,直接影響命令接口的一些問(wèn)題須由終端處理程序解決2023/12/711終端處理程序-2直接影響命令接口的一些問(wèn)題a)回送顯示(Echoing)通常,每從鍵盤打入一個(gè)字符,終端處理程序回送響應(yīng)的字符到顯示屏上有時(shí)用戶要求其顯示一個(gè)不同的字符或不顯示(例如,用戶鍵入口令時(shí))對(duì)于通過(guò)遠(yuǎn)程通信線路訪問(wèn)的終端,可能需要抑制這種回送委托給遠(yuǎn)程終端實(shí)現(xiàn)回送顯示2023/12/712終端處理程序-3(b)提前打入(Typeahead)

假定輸入字符在一程序準(zhǔn)備處理它們之前打入,則由“提前打入進(jìn)程”把它們保存在緩沖區(qū)中緩沖區(qū)容量是有限,當(dāng)其存滿后,再有輸入時(shí),或者漏掉,或者將破壞緩沖區(qū)原有的內(nèi)容(c)字符變換有些情況下,需要對(duì)打入的字符進(jìn)行代碼變換如,把小寫字母轉(zhuǎn)換成大寫字母,或者反之2023/12/713終端處理程序-3d)行緩沖打入的字符在送到程序前,由終端接口保存,直到整個(gè)命令行打入為止為用戶提供了校驗(yàn)、編輯,甚至取消命令的機(jī)會(huì)(e)中斷字符(BreakCharacters)

多數(shù)交互式命令接口可以接受一些稱為中斷字符的特殊字符,并立即采取相應(yīng)的行動(dòng)如,在許多系統(tǒng)中,同時(shí)打入CTRL-C鍵,立即終止當(dāng)前程序執(zhí)行,并使命令處理程序重新初始化2023/12/7143)命令解釋程序?qū)γ钣袃煞N處理方法:(a)由命令解釋程序直接處理在沒(méi)有創(chuàng)建子進(jìn)程功能的系統(tǒng)中終端命令通常由對(duì)應(yīng)的命令解釋程序處理在這種系統(tǒng)中,只有一個(gè)進(jìn)程對(duì)應(yīng)一個(gè)終端用戶(b)由子進(jìn)程代為處理在具有創(chuàng)建子進(jìn)程功能的系統(tǒng)中,對(duì)于較為單純的命令,如列目錄,拷貝文件等,命令解釋程序本身便能完成,此時(shí)由命令解釋程序直接處理對(duì)較復(fù)雜命令,如對(duì)于C源程序進(jìn)行編譯,命令解釋程序本身不能處理,此時(shí)創(chuàng)建一個(gè)子進(jìn)程,并由該子進(jìn)程運(yùn)行C編譯程序2023/12/7154)命令語(yǔ)言命令語(yǔ)言規(guī)定由OS執(zhí)行的一系列操作在一般的命令語(yǔ)言中,用戶通過(guò)打入稱為命令行的一行指令來(lái)規(guī)定每一個(gè)動(dòng)作每一命令行以命令開(kāi)始,它標(biāo)識(shí)所要執(zhí)行的操作大多數(shù)命令是用運(yùn)行一個(gè)程序來(lái)執(zhí)行所請(qǐng)求的操作多數(shù)命令行中要給出一些參數(shù),每一命令語(yǔ)句實(shí)際上是帶有參數(shù)的一個(gè)過(guò)程調(diào)用2023/12/716命令語(yǔ)言-1一種命令語(yǔ)言通常提供幾類命令:(1)系統(tǒng)訪問(wèn)命令 登錄命令,如,login等 撤離命令,如,logout等(2)文件管理命令(3)編輯、編譯和執(zhí)行命令(4)詢問(wèn)命令(5)操作員專用命令2023/12/717命令語(yǔ)言-2命令行:規(guī)定由操作系統(tǒng)執(zhí)行的一系列操作命令行:一行可有一個(gè)或多個(gè)命令,每次一行,包含一個(gè)或多個(gè)命令。shell給出提示符時(shí)可輸入,以回車鍵提交。如:“l(fā)s-a-l”列出當(dāng)前目錄文件列表;"gunzipmp1.tar.gz;tar-xvfmp1.tar;\rm-r-fmp1.tar"為解壓縮后再展開(kāi)。命令格式:一個(gè)命令可有命令參數(shù),格式包括選項(xiàng)/開(kāi)關(guān)(option/switch)或參數(shù)(argument)。如UNIX系統(tǒng):cp-rdoc/tmp--argv[0],argv[1],...(含子目錄的文件復(fù)制:/tmp為目標(biāo)地址)2023/12/718命令語(yǔ)言-3命令分類:內(nèi)部命令和外部命令內(nèi)部命令:直接由shell本身完成,功能簡(jiǎn)單、使用頻繁;如:DOS的copy命令。外部命令:運(yùn)行相應(yīng)的可執(zhí)行文件,在使用時(shí)加載。如:DOS的xcopy命令命令簡(jiǎn)化:利用參數(shù)替換可簡(jiǎn)化命令輸入,通配符(?,*)用于匹配一組文件名如:UNIX的cp命令:當(dāng)前目錄上有兩個(gè)"1.tar"和"2.tar"時(shí),"cp*.tar/tmp"等同于"cp1.tar/tmp;cp2.tar/tmp"2023/12/719命令語(yǔ)言-4命令的附加功能命令的附加功能用以擴(kuò)大命令的功能性、選擇性、適應(yīng)性。包括:(1)參數(shù)與變量位置變量關(guān)鍵字變量(2)命令通配符(3)重定向(4)管道與過(guò)濾器2023/12/720(三)圖形用戶接口GUI命令行方式:要求用戶記憶命令格式圖形用戶接口方式:用戶可利用鼠標(biāo)對(duì)屏幕上的圖標(biāo)進(jìn)行操作,完成與操作系統(tǒng)的交互,從而減少記憶內(nèi)容,方便用戶使用。圖形用戶接口的技術(shù)基礎(chǔ):高分辯顯示器和鼠標(biāo)2023/12/7211)窗口系統(tǒng)(windowsystem)的特點(diǎn)利用圖形元素表示功能:將各種圖形元素顯示在屏幕上,用戶可以通過(guò)操縱圖形元素(如菜單、圖標(biāo))來(lái)執(zhí)行相應(yīng)的功能同屏多窗口與并發(fā)進(jìn)程相對(duì)應(yīng):屏幕上同時(shí)顯示多個(gè)窗口;一個(gè)進(jìn)程可以對(duì)應(yīng)一個(gè)或多個(gè)窗口;窗口動(dòng)態(tài)創(chuàng)建、改變、撤銷交互的并發(fā)性好、傳遞信息量大輸入方式:鼠標(biāo)指針點(diǎn)擊(或其他定位設(shè)備)和鍵盤輸入;通常是即時(shí)交互一致的圖形元素風(fēng)格可方便用戶學(xué)習(xí)和使用:如按鈕、滾動(dòng)條2023/12/722

2)窗口系統(tǒng)的圖形元素及其狀態(tài)窗口:屏幕上的矩形區(qū)域包括:標(biāo)題條、邊框、窗口角、系統(tǒng)菜單框、最大化/最小化按鈕、滾動(dòng)條等狀態(tài):當(dāng)前/非當(dāng)前窗口--接受輸入,最大化/最小化/恢復(fù)原大小,窗口的前后遮蓋--Z軸,焦點(diǎn)--接受鍵盤輸入(而非鼠標(biāo))桌面和墻紙圖標(biāo):一個(gè)小圖象(如32x32或64x64pixel),供鼠標(biāo)指針點(diǎn)擊。不同的圖標(biāo)可以標(biāo)識(shí)不同的對(duì)象。如:可執(zhí)行程序、最小化的窗口、文件--動(dòng)畫(huà)圖標(biāo)2023/12/723窗口系統(tǒng)的圖形元素及其狀態(tài)-1鼠標(biāo)指針:鼠標(biāo)指針通常對(duì)應(yīng)屏幕上的光標(biāo)光標(biāo)在屏幕上只有一個(gè),在不同屏幕位置(上下文)可以呈現(xiàn)不同形狀,可以獨(dú)立于鼠標(biāo)來(lái)直接操縱光標(biāo)鼠標(biāo)點(diǎn)擊:左鍵/右鍵/中鍵,單擊/雙擊,拖曳/拖放按鈕:鼠標(biāo)點(diǎn)擊或按回車鍵/空格鍵時(shí)執(zhí)行相應(yīng)功能,如menubutton;提供單項(xiàng)或多項(xiàng)選擇,如radiobutton和checkbutton;當(dāng)前按鈕及其切換菜單:臨時(shí)窗口,菜單條、彈出式菜單、下拉式菜單(上下文相關(guān)菜單)對(duì)話框:臨時(shí)窗口,顯示提示信息(message)或填寫用戶設(shè)置2023/12/7243)窗口管理器(windowmanager):

形成統(tǒng)一的使用風(fēng)格處理窗口的普遍特性,如:窗口的大小、位置(窗口的標(biāo)題條、邊框、控制菜單框)--窗口中由應(yīng)用程序管理的部分稱為"客戶區(qū)(clientarea)"協(xié)調(diào)各窗口間的相互關(guān)系,如:窗口之間的前后遮蓋關(guān)系,桌面2023/12/725(四)系統(tǒng)調(diào)用系統(tǒng)調(diào)用:用戶在程序中調(diào)用操作系統(tǒng)所提供的一些子功能這是特殊的過(guò)程調(diào)用,由特殊的機(jī)器指令實(shí)現(xiàn)(每種機(jī)器的機(jī)器指令集中都有一條系統(tǒng)調(diào)用指令——訪管指令)這條指令將系統(tǒng)轉(zhuǎn)入管態(tài)系統(tǒng)調(diào)用是一個(gè)低級(jí)過(guò)程,只能由匯編語(yǔ)言直接訪問(wèn)系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口利用系統(tǒng)調(diào)用,動(dòng)態(tài)請(qǐng)求和釋放系統(tǒng)資源完成與硬件相關(guān)的工作以及控制程序的執(zhí)行等每個(gè)操作系統(tǒng)都提供幾百種系統(tǒng)調(diào)用2023/12/7261)系統(tǒng)調(diào)用簡(jiǎn)介系統(tǒng)調(diào)用的例子-1匯編程序例子:打印5個(gè)字符

方法1:調(diào)用DOS功能

MOVEA,PARA1MOVEB,PARA2

INT21H2023/12/727系統(tǒng)調(diào)用簡(jiǎn)介-1系統(tǒng)調(diào)用的例子-2方法2:用OUT語(yǔ)句直接打印

L1:MOVEA,IINADDR1,BORB,BSJNCL1

OUTADDR2,ARET2023/12/728系統(tǒng)調(diào)用簡(jiǎn)介-2I/O設(shè)備的硬件接口一般由四種寄存器(地址,數(shù)據(jù),狀態(tài),控制)或其子集組成任一程序中若要使用I/O設(shè)備來(lái)輸出數(shù)據(jù)或接受輸入必須通過(guò)對(duì)這四種寄存器讀寫的I/O機(jī)器指令進(jìn)行2023/12/729系統(tǒng)調(diào)用簡(jiǎn)介-3系統(tǒng)調(diào)用的例子-3匯編程序例子2:讀寫硬盤文件內(nèi)容

MOVEDX,OFFSETBUFFMOVECX,BYTEMOVEBX,HANDLEMOVEAH,3FH

INT21H2023/12/730系統(tǒng)調(diào)用簡(jiǎn)介-4系統(tǒng)調(diào)用的例子-4磁盤讀寫的例子:更復(fù)雜原因:

A、磁盤的控制和狀態(tài)接口寄存器比打印機(jī)的復(fù)雜的多,而且還有地址接口寄存器

B、通常一個(gè)外存存儲(chǔ)介質(zhì)上可以存放多個(gè)文件,隨著文件的建立、刪除和拷貝在不停地變化,每個(gè)文件的長(zhǎng)度隨著其內(nèi)容的變化而不停地變化2023/12/731系統(tǒng)調(diào)用簡(jiǎn)介-5系統(tǒng)調(diào)用的例子-5高級(jí)語(yǔ)言例子:打印5個(gè)字符

charbuff[4]=“abcde”;for(i=4;i>=0;i--)

print(buff[i]);高級(jí)語(yǔ)言例子:讀硬盤文件f1的第10到20個(gè)字節(jié)

seek(fd,10,0);

read(fd,buff,11);2023/12/732系統(tǒng)調(diào)用簡(jiǎn)介-6

......A=A+1printf(...)B=B+A(1)源程序段2023/12/733系統(tǒng)調(diào)用簡(jiǎn)介-6(續(xù))

INT......INTA=A+1B=B+A............INOUT...嵌入后該系統(tǒng)調(diào)用的操作系統(tǒng)內(nèi)部實(shí)現(xiàn)代碼(2)printf目標(biāo)代碼(3)程序段編譯產(chǎn)生的可執(zhí)行代碼(4)操作系統(tǒng)內(nèi)部代碼2023/12/734系統(tǒng)調(diào)用簡(jiǎn)介-7凡是與硬件相關(guān)、與應(yīng)用無(wú)關(guān)的工作,都通過(guò)操作系統(tǒng)程序來(lái)完成用戶程序函數(shù)操作系統(tǒng)2023/12/7352)系統(tǒng)調(diào)用的處理過(guò)程需要有一個(gè)類似于硬件中斷處理的處理機(jī)構(gòu)。當(dāng)用戶使用系統(tǒng)調(diào)用時(shí),產(chǎn)生一條相應(yīng)的指令。處理機(jī)在執(zhí)行到該指令時(shí)發(fā)生相應(yīng)的中斷,并發(fā)出有關(guān)的信號(hào)給該處理機(jī)構(gòu),該處理機(jī)構(gòu)在收到了處理機(jī)發(fā)來(lái)的信號(hào)后,啟動(dòng)相關(guān)的處理程序去完成該系統(tǒng)調(diào)用所要求的功能2023/12/736系統(tǒng)調(diào)用的處理過(guò)程-1在系統(tǒng)中為控制系統(tǒng)調(diào)用服務(wù)的機(jī)構(gòu)稱為陷入(TRAP)或異常處理機(jī)構(gòu)相對(duì)應(yīng),把由于系統(tǒng)調(diào)用引起處理機(jī)中斷的指令稱為陷入或異常指令(或稱訪管指令)在操作系統(tǒng)中,每個(gè)系統(tǒng)調(diào)用都對(duì)應(yīng)一個(gè)事先給定的功能號(hào),例如0、1、2、3等,稱為系統(tǒng)調(diào)用功能號(hào)(在陷入指令中必須包括對(duì)應(yīng)系統(tǒng)調(diào)用的功能號(hào)有些陷入指令中,還帶有傳給陷入處理機(jī)構(gòu)和內(nèi)部處理程序的有關(guān)參數(shù))2023/12/737系統(tǒng)調(diào)用的處理過(guò)程-1(續(xù))必須為實(shí)現(xiàn)系統(tǒng)調(diào)用功能的子程序編造入口地址表每個(gè)入口地址與相應(yīng)的系統(tǒng)調(diào)用執(zhí)行程序名對(duì)應(yīng)陷入處理程序把陷入指令包含功能號(hào)與入口地址表有關(guān)項(xiàng)對(duì)應(yīng),驅(qū)動(dòng)有關(guān)子程序執(zhí)行在系統(tǒng)調(diào)用處理結(jié)束之后,用戶程序需利用系統(tǒng)調(diào)用返回結(jié)果繼續(xù)執(zhí)行保護(hù)現(xiàn)場(chǎng):進(jìn)入系統(tǒng)調(diào)用處理前,陷入處理機(jī)構(gòu)還需保存處理機(jī)現(xiàn)場(chǎng)在系統(tǒng)調(diào)用處理結(jié)束之后,要恢復(fù)處理機(jī)現(xiàn)場(chǎng),現(xiàn)場(chǎng)被保護(hù)在特定的內(nèi)存區(qū)或寄存器中。2023/12/738用戶程序陷入處理機(jī)構(gòu)系統(tǒng)子程序

systemcall

入口地址表

(1)保護(hù)處理現(xiàn)場(chǎng)(2)取系統(tǒng)調(diào)用功能號(hào)并尋找子程序入口(3)返回A0A1Ai

AnA0A1AiAnSub0Sub1SubiSubn系統(tǒng)調(diào)用的處理過(guò)程2023/12/739read(fd,buffer,nbytes)系統(tǒng)調(diào)用處理過(guò)程-22023/12/7403)參數(shù)傳遞過(guò)程問(wèn)題怎樣實(shí)現(xiàn)用戶程序和系統(tǒng)程序間的參數(shù)傳遞?常用的3種實(shí)現(xiàn)方法:由陷入指令自帶參數(shù):陷入指令的長(zhǎng)度有限的,且還要攜帶系統(tǒng)調(diào)用功能號(hào),只能自帶有限的參數(shù)通過(guò)有關(guān)通用寄存器來(lái)傳遞參數(shù):這些寄存器應(yīng)是系統(tǒng)程序和用戶程序都能訪問(wèn),由于寄存器長(zhǎng)度較短,從法傳遞較多的參數(shù)大多在內(nèi)存中開(kāi)辟專用堆棧區(qū)來(lái)傳遞參數(shù)2023/12/7414)系統(tǒng)調(diào)用的分類系統(tǒng)功能可分為兩部分系統(tǒng)自身所需要的作為服務(wù)提供給用戶的OS的系統(tǒng)調(diào)用:進(jìn)程控制類系統(tǒng)調(diào)用文件操作類系統(tǒng)調(diào)用進(jìn)程通信類系統(tǒng)調(diào)用設(shè)備管理類系統(tǒng)調(diào)用信息維護(hù)類系統(tǒng)調(diào)用2023/12/7425)系統(tǒng)調(diào)用與一般過(guò)程調(diào)用比較系統(tǒng)調(diào)用方式(INT)與程序中一般的調(diào)用方式的相同點(diǎn):改變指令流程重復(fù)執(zhí)行和公用改變指令流程后需要返回原處系統(tǒng)調(diào)用方式(INT)與程序中一般的調(diào)用方式的不同點(diǎn):2023/12/743系統(tǒng)調(diào)用與一般過(guò)程調(diào)用比較-1運(yùn)行在不同的系統(tǒng)狀態(tài)

一般過(guò)程調(diào)用,其調(diào)用程序和被調(diào)用程序都運(yùn)行在相同狀態(tài):核心態(tài)或用戶態(tài)系統(tǒng)調(diào)用:調(diào)用程序在用戶態(tài),被調(diào)用程序在系統(tǒng)態(tài)狀態(tài)的轉(zhuǎn)換一般的過(guò)程調(diào)用不涉及系統(tǒng)狀態(tài)的轉(zhuǎn)換,可直接由調(diào)用過(guò)程轉(zhuǎn)向被調(diào)用過(guò)程運(yùn)行系統(tǒng)調(diào)用時(shí),調(diào)用和被調(diào)用過(guò)程在不同系統(tǒng)狀態(tài),不允許由調(diào)用過(guò)程直接轉(zhuǎn)向被調(diào)用過(guò)程通過(guò)軟中斷機(jī)制先由用戶態(tài)轉(zhuǎn)換為核心態(tài)在OS核心分析后,轉(zhuǎn)向相應(yīng)的系統(tǒng)調(diào)用處理子程序2023/12/744系統(tǒng)調(diào)用與一般過(guò)程調(diào)用比較-2返回問(wèn)題一般過(guò)程調(diào)用在被調(diào)用過(guò)程執(zhí)行完后,返回調(diào)用過(guò)程搶占式調(diào)度的系統(tǒng)中,被調(diào)用過(guò)程執(zhí)行完后,系統(tǒng)將對(duì)所有要求運(yùn)行的進(jìn)程進(jìn)行優(yōu)先級(jí)分析。如果調(diào)用進(jìn)程仍有最高優(yōu)先級(jí),則返回到調(diào)用進(jìn)程執(zhí)行否則,引起重新調(diào)度,讓優(yōu)先級(jí)最高的進(jìn)程優(yōu)先執(zhí)行。此時(shí),系統(tǒng)把調(diào)用進(jìn)程放入就緒隊(duì)列嵌套或遞歸調(diào)用對(duì)系統(tǒng)調(diào)用,一般不允許在同一個(gè)進(jìn)程中發(fā)生嵌套或遞歸(不同進(jìn)程可以重入同一個(gè)系統(tǒng)調(diào)用)2023/12/745系統(tǒng)調(diào)用與一般過(guò)程調(diào)用比較-3

進(jìn)入方式不同利用int或trap指令進(jìn)行系統(tǒng)調(diào)用;利用call或jmp指令進(jìn)入普通的過(guò)程調(diào)用CALL指令的內(nèi)部實(shí)現(xiàn)過(guò)程返回地址壓棧(即該CALL指令所在的地址)將該CALL指令中所含的地址(即被調(diào)用代碼所在地址)送入PCRET指令的內(nèi)部實(shí)現(xiàn)過(guò)程從棧頂彈出返回地址送入程序計(jì)數(shù)器PC2023/12/746系統(tǒng)調(diào)用與一般過(guò)程調(diào)用比較-4系統(tǒng)調(diào)用是動(dòng)態(tài)調(diào)用,而CALL調(diào)用方式是靜態(tài)調(diào)用a.同一程序中不包含被調(diào)用代碼系統(tǒng)調(diào)用是動(dòng)態(tài)調(diào)用,程序中不包含被調(diào)用代碼,好處:(1)用戶程序長(zhǎng)度縮短(2)當(dāng)OS升級(jí)時(shí),調(diào)用方不必改變2023/12/747系統(tǒng)調(diào)用與一般過(guò)程調(diào)用比較-5b.系統(tǒng)調(diào)用方式的調(diào)用地址和返回地址都是不固定的系統(tǒng)調(diào)用指令中不包含調(diào)用地址,只包含功能號(hào)是按功能號(hào)(在可執(zhí)行目標(biāo)程序中)調(diào)用的。在操作系統(tǒng)內(nèi)部由系統(tǒng)調(diào)用處理程序通過(guò)系統(tǒng)調(diào)用分支表(OS的一個(gè)數(shù)據(jù)結(jié)構(gòu))將功能號(hào)轉(zhuǎn)換為相應(yīng)的指令地址2023/12/748系統(tǒng)調(diào)用與一般過(guò)程調(diào)用比較-6...功能號(hào)地址顯示打印讀文件.........OS的系統(tǒng)調(diào)用分支表OS代碼顯示打印讀文件OS用戶程序INT..................2023/12/749系統(tǒng)調(diào)用與一般過(guò)程調(diào)用比較-7系統(tǒng)調(diào)用返回指令中不包括返回地址,通過(guò)棧保存和彈出返回地址系統(tǒng)調(diào)用返回地址不固定,因?yàn)橛脩舫绦蛟诓煌牡胤秸{(diào)用OSCALL調(diào)用方式是靜態(tài)調(diào)用,被調(diào)用代碼與調(diào)用代碼在同一程序之內(nèi)。CALL調(diào)用方式,其調(diào)用地址是固定的,包含在調(diào)用語(yǔ)句中;返回地址是不固定的(同一子程序可能被不同處多次調(diào)用),在程序執(zhí)行過(guò)程中通過(guò)棧的實(shí)現(xiàn)來(lái)保存和彈出返回地址2023/12/750系統(tǒng)調(diào)用與一般過(guò)程調(diào)用比較-8

INT指令和IRET指令的執(zhí)行過(guò)程中要處理程序狀態(tài)字PSW。INT指令中要保存用戶程序的老PSW,并根據(jù)中斷向量表設(shè)置新PSW。IRET指令中要在返回用戶程序前恢復(fù)用戶程序的老PSW。系統(tǒng)態(tài)與用戶態(tài)的轉(zhuǎn)換由系統(tǒng)在INT指令與IRET指令內(nèi)部自動(dòng)完成沒(méi)有用一條單獨(dú)的專門指令。好處:有效地防止在系統(tǒng)態(tài)下執(zhí)行用戶程序2023/12/751(五)操作系統(tǒng)接口實(shí)例1)MS-DOS層次模塊結(jié)構(gòu)

MS-DOS采用層次模塊結(jié)構(gòu),它有三個(gè)層次模塊和一個(gè)引導(dǎo)程序組成。這三個(gè)模塊是命令處理程序(COMMAND.COM)、文件系統(tǒng)(MS-DOS.SYS)和輸入輸出系統(tǒng)。其中基本輸入輸出系統(tǒng)又由駐在ROM中的基本輸入輸出系統(tǒng)BIOS和系統(tǒng)盤上的BIOS接口模塊(IO.SYS)兩部分組成。引導(dǎo)程序在盤引導(dǎo)區(qū)中。三個(gè)模塊的層次關(guān)系如圖所示。

INT10-INT1AINT21用戶程序

鍵盤命令命令處理程序

文件系統(tǒng)

輸入輸出系統(tǒng)1、MS-DOS的接口2023/12/752MS-DOS的接口-12)MS-DOS的命令接口—-鍵盤命令選盤命令:<盤符><CR>例如:A:控制鍵和編輯鍵:例如:Ctrl+Alt+Del系統(tǒng)復(fù)位鍵;<F1>復(fù)制字符鍵等。內(nèi)部命令:它是OS內(nèi)部提供的OS功能子模塊的命令,例如Dir顯示目錄命令等。外部命令:它是存在磁盤上完成某功能可執(zhí)行文件、需要時(shí)調(diào)入內(nèi)存執(zhí)行的命令,它有以下幾種類型。擴(kuò)展名為.com文件是可執(zhí)行的二進(jìn)制代碼文件。擴(kuò)展名.exe文件是可執(zhí)行浮動(dòng)二進(jìn)制代碼文件。擴(kuò)展名為.bat文件是批處理文件,批處理文件中可包含內(nèi)部命令、外部命令以及一些特殊的批處理文件命令。2023/12/753MS-DOS的接口-23)MS-DOS程序接口程序員通過(guò)軟件中斷和系統(tǒng)調(diào)用使用MS-DOS提供的功能。用文件系統(tǒng)模塊提供的功能-INT21HMS-DOS文件系統(tǒng)子功能模塊的功能是系統(tǒng)調(diào)INT21,它是字符I/O高級(jí)方式,它獨(dú)立于硬件且與其它操作系統(tǒng)兼容。它包括設(shè)備管理、文件管理、目錄管理等功能。用輸入輸出系統(tǒng)模塊提供的功能--INT10H-INT1AHMS-DOS的輸入輸出系統(tǒng)模塊提供的功能調(diào)用是INT10H-INT1AH。其中INT10H調(diào)用顯示驅(qū)動(dòng)程序,INT16H調(diào)用鍵盤驅(qū)動(dòng)程序,INT17H調(diào)用打印機(jī)驅(qū)動(dòng)程序,INT13H調(diào)用磁盤I/O驅(qū)動(dòng)程序。2023/12/754MS-DOS的接口-3下面以5.6.1節(jié)說(shuō)明INT13系統(tǒng)調(diào)用的過(guò)程。l 調(diào)用號(hào)送寄存器AHmovAH,02l 置入口參數(shù)almovAL,01BxmovBx,200CxmovCx,0001Dxmovdx,0080l 調(diào)用INT13INT3l 執(zhí)行-g=100l 分析出口參數(shù)-d3be3fe觀察分區(qū)表2023/12/7552、WINDOWS98的接口1)Windows98用戶界面結(jié)構(gòu)

Windows98使用新的32位的用戶界面,提供統(tǒng)一的工具來(lái)瀏覽網(wǎng)絡(luò),局域網(wǎng)及Internet信息。這些包含了一些桌面工具,包括網(wǎng)絡(luò)鄰居,可選擇的活動(dòng)桌面接口,可選擇的頻道接口。Windows98基本組件結(jié)構(gòu)中用戶界面的細(xì)框圖如下圖所示。這些工具同其它的基于Win32的、基于Win16的、以及基于MS-DOS的應(yīng)用程序在同一結(jié)構(gòu)層次上運(yùn)行。所有的應(yīng)用程序及工具可以從殼層提供的公用控制中得到好處,例如公用對(duì)話框、目錄樹(shù)形顯示和列表顯示等。用戶接口工具(網(wǎng)絡(luò)鄰居等)進(jìn)程指示、工具、使用對(duì)話框、列表顯示、樹(shù)形顯示等2023/12/756WINDOWS98的接口-12)Windows98命令接口――圖形用戶接口(GUI)GUI的基本元素有:窗口:是指屏幕上的一塊矩形區(qū)域,應(yīng)用程序(包括文擋)可通過(guò)窗口向用戶展示系統(tǒng)所能提供的各種服務(wù)及其需要用戶輸入的信息,用戶可通過(guò)窗口去查看和操縱應(yīng)用程序和文擋。窗口由標(biāo)題攔、垂直、水平滾動(dòng)條、控制按鈕、最大化、最小化按鈕、還原按鈕、關(guān)閉按鈕等組成。圖標(biāo):它是代表一個(gè)應(yīng)用程序或文件的一個(gè)小圖象,它也是最小化窗口,通過(guò)對(duì)圖標(biāo)的操作可激活相應(yīng)的程序(選擇它在前臺(tái)運(yùn)行)和啟動(dòng)應(yīng)用程序。2023/12/757WINDOWS98的接口-2菜單:用戶在窗口中對(duì)應(yīng)用程序所能執(zhí)行的各種操作是以菜單的形式提供的。菜單一般是由菜單名和若干菜單項(xiàng)所組成。每一菜單項(xiàng)通常都對(duì)應(yīng)于相關(guān)的命令或功能。用戶可用鼠標(biāo)或鍵盤在菜單中選擇一菜單項(xiàng),來(lái)向系統(tǒng)提出相應(yīng)的服務(wù)請(qǐng)求,當(dāng)用戶選擇某菜單項(xiàng)時(shí),有時(shí)便出現(xiàn)彈出菜單和下拉式菜單。對(duì)話框:它是在桌面上的帶有標(biāo)題條和控制菜單的一個(gè)臨時(shí)窗口,又稱為對(duì)話窗口。其主要用途是系統(tǒng)可通過(guò)對(duì)話框提示用戶輸入與任務(wù)有關(guān)的信息,或向用戶提供可能需要的信息。對(duì)話框由文本框、列表框、命令按鈕、單選按鈕和復(fù)選按鈕組成。

2023/12/758WINDOWS98的接口-33)Win32應(yīng)用程序接口――API在Windows中,定義了一系列程序(應(yīng)用程序接口Win32API),提供OS服務(wù)這個(gè)接口(部分)支持Win95以后的Windows版本W(wǎng)in32API調(diào)用的種類非常多,以千計(jì)算在Windows中不可能分辨出哪些是系統(tǒng)調(diào)用(被內(nèi)核執(zhí)行),哪些是用戶空間的庫(kù)調(diào)用事實(shí)上,一個(gè)Windows版本中的系統(tǒng)調(diào)用也許在另一個(gè)Windows版本中會(huì)在用戶空間執(zhí)行由于圖形子系統(tǒng)在內(nèi)核中運(yùn)行(在某些Windows版本中),它們也是系統(tǒng)調(diào)用,否則是庫(kù)調(diào)用2023/12/759WINDOWS98的接口-4編寫Windows應(yīng)用程序,除了用到常規(guī)編程語(yǔ)言的庫(kù)函數(shù)和數(shù)據(jù)結(jié)構(gòu)外,還需使用由WindowsSDK提供的適用于Windows應(yīng)用程序的特殊庫(kù)函數(shù)及和各種數(shù)據(jù)結(jié)構(gòu)、語(yǔ)句、文件結(jié)構(gòu),所有這些內(nèi)容構(gòu)成了Windows應(yīng)用程序設(shè)計(jì)接口(API)??梢园袮PI視作一個(gè)有各類工具的集合,如果使用得當(dāng),這些工具開(kāi)發(fā)出來(lái)的Windows應(yīng)用程序,可適當(dāng)用各種類型的計(jì)算機(jī)(PC機(jī))。Windows應(yīng)用程序可以充分利用API提供的各種特征。這些特征是:幾個(gè)應(yīng)用程序共享顯示器、內(nèi)存、鍵盤、鼠標(biāo)和系統(tǒng)計(jì)時(shí)器,應(yīng)用程序之間的數(shù)據(jù)變換與設(shè)備無(wú)關(guān)的圖形功能;多任務(wù);動(dòng)態(tài)鏈接。2023/12/760WINDOWS98的接口-5WindowsAPI函數(shù)可分為窗口管理接口函數(shù)、圖形設(shè)備接口(GDI)函數(shù)和系統(tǒng)服務(wù)接口函數(shù)等三類函數(shù)。窗口接口函數(shù)包括創(chuàng)建、移動(dòng)和修改窗口函數(shù);建立、修改菜單,獲得菜單項(xiàng)狀態(tài)等功能的函數(shù);建立系統(tǒng)輸出的函數(shù);消息管理和處理的函數(shù)等。圖形設(shè)備接口函數(shù)包括了Windows應(yīng)用程序中執(zhí)行與設(shè)備無(wú)關(guān)的圖形操作所需的各類函數(shù),這些操作包括在幾種輸出設(shè)備上畫(huà)各種類型的線條、文字和位映射圖象的函數(shù)。系統(tǒng)服務(wù)接口函數(shù)包括GDI支持多任務(wù)而提供的函數(shù),涉及多任務(wù)和內(nèi)存管理函數(shù)。2023/12/7613、UNIX(LINUX)系統(tǒng)調(diào)用1)進(jìn)程控制fork系統(tǒng)調(diào)用創(chuàng)建新的子進(jìn)程格式:intfork()

fork調(diào)用返回時(shí),系統(tǒng)中已有兩個(gè)用戶級(jí)環(huán)境完全相同的進(jìn)程在在,這兩個(gè)進(jìn)程從fork調(diào)用中得到的返回值不同,其中子進(jìn)程得到的返回值為零,父進(jìn)程得到的返回值是新創(chuàng)建子進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào)。exec系統(tǒng)調(diào)用格式:(六種)

intexecl(path,arg0,arg1,…,argn,(char*)0)char*path,*arg0,*arg1,…,*argn;exec調(diào)用進(jìn)程的正文段被指定的目標(biāo)文件的正文段所覆蓋,其屬性的變化方式與fork成功后從父進(jìn)程那里繼承屬性的方式幾乎是一樣的。系統(tǒng)中絕大多數(shù)命令都是通過(guò)exec來(lái)執(zhí)行的,不但shell進(jìn)程所創(chuàng)建的子進(jìn)程使用它來(lái)執(zhí)行用戶命令,shell進(jìn)程本身和它的祖先進(jìn)程也是用exec來(lái)啟動(dòng)執(zhí)行的。2023/12/762UNIX(LINUX)系統(tǒng)調(diào)用-1exit系統(tǒng)調(diào)用終止進(jìn)程執(zhí)行格式:voidexit(status)intstatus;參數(shù)status是調(diào)用進(jìn)程終止時(shí)傳遞給其父進(jìn)程的值。如調(diào)用進(jìn)程還有子進(jìn)程,則將其所有子進(jìn)程的父進(jìn)程改為1號(hào)進(jìn)程。wait系統(tǒng)調(diào)用等待子進(jìn)程暫仃或終止格式:intwait(stat_loc)intwait((int*)0)intstat_loc;

wait調(diào)用將調(diào)用進(jìn)程掛起,直到該進(jìn)程收到一個(gè)被其捕獲的信號(hào)或者它的任何一個(gè)子進(jìn)程暫仃或終止為止。如果wait調(diào)用之前已有子進(jìn)程暫仃或終止,則該調(diào)用立即返回。2023/12/763UNIX(LINUX)系統(tǒng)調(diào)用-22)文件基本操作creat系統(tǒng)調(diào)用創(chuàng)建普通文件格式:#include<sys/

溫馨提示

  • 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)論