第7章操作系統(tǒng)接口_第1頁
第7章操作系統(tǒng)接口_第2頁
第7章操作系統(tǒng)接口_第3頁
第7章操作系統(tǒng)接口_第4頁
第7章操作系統(tǒng)接口_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第七章操作系統(tǒng)接口7.1聯(lián)機(jī)用戶接口7.2

Shell命令語言7.3系統(tǒng)調(diào)用7.4

UNIX系統(tǒng)調(diào)用7.5圖形用戶接口

7.1聯(lián)機(jī)用戶接口

7.1.1聯(lián)機(jī)用戶接口(2種方式)聯(lián)機(jī)用戶接口,也稱為聯(lián)機(jī)命令接口。不同操作系統(tǒng)的聯(lián)機(jī)命令接口有所不同,這不僅指命令的種類、數(shù)量及功能方面,也可能體現(xiàn)在命令的形式、用法等方面。不同的用法和形式構(gòu)成了不同的用戶界面,可分成以下兩種:(1)字符顯示式用戶界面;(2)圖形化用戶界面。

1.命令行方式該方式是指以行為單位輸入和顯示不同的命令。每行長度一般不超過256個(gè)字符,命令的結(jié)束通常以回車符為標(biāo)記。命令的執(zhí)行是串行、間斷的,后一個(gè)命令的輸入一般需等到前一個(gè)命令執(zhí)行結(jié)束,如用戶鍵入的一條命令處理完成后,系統(tǒng)發(fā)出新的命令輸入提示符,用戶才可以繼續(xù)輸入下一條命令。

也有許多操作系統(tǒng)提供了命令的并行執(zhí)行方式,例如一條命令的執(zhí)行需要耗費(fèi)較長時(shí)間,并且用戶也不急需其結(jié)果時(shí)(即兩條命令執(zhí)行是不相關(guān)的),則可以在一個(gè)命令的結(jié)尾輸入特定的標(biāo)記,將該命令作為后臺(tái)命令處理,用戶接著即可繼續(xù)輸入下一條命令,系統(tǒng)便可對(duì)兩條命令進(jìn)行并行處理。一般而言,對(duì)新用戶來說,命令行方式十分繁瑣,難以記憶,但對(duì)有經(jīng)驗(yàn)的用戶而言,命令行方式用起來快捷便當(dāng)、十分靈活,所以,至今許多操作員仍常使用這種命令方式。簡單命令的一般形式為:

Commandarg1arg2...a(chǎn)rgn其中,Command是命令名,又稱命令動(dòng)詞,其余為該命令所帶的執(zhí)行參數(shù),有些命令可以沒有參數(shù)。

2.批命令方式在操作命令的實(shí)際使用過程中,經(jīng)常遇到需要對(duì)多條命令的連續(xù)使用,或若干條命令的重復(fù)使用,或?qū)Σ煌钸M(jìn)行選擇性使用的情況。如果用戶每次都采用命令行方式,將命令一條條由鍵盤輸入,既浪費(fèi)時(shí)間,又容易出錯(cuò)。因此,操作系統(tǒng)都支持一種稱為批命令的特別命令方式,允許用戶預(yù)先把一系列命令組織在一種稱為批命令文件的文件中,一次建立,多次執(zhí)行。使用這種方式可減少用戶輸入命令的次數(shù),既節(jié)省了時(shí)間和減少了出錯(cuò)概率,又方便了用戶。通常批命令文件都有特殊的文件擴(kuò)展名,如MS-DOS系統(tǒng)的

.BAT文件。

7.1.2聯(lián)機(jī)命令的類型按功能分成5類:①

系統(tǒng)訪問類;②

磁盤操作類;③

文件操作類;④

目錄操作類;⑤

其他命令。

1.系統(tǒng)訪問類多用戶系統(tǒng)中,為了保證系統(tǒng)的安全性,都毫無例外地設(shè)置了系統(tǒng)訪問命令,即注冊(cè)命令Login。

Login:

/提示用戶鍵入自己的注冊(cè)名

Password:

