哈工程考研課件new第7章接口_第1頁(yè)
哈工程考研課件new第7章接口_第2頁(yè)
哈工程考研課件new第7章接口_第3頁(yè)
哈工程考研課件new第7章接口_第4頁(yè)
哈工程考研課件new第7章接口_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

7.1操作系統(tǒng)接口程序啟動(dòng)方式,程序結(jié)束時(shí)系統(tǒng)所做的工作用戶(hù)與操作系統(tǒng)的接口系統(tǒng)調(diào)用:用戶(hù)程序提出服務(wù)請(qǐng)求的手段,基本思想,實(shí)現(xiàn)方法操作系統(tǒng)安裝與啟動(dòng)7.1.1程序的啟動(dòng)和結(jié)束

1.程序的啟動(dòng)—五種啟動(dòng)方式程序開(kāi)始執(zhí)行時(shí)必須滿(mǎn)足兩個(gè)前提條件:程序已裝入內(nèi)存程序計(jì)數(shù)器PC中已置入該程序在內(nèi)存的入口地址第一種方式:命令方式命令提示符下打入程序名和參數(shù),回車(chē)如DOS:c>UNIX:$命令解釋程序

DOS:(在所設(shè)路徑中)UNIX:SHELLWindows:窗口菜單顯示和鼠標(biāo)操作命令方式的程序啟動(dòng)開(kāi)機(jī)顯示命令提示符輸入命令從外存調(diào)入外部命令執(zhí)行執(zhí)行命令解釋程序中的該命令合法否?N內(nèi)部命令?YNY第二種方式:批處理方式.BAT文件(DOS系統(tǒng))例子:?jiǎn)?dòng)中文環(huán)境需要多條命令:

裝入字庫(kù)啟動(dòng)主程序裝入漢字輸入法

AUTOEXEC.BAT(開(kāi)機(jī)時(shí)的自動(dòng)批處理)批方式下的裝入執(zhí)行過(guò)程以命令方式輸入批文件命令操作系統(tǒng)調(diào)入批文件,讀入第一條命令裝入該命令要執(zhí)行的程序執(zhí)行該程序從該批文件中讀下一條命令批文件完否?NY命令提示符命令提示符第三種方式:EXEC方式EXEC方式的過(guò)程“父”程序執(zhí)行exec調(diào)用操作系統(tǒng)實(shí)現(xiàn)exec的裝入(建立進(jìn)程)啟動(dòng)(或轉(zhuǎn)調(diào)度子程序或返回)“子”程序執(zhí)行回到操作系統(tǒng),進(jìn)行子程序結(jié)果處理工作,并將結(jié)果信息返回“父”程序“父”程序繼續(xù)執(zhí)行在一個(gè)程序中運(yùn)行另一個(gè)程序返回原來(lái)的程序第四種方式:

第五種方式:自啟程序由硬件裝入程序和啟動(dòng)程序執(zhí)行自己裝入自己,并啟動(dòng)自己開(kāi)始執(zhí)行的程序自啟程序由兩部分組成引導(dǎo)程序和程序主體自啟程序裝入與啟動(dòng)的過(guò)程用戶(hù)程序存放在外存上,其自含的引導(dǎo)程序順序放在存儲(chǔ)介質(zhì)的開(kāi)始位置(如0磁道)將該介質(zhì)(如軟盤(pán))放到聯(lián)機(jī)輸入裝置上以某種硬操作方法(如熱啟動(dòng))通知計(jì)算機(jī)需執(zhí)行自啟程序硬件將上述引導(dǎo)程序讀入內(nèi)存并將控制權(quán)傳給它引導(dǎo)程序?qū)⒂脩?hù)主體程序讀入內(nèi)存并將控制權(quán)傳給它引導(dǎo)程序2.程序的結(jié)束正常結(jié)束:程序按自身的邏輯有效地完成預(yù)定功能后結(jié)束

(a)返回父程序并回送結(jié)果信息。

(b)釋放所用資源(空間.設(shè)備),記錄使用情況,記帳等異常結(jié)束:發(fā)生了某些錯(cuò)誤而導(dǎo)致程序在沒(méi)有完成預(yù)定功能時(shí)提前結(jié)束7.1.2用戶(hù)與操作系統(tǒng)的接口

1.

