版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第十章
操作系統(tǒng)接口教學目的:
OS向用戶提供“用戶與操作系統(tǒng)的接口”,該接口支持用戶與OS之間進行交互,該接口分為命令接口和程序接口兩類。掌握用戶與OS接口可使用戶更全面掌握OS使用。教學要求:熟悉用戶與操作系統(tǒng)的兩類接口:命令接口和程序接口。了解MS-DOS、WINDOWS98和UNIX的接口。2023/12/71(一)用戶與操作系統(tǒng)的接口
用戶接口
用戶接口是計算機系統(tǒng)與用戶之間進行交互作用和通信的通路。對絕大多數(shù)用戶而言,一個計算機系統(tǒng)的可接受性在很大程度上取決于這個用戶接口。用戶接口分為命令接口和程序接口兩類。1。命令接口命令接口是籍助于在用戶和操作系統(tǒng)之間提供高級通信來控制一組程序的處理。這個接口之所以稱命令接口,是因為用戶可以通過打入或在作業(yè)中發(fā)出一系列命令,告訴OS執(zhí)行那些功能。這一類接口是用于作業(yè)控制的,其中又分聯(lián)機用戶接口和脫機用戶接口。2023/12/72
聯(lián)機用戶接口:聯(lián)機用戶接口也叫交互式用戶接口,它用于聯(lián)機作業(yè)控制,它是由一組鍵盤操作命令組成。交互式用戶接口交互方式又分成二類,一類是字符方式終端命令,提供面向流的通信,如MS-DOS。另一類是圖形方式,提供“對話框”、“圖標”、“菜單”等圖形用戶接口(GUI)如Windows。
脫機用戶接口也稱批處理用戶接口,它用于脫機作業(yè)控制。脫機作業(yè)控制又分為作業(yè)控制卡和作業(yè)說明書兩種方式。2023/12/73用戶接口-1作業(yè)控制卡方式是指用戶將其操作意圖,用控制語言提供的有關作業(yè)控制命令穿孔在若干卡片上,以控制作業(yè)的運行的一種形式。用戶按照要求將作業(yè)控制卡插入到作業(yè)卡片疊的適當位置上。系統(tǒng)分批讀入這些卡片后開始運行,并按照這些控制卡的信息,指揮和控制作業(yè)的運行,這些作業(yè)控制卡是早期的一種作業(yè)控制方式。作業(yè)說明書也是用作業(yè)控制語言來表達用戶對作業(yè)控制意識的,在形式上同用高級編程語言編制的程序相似。相對于作業(yè)控制卡分散的缺點它具有集中、便于修改、靈活等優(yōu)點。美國1905機GEOGE語言是典型的高級算法的作業(yè)控制語言。2023/12/74用戶接口-22。程序接口程序接口是OS為正要運行的程序提供服務并與之通信的一個設施,它供所有的用戶程序使用,也供OS的其它組成部分,特別是命令處理程序使用。當一個程序正在執(zhí)行時,程序接口接受對系統(tǒng)服務及資源申請,并與OS的資源管理程序進行通信。這個程序接口主要由系統(tǒng)調(diào)用組成。2023/12/75
系統(tǒng)調(diào)用是用戶在程序中調(diào)用OS所提供的一些子功能模塊,它是一種特殊的過程調(diào)用。用戶程序運行在用戶態(tài)下,它通過軟件中斷進入核心,調(diào)用系統(tǒng)過程(子模塊),運行在核心態(tài),返回后仍在用戶態(tài)下運行。用戶程序系統(tǒng)調(diào)用從功能上分可包括進程管理、文件管理、信息維護、設備I/O管理等幾方面。系統(tǒng)調(diào)用過程大體上分成以下三步:設置系統(tǒng)調(diào)用號和參數(shù);系統(tǒng)調(diào)用命令的一般處理;系統(tǒng)調(diào)用命令處理程序做具體處理。2023/12/76(2)MS-DOS的接口1. MS-DOS層次模塊結構
MS-DOS采用層次模塊結構,它有三個層次模塊和一個引導程序組成。這三個模塊是命令處理程序(COMMAND.COM)、文件系統(tǒng)(MS-DOS.SYS)和輸入輸出系統(tǒng)。其中基本輸入輸出系統(tǒng)又由駐在ROM中的基本輸入輸出系統(tǒng)BIOS和系統(tǒng)盤上的BIOS接口模塊(IO.SYS)兩部分組成。引導程序在盤引導區(qū)中。三個模塊的層次關系如圖所示。(返1)
INT10-INT1AINT21用戶程序
鍵盤命令命令處理程序
文件系統(tǒng)
輸入輸出系統(tǒng)2023/12/77(二)、命令接口1)命令接口在操作系統(tǒng)與計算機用戶之間提供易于理解的雙向通信機制基本任務:解釋命令,傳送命令以便執(zhí)行接收系統(tǒng)信息,提交給用戶(以響應語言的形式)包括:一組聯(lián)機命令,終端處理程序,命令解釋程序交互式命令的接口復雜含功能結構,可能問題的處理,如各種約定、前端處理、命令日志、命令注解、宏命令及命令組等2023/12/78命令接口-1命令接口由命令處理器來實現(xiàn)命令處理器的實現(xiàn)方式:(a)作為OS的一個部分如,OS/MVT或VAX/VMS(b)作為OS的一個獨特模塊,能方便地修改或替換如,RT-11或CP/M(c)作為一易于被替換的普通程序如,UNIX操作系統(tǒng)(d)在某些系統(tǒng)中,可能用專門設計的命令接口替代標準的命令接口如,多用戶UNIX,用戶可有不同命令接口2023/12/792)終端處理程序用戶與操作系統(tǒng)的通信通過一個輸入/輸出裝置來實現(xiàn)I/O裝置是顯示終端和鍵盤輸入通過鍵盤:在有的系統(tǒng)中,可通過指示裝置(例如鼠標)輸入系統(tǒng)輸入呈現(xiàn)在顯示屏幕上,一次顯示若干正文行(某些系統(tǒng)中,提供圖形顯示功能)不管哪種I/O方式,終端裝置是由終端處理程序管理和控制2023/12/710終端處理程序-1終端處理程序提供的輸入輸出方式對整個用戶命令接口有重大影響,也確定了用戶與其應用程序之間的通信方式終端處理程序必須作為用戶接口的一個組成部分來考慮即,直接影響命令接口的一些問題須由終端處理程序解決2023/12/711終端處理程序-2直接影響命令接口的一些問題a)回送顯示(Echoing)通常,每從鍵盤打入一個字符,終端處理程序回送響應的字符到顯示屏上有時用戶要求其顯示一個不同的字符或不顯示(例如,用戶鍵入口令時)對于通過遠程通信線路訪問的終端,可能需要抑制這種回送委托給遠程終端實現(xiàn)回送顯示2023/12/712終端處理程序-3(b)提前打入(Typeahead)
假定輸入字符在一程序準備處理它們之前打入,則由“提前打入進程”把它們保存在緩沖區(qū)中緩沖區(qū)容量是有限,當其存滿后,再有輸入時,或者漏掉,或者將破壞緩沖區(qū)原有的內(nèi)容(c)字符變換有些情況下,需要對打入的字符進行代碼變換如,把小寫字母轉換成大寫字母,或者反之2023/12/713終端處理程序-3d)行緩沖打入的字符在送到程序前,由終端接口保存,直到整個命令行打入為止為用戶提供了校驗、編輯,甚至取消命令的機會(e)中斷字符(BreakCharacters)
多數(shù)交互式命令接口可以接受一些稱為中斷字符的特殊字符,并立即采取相應的行動如,在許多系統(tǒng)中,同時打入CTRL-C鍵,立即終止當前程序執(zhí)行,并使命令處理程序重新初始化2023/12/7143)命令解釋程序?qū)γ钣袃煞N處理方法:(a)由命令解釋程序直接處理在沒有創(chuàng)建子進程功能的系統(tǒng)中終端命令通常由對應的命令解釋程序處理在這種系統(tǒng)中,只有一個進程對應一個終端用戶(b)由子進程代為處理在具有創(chuàng)建子進程功能的系統(tǒng)中,對于較為單純的命令,如列目錄,拷貝文件等,命令解釋程序本身便能完成,此時由命令解釋程序直接處理對較復雜命令,如對于C源程序進行編譯,命令解釋程序本身不能處理,此時創(chuàng)建一個子進程,并由該子進程運行C編譯程序2023/12/7154)命令語言命令語言規(guī)定由OS執(zhí)行的一系列操作在一般的命令語言中,用戶通過打入稱為命令行的一行指令來規(guī)定每一個動作每一命令行以命令開始,它標識所要執(zhí)行的操作大多數(shù)命令是用運行一個程序來執(zhí)行所請求的操作多數(shù)命令行中要給出一些參數(shù),每一命令語句實際上是帶有參數(shù)的一個過程調(diào)用2023/12/716命令語言-1一種命令語言通常提供幾類命令:(1)系統(tǒng)訪問命令 登錄命令,如,login等 撤離命令,如,logout等(2)文件管理命令(3)編輯、編譯和執(zhí)行命令(4)詢問命令(5)操作員專用命令2023/12/717命令語言-2命令行:規(guī)定由操作系統(tǒng)執(zhí)行的一系列操作命令行:一行可有一個或多個命令,每次一行,包含一個或多個命令。shell給出提示符時可輸入,以回車鍵提交。如:“l(fā)s-a-l”列出當前目錄文件列表;"gunzipmp1.tar.gz;tar-xvfmp1.tar;\rm-r-fmp1.tar"為解壓縮后再展開。命令格式:一個命令可有命令參數(shù),格式包括選項/開關(option/switch)或參數(shù)(argument)。如UNIX系統(tǒng):cp-rdoc/tmp--argv[0],argv[1],...(含子目錄的文件復制:/tmp為目標地址)2023/12/718命令語言-3命令分類:內(nèi)部命令和外部命令內(nèi)部命令:直接由shell本身完成,功能簡單、使用頻繁;如:DOS的copy命令。外部命令:運行相應的可執(zhí)行文件,在使用時加載。如:DOS的xcopy命令命令簡化:利用參數(shù)替換可簡化命令輸入,通配符(?,*)用于匹配一組文件名如:UNIX的cp命令:當前目錄上有兩個"1.tar"和"2.tar"時,"cp*.tar/tmp"等同于"cp1.tar/tmp;cp2.tar/tmp"2023/12/719命令語言-4命令的附加功能命令的附加功能用以擴大命令的功能性、選擇性、適應性。包括:(1)參數(shù)與變量位置變量關鍵字變量(2)命令通配符(3)重定向(4)管道與過濾器2023/12/720(三)圖形用戶接口GUI命令行方式:要求用戶記憶命令格式圖形用戶接口方式:用戶可利用鼠標對屏幕上的圖標進行操作,完成與操作系統(tǒng)的交互,從而減少記憶內(nèi)容,方便用戶使用。圖形用戶接口的技術基礎:高分辯顯示器和鼠標2023/12/7211)窗口系統(tǒng)(windowsystem)的特點利用圖形元素表示功能:將各種圖形元素顯示在屏幕上,用戶可以通過操縱圖形元素(如菜單、圖標)來執(zhí)行相應的功能同屏多窗口與并發(fā)進程相對應:屏幕上同時顯示多個窗口;一個進程可以對應一個或多個窗口;窗口動態(tài)創(chuàng)建、改變、撤銷交互的并發(fā)性好、傳遞信息量大輸入方式:鼠標指針點擊(或其他定位設備)和鍵盤輸入;通常是即時交互一致的圖形元素風格可方便用戶學習和使用:如按鈕、滾動條2023/12/722
2)窗口系統(tǒng)的圖形元素及其狀態(tài)窗口:屏幕上的矩形區(qū)域包括:標題條、邊框、窗口角、系統(tǒng)菜單框、最大化/最小化按鈕、滾動條等狀態(tài):當前/非當前窗口--接受輸入,最大化/最小化/恢復原大小,窗口的前后遮蓋--Z軸,焦點--接受鍵盤輸入(而非鼠標)桌面和墻紙圖標:一個小圖象(如32x32或64x64pixel),供鼠標指針點擊。不同的圖標可以標識不同的對象。如:可執(zhí)行程序、最小化的窗口、文件--動畫圖標2023/12/723窗口系統(tǒng)的圖形元素及其狀態(tài)-1鼠標指針:鼠標指針通常對應屏幕上的光標光標在屏幕上只有一個,在不同屏幕位置(上下文)可以呈現(xiàn)不同形狀,可以獨立于鼠標來直接操縱光標鼠標點擊:左鍵/右鍵/中鍵,單擊/雙擊,拖曳/拖放按鈕:鼠標點擊或按回車鍵/空格鍵時執(zhí)行相應功能,如menubutton;提供單項或多項選擇,如radiobutton和checkbutton;當前按鈕及其切換菜單:臨時窗口,菜單條、彈出式菜單、下拉式菜單(上下文相關菜單)對話框:臨時窗口,顯示提示信息(message)或填寫用戶設置2023/12/7243)窗口管理器(windowmanager):
形成統(tǒng)一的使用風格處理窗口的普遍特性,如:窗口的大小、位置(窗口的標題條、邊框、控制菜單框)--窗口中由應用程序管理的部分稱為"客戶區(qū)(clientarea)"協(xié)調(diào)各窗口間的相互關系,如:窗口之間的前后遮蓋關系,桌面2023/12/725(四)系統(tǒng)調(diào)用系統(tǒng)調(diào)用:用戶在程序中調(diào)用操作系統(tǒng)所提供的一些子功能這是特殊的過程調(diào)用,由特殊的機器指令實現(xiàn)(每種機器的機器指令集中都有一條系統(tǒng)調(diào)用指令——訪管指令)這條指令將系統(tǒng)轉入管態(tài)系統(tǒng)調(diào)用是一個低級過程,只能由匯編語言直接訪問系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口利用系統(tǒng)調(diào)用,動態(tài)請求和釋放系統(tǒng)資源完成與硬件相關的工作以及控制程序的執(zhí)行等每個操作系統(tǒng)都提供幾百種系統(tǒng)調(diào)用2023/12/7261)系統(tǒng)調(diào)用簡介系統(tǒng)調(diào)用的例子-1匯編程序例子:打印5個字符
方法1:調(diào)用DOS功能
MOVEA,PARA1MOVEB,PARA2
INT21H2023/12/727系統(tǒng)調(diào)用簡介-1系統(tǒng)調(diào)用的例子-2方法2:用OUT語句直接打印
L1:MOVEA,IINADDR1,BORB,BSJNCL1
OUTADDR2,ARET2023/12/728系統(tǒng)調(diào)用簡介-2I/O設備的硬件接口一般由四種寄存器(地址,數(shù)據(jù),狀態(tài),控制)或其子集組成任一程序中若要使用I/O設備來輸出數(shù)據(jù)或接受輸入必須通過對這四種寄存器讀寫的I/O機器指令進行2023/12/729系統(tǒng)調(diào)用簡介-3系統(tǒng)調(diào)用的例子-3匯編程序例子2:讀寫硬盤文件內(nèi)容
MOVEDX,OFFSETBUFFMOVECX,BYTEMOVEBX,HANDLEMOVEAH,3FH
INT21H2023/12/730系統(tǒng)調(diào)用簡介-4系統(tǒng)調(diào)用的例子-4磁盤讀寫的例子:更復雜原因:
A、磁盤的控制和狀態(tài)接口寄存器比打印機的復雜的多,而且還有地址接口寄存器
B、通常一個外存存儲介質(zhì)上可以存放多個文件,隨著文件的建立、刪除和拷貝在不停地變化,每個文件的長度隨著其內(nèi)容的變化而不停地變化2023/12/731系統(tǒng)調(diào)用簡介-5系統(tǒng)調(diào)用的例子-5高級語言例子:打印5個字符
charbuff[4]=“abcde”;for(i=4;i>=0;i--)
print(buff[i]);高級語言例子:讀硬盤文件f1的第10到20個字節(jié)
seek(fd,10,0);
read(fd,buff,11);2023/12/732系統(tǒng)調(diào)用簡介-6
......A=A+1printf(...)B=B+A(1)源程序段2023/12/733系統(tǒng)調(diào)用簡介-6(續(xù))
INT......INTA=A+1B=B+A............INOUT...嵌入后該系統(tǒng)調(diào)用的操作系統(tǒng)內(nèi)部實現(xiàn)代碼(2)printf目標代碼(3)程序段編譯產(chǎn)生的可執(zhí)行代碼(4)操作系統(tǒng)內(nèi)部代碼2023/12/734系統(tǒng)調(diào)用簡介-7凡是與硬件相關、與應用無關的工作,都通過操作系統(tǒng)程序來完成用戶程序函數(shù)操作系統(tǒng)2023/12/7352)系統(tǒng)調(diào)用的處理過程需要有一個類似于硬件中斷處理的處理機構。當用戶使用系統(tǒng)調(diào)用時,產(chǎn)生一條相應的指令。處理機在執(zhí)行到該指令時發(fā)生相應的中斷,并發(fā)出有關的信號給該處理機構,該處理機構在收到了處理機發(fā)來的信號后,啟動相關的處理程序去完成該系統(tǒng)調(diào)用所要求的功能2023/12/736系統(tǒng)調(diào)用的處理過程-1在系統(tǒng)中為控制系統(tǒng)調(diào)用服務的機構稱為陷入(TRAP)或異常處理機構相對應,把由于系統(tǒng)調(diào)用引起處理機中斷的指令稱為陷入或異常指令(或稱訪管指令)在操作系統(tǒng)中,每個系統(tǒng)調(diào)用都對應一個事先給定的功能號,例如0、1、2、3等,稱為系統(tǒng)調(diào)用功能號(在陷入指令中必須包括對應系統(tǒng)調(diào)用的功能號有些陷入指令中,還帶有傳給陷入處理機構和內(nèi)部處理程序的有關參數(shù))2023/12/737系統(tǒng)調(diào)用的處理過程-1(續(xù))必須為實現(xiàn)系統(tǒng)調(diào)用功能的子程序編造入口地址表每個入口地址與相應的系統(tǒng)調(diào)用執(zhí)行程序名對應陷入處理程序把陷入指令包含功能號與入口地址表有關項對應,驅(qū)動有關子程序執(zhí)行在系統(tǒng)調(diào)用處理結束之后,用戶程序需利用系統(tǒng)調(diào)用返回結果繼續(xù)執(zhí)行保護現(xiàn)場:進入系統(tǒng)調(diào)用處理前,陷入處理機構還需保存處理機現(xiàn)場在系統(tǒng)調(diào)用處理結束之后,要恢復處理機現(xiàn)場,現(xiàn)場被保護在特定的內(nèi)存區(qū)或寄存器中。2023/12/738用戶程序陷入處理機構系統(tǒng)子程序
systemcall
入口地址表
(1)保護處理現(xiàn)場(2)取系統(tǒng)調(diào)用功能號并尋找子程序入口(3)返回A0A1Ai
AnA0A1AiAnSub0Sub1SubiSubn系統(tǒng)調(diào)用的處理過程2023/12/739read(fd,buffer,nbytes)系統(tǒng)調(diào)用處理過程-22023/12/7403)參數(shù)傳遞過程問題怎樣實現(xiàn)用戶程序和系統(tǒng)程序間的參數(shù)傳遞?常用的3種實現(xiàn)方法:由陷入指令自帶參數(shù):陷入指令的長度有限的,且還要攜帶系統(tǒng)調(diào)用功能號,只能自帶有限的參數(shù)通過有關通用寄存器來傳遞參數(shù):這些寄存器應是系統(tǒng)程序和用戶程序都能訪問,由于寄存器長度較短,從法傳遞較多的參數(shù)大多在內(nèi)存中開辟專用堆棧區(qū)來傳遞參數(shù)2023/12/7414)系統(tǒng)調(diào)用的分類系統(tǒng)功能可分為兩部分系統(tǒng)自身所需要的作為服務提供給用戶的OS的系統(tǒng)調(diào)用:進程控制類系統(tǒng)調(diào)用文件操作類系統(tǒng)調(diào)用進程通信類系統(tǒng)調(diào)用設備管理類系統(tǒng)調(diào)用信息維護類系統(tǒng)調(diào)用2023/12/7425)系統(tǒng)調(diào)用與一般過程調(diào)用比較系統(tǒng)調(diào)用方式(INT)與程序中一般的調(diào)用方式的相同點:改變指令流程重復執(zhí)行和公用改變指令流程后需要返回原處系統(tǒng)調(diào)用方式(INT)與程序中一般的調(diào)用方式的不同點:2023/12/743系統(tǒng)調(diào)用與一般過程調(diào)用比較-1運行在不同的系統(tǒng)狀態(tài)
一般過程調(diào)用,其調(diào)用程序和被調(diào)用程序都運行在相同狀態(tài):核心態(tài)或用戶態(tài)系統(tǒng)調(diào)用:調(diào)用程序在用戶態(tài),被調(diào)用程序在系統(tǒng)態(tài)狀態(tài)的轉換一般的過程調(diào)用不涉及系統(tǒng)狀態(tài)的轉換,可直接由調(diào)用過程轉向被調(diào)用過程運行系統(tǒng)調(diào)用時,調(diào)用和被調(diào)用過程在不同系統(tǒng)狀態(tài),不允許由調(diào)用過程直接轉向被調(diào)用過程通過軟中斷機制先由用戶態(tài)轉換為核心態(tài)在OS核心分析后,轉向相應的系統(tǒng)調(diào)用處理子程序2023/12/744系統(tǒng)調(diào)用與一般過程調(diào)用比較-2返回問題一般過程調(diào)用在被調(diào)用過程執(zhí)行完后,返回調(diào)用過程搶占式調(diào)度的系統(tǒng)中,被調(diào)用過程執(zhí)行完后,系統(tǒng)將對所有要求運行的進程進行優(yōu)先級分析。如果調(diào)用進程仍有最高優(yōu)先級,則返回到調(diào)用進程執(zhí)行否則,引起重新調(diào)度,讓優(yōu)先級最高的進程優(yōu)先執(zhí)行。此時,系統(tǒng)把調(diào)用進程放入就緒隊列嵌套或遞歸調(diào)用對系統(tǒng)調(diào)用,一般不允許在同一個進程中發(fā)生嵌套或遞歸(不同進程可以重入同一個系統(tǒng)調(diào)用)2023/12/745系統(tǒng)調(diào)用與一般過程調(diào)用比較-3
進入方式不同利用int或trap指令進行系統(tǒng)調(diào)用;利用call或jmp指令進入普通的過程調(diào)用CALL指令的內(nèi)部實現(xiàn)過程返回地址壓棧(即該CALL指令所在的地址)將該CALL指令中所含的地址(即被調(diào)用代碼所在地址)送入PCRET指令的內(nèi)部實現(xiàn)過程從棧頂彈出返回地址送入程序計數(shù)器PC2023/12/746系統(tǒng)調(diào)用與一般過程調(diào)用比較-4系統(tǒng)調(diào)用是動態(tài)調(diào)用,而CALL調(diào)用方式是靜態(tài)調(diào)用a.同一程序中不包含被調(diào)用代碼系統(tǒng)調(diào)用是動態(tài)調(diào)用,程序中不包含被調(diào)用代碼,好處:(1)用戶程序長度縮短(2)當OS升級時,調(diào)用方不必改變2023/12/747系統(tǒng)調(diào)用與一般過程調(diào)用比較-5b.系統(tǒng)調(diào)用方式的調(diào)用地址和返回地址都是不固定的系統(tǒng)調(diào)用指令中不包含調(diào)用地址,只包含功能號是按功能號(在可執(zhí)行目標程序中)調(diào)用的。在操作系統(tǒng)內(nèi)部由系統(tǒng)調(diào)用處理程序通過系統(tǒng)調(diào)用分支表(OS的一個數(shù)據(jù)結構)將功能號轉換為相應的指令地址2023/12/748系統(tǒng)調(diào)用與一般過程調(diào)用比較-6...功能號地址顯示打印讀文件.........OS的系統(tǒng)調(diào)用分支表OS代碼顯示打印讀文件OS用戶程序INT..................2023/12/749系統(tǒng)調(diào)用與一般過程調(diào)用比較-7系統(tǒng)調(diào)用返回指令中不包括返回地址,通過棧保存和彈出返回地址系統(tǒng)調(diào)用返回地址不固定,因為用戶程序在不同的地方調(diào)用OSCALL調(diào)用方式是靜態(tài)調(diào)用,被調(diào)用代碼與調(diào)用代碼在同一程序之內(nèi)。CALL調(diào)用方式,其調(diào)用地址是固定的,包含在調(diào)用語句中;返回地址是不固定的(同一子程序可能被不同處多次調(diào)用),在程序執(zhí)行過程中通過棧的實現(xiàn)來保存和彈出返回地址2023/12/750系統(tǒng)調(diào)用與一般過程調(diào)用比較-8
INT指令和IRET指令的執(zhí)行過程中要處理程序狀態(tài)字PSW。INT指令中要保存用戶程序的老PSW,并根據(jù)中斷向量表設置新PSW。IRET指令中要在返回用戶程序前恢復用戶程序的老PSW。系統(tǒng)態(tài)與用戶態(tài)的轉換由系統(tǒng)在INT指令與IRET指令內(nèi)部自動完成沒有用一條單獨的專門指令。好處:有效地防止在系統(tǒng)態(tài)下執(zhí)行用戶程序2023/12/751(五)操作系統(tǒng)接口實例1)MS-DOS層次模塊結構
MS-DOS采用層次模塊結構,它有三個層次模塊和一個引導程序組成。這三個模塊是命令處理程序(COMMAND.COM)、文件系統(tǒng)(MS-DOS.SYS)和輸入輸出系統(tǒng)。其中基本輸入輸出系統(tǒng)又由駐在ROM中的基本輸入輸出系統(tǒng)BIOS和系統(tǒng)盤上的BIOS接口模塊(IO.SYS)兩部分組成。引導程序在盤引導區(qū)中。三個模塊的層次關系如圖所示。
INT10-INT1AINT21用戶程序
鍵盤命令命令處理程序
文件系統(tǒng)
輸入輸出系統(tǒng)1、MS-DOS的接口2023/12/752MS-DOS的接口-12)MS-DOS的命令接口—-鍵盤命令選盤命令:<盤符><CR>例如:A:控制鍵和編輯鍵:例如:Ctrl+Alt+Del系統(tǒng)復位鍵;<F1>復制字符鍵等。內(nèi)部命令:它是OS內(nèi)部提供的OS功能子模塊的命令,例如Dir顯示目錄命令等。外部命令:它是存在磁盤上完成某功能可執(zhí)行文件、需要時調(diào)入內(nèi)存執(zhí)行的命令,它有以下幾種類型。擴展名為.com文件是可執(zhí)行的二進制代碼文件。擴展名.exe文件是可執(zhí)行浮動二進制代碼文件。擴展名為.bat文件是批處理文件,批處理文件中可包含內(nèi)部命令、外部命令以及一些特殊的批處理文件命令。2023/12/753MS-DOS的接口-23)MS-DOS程序接口程序員通過軟件中斷和系統(tǒng)調(diào)用使用MS-DOS提供的功能。用文件系統(tǒng)模塊提供的功能-INT21HMS-DOS文件系統(tǒng)子功能模塊的功能是系統(tǒng)調(diào)INT21,它是字符I/O高級方式,它獨立于硬件且與其它操作系統(tǒng)兼容。它包括設備管理、文件管理、目錄管理等功能。用輸入輸出系統(tǒng)模塊提供的功能--INT10H-INT1AHMS-DOS的輸入輸出系統(tǒng)模塊提供的功能調(diào)用是INT10H-INT1AH。其中INT10H調(diào)用顯示驅(qū)動程序,INT16H調(diào)用鍵盤驅(qū)動程序,INT17H調(diào)用打印機驅(qū)動程序,INT13H調(diào)用磁盤I/O驅(qū)動程序。2023/12/754MS-DOS的接口-3下面以5.6.1節(jié)說明INT13系統(tǒng)調(diào)用的過程。l 調(diào)用號送寄存器AHmovAH,02l 置入口參數(shù)almovAL,01BxmovBx,200CxmovCx,0001Dxmovdx,0080l 調(diào)用INT13INT3l 執(zhí)行-g=100l 分析出口參數(shù)-d3be3fe觀察分區(qū)表2023/12/7552、WINDOWS98的接口1)Windows98用戶界面結構
Windows98使用新的32位的用戶界面,提供統(tǒng)一的工具來瀏覽網(wǎng)絡,局域網(wǎng)及Internet信息。這些包含了一些桌面工具,包括網(wǎng)絡鄰居,可選擇的活動桌面接口,可選擇的頻道接口。Windows98基本組件結構中用戶界面的細框圖如下圖所示。這些工具同其它的基于Win32的、基于Win16的、以及基于MS-DOS的應用程序在同一結構層次上運行。所有的應用程序及工具可以從殼層提供的公用控制中得到好處,例如公用對話框、目錄樹形顯示和列表顯示等。用戶接口工具(網(wǎng)絡鄰居等)進程指示、工具、使用對話框、列表顯示、樹形顯示等2023/12/756WINDOWS98的接口-12)Windows98命令接口――圖形用戶接口(GUI)GUI的基本元素有:窗口:是指屏幕上的一塊矩形區(qū)域,應用程序(包括文擋)可通過窗口向用戶展示系統(tǒng)所能提供的各種服務及其需要用戶輸入的信息,用戶可通過窗口去查看和操縱應用程序和文擋。窗口由標題攔、垂直、水平滾動條、控制按鈕、最大化、最小化按鈕、還原按鈕、關閉按鈕等組成。圖標:它是代表一個應用程序或文件的一個小圖象,它也是最小化窗口,通過對圖標的操作可激活相應的程序(選擇它在前臺運行)和啟動應用程序。2023/12/757WINDOWS98的接口-2菜單:用戶在窗口中對應用程序所能執(zhí)行的各種操作是以菜單的形式提供的。菜單一般是由菜單名和若干菜單項所組成。每一菜單項通常都對應于相關的命令或功能。用戶可用鼠標或鍵盤在菜單中選擇一菜單項,來向系統(tǒng)提出相應的服務請求,當用戶選擇某菜單項時,有時便出現(xiàn)彈出菜單和下拉式菜單。對話框:它是在桌面上的帶有標題條和控制菜單的一個臨時窗口,又稱為對話窗口。其主要用途是系統(tǒng)可通過對話框提示用戶輸入與任務有關的信息,或向用戶提供可能需要的信息。對話框由文本框、列表框、命令按鈕、單選按鈕和復選按鈕組成。
2023/12/758WINDOWS98的接口-33)Win32應用程序接口――API在Windows中,定義了一系列程序(應用程序接口Win32API),提供OS服務這個接口(部分)支持Win95以后的Windows版本W(wǎng)in32API調(diào)用的種類非常多,以千計算在Windows中不可能分辨出哪些是系統(tǒng)調(diào)用(被內(nèi)核執(zhí)行),哪些是用戶空間的庫調(diào)用事實上,一個Windows版本中的系統(tǒng)調(diào)用也許在另一個Windows版本中會在用戶空間執(zhí)行由于圖形子系統(tǒng)在內(nèi)核中運行(在某些Windows版本中),它們也是系統(tǒng)調(diào)用,否則是庫調(diào)用2023/12/759WINDOWS98的接口-4編寫Windows應用程序,除了用到常規(guī)編程語言的庫函數(shù)和數(shù)據(jù)結構外,還需使用由WindowsSDK提供的適用于Windows應用程序的特殊庫函數(shù)及和各種數(shù)據(jù)結構、語句、文件結構,所有這些內(nèi)容構成了Windows應用程序設計接口(API)。可以把API視作一個有各類工具的集合,如果使用得當,這些工具開發(fā)出來的Windows應用程序,可適當用各種類型的計算機(PC機)。Windows應用程序可以充分利用API提供的各種特征。這些特征是:幾個應用程序共享顯示器、內(nèi)存、鍵盤、鼠標和系統(tǒng)計時器,應用程序之間的數(shù)據(jù)變換與設備無關的圖形功能;多任務;動態(tài)鏈接。2023/12/760WINDOWS98的接口-5WindowsAPI函數(shù)可分為窗口管理接口函數(shù)、圖形設備接口(GDI)函數(shù)和系統(tǒng)服務接口函數(shù)等三類函數(shù)。窗口接口函數(shù)包括創(chuàng)建、移動和修改窗口函數(shù);建立、修改菜單,獲得菜單項狀態(tài)等功能的函數(shù);建立系統(tǒng)輸出的函數(shù);消息管理和處理的函數(shù)等。圖形設備接口函數(shù)包括了Windows應用程序中執(zhí)行與設備無關的圖形操作所需的各類函數(shù),這些操作包括在幾種輸出設備上畫各種類型的線條、文字和位映射圖象的函數(shù)。系統(tǒng)服務接口函數(shù)包括GDI支持多任務而提供的函數(shù),涉及多任務和內(nèi)存管理函數(shù)。2023/12/7613、UNIX(LINUX)系統(tǒng)調(diào)用1)進程控制fork系統(tǒng)調(diào)用創(chuàng)建新的子進程格式:intfork()
fork調(diào)用返回時,系統(tǒng)中已有兩個用戶級環(huán)境完全相同的進程在在,這兩個進程從fork調(diào)用中得到的返回值不同,其中子進程得到的返回值為零,父進程得到的返回值是新創(chuàng)建子進程的進程標識號。exec系統(tǒng)調(diào)用格式:(六種)
intexecl(path,arg0,arg1,…,argn,(char*)0)char*path,*arg0,*arg1,…,*argn;exec調(diào)用進程的正文段被指定的目標文件的正文段所覆蓋,其屬性的變化方式與fork成功后從父進程那里繼承屬性的方式幾乎是一樣的。系統(tǒng)中絕大多數(shù)命令都是通過exec來執(zhí)行的,不但shell進程所創(chuàng)建的子進程使用它來執(zhí)行用戶命令,shell進程本身和它的祖先進程也是用exec來啟動執(zhí)行的。2023/12/762UNIX(LINUX)系統(tǒng)調(diào)用-1exit系統(tǒng)調(diào)用終止進程執(zhí)行格式:voidexit(status)intstatus;參數(shù)status是調(diào)用進程終止時傳遞給其父進程的值。如調(diào)用進程還有子進程,則將其所有子進程的父進程改為1號進程。wait系統(tǒng)調(diào)用等待子進程暫仃或終止格式:intwait(stat_loc)intwait((int*)0)intstat_loc;
wait調(diào)用將調(diào)用進程掛起,直到該進程收到一個被其捕獲的信號或者它的任何一個子進程暫仃或終止為止。如果wait調(diào)用之前已有子進程暫仃或終止,則該調(diào)用立即返回。2023/12/763UNIX(LINUX)系統(tǒng)調(diào)用-22)文件基本操作creat系統(tǒng)調(diào)用創(chuàng)建普通文件格式:#include<sys/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科學技術職業(yè)學院《醫(yī)學生物化學》2023-2024學年第一學期期末試卷
- 廣東金融學院《農(nóng)業(yè)技術經(jīng)濟學》2023-2024學年第一學期期末試卷
- 廣東環(huán)境保護工程職業(yè)學院《中學語文經(jīng)典新詩解讀》2023-2024學年第一學期期末試卷
- 廣東行政職業(yè)學院《護理學基礎實驗(1)》2023-2024學年第一學期期末試卷
- 廣東工貿(mào)職業(yè)技術學院《大數(shù)據(jù)原理與技術課程設計》2023-2024學年第一學期期末試卷
- 廣東東軟學院《儒學與傳統(tǒng)文化》2023-2024學年第一學期期末試卷
- 廣東創(chuàng)新科技職業(yè)學院《軟件工程A》2023-2024學年第一學期期末試卷
- 《口腔護理崗前培訓》課件
- 《流程圖的排版規(guī)則》課件
- 公證書 仲裁文書
- 藍色卡通風胃腸減壓護理
- 2024年天津市中考語文試卷真題(含答案)
- 小學單位換算-體積
- 叉車自行檢查記錄表
- 2024新安全生產(chǎn)法知識考試題庫及答案大全
- 專題5 書面表達-2023-2024學年譯林版五年級上冊英語期末專題復習
- 2024年中國科學技術大學創(chuàng)新班物理試題答案詳解
- 江西省萍鄉(xiāng)市2022-2023學年高一年級上冊期末考試數(shù)學試題
- 《調(diào)水工程設計導則SL-T430-20XX-條文說明》
- 第二單元自測卷(試題)2023-2024學年統(tǒng)編版語文四年級下冊
- 土方開挖過程中的文物保存方案
評論
0/150
提交評論