/提示用戶鍵入自己的口令如果用戶多次(通常不超過三次)鍵入的注冊(cè)名或口令都有錯(cuò),系統(tǒng)將解除與用戶的聯(lián)接。

2.磁盤操作命令P250在微機(jī)操作系統(tǒng)中,通常都提供了若干條磁盤操作命令。

(1)磁盤格式化命令Format。

(2)復(fù)制整個(gè)軟盤命令Diskcopy。

(3)軟盤比較命令Diskcomp。

(4)備份與恢復(fù)命令Backup、RESTORE。

3.文件操作命令每個(gè)操作系統(tǒng)都提供了一組文件操作命令。在微機(jī)OS中的文件操作命令有下述幾種:

(1)顯示文件命令type:

(2)拷貝文件命令copy:

(3)文件比較命令comp:

(4)重新命名命令Rename:

(5)刪除文件命令erase:

4.目錄操作命令

(1)建立子目錄命令mkdir:

(2)顯示目錄命令dir:

(3)刪除子目錄命令rmdir:

(4)顯示目錄結(jié)構(gòu)命令tree:

(5)改變當(dāng)前目錄命令chdir:

5.其它命令

(1)輸入輸出重定向命令。

(2)管道連接。

(3)過濾命令。

(4)批命令。7.1.3鍵盤終端處理程序P252為了實(shí)現(xiàn)人機(jī)交互,還須在微機(jī)或終端上配置相應(yīng)的鍵盤終端處理程序,它應(yīng)具有下述幾方面的功能:(1)接收用戶從終端上打入的字符。(2)字符緩沖,用于暫存所接收的字符。(3)回送顯示。(4)屏幕編輯。(5)特殊字符處理。

1.字符接收功能為了實(shí)現(xiàn)人機(jī)交互,鍵盤終端處理程序必須能夠接收從終端輸入的字符,并將之傳送給用戶程序。有兩種方式來實(shí)現(xiàn)字符接收功能:

(1)面向字符方式。驅(qū)動(dòng)程序只接收從終端打入的字符,并且不加修改地將它傳送給用戶程序。這通常是一串未加工的ASCII碼。但大多數(shù)的用戶并不喜歡這種方式。

(2)面向行方式。終端處理程序?qū)⑺邮盏淖址麜捍嬖谛芯彌_中,并可對(duì)行內(nèi)字符進(jìn)行編輯。僅在收到行結(jié)束符后,才將一行正確的信息送命令解釋程序。在有的計(jì)算機(jī)中,從鍵盤硬件送出的是鍵的編碼(簡稱鍵碼),而不是ASCII碼。例如,當(dāng)打入a鍵時(shí),是將鍵碼“30”放入I/O寄存器,此時(shí),終端處理程序必須參照某種表格,將鍵碼轉(zhuǎn)換成ASCII碼。應(yīng)當(dāng)注意,某些IBM的兼容機(jī)使用的不是標(biāo)準(zhǔn)鍵碼。此時(shí),處理程序還須選用相應(yīng)的表格將其轉(zhuǎn)換成標(biāo)準(zhǔn)鍵碼。

2.字符緩沖功能為了能暫存從終端鍵入的字符,以降低中斷處理器的頻率,在終端處理程序中,還必須具有字符緩沖功能。字符緩沖可采用以下兩種方式之一:

(1)專用緩沖區(qū)方式。

(2)公用緩沖池方式。圖7-1兩種緩沖方式

3.回送顯示回送顯示(回顯)是指每當(dāng)用戶從鍵盤輸入一個(gè)字符后,終端處理程序便將該字符送往屏幕顯示。 硬件實(shí)現(xiàn)回顯。 軟件實(shí)現(xiàn)回顯。

4.屏幕編輯用戶經(jīng)常希望能對(duì)從鍵盤打入的數(shù)據(jù)(字符)進(jìn)行修改,如刪除(插入)一個(gè)或多個(gè)字符。為此,在終端處理程序中,還應(yīng)能實(shí)現(xiàn)屏幕編輯功能,包括能提供若干個(gè)編輯鍵。常用的編輯鍵有:

(1)刪除字符鍵。

(2)刪除一行鍵。

(3)插入鍵。