作業(yè)級(jí)接口作業(yè)級(jí)接口程序級(jí)接口操作系統(tǒng)為用戶(hù)對(duì)作業(yè)運(yùn)行全過(guò)程控制提供的功能(1)聯(lián)機(jī)接口(交互式)(2)脫機(jī)接口脫機(jī)作業(yè)是指用戶(hù)不能直接與計(jì)算機(jī)系統(tǒng)交互,中間通過(guò)操作員干預(yù)的作業(yè)。通常是在批處理系統(tǒng)中使用,所以也成為批量型作業(yè)聯(lián)機(jī)作業(yè)是指用戶(hù)和計(jì)算機(jī)系統(tǒng)直接交互,用戶(hù)通過(guò)終端或控制臺(tái)鍵盤(pán)上的操作命令或菜單圖表等方式控制器作業(yè)的運(yùn)行,也成交互型作業(yè)或終端型作業(yè)脫機(jī)用戶(hù)接口:由一組作業(yè)控制命令,或稱(chēng)作業(yè)控制語(yǔ)言組成脫機(jī)用戶(hù)接口:使用作業(yè)控制卡和作業(yè)說(shuō)明書(shū)兩種形式作業(yè)控制卡:就是使用作業(yè)控制語(yǔ)言將用戶(hù)對(duì)作業(yè)的控制意圖、程序、數(shù)據(jù)等卡片一起送入系統(tǒng),由系統(tǒng)解釋執(zhí)行作業(yè)說(shuō)明書(shū):是使用某種作業(yè)控制命令將用戶(hù)對(duì)作業(yè)控制的意圖寫(xiě)成作業(yè)說(shuō)明書(shū),從而實(shí)現(xiàn)對(duì)作業(yè)的控制。作業(yè)說(shuō)明書(shū)主要包括作業(yè)情況和作業(yè)資源要求兩方面的內(nèi)容;前者主要指用戶(hù)名、作業(yè)名、使用語(yǔ)言、作業(yè)控制方式、優(yōu)先級(jí)等;后者包括內(nèi)存核外村的空間要求量、設(shè)備的類(lèi)型、臺(tái)數(shù)、估計(jì)的計(jì)算時(shí)間等。作業(yè)說(shuō)明書(shū)中常用命令的主要類(lèi)型如下:輸入/輸出命令編譯命令操作命令條件命令全稱(chēng):SimultaneousPeripheralOperationsOn-Line含義:聯(lián)機(jī)情況下的同時(shí)外圍操作(假脫機(jī)技術(shù))包括:輸入程序模塊輸出程序模塊作業(yè)調(diào)度程序工作過(guò)程:利用磁盤(pán)作緩沖,將輸入、計(jì)算、輸出分別組織成獨(dú)立的任務(wù)流,使I/O和計(jì)算真正并行。(3)SPOOLing

(假脫機(jī))用慢速設(shè)備將作業(yè)預(yù)先輸入到輸入井(后援存儲(chǔ)器如:磁盤(pán)、磁鼓)中,稱(chēng)為預(yù)輸入。運(yùn)行時(shí),按某種調(diào)度策略選擇幾種搭配得當(dāng)?shù)淖鳂I(yè),從輸入井調(diào)入內(nèi)存,使用數(shù)據(jù)時(shí),從輸入井中取出。作業(yè)運(yùn)行中輸出數(shù)據(jù)不必直接啟動(dòng)外設(shè),只需將這些數(shù)據(jù)寫(xiě)入輸出井中。作業(yè)全部運(yùn)行完畢,再由外設(shè)輸出全部數(shù)據(jù)和信息,稱(chēng)為緩輸出。

實(shí)現(xiàn)了對(duì)作業(yè)輸入、組織調(diào)度和輸出的統(tǒng)一管理使外設(shè)在CPU控制下,與CPU并行工作(稱(chēng)為假脫機(jī))。SPOOLing系統(tǒng)輸入裝置輸入裝置通道通道輸出裝置輸出裝置通道輸入管輸出管理模塊理模塊外設(shè)輸入輸出井井主機(jī)系統(tǒng)典型的作業(yè)步編譯連接裝配運(yùn)行目標(biāo)程序段目標(biāo)程序源程序輸入數(shù)據(jù)子程序庫(kù)函數(shù)動(dòng)態(tài)庫(kù)函數(shù)計(jì)算結(jié)果2.程序級(jí)接口系統(tǒng)為用戶(hù)在程序一級(jí)提供有關(guān)服務(wù)而設(shè)置由一組系統(tǒng)調(diào)用命令組成。負(fù)責(zé)管理和控制運(yùn)行的程序并在這些程序與系統(tǒng)控制的資源和提供的服務(wù)間實(shí)現(xiàn)交互作用用匯編語(yǔ)言:在程序中直接用系統(tǒng)調(diào)用命令用高級(jí)語(yǔ)言:可在編程時(shí)使用過(guò)程調(diào)用語(yǔ)句7.1.3.交互式系統(tǒng)接口1.聯(lián)機(jī)命令接口在操作系統(tǒng)與計(jì)算機(jī)用戶(hù)之間提供易于理解的雙向通信機(jī)制。

基本任務(wù):解釋命令,傳送命令以便執(zhí)行接受系統(tǒng)信息,以響應(yīng)語(yǔ)言的形式提交給用戶(hù)交互式命令的接口復(fù)雜含功能結(jié)構(gòu),問(wèn)題的處理,如各種約定,前端處理,命令日志,注解,宏命令及命令組等。交互式控制靈活方便:

可以隨時(shí)進(jìn)行各種處理,排除問(wèn)題,方便調(diào)試;系統(tǒng)利用率低。接口包括:

聯(lián)機(jī)命令,終端處理程序,命令解釋程序。聯(lián)機(jī)命令(p221):

系統(tǒng)訪問(wèn)命令、磁盤(pán)操作命令、文件管理命令、目錄操作命令、其它命令。2.終端處理程序

交互式命令接口用戶(hù)同操作系統(tǒng)的通信是通過(guò)一個(gè)I/O裝置來(lái)實(shí)現(xiàn)的。

I/O裝置一般是顯示終端。

輸入通過(guò)鍵盤(pán),或通過(guò)指示裝置(鼠標(biāo))輸入。

某些系統(tǒng)中,提供圖形顯示功能。

不管哪種I/O方式,這個(gè)終端裝置是由一個(gè)終端處理程序來(lái)管理和控制的。

終端處理程序提供的輸入輸出方式對(duì)整個(gè)用戶(hù)命令接口有重大影響。

也確定了用戶(hù)與其應(yīng)用程序間的通信方式。(1)字符接收功能接收鍵盤(pán)打入的字符,并將鍵碼轉(zhuǎn)換為ASCII碼,面向字符方式(將字符傳送給程序)和面向行方式。(2)回送顯示(Echoing)