(4)移動(dòng)光標(biāo)鍵。

(5)屏幕上卷或下移鍵,等等。

5.特殊字符處理終端處理程序必須能對(duì)若干特殊字符進(jìn)行及時(shí)處理,這些字符是:

(1)中斷字符。當(dāng)程序在運(yùn)行中出現(xiàn)異常情況時(shí),用戶可通過鍵入中斷字符的辦法來中止當(dāng)前程序的運(yùn)行。在許多系統(tǒng)中是利用Break或Delete或Ctrl+C鍵作為中斷字符。對(duì)中斷字符的處理比較復(fù)雜。當(dāng)終端處理程序收到用戶鍵入的中斷字符后,將向該終端上的所有進(jìn)程發(fā)送一個(gè)要求進(jìn)程終止的軟中斷信號(hào),這些進(jìn)程收到該軟中斷信號(hào)后,便進(jìn)行自我終止。

(2)停止上卷字符。用戶鍵入此字符后,終端處理程序應(yīng)使正在上卷的屏幕暫停上卷,以便用戶仔細(xì)觀察屏幕內(nèi)容。在有的系統(tǒng)中,是利用Ctrl+S鍵來停止屏幕上卷的。

(3)恢復(fù)上卷字符。有的系統(tǒng)利用Ctrl+Q鍵使停止上卷的屏幕恢復(fù)上卷。終端處理程序收到該字符后,便恢復(fù)屏幕的上卷功能。上述的Ctrl+S與Ctrl+Q兩字符并不被存儲(chǔ),而是被用去設(shè)置終端數(shù)據(jù)結(jié)構(gòu)中的某個(gè)標(biāo)志。每當(dāng)終端試圖輸出時(shí),都須先檢查該標(biāo)志。若該標(biāo)志已被設(shè)置,便不再把字符送至屏幕。

7.1.4命令解釋程序

1.命令解釋程序的作用主要作用是在屏幕上給出提示符,請(qǐng)用戶鍵入命令,然后讀入該命令,識(shí)別命令,再轉(zhuǎn)到相應(yīng)命令處理程序的入口地址,把控制權(quán)交給該處理程序去執(zhí)行,并將處理結(jié)果送屏幕上顯示。若用戶鍵入的命令有錯(cuò),而命令解釋程序未能予以識(shí)別,或在執(zhí)行中間出現(xiàn)問題時(shí),則應(yīng)顯示出某一出錯(cuò)信息。

2.命令解釋程序的組成

(1)常駐部分。這部分包括一些中斷服務(wù)子程序。例如:正常退出中斷INT20,它用于在用戶程序執(zhí)行完畢后,退回操作系統(tǒng);駐留退出中斷INT27,用這種方式,退出程序可駐留在內(nèi)存中;還有用于處理和顯示標(biāo)準(zhǔn)錯(cuò)誤信息的INT24等。常駐部分還包括這樣的程序:當(dāng)用戶程序終止后,它檢查暫存部分是否已被用戶程序覆蓋,若已被覆蓋,便重新將暫存部分調(diào)入內(nèi)存。

(2)初始化部分。它跟隨在常駐內(nèi)存部分之后,在啟動(dòng)時(shí)獲得控制權(quán)。這部分還包括對(duì)AUTOEXEC.BAT文件的處理程序,并決定應(yīng)用程序裝入的基地址。每當(dāng)系統(tǒng)接電或重新啟動(dòng)后,由處理程序找到并執(zhí)行AUTOEXEC.BAT文件。由于該文件在用完后不再被需要,因而它將被第一個(gè)由COMMAND.COM裝入的文件所覆蓋。

(3)暫存部分。這部分主要是命令解釋程序,并包含了所有的內(nèi)部命令處理程序、批文件處理程序,以及裝入和執(zhí)行外部命令的程序。它們都駐留在內(nèi)存中,但用戶程序可以使用并覆蓋這部分內(nèi)存,在用戶程序結(jié)束時(shí),常駐程序又會(huì)將它們重新從磁盤調(diào)入內(nèi)存,恢復(fù)暫存部分。

圖7-2

COMMAND.COM的工作流程

3.命令解釋程序的工作流程7.2

Shell命令語言

Shell也是一種程序設(shè)計(jì)語言

7.2.1簡單命令

1.進(jìn)入與退出系統(tǒng)

2.文件操作命令

3.目錄操作命令

4.系統(tǒng)詢問命令7.2.2重定向與管道命令7.2.3通信命令

1.信箱通信命令mail

2.對(duì)話通信命令write

3.允許或拒絕接收消息命令mesg7.2.4后臺(tái)命令7.3系

統(tǒng)

調(diào)

7.3.1系統(tǒng)調(diào)用的基本概念通常,在OS的核心中都設(shè)置了一組用于實(shí)現(xiàn)各種系統(tǒng)功能的子程序(過程),并將它們提供給應(yīng)用程序調(diào)用。由于這些程序或過程是OS系統(tǒng)本身程序模塊中的一部分,為了保護(hù)操作系統(tǒng)程序不被用戶程序破壞,一般都不允許用戶程序訪問操作系統(tǒng)的程序和數(shù)據(jù),所以也不允許應(yīng)用程序采用一般的過程調(diào)用方式來直接調(diào)用這些過程,而是向應(yīng)用程序提供了一系列的系統(tǒng)調(diào)用命令,讓應(yīng)用程序通過系統(tǒng)調(diào)用去調(diào)用所需的系統(tǒng)過程。

1.系統(tǒng)態(tài)和用戶態(tài)兩類程序:系統(tǒng)程序和應(yīng)用程序,為了保證系統(tǒng)程序不被應(yīng)用程序有意或無意地破壞,為計(jì)算機(jī)設(shè)置了兩種狀態(tài):系統(tǒng)態(tài)(也稱為管態(tài)或核心態(tài))和用戶態(tài)(也稱為目態(tài))。操作系統(tǒng)在系統(tǒng)態(tài)運(yùn)行,而應(yīng)用程序只能在用戶態(tài)運(yùn)行。在實(shí)際運(yùn)行過程中,處理機(jī)會(huì)在系統(tǒng)態(tài)和用戶態(tài)間切換。相應(yīng)地,現(xiàn)代多數(shù)操作系統(tǒng)將CPU的指令集分為特權(quán)指令和非特權(quán)指令兩類。

1)特權(quán)指令所謂特權(quán)指令,就是在系統(tǒng)態(tài)時(shí)運(yùn)行的指令,是關(guān)系到系統(tǒng)全局的指令。其對(duì)內(nèi)存空間的訪問范圍基本不受限制,不僅能訪問用戶存儲(chǔ)空間,也能訪問系統(tǒng)存儲(chǔ)空間,如啟動(dòng)各種外部設(shè)備、設(shè)置系統(tǒng)時(shí)鐘時(shí)間、關(guān)中斷、清主存、修改存儲(chǔ)器管理寄存器、執(zhí)行停機(jī)指令、轉(zhuǎn)換執(zhí)行狀態(tài)等。特權(quán)指令只允許操作系統(tǒng)使用,不允許應(yīng)用程序使用,否則會(huì)引起系統(tǒng)混亂。

2)非特權(quán)指令非特權(quán)指令是在用戶態(tài)時(shí)運(yùn)行的指令。一般應(yīng)用程序所使用的都是非特權(quán)指令,它只能完成一般性的操作和任務(wù),不能對(duì)系統(tǒng)中的硬件和軟件直接進(jìn)行訪問,其對(duì)內(nèi)存的訪問范圍也局限于用戶空間。這樣,可以防止應(yīng)用程序的運(yùn)行異常對(duì)系統(tǒng)造成的破壞。

這種限制是由硬件實(shí)現(xiàn)的。

2.系統(tǒng)調(diào)用系統(tǒng)調(diào)用,使應(yīng)用程序間接調(diào)用操作系統(tǒng)的相關(guān)過程,取得相應(yīng)的服務(wù)。當(dāng)應(yīng)用程序中需要操作系統(tǒng)提供服務(wù)時(shí),如請(qǐng)求I/O資源或執(zhí)行I/O操作,應(yīng)用程序必須使用系統(tǒng)調(diào)用命令。