通常,每從鍵盤(pán)打入一個(gè)字符,終端處理序回送響應(yīng)的字符到顯示屏上。有時(shí)用戶(hù)要求其顯示一個(gè)不同的字符或不顯示(例如,用戶(hù)鍵入口令時(shí))。對(duì)于通過(guò)遠(yuǎn)程通信線(xiàn)路訪問(wèn)的終端,回送顯示委托給遠(yuǎn)程終端來(lái)實(shí)現(xiàn)。鍵盤(pán)終端處理程序的功能(3)字符緩沖打入的字符在送到程序前,由終端處理程序保存。提供編輯,甚至取消命令的機(jī)會(huì);如行緩沖的行編輯。有專(zhuān)用緩沖方式(每個(gè)終端專(zhuān)用)和公用緩沖方式。(4)提前打入(Typeahead)輸入字符在程序處理它們之前由“提前打入進(jìn)程”把它們保存在緩沖區(qū)中(可以保存多行)。當(dāng)緩沖區(qū)存滿(mǎn)后,再打入的字符會(huì)漏掉或覆蓋緩沖區(qū)原有內(nèi)容。(5)字符變換

有些情況下,需要對(duì)打入的字符進(jìn)行代碼變換。如:把小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母,或者反之。(5)屏幕編輯對(duì)輸入字符進(jìn)行屏幕編輯,插入、刪除或改寫(xiě)。(6)特殊字符處理(熱鍵)

中斷字符:當(dāng)前執(zhí)行的程序可接受中斷字符立即終止運(yùn)行。如:CTRL+C、CTRL+Break。停止上卷字符CTRL+S

恢復(fù)上卷字符CTRL+Q3.命令解釋程序

如:DOS、UNIXshell(P227)(a)由終端命令解釋程序直接處理在無(wú)創(chuàng)建子進(jìn)程功能的系統(tǒng)中,終端命令由對(duì)應(yīng)的命令解釋程序處理;僅有一個(gè)進(jìn)程對(duì)應(yīng)一個(gè)終端用戶(hù)。(b)由子進(jìn)程代為處理在具有創(chuàng)建子進(jìn)程功能的系統(tǒng)中,對(duì)于較為單純的命令,如列目錄,拷貝文件等,命令解釋程序本身便能完成,此時(shí)由命令解釋程序直接處理。對(duì)較復(fù)雜命令,如對(duì)于Pascal源程序進(jìn)行編譯,命令解釋程序本身不能處理,此時(shí)創(chuàng)建一個(gè)子進(jìn)程,并由該子進(jìn)程運(yùn)行Pascal編譯程序。MS-DOSExecutionUNIXSystemStructure4.命令接口的結(jié)構(gòu)

命令接口由命令處理器來(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)中,可能用專(zhuān)門(mén)設(shè)計(jì)的命令接口替代標(biāo)準(zhǔn)的命令接口

如:多用戶(hù)UNIX,用戶(hù)可有不同命令接口5.命令語(yǔ)言

命令語(yǔ)言規(guī)定由OS執(zhí)行的一系列操作在一般的命令語(yǔ)言中,用戶(hù)通過(guò)打入稱(chēng)為命令行的一行指令(語(yǔ)句)來(lái)規(guī)定每一個(gè)動(dòng)作。命令行以命令開(kāi)始,它標(biāo)識(shí)所要執(zhí)行的操作。命令是用運(yùn)行一段程序來(lái)執(zhí)行所請(qǐng)求的操作。多數(shù)命令行中要給出一些參數(shù),每一命令語(yǔ)句實(shí)際上是帶有參數(shù)的一個(gè)過(guò)程調(diào)用。命令語(yǔ)言通常提供下列幾組命令:(p228)(1)系統(tǒng)訪問(wèn)命令 登錄命令,如:login等 撤離命令,如:logout等(2)文件操作命令(3)編輯、編譯和執(zhí)行命令(4)詢(xún)問(wèn)命令(5)操作員專(zhuān)用命令典型命令實(shí)例:(1)UNIX系統(tǒng):whols-l(2)DOS系統(tǒng)dirc:\(3)VAX/VMSrunmypro

命令的附加功能

命令的附加功能用以擴(kuò)大命令的功能性、選擇性、適應(yīng)性。包括:(1)參數(shù)表用參數(shù)表示位置、操作對(duì)象等附加信息用“—”或“/”加關(guān)鍵字表示子功能(2)命令通配符:“*”和“?”(3)重定向命令(p230):

用“<”或“>”將標(biāo)準(zhǔn)輸入或輸出重新定向到其它文件上。(4)管道命令:

用“|”來(lái)連接兩條命令,第1條命令的輸出作為第2條命令的輸入,管道作緩沖。(5)通信命令、后臺(tái)命令針對(duì)脫機(jī)用戶(hù)操作和大量順序操作功能而設(shè)計(jì)。批處理命令可以是專(zhuān)門(mén)的命令,也可是系統(tǒng)的基本命令;還有有關(guān)的語(yǔ)法結(jié)構(gòu),循環(huán)、分支、轉(zhuǎn)移、判別等,枸成一套特殊的命令語(yǔ)言。6.批處理命令7.圖形用戶(hù)接口以Windows為代表,許多現(xiàn)代OS都提供了圖形用戶(hù)接口,使用起來(lái)非常方便,不需要用戶(hù)記憶大量的命令名稱(chēng)、功能、格式和參數(shù)。圖形界面,以窗口(windows)、圖標(biāo)(icon)、菜單(menu)、指點(diǎn)裝置(pointingdevice)為基礎(chǔ)的交互式系統(tǒng),形成WIMP標(biāo)準(zhǔn),以實(shí)際動(dòng)作代替復(fù)雜語(yǔ)法。