CPU的狀態(tài):用戶態(tài)->系統(tǒng)態(tài)->用戶態(tài)。

系統(tǒng)調(diào)用是一種特殊的過程調(diào)用,它與一般的過程調(diào)用有下述幾方面的明顯差別:

(1)運(yùn)行在不同的系統(tǒng)狀態(tài)。調(diào)用程序是運(yùn)行在用戶態(tài),而被調(diào)用程序是運(yùn)行在系統(tǒng)態(tài)。

(2)狀態(tài)的轉(zhuǎn)換通過軟中斷進(jìn)入。通過軟中斷機(jī)制,先由用戶態(tài)轉(zhuǎn)換為系統(tǒng)態(tài),經(jīng)核心分析后,才能轉(zhuǎn)向相應(yīng)的系統(tǒng)調(diào)用處理子程序。

(3)返回問題。返回時(shí)要對(duì)進(jìn)程做優(yōu)先權(quán)分析。當(dāng)調(diào)用進(jìn)程仍具有最高優(yōu)先級(jí)時(shí),才返回到調(diào)用進(jìn)程繼續(xù)執(zhí)行;否則,將引起重新調(diào)度,以便讓優(yōu)先權(quán)最高的進(jìn)程優(yōu)先執(zhí)行。此時(shí),將把調(diào)用進(jìn)程放入就緒隊(duì)列。

(4)嵌套調(diào)用。像一般過程一樣,系統(tǒng)調(diào)用也可以嵌套進(jìn)行。當(dāng)然,每個(gè)系統(tǒng)對(duì)嵌套調(diào)用的深度都有一定的限制,例如最大深度為6。但一般的過程對(duì)嵌套的深度則沒有什么限制。圖7-3示出了沒有嵌套及有嵌套的兩種系統(tǒng)調(diào)用情況。

圖7-3系統(tǒng)功能的調(diào)用

3.中斷機(jī)制系統(tǒng)調(diào)用是通過中斷機(jī)制實(shí)現(xiàn)的,并且一個(gè)操作系統(tǒng)的所有系統(tǒng)調(diào)用都通過同一個(gè)中斷入口來實(shí)現(xiàn)。如MS-DOS提供了INT21H,應(yīng)用程序通過該中斷獲取操作系統(tǒng)的服務(wù)。對(duì)于擁有保護(hù)機(jī)制的操作系統(tǒng)來說,中斷機(jī)制本身也是受保護(hù)的,在IBMPC上,Intel提供了多達(dá)255個(gè)中斷號(hào),但只有授權(quán)給應(yīng)用程序保護(hù)等級(jí)的中斷號(hào),才是可以被應(yīng)用程序調(diào)用的。7.3.2系統(tǒng)調(diào)用的類型(4大類)

1.進(jìn)程控制類系統(tǒng)調(diào)用這類系統(tǒng)調(diào)用主要用于對(duì)進(jìn)程的控制,如創(chuàng)建一個(gè)新的進(jìn)程和終止一個(gè)進(jìn)程的運(yùn)行,獲得和設(shè)置進(jìn)程屬性等。

1)創(chuàng)建和終止進(jìn)程的系統(tǒng)調(diào)用

2)獲得和設(shè)置進(jìn)程屬性的系統(tǒng)調(diào)用

3)等待某事件出現(xiàn)的系統(tǒng)調(diào)用

2.文件操縱類系統(tǒng)調(diào)用對(duì)文件進(jìn)行操縱的系統(tǒng)調(diào)用數(shù)量較多,有創(chuàng)建文件、刪除文件、打開文件、關(guān)閉文件、讀文件、寫文件、建立目錄、移動(dòng)文件的讀/寫指針、改變文件的屬性等。

1)創(chuàng)建和刪除文件

2)打開和關(guān)閉文件

3)讀和寫文件