(見(jiàn)P243~249)8.交互式系統(tǒng)的歷史與展望六十年代中期:問(wèn)答式對(duì)話(huà)、文本菜單或命令語(yǔ)言,基于命令行界面的交互式系統(tǒng)。八十年代:圖形界面,形成WIMP標(biāo)準(zhǔn),以指點(diǎn)裝置的實(shí)際動(dòng)作代替復(fù)雜語(yǔ)法。多媒體界面是WIMP另一種風(fēng)格,是單通道的。未來(lái)的交互式系統(tǒng)必將是多通道的通過(guò)各種不同的人體通道,如:語(yǔ)音、手勢(shì)、思維語(yǔ)言等交互,大大提高交互的自然性和高效性。遵循以人為中心的自然交互特點(diǎn),實(shí)現(xiàn)人與系統(tǒng)的無(wú)障礙自然交互。7.1.4交互式系統(tǒng)實(shí)例——分時(shí)系統(tǒng)分時(shí)系統(tǒng)中的用戶(hù)控制作業(yè)的執(zhí)行大致有四個(gè)階段:終端的連接用戶(hù)登錄控制作業(yè)執(zhí)行用戶(hù)退出1.終端的連接必須使終端設(shè)備與計(jì)算機(jī)系統(tǒng)線(xiàn)路接通近程終端是直接與計(jì)算機(jī)系統(tǒng)連接的,當(dāng)終端設(shè)備加電后,終端就與計(jì)算機(jī)系統(tǒng)線(xiàn)路接通。遠(yuǎn)程終端通過(guò)租用專(zhuān)線(xiàn)或交換線(xiàn)接到計(jì)算機(jī)系統(tǒng),在終端加電后用戶(hù)還需通過(guò)電話(huà)撥號(hào)進(jìn)行呼叫,直到接通。當(dāng)終端與計(jì)算機(jī)系統(tǒng)在線(xiàn)路上接通后,計(jì)算機(jī)系統(tǒng)會(huì)在終端上顯示信息告訴用戶(hù)。2.用戶(hù)登錄

用戶(hù)必須向系統(tǒng)登錄用戶(hù)首先輸入“登錄”命令(login)命令系統(tǒng)會(huì)向詢(xún)問(wèn)用戶(hù)名、作業(yè)名、口令和資源需求等,經(jīng)過(guò)識(shí)別用戶(hù)、核對(duì)口令,系統(tǒng)在終端上顯示“已登錄”和進(jìn)入系統(tǒng)的時(shí)間等信息。若口令不對(duì)或資源暫時(shí)不能滿(mǎn)足時(shí),則系統(tǒng)在終端上顯示“登錄不成功”并給出登錄失敗的原因。用戶(hù)的登錄過(guò)程可看作是對(duì)終端作業(yè)的作業(yè)調(diào)度3.控制作業(yè)執(zhí)行

登錄成功的終端用戶(hù)可從終端上輸入作業(yè)的程序和數(shù)據(jù)用系統(tǒng)提供的命令語(yǔ)言或會(huì)話(huà)語(yǔ)句控制作業(yè)執(zhí)行每輸入一命令或一會(huì)話(huà)語(yǔ)句后,由系統(tǒng)解釋執(zhí)行且在終端上顯示執(zhí)行成功或問(wèn)題,由用戶(hù)決定下一步命令或會(huì)話(huà),直到作業(yè)完成4.用戶(hù)退出用戶(hù)輸入“退出”命令(logout)請(qǐng)求退出系統(tǒng),系統(tǒng)接收命令后就收回該用戶(hù)所占的資源讓其退出,同時(shí)在終端上顯示“退出時(shí)間”或“使用系統(tǒng)時(shí)間。時(shí)間片輪轉(zhuǎn):在OS控制下,采用“時(shí)間片輪轉(zhuǎn)”方法使每個(gè)終端作業(yè)都能在一個(gè)“時(shí)間片”內(nèi)去占用處理器。當(dāng)時(shí)間片用完后,讓出處理器給另一終端作業(yè)。這樣,保證從終端用戶(hù)輸入命令到計(jì)算機(jī)系統(tǒng)給出應(yīng)答只是幾秒鐘的時(shí)間,使端用戶(hù)感到滿(mǎn)意。7.2系統(tǒng)調(diào)用7.2.1.系統(tǒng)調(diào)用簡(jiǎn)介

為了保證OS不被用戶(hù)程序破壞,不允許用戶(hù)程序直接訪問(wèn)OS的系統(tǒng)程序和數(shù)據(jù),只能用系統(tǒng)調(diào)用訪問(wèn)。1.系統(tǒng)調(diào)用

用戶(hù)在程序中調(diào)用操作系統(tǒng)提供的子功能是特殊的過(guò)程調(diào)用,由特殊的機(jī)器指令實(shí)現(xiàn)。幾百種系統(tǒng)調(diào)用指令還將系統(tǒng)轉(zhuǎn)入管態(tài)系統(tǒng)調(diào)用程序是一個(gè)低級(jí)過(guò)程,只能由匯編語(yǔ)言直接訪問(wèn)(許多高級(jí)語(yǔ)言也增加了此項(xiàng)功能)。系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口,利用系統(tǒng)調(diào)用,動(dòng)態(tài)請(qǐng)求和釋放系統(tǒng)資源,完成與硬件相關(guān)的工作以及控制程序的執(zhí)行等。PassingofParametersAsATableASystemCallisthemainwayauserprograminteractswiththeOperatingSystem.Figure3.1Figure2.8SystemCalls