3.進(jìn)程通信類系統(tǒng)調(diào)用P264兩種進(jìn)程通信方式:消息傳遞方式和共享存儲(chǔ)區(qū)方式。 消息傳遞方式:打開連接,源進(jìn)程openconnection接受連接,目標(biāo)進(jìn)程acceptconnection;利用發(fā)送消息sendmessage或用接收消息receivemessage來交換信息。通信結(jié)束后,還須再利用關(guān)閉連接的系統(tǒng)調(diào)用closeconnection結(jié)束通信。共享存儲(chǔ)方式:建立一個(gè)共享存儲(chǔ)區(qū)建立連接(將該共享存儲(chǔ)區(qū)連接到進(jìn)程自身的虛地址空間上)相互通信:讀和寫共享存儲(chǔ)區(qū)的系統(tǒng)調(diào)用。

4.設(shè)備管理類系統(tǒng)調(diào)用和信息維護(hù)類系統(tǒng)調(diào)用 前者主要用于實(shí)現(xiàn)申請(qǐng)?jiān)O(shè)備、釋放設(shè)備、設(shè)備I/O和重定向、獲得和設(shè)置設(shè)備屬性、邏輯上連接和釋放設(shè)備等功能, 后者主要用來獲得包括有關(guān)系統(tǒng)和文件的時(shí)間、日期信息、操作系統(tǒng)版本、當(dāng)前用戶以及有關(guān)空閑內(nèi)存和磁盤空間大小等多方面的信息。

7.3.3POSIX標(biāo)準(zhǔn)目前許多操作系統(tǒng)在實(shí)現(xiàn)的細(xì)節(jié)和形式方面卻相差很大,這種差異給實(shí)現(xiàn)應(yīng)用程序與操作系統(tǒng)平臺(tái)的無關(guān)性帶來了很大的困難。為解決這一問題,國際標(biāo)準(zhǔn)化組織ISO給出的有關(guān)系統(tǒng)調(diào)用的國際標(biāo)準(zhǔn)POSIX1003.1(PortableOperatingSystemIX),也稱為“基于UNIX的可移植操作系統(tǒng)接口”。

POSIX定義了標(biāo)準(zhǔn)應(yīng)用程序接口(API),用于保證編制的應(yīng)用程序可以在源代碼一級(jí)上在多種操作系統(tǒng)上移植運(yùn)行。只有符合這一標(biāo)準(zhǔn)的應(yīng)用程序,才有可能完全兼容多種操作系統(tǒng),即在多種操作系統(tǒng)下都能夠運(yùn)行。

POSIX標(biāo)準(zhǔn)定義了一組過程,這組過程是構(gòu)造系統(tǒng)調(diào)用所必須的。通過調(diào)用這些過程所提供的服務(wù),確定了一系列系統(tǒng)調(diào)用的功能。一般而言,在POSIX標(biāo)準(zhǔn)中,大多數(shù)的系統(tǒng)調(diào)用是一個(gè)系統(tǒng)調(diào)用直接映射一個(gè)過程,但也有一個(gè)系統(tǒng)調(diào)用對(duì)應(yīng)若干個(gè)過程的情形。

需要明確的是,POSIX標(biāo)準(zhǔn)所定義的一組過程雖然指定了系統(tǒng)調(diào)用的功能,但并沒有明確規(guī)定系統(tǒng)調(diào)用是以什么形式實(shí)現(xiàn)的,是庫函數(shù)還是其它形式。如圖7-4示出了UNIX/Linux的系統(tǒng)程序、庫函數(shù)、系統(tǒng)調(diào)用的層次關(guān)系。

圖7-4Unix/Linux系統(tǒng)程序、庫函數(shù)、系統(tǒng)調(diào)用的分層關(guān)系

7.3.4系統(tǒng)調(diào)用的實(shí)現(xiàn)

1.中斷和陷入硬件機(jī)構(gòu)

1)中斷和陷入的概念中斷是指CPU對(duì)系統(tǒng)發(fā)生某事件時(shí)的這樣一種響應(yīng):CPU暫停正在執(zhí)行的程序,在保留現(xiàn)場(chǎng)后自動(dòng)地轉(zhuǎn)去執(zhí)行該事件的中斷處理程序;執(zhí)行完后,再返回到原程序的斷點(diǎn)處繼續(xù)執(zhí)行。 外中斷:是指由于外部設(shè)備事件所引起的中斷,如通常的磁盤中斷、打印機(jī)中斷等; 內(nèi)中斷:是指由于CPU內(nèi)部事件所引起的中斷,如程序出錯(cuò)(非法指令、地址越界)、電源故障等。內(nèi)中斷(trap)也被譯為“捕獲”或“陷入”。圖7-5中斷時(shí)的CPU軌跡