2.處理器的狀態(tài)根據(jù)運(yùn)行程序?qū)Y源和機(jī)器指令的使用權(quán)限將處理器設(shè)置為不同狀態(tài)多數(shù)系統(tǒng)將處理器工作狀態(tài)劃分為管態(tài)和目態(tài)管態(tài):操作系統(tǒng)管理程序運(yùn)行的狀態(tài),較高的特權(quán)級(jí)別,又稱(chēng)為特權(quán)態(tài)(特態(tài))、系統(tǒng)態(tài)目態(tài):用戶(hù)程序運(yùn)行時(shí)的狀態(tài),較低的特權(quán)級(jí)別,又稱(chēng)為普通態(tài)(普態(tài))、用戶(hù)態(tài)

管態(tài)和目態(tài)的差別處理器處于管態(tài)時(shí):全部指令(包括特權(quán)指令)可以執(zhí)行可使用所有資源并具有改變處理器狀態(tài)的能力處理器處于目態(tài)時(shí):只有非特權(quán)指令能執(zhí)行特權(quán)級(jí)別不同可運(yùn)行指令集合也不同特權(quán)級(jí)別越高,可以運(yùn)行指令集合越大高特權(quán)級(jí)別對(duì)應(yīng)的可運(yùn)行指令集合包含低特權(quán)級(jí)的3.系統(tǒng)調(diào)用的實(shí)例匯編程序例子:在屏幕上顯示一字符串查系統(tǒng)調(diào)用表得知,調(diào)用號(hào)為09H,出口參數(shù)無(wú),入口參數(shù):DS:DX=輸出字串所在緩沖區(qū)首址:

…MOVAH,09HMOVDX,SEGMystringMOVDS,DXMOVDX,OFFSETMystringINT21H…

MystringDB‘HelloWorld’高級(jí)語(yǔ)言例子:打印5個(gè)字符

charbuff[4]=“abcde”;for(i=4;i>=0;i--)print(buff[i]);高級(jí)語(yǔ)言例子:讀硬盤(pán)文件f1的第10到20個(gè)字節(jié)

seek(fd,10,0);read(fd,buff,11);......A=A+1printf(...)B=B+A(1)源程序段INT......(2)printf目標(biāo)代碼......INOUT...(3)操作系統(tǒng)內(nèi)部代碼該系統(tǒng)調(diào)用的操作系統(tǒng)內(nèi)部實(shí)現(xiàn)代碼用戶(hù)程序函數(shù)操作系統(tǒng)凡是與硬件相關(guān)、與應(yīng)用無(wú)關(guān)的工作,都通過(guò)操作系統(tǒng)程序來(lái)完成系統(tǒng)調(diào)用與一般過(guò)程調(diào)用的對(duì)比不同點(diǎn):(1)

一般過(guò)程調(diào)用,調(diào)用程序和被調(diào)用程序都運(yùn)行在相同狀態(tài)(核心態(tài)或用戶(hù)態(tài)),而系統(tǒng)調(diào)用,調(diào)用程序在用戶(hù)態(tài),被調(diào)用程序在核心態(tài)。(2)一般過(guò)程調(diào)用調(diào)用時(shí)不涉及系統(tǒng)狀態(tài)轉(zhuǎn)換,直接轉(zhuǎn)向被調(diào)用過(guò)程;而系統(tǒng)調(diào)用調(diào)用時(shí)涉及系統(tǒng)狀態(tài)的轉(zhuǎn)換,不允許由調(diào)用過(guò)程直接轉(zhuǎn)向被調(diào)用過(guò)程,要先通過(guò)軟中斷機(jī)制由用戶(hù)態(tài)轉(zhuǎn)換為核心態(tài),在OS核心分析后,再轉(zhuǎn)向相應(yīng)的系統(tǒng)調(diào)用處理子程序。(3)搶占式調(diào)度系統(tǒng)中,系統(tǒng)調(diào)用返回時(shí)會(huì)引起重新調(diào)度相同點(diǎn):

改變指令流程,轉(zhuǎn)去執(zhí)行公用程序段,可嵌套。7.2.2系統(tǒng)調(diào)用的類(lèi)型從系統(tǒng)調(diào)用的服務(wù)目的分為兩部分:

(1)系統(tǒng)自身所需要的。

(2)作為服務(wù)提供給用戶(hù)的。按系統(tǒng)調(diào)用的功能分為四類(lèi):1.進(jìn)程控制類(lèi)系統(tǒng)調(diào)用:2.進(jìn)程通信類(lèi)系統(tǒng)調(diào)用:3.文件操作類(lèi)系統(tǒng)調(diào)用:4.信息維護(hù)類(lèi)系統(tǒng)調(diào)用:UNIX系統(tǒng)調(diào)用的類(lèi)型:

(P238)1.進(jìn)程控制類(lèi)系統(tǒng)調(diào)用:創(chuàng)建進(jìn)程:fork()終止進(jìn)程:exit()等待子進(jìn)程結(jié)束:wait()執(zhí)行一個(gè)可執(zhí)行文件(覆蓋調(diào)用者):exec()獲得進(jìn)程ID:getp-id()、getpgrp()、getppid()獲得用戶(hù)ID:getuid()、getgid()進(jìn)程暫停:pause()2.進(jìn)程通信類(lèi)系統(tǒng)調(diào)用:

消息機(jī)制:打開(kāi)連接/接收連接,發(fā)送/接收消息;建立消息隊(duì)列msgget()發(fā)送消息msgsed()接收消息msgrcv()

共享存儲(chǔ)區(qū)機(jī)制:建立存儲(chǔ)區(qū):shmget()建立連接:shmat()拆除連接:shmdt()