2)中斷和陷入向量中斷向量:中斷處理程序入口指針、處理機(jī)狀態(tài)字PSW。存放這兩個(gè)字的單元稱為中斷向量單元。陷入向量:類似中斷向量。由所有的中斷向量和陷入向量構(gòu)成了中斷和陷入向量表,如圖7-6所示。

圖7-6中斷向量與陷入向量

(a)中斷向量

(b)陷入向量

2.系統(tǒng)調(diào)用號(hào)和參數(shù)的設(shè)置每條系統(tǒng)調(diào)用有一個(gè)唯一的系統(tǒng)調(diào)用號(hào)。系統(tǒng)調(diào)用號(hào)的傳遞:1)直接把系統(tǒng)調(diào)用號(hào)放在系統(tǒng)調(diào)用命令(陷入指令)中;如

IBM370和早期的UNIX系統(tǒng),是把系統(tǒng)調(diào)用命令的低8位用于存放系統(tǒng)調(diào)用號(hào);2)將系統(tǒng)調(diào)用號(hào)裝入某指定寄存器或內(nèi)存單元中,如MS-DOS是將系統(tǒng)調(diào)用號(hào)放在AH寄存器中,Linux則是利用EAX寄存器來存放應(yīng)用程序傳遞的系統(tǒng)調(diào)用號(hào)。

參數(shù)傳遞方式有以下幾種:

(1)陷入指令自帶方式。陷入指令除了攜帶一個(gè)系統(tǒng)調(diào)用號(hào)外,還要自帶幾個(gè)參數(shù)進(jìn)入系統(tǒng)內(nèi)部,由于一條陷入指令的長度是有限的,因此自帶的只能是少量的、有限的參數(shù)。

(2)直接將參數(shù)送入相應(yīng)的寄存器中。MS-DOS便是采用的這種方式,即用MOV指令將各個(gè)參數(shù)送入相應(yīng)的寄存器中。系統(tǒng)程序和應(yīng)用程序顯然應(yīng)是都可以訪問這種寄存器的。這種方式的主要問題是由于這種寄存器數(shù)量有限,因而限制了所設(shè)置參數(shù)的數(shù)目。圖7-7系統(tǒng)調(diào)用的參數(shù)形式

(3)參數(shù)表方式。將系統(tǒng)調(diào)用所需的參數(shù)放入一張參數(shù)表中,再將指向該參數(shù)表的指針放在某個(gè)指定的寄存器中。

3.系統(tǒng)調(diào)用的處理步驟在設(shè)置了系統(tǒng)調(diào)用號(hào)和參數(shù)后,便可執(zhí)行一條系統(tǒng)調(diào)用命令。不同的系統(tǒng)可采用不同的執(zhí)行方式。在UNIX系統(tǒng)中,是執(zhí)行CHMK命令;而在MS-DOS中則是執(zhí)行INT21軟中斷。系統(tǒng)調(diào)用的處理過程可分成以下三步:首先,將處理機(jī)狀態(tài)由用戶態(tài)轉(zhuǎn)為系統(tǒng)態(tài);之后,由硬件和內(nèi)核程序進(jìn)行系統(tǒng)調(diào)用的一般性處理,即首先保護(hù)被中斷進(jìn)程的CPU環(huán)境,將處理機(jī)狀態(tài)字PSW、程序計(jì)數(shù)器PC、系統(tǒng)調(diào)用號(hào)、用戶棧指針以及通用寄存器內(nèi)容等,壓入堆棧;然后,將用戶定義的參數(shù)傳送到指定的地址保存起來。