信號(hào)量機(jī)制:信號(hào)量集表,信號(hào)量表.建立信號(hào)量集:semget()對(duì)信號(hào)量集操作:semop()、semctl()3.文件操作類(lèi)系統(tǒng)調(diào)用:創(chuàng)建文件:creat()打開(kāi)文件:open()關(guān)閉文件:close()讀/寫(xiě)文件:read()、write()移動(dòng)讀/寫(xiě)指針:seek()共享的連接和去連接(刪除):link()、unlink()4.信息維護(hù)類(lèi)系統(tǒng)調(diào)用:設(shè)置和獲得系統(tǒng)時(shí)間stime()獲得進(jìn)程時(shí)間:times()設(shè)置文件訪問(wèn)和修改時(shí)間:utime()獲得當(dāng)前系統(tǒng)名稱(chēng):uname()

包括名稱(chēng)串,標(biāo)準(zhǔn)名,在網(wǎng)絡(luò)中的名稱(chēng)7.2.3系統(tǒng)調(diào)用的實(shí)現(xiàn)用戶(hù)怎樣通過(guò)系統(tǒng)調(diào)用得到系統(tǒng)服務(wù)的呢?需要有一個(gè)類(lèi)似于硬件中斷處理的處理機(jī)構(gòu)。當(dāng)用戶(hù)使用操作系統(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)用所要求的功能。1.中斷和陷入硬件機(jī)構(gòu)

(1)中斷是CPU對(duì)系統(tǒng)發(fā)生的某(外部)事件的響應(yīng):

CPU暫停正在執(zhí)行的程序,保護(hù)現(xiàn)場(chǎng)轉(zhuǎn)去執(zhí)行該事件的中斷處理程序,執(zhí)行完后返回原程序斷點(diǎn)繼續(xù)執(zhí)行。

(2)陷入(內(nèi)中斷,捕獲)是由CPU內(nèi)部事件引起的中斷

如:非法指令、地址越界、溢出、電源故障等。

陷入由執(zhí)行現(xiàn)行指令引起,中斷則與現(xiàn)行指令無(wú)關(guān)。

還可以把由于系統(tǒng)調(diào)用引起處理機(jī)中斷的指令稱(chēng)為陷入或異常指令(或稱(chēng)訪管指令),或軟中斷指令。從中斷的觀點(diǎn)看,引起中斷的事件就是系統(tǒng)調(diào)用本身。被中斷程序中斷處理程序中斷點(diǎn)

(3)每個(gè)系統(tǒng)調(diào)用都對(duì)應(yīng)一個(gè)事先給定的功能號(hào)

在陷入指令中必須包括對(duì)應(yīng)系統(tǒng)調(diào)用的功能號(hào),而且,還帶有傳給陷入處理機(jī)構(gòu)和內(nèi)部處理程序的有關(guān)參數(shù)。

(4)中斷和陷入向量(P237圖7-5)

必須為系統(tǒng)調(diào)用功能的各子程序編造陷入(中斷)向量表,每個(gè)表目由入口地址和處理機(jī)狀態(tài)字PSW兩個(gè)字組成;陷入處理機(jī)構(gòu)把陷入指令包含的功能號(hào)與入口地址表項(xiàng)相對(duì)應(yīng),執(zhí)行對(duì)應(yīng)的子程序。

(5)保護(hù)和恢復(fù)現(xiàn)場(chǎng):在進(jìn)入系統(tǒng)調(diào)用之前,在系統(tǒng)棧保護(hù)處理機(jī)現(xiàn)場(chǎng)。在系統(tǒng)調(diào)用結(jié)束之后要恢復(fù)處理機(jī)現(xiàn)場(chǎng)。2.系統(tǒng)調(diào)用的參數(shù)傳遞每一條系統(tǒng)調(diào)用都含有若干個(gè)參數(shù),執(zhí)行系統(tǒng)調(diào)用時(shí),將這些參數(shù)傳遞給相應(yīng)的子程序。怎樣實(shí)現(xiàn)用戶(hù)程序和系統(tǒng)程序間的參數(shù)傳遞?有兩種傳遞方式:

(1)通過(guò)有關(guān)通用寄存器來(lái)傳遞參數(shù):

直接將參數(shù)送入相應(yīng)的寄存器(如DOS21h號(hào)中斷),這些寄存器應(yīng)是系統(tǒng)和用戶(hù)程序都能訪問(wèn)的,此方法簡(jiǎn)單,但由于寄存器數(shù)量較少,無(wú)法傳遞較多的參數(shù)。

(2)參數(shù)表方式將系統(tǒng)調(diào)用所需的參數(shù)放入一張參數(shù)表中,在將指向該參數(shù)表的指針?lè)旁谀硞€(gè)寄存器(如R0)中;此方式又分為直接方式和間接方式。(P237圖7-6)變?cè)?N參數(shù)1參數(shù)2…參數(shù)Ntrapxx參數(shù)1…參數(shù)N變?cè)?N指針直接方式間接方式

UNIX系統(tǒng)中非共享程序用直接方式,共享程序用間接方式。用戶(hù)態(tài)非共享代碼數(shù)據(jù)段:…trapxx參數(shù)1…參數(shù)N……trapxx參數(shù)1…參數(shù)N…用戶(hù)態(tài)共享代碼…trap00syscall-p……數(shù)組U-arg[]……user結(jié)構(gòu)…數(shù)組U-arg[]……user結(jié)構(gòu)核心態(tài)ppda區(qū)3.系統(tǒng)調(diào)用的處理步驟