其次,是分析系統(tǒng)調(diào)用類型,轉(zhuǎn)入相應(yīng)的系統(tǒng)調(diào)用處理子程序。為使不同的系統(tǒng)調(diào)用能方便地轉(zhuǎn)向相應(yīng)的系統(tǒng)調(diào)用處理子程序,在系統(tǒng)中配置了一張系統(tǒng)調(diào)用入口表。表中的每個(gè)表目都對(duì)應(yīng)一條系統(tǒng)調(diào)用,其中包含該系統(tǒng)調(diào)用自帶參數(shù)的數(shù)目、系統(tǒng)調(diào)用處理子程序的入口地址等。因此,核心可利用系統(tǒng)調(diào)用號(hào)去查找該表,即可找到相應(yīng)處理子程序的入口地址而轉(zhuǎn)去執(zhí)行它。最后,在系統(tǒng)調(diào)用處理子程序執(zhí)行完后,應(yīng)恢復(fù)被中斷的或設(shè)置新進(jìn)程的CPU現(xiàn)場(chǎng),然后返回被中斷進(jìn)程或新進(jìn)程,繼續(xù)往下執(zhí)行。

4.系統(tǒng)調(diào)用處理子程序的處理過程系統(tǒng)調(diào)用的功能主要是由系統(tǒng)調(diào)用子程序來完成的。對(duì)于不同的系統(tǒng)調(diào)用,其處理程序?qū)?zhí)行不同的功能。P268例子:Creat命令7.4

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

7.4.1

UNIX系統(tǒng)調(diào)用的類型7.4.2被中斷進(jìn)程的環(huán)境保護(hù)7.4.3系統(tǒng)調(diào)用陷入后需處理的公共問題7.5圖形用戶接口

7.5.1圖形化用戶界面圖形化用戶界面(GUI)是近年來最為流行的聯(lián)機(jī)用戶接口形式,并已制定了國際GUI標(biāo)準(zhǔn)。20世紀(jì)90年代推出的主流操作系統(tǒng)都提供了GUI。1981年,Xerox公司在Star8010工作站操作系統(tǒng)中,首次推出了圖形用戶接口。1983年,Apple公司又在AppleLisa機(jī)和Macintosh機(jī)上的操作系統(tǒng)中成功使用了GUI。之后,還有Microsoft公司的Windows,IBM公司的OS/2,UNIX和Linux使用的X-Window都使用了GUI。

GUI采用了圖形化的操作界面,使用WIMP技術(shù),將窗口(Window)、圖標(biāo)(Icon)、菜單(Menu)、鼠標(biāo)(Pointingdevice)和面向?qū)ο蠹夹g(shù)等集成在一起,引入形象的各種圖符將系統(tǒng)的各項(xiàng)功能、各種應(yīng)用程序和文件,直觀、逼真地表示出來,形成一個(gè)圖文并茂的視窗操作環(huán)境。用戶可以輕松地通過選擇窗口、菜單、對(duì)話框和滾動(dòng)條完成對(duì)他們作業(yè)和文件的各種控制與操作。

Microsoft公司的Windows系列操作系統(tǒng)。explorer.exe進(jìn)程,它運(yùn)行一個(gè)具有窗口界面的命令解釋程序,該窗口為一個(gè)特殊的窗口,即桌面。在“開始”菜單中羅列了系統(tǒng)的各種應(yīng)用程序,點(diǎn)擊則生成新進(jìn)程并彈出一個(gè)新窗口,其菜單欄或圖符欄會(huì)顯示應(yīng)用程序的子命令??蛇M(jìn)一步選擇并點(diǎn)擊子命令,輸入?yún)?shù)在彈出的一個(gè)對(duì)話窗口中進(jìn)行輸入,完成后用戶點(diǎn)擊“確定”按鈕,命令即進(jìn)入執(zhí)行處理過程。

在Windows系統(tǒng)中,采用的是事件驅(qū)動(dòng)控制方式7.5.2桌面、圖標(biāo)和任務(wù)欄

1.桌面與圖標(biāo)的初步概念P274桌面,是指整個(gè)屏幕空間,即在運(yùn)行Windows時(shí)用戶所看到的屏幕。窗口,是指屏幕上的一塊矩形區(qū)域。圖標(biāo),是代表一個(gè)對(duì)象的小圖像。

2.桌面上常見的圖標(biāo)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論