(1)將處理機(jī)狀態(tài)由用戶(hù)態(tài)轉(zhuǎn)為系統(tǒng)態(tài);由硬件和內(nèi)核程序進(jìn)行一般性處理,即保護(hù)現(xiàn)場(chǎng):將處理機(jī)狀態(tài)字PSW、程序計(jì)數(shù)器PC、系統(tǒng)調(diào)用號(hào)、用戶(hù)棧指針和通用寄存器內(nèi)容壓入堆棧;再將用戶(hù)定義的的參數(shù)傳送到指定的地方。

(2)

分析系統(tǒng)調(diào)用類(lèi)型,按系統(tǒng)調(diào)用入口表轉(zhuǎn)入相應(yīng)的系統(tǒng)調(diào)用處理子程序(并傳遞參數(shù));該表目含該系統(tǒng)調(diào)用自帶參數(shù)的個(gè)數(shù)(與參數(shù)表指針)和入口地址。

(3)執(zhí)行系統(tǒng)調(diào)用處理子程序。

(4)執(zhí)行完后,恢復(fù)被中斷的或設(shè)置新進(jìn)程的CPU現(xiàn)場(chǎng),然后返回被中斷進(jìn)程或進(jìn)入新進(jìn)程?!?/p>

系統(tǒng)調(diào)用…

入口表

(1)轉(zhuǎn)核心態(tài)

保護(hù)現(xiàn)場(chǎng)(2)取系統(tǒng)調(diào)用功能號(hào)

找到入口傳遞參數(shù)A0A1Ai

AnA0A1AiAnSub0Sub1SubiSubn

用戶(hù)程序系統(tǒng)調(diào)用處理過(guò)程(3)恢復(fù)現(xiàn)場(chǎng)返回原處或重新調(diào)度設(shè)新現(xiàn)場(chǎng)進(jìn)新進(jìn)程陷入處理機(jī)構(gòu)系統(tǒng)子程序另一進(jìn)程…

DOS:INT21h軟中斷,寄存器傳遞參數(shù)和入口。Linux:0x80(或128)中斷向量用來(lái)實(shí)現(xiàn)系統(tǒng)調(diào)用現(xiàn)代操作系統(tǒng)一般不直接提供系統(tǒng)調(diào)用指令接口,通常做法:提供一套方便實(shí)用的應(yīng)用程序函數(shù)庫(kù)(API)

從應(yīng)用層面重新封裝系統(tǒng)調(diào)用、屏蔽復(fù)雜的系統(tǒng)調(diào)用傳參問(wèn)題、提供高級(jí)語(yǔ)言接口,有助于快速開(kāi)發(fā)在更高層面提供系統(tǒng)程序設(shè)計(jì)模板庫(kù)和類(lèi)庫(kù),如:

Windows2000/XP提供封裝系統(tǒng)調(diào)用Win32API和高層編程設(shè)施MFC以及ATL。

Linux提供封裝系統(tǒng)調(diào)用,符合POSIX標(biāo)準(zhǔn)的API和C運(yùn)行庫(kù)。UNIX系統(tǒng)調(diào)用的處理步驟

執(zhí)行CHMK指令,CPU狀態(tài)轉(zhuǎn)為核心態(tài),并保護(hù)CPU環(huán)境由硬件自動(dòng)將PSL、PC、code壓入用戶(hù)核心棧,再按中斷和陷入向量表轉(zhuǎn)入中斷和陷入總控程序trap.S保護(hù)其它環(huán)境,再調(diào)用公共處理程序trap.C。

trap.C程序:確定系統(tǒng)調(diào)用號(hào)用參數(shù)表傳遞參數(shù)利用系統(tǒng)調(diào)用定義表轉(zhuǎn)入相應(yīng)的處理程序善后公共處理“廣義指令”和“虛處理機(jī)”系統(tǒng)調(diào)用命令擴(kuò)充了機(jī)器指令,增強(qiáng)了系統(tǒng)的功能,方便用戶(hù)使用,稱(chēng)之為“廣義指令”。從用戶(hù)角度來(lái)看,它擴(kuò)充了機(jī)器指令系統(tǒng),增強(qiáng)了處理機(jī)功能?!皬V義指令”和機(jī)器指令的不同:機(jī)器指令是由硬件線(xiàn)路直接實(shí)現(xiàn)的“廣義指令”由軟件(OS提供的多個(gè)子程序)實(shí)現(xiàn)的“虛處理機(jī)”:

“廣義指令”相當(dāng)于,提供了一臺(tái)功能更強(qiáng),使用更方便的處理機(jī),實(shí)現(xiàn)了處理機(jī)性能上的擴(kuò)充。為了區(qū)別于真實(shí)的物理處理機(jī),稱(chēng)它為“虛處理機(jī)”。3.Win32應(yīng)用程序接口在Windows中,定義了種類(lèi)非常多的數(shù)以千計(jì)的應(yīng)用程序接口(Win32API),提供OS服務(wù)

Windows中分辨不出哪些是系統(tǒng)調(diào)用(被內(nèi)核執(zhí)行),哪些是用戶(hù)空間的庫(kù)調(diào)用。事實(shí)上,一個(gè)Windows版本中的系統(tǒng)調(diào)用,也許在另一個(gè)Windows版本中會(huì)在用戶(hù)空間的庫(kù)調(diào)用在某些Windows版本中,圖形子系統(tǒng)在內(nèi)核中運(yùn)行,它們也是系統(tǒng)調(diào)用,否則是用戶(hù)空間的庫(kù)調(diào)用7.4操作系統(tǒng)的安裝與啟動(dòng)操作系統(tǒng)怎樣開(kāi)始運(yùn)行(引導(dǎo)和裝入)

怎樣形成系統(tǒng)操作環(huán)境(配置和初始化)

怎樣從程序的順序執(zhí)行轉(zhuǎn)換到支持程序的并發(fā)執(zhí)行1.操作系統(tǒng)的引導(dǎo)和裝入(1)獨(dú)立引導(dǎo)方式操作系統(tǒng)的引導(dǎo)有兩種方式:獨(dú)立引導(dǎo)(bootup)

輔助下裝(download)大多數(shù)系統(tǒng)采用OS核心文件存儲(chǔ)在系統(tǒng)本身的存儲(chǔ)設(shè)備中由系統(tǒng)自己將OS核心程序讀入內(nèi)存并運(yùn)行最后建立一個(gè)操作環(huán)境獨(dú)立引導(dǎo)方式步驟:(1)系統(tǒng)加電,執(zhí)行BIOS中的系統(tǒng)初啟程序。(2)對(duì)系統(tǒng)硬件和配置進(jìn)行自檢,保證無(wú)硬件錯(cuò)誤。(3)從硬盤(pán)中讀入操作系統(tǒng)啟動(dòng)文件,并將控制權(quán)交給該程序模塊。(4)執(zhí)行操作系統(tǒng)啟動(dòng)程序,完成系統(tǒng)環(huán)境配置和操作系統(tǒng)初始化工作。(5)繼續(xù)讀入其余的OS文件,逐個(gè)執(zhí)行相應(yīng)的系統(tǒng)程序,完成OS各種功能模塊的裝入,完善OS的操作環(huán)境,做好程序并發(fā)執(zhí)行的準(zhǔn)備。(6)等待用戶(hù)請(qǐng)求和用戶(hù)作業(yè)的輸入,經(jīng)過(guò)操作系統(tǒng)調(diào)度后并發(fā)執(zhí)行。

OS主要文件不放在系統(tǒng)本身的存儲(chǔ)設(shè)備中,而是在系統(tǒng)啟動(dòng)后,執(zhí)行下裝操作。從另外的計(jì)算機(jī)系統(tǒng)中將操作系統(tǒng)常駐部分傳送到該計(jì)算機(jī)中,使它形成一個(gè)操作環(huán)境。優(yōu)點(diǎn):可以節(jié)省較大的存儲(chǔ)空間。下裝的OS并非是全部代碼,只是常駐部分或者專(zhuān)用部分。當(dāng)這部分OS出現(xiàn)問(wèn)題和故障時(shí),可以再請(qǐng)求下裝。(2)輔助下裝方式2.系統(tǒng)配置與初始化操作系統(tǒng)引導(dǎo)是從程序的順序執(zhí)行到并發(fā)執(zhí)行的過(guò)程,操作系統(tǒng)初始化完成后,才能建立這樣的環(huán)境。步驟:(1)關(guān)掉系統(tǒng)中斷,以保證系統(tǒng)順利引導(dǎo)(2)對(duì)當(dāng)前的系統(tǒng)運(yùn)行環(huán)境進(jìn)行檢查;對(duì)系統(tǒng)的配置進(jìn)行認(rèn)定,保存檢測(cè)的結(jié)果作為系統(tǒng)的初始配置條件。(3)進(jìn)行操作系統(tǒng)的初始化BIOS(基本輸入輸出系統(tǒng))概覽1.打開(kāi)電源2.硬件將控制權(quán)交給BIOS3.BIOS運(yùn)行通電自測(cè)試程序,測(cè)內(nèi)存4.確認(rèn)所有外部設(shè)備:鍵盤(pán)、硬盤(pán)或擴(kuò)充卡5.確定主引導(dǎo)或初始程序加載(IPL)設(shè)備的位置6.BIOS建立系統(tǒng)資源表7.選擇并啟用初始輸入設(shè)備(鍵盤(pán))和輸出設(shè)備(顯示器);BIOS在成功啟動(dòng)時(shí)俘獲這些設(shè)置,并將他們存儲(chǔ)到存儲(chǔ)器中8.搜索非PnP設(shè)備,如外部設(shè)備互連(PCI)總線(xiàn),并將這些設(shè)備的ROM的數(shù)據(jù)添加到資源表中9.BIOS解決設(shè)備沖突,并配置選擇的引導(dǎo)設(shè)備10.通過(guò)用適當(dāng)參數(shù)呼叫PnP(PlugandPlay即插即用)設(shè)備的任選ROM來(lái)啟動(dòng)這些設(shè)備11.啟動(dòng)引導(dǎo)裝入程序12.IPL設(shè)備將操作系統(tǒng)裝到存儲(chǔ)器中13.BIOS將控制權(quán)交給操作系統(tǒng),操作系統(tǒng)可以進(jìn)行其他資源的分配初始化工作要點(diǎn)(1)根據(jù)OS定義的全局參數(shù),在內(nèi)存中建立OS工作時(shí)所必需的數(shù)據(jù)結(jié)構(gòu)和各種記錄表格,并且根據(jù)當(dāng)前系統(tǒng)的環(huán)境配置情況,填寫(xiě)相應(yīng)的表格和結(jié)構(gòu),設(shè)定它們的初始條件、參數(shù)和狀態(tài)。(2)最重要的是建立有關(guān)進(jìn)程的所有數(shù)據(jù)結(jié)構(gòu),如建立PCB表,建立相應(yīng)的進(jìn)程隊(duì)列。(3)操作系統(tǒng)根據(jù)檢查得到的數(shù)據(jù)獲得自由存儲(chǔ)空間的容量,并且以此作為存儲(chǔ)分配的基數(shù)之一

溫馨提示

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

評(píng)論

0/150

提交評(píng)論