第7章操作系統接口_第1頁
第7章操作系統接口_第2頁
第7章操作系統接口_第3頁
第7章操作系統接口_第4頁
第7章操作系統接口_第5頁
已閱讀5頁,還剩57頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第七章操作系統接口7.1聯機用戶接口7.2

Shell命令語言7.3系統調用7.4

UNIX系統調用7.5圖形用戶接口

7.1聯機用戶接口

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

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

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

Commandarg1arg2...argn其中,Command是命令名,又稱命令動詞,其余為該命令所帶的執行參數,有些命令可以沒有參數。

2.批命令方式在操作命令的實際使用過程中,經常遇到需要對多條命令的連續使用,或若干條命令的重復使用,或對不同命令進行選擇性使用的情況。如果用戶每次都采用命令行方式,將命令一條條由鍵盤輸入,既浪費時間,又容易出錯。因此,操作系統都支持一種稱為批命令的特別命令方式,允許用戶預先把一系列命令組織在一種稱為批命令文件的文件中,一次建立,多次執行。使用這種方式可減少用戶輸入命令的次數,既節省了時間和減少了出錯概率,又方便了用戶。通常批命令文件都有特殊的文件擴展名,如MS-DOS系統的

.BAT文件。

7.1.2聯機命令的類型按功能分成5類:①

系統訪問類;②

磁盤操作類;③

文件操作類;④

目錄操作類;⑤

其他命令。

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

Login:

/提示用戶鍵入自己的注冊名

Password:

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

2.磁盤操作命令P250在微機操作系統中,通常都提供了若干條磁盤操作命令。

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

(2)復制整個軟盤命令Diskcopy。

(3)軟盤比較命令Diskcomp。

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

3.文件操作命令每個操作系統都提供了一組文件操作命令。在微機OS中的文件操作命令有下述幾種:

(1)顯示文件命令type:

(2)拷貝文件命令copy:

(3)文件比較命令comp:

(4)重新命名命令Rename:

(5)刪除文件命令erase:

4.目錄操作命令

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

(2)顯示目錄命令dir:

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

(4)顯示目錄結構命令tree:

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

5.其它命令

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

(2)管道連接。

(3)過濾命令。

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

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

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

(2)面向行方式。終端處理程序將所接收的字符暫存在行緩沖中,并可對行內字符進行編輯。僅在收到行結束符后,才將一行正確的信息送命令解釋程序。在有的計算機中,從鍵盤硬件送出的是鍵的編碼(簡稱鍵碼),而不是ASCII碼。例如,當打入a鍵時,是將鍵碼“30”放入I/O寄存器,此時,終端處理程序必須參照某種表格,將鍵碼轉換成ASCII碼。應當注意,某些IBM的兼容機使用的不是標準鍵碼。此時,處理程序還須選用相應的表格將其轉換成標準鍵碼。

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

(1)專用緩沖區方式。

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

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

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

(1)刪除字符鍵。

(2)刪除一行鍵。

(3)插入鍵。

(4)移動光標鍵。

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

5.特殊字符處理終端處理程序必須能對若干特殊字符進行及時處理,這些字符是:

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

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

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

7.1.4命令解釋程序

1.命令解釋程序的作用主要作用是在屏幕上給出提示符,請用戶鍵入命令,然后讀入該命令,識別命令,再轉到相應命令處理程序的入口地址,把控制權交給該處理程序去執行,并將處理結果送屏幕上顯示。若用戶鍵入的命令有錯,而命令解釋程序未能予以識別,或在執行中間出現問題時,則應顯示出某一出錯信息。

2.命令解釋程序的組成

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

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

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

圖7-2

COMMAND.COM的工作流程

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

Shell命令語言

Shell也是一種程序設計語言

7.2.1簡單命令

1.進入與退出系統

2.文件操作命令

3.目錄操作命令

4.系統詢問命令7.2.2重定向與管道命令7.2.3通信命令

1.信箱通信命令mail

2.對話通信命令write

3.允許或拒絕接收消息命令mesg7.2.4后臺命令7.3系

調

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

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

1)特權指令所謂特權指令,就是在系統態時運行的指令,是關系到系統全局的指令。其對內存空間的訪問范圍基本不受限制,不僅能訪問用戶存儲空間,也能訪問系統存儲空間,如啟動各種外部設備、設置系統時鐘時間、關中斷、清主存、修改存儲器管理寄存器、執行停機指令、轉換執行狀態等。特權指令只允許操作系統使用,不允許應用程序使用,否則會引起系統混亂。

2)非特權指令非特權指令是在用戶態時運行的指令。一般應用程序所使用的都是非特權指令,它只能完成一般性的操作和任務,不能對系統中的硬件和軟件直接進行訪問,其對內存的訪問范圍也局限于用戶空間。這樣,可以防止應用程序的運行異常對系統造成的破壞。

這種限制是由硬件實現的。

2.系統調用系統調用,使應用程序間接調用操作系統的相關過程,取得相應的服務。當應用程序中需要操作系統提供服務時,如請求I/O資源或執行I/O操作,應用程序必須使用系統調用命令。

CPU的狀態:用戶態->系統態->用戶態。

系統調用是一種特殊的過程調用,它與一般的過程調用有下述幾方面的明顯差別:

(1)運行在不同的系統狀態。調用程序是運行在用戶態,而被調用程序是運行在系統態。

(2)狀態的轉換通過軟中斷進入。通過軟中斷機制,先由用戶態轉換為系統態,經核心分析后,才能轉向相應的系統調用處理子程序。

(3)返回問題。返回時要對進程做優先權分析。當調用進程仍具有最高優先級時,才返回到調用進程繼續執行;否則,將引起重新調度,以便讓優先權最高的進程優先執行。此時,將把調用進程放入就緒隊列。

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

圖7-3系統功能的調用

3.中斷機制系統調用是通過中斷機制實現的,并且一個操作系統的所有系統調用都通過同一個中斷入口來實現。如MS-DOS提供了INT21H,應用程序通過該中斷獲取操作系統的服務。對于擁有保護機制的操作系統來說,中斷機制本身也是受保護的,在IBMPC上,Intel提供了多達255個中斷號,但只有授權給應用程序保護等級的中斷號,才是可以被應用程序調用的。7.3.2系統調用的類型(4大類)

1.進程控制類系統調用這類系統調用主要用于對進程的控制,如創建一個新的進程和終止一個進程的運行,獲得和設置進程屬性等。

1)創建和終止進程的系統調用

2)獲得和設置進程屬性的系統調用

3)等待某事件出現的系統調用

2.文件操縱類系統調用對文件進行操縱的系統調用數量較多,有創建文件、刪除文件、打開文件、關閉文件、讀文件、寫文件、建立目錄、移動文件的讀/寫指針、改變文件的屬性等。

1)創建和刪除文件

2)打開和關閉文件

3)讀和寫文件

3.進程通信類系統調用P264兩種進程通信方式:消息傳遞方式和共享存儲區方式。 消息傳遞方式:打開連接,源進程openconnection接受連接,目標進程acceptconnection;利用發送消息sendmessage或用接收消息receivemessage來交換信息。通信結束后,還須再利用關閉連接的系統調用closeconnection結束通信。共享存儲方式:建立一個共享存儲區建立連接(將該共享存儲區連接到進程自身的虛地址空間上)相互通信:讀和寫共享存儲區的系統調用。

4.設備管理類系統調用和信息維護類系統調用 前者主要用于實現申請設備、釋放設備、設備I/O和重定向、獲得和設置設備屬性、邏輯上連接和釋放設備等功能, 后者主要用來獲得包括有關系統和文件的時間、日期信息、操作系統版本、當前用戶以及有關空閑內存和磁盤空間大小等多方面的信息。

7.3.3POSIX標準目前許多操作系統在實現的細節和形式方面卻相差很大,這種差異給實現應用程序與操作系統平臺的無關性帶來了很大的困難。為解決這一問題,國際標準化組織ISO給出的有關系統調用的國際標準POSIX1003.1(PortableOperatingSystemIX),也稱為“基于UNIX的可移植操作系統接口”。

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

POSIX標準定義了一組過程,這組過程是構造系統調用所必須的。通過調用這些過程所提供的服務,確定了一系列系統調用的功能。一般而言,在POSIX標準中,大多數的系統調用是一個系統調用直接映射一個過程,但也有一個系統調用對應若干個過程的情形。

需要明確的是,POSIX標準所定義的一組過程雖然指定了系統調用的功能,但并沒有明確規定系統調用是以什么形式實現的,是庫函數還是其它形式。如圖7-4示出了UNIX/Linux的系統程序、庫函數、系統調用的層次關系。

圖7-4Unix/Linux系統程序、庫函數、系統調用的分層關系

7.3.4系統調用的實現

1.中斷和陷入硬件機構

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

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

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

(a)中斷向量

(b)陷入向量

2.系統調用號和參數的設置每條系統調用有一個唯一的系統調用號。系統調用號的傳遞:1)直接把系統調用號放在系統調用命令(陷入指令)中;如

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

參數傳遞方式有以下幾種:

(1)陷入指令自帶方式。陷入指令除了攜帶一個系統調用號外,還要自帶幾個參數進入系統內部,由于一條陷入指令的長度是有限的,因此自帶的只能是少量的、有限的參數。

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

(3)參數表方式。將系統調用所需的參數放入一張參數表中,再將指向該參數表的指針放在某個指定的寄存器中。

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

其次,是分析系統調用類型,轉入相應的系統調用處理子程序。為使不同的系統調用能方便地轉向相應的系統調用處理子程序,在系統中配置了一張系統調用入口表。表中的每個表目都對應一條系統調用,其中包含該系統調用自帶參數的數目、系統調用處理子程序的入口地址等。因此,核心可利用系統調用號去查找該表,即可找到相應處理子程序的入口地址而轉去執行它。最后,在系統調用處理子程序執行完后,應恢復被中斷的或設置新進程的CPU現場,然后返回被中斷進程或新進程,繼續往下執行。

4.系統調用處理子程序的處理過程系統調用的功能主要是由系統調用子程序來完成的。對于不同的系統調用,其處理程序將執行不同的功能。P268例子:Creat命令7.4

UNIX系統調用

7.4.1

UNIX系統調用的類型7.4.2被中斷進程的環境保護7.4.3系統調用陷入后需處理的公共問題7.5圖形用戶接口

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

GUI采用了圖形化的操作界面,使用WIMP技術,將窗口(Window)、圖標(Icon)、菜單(Menu)、鼠標(Pointingdevice)和面向對象技術等集成在一起,引入形象的各種圖符將系統的各項功能、各種應用程序和文件,直觀、逼真地表示出來,形成一個圖文并茂的視窗操作環境。用戶可以輕松地通過選擇窗口、菜單、對話框和滾動條完成對他們作業和文件的各種控制與操作。

Microsoft公司的Windows系列操作系統。explorer.exe進程,它運行一個具有窗口界面的命令解釋程序,該窗口為一個特殊的窗口,即桌面。在“開始”菜單中羅列了系統的各種應用程序,點擊則生成新進程并彈出一個新窗口,其菜單欄或圖符欄會顯示應用程序的子命令。可進一步選擇并點擊子命令,輸入參數在彈出的一個對話窗口中進行輸入,完成后用戶點擊“確定”按鈕,命令即進入執行處理過程。

在Windows系統中,采用的是事件驅動控制方式7.5.2桌面、圖標和任務欄

1.桌面與圖標的初步概念P274桌面,是指整個屏幕空間,即在運行Windows時用戶所看到的屏幕。窗口,是指屏幕上的一塊矩形區域。圖標,是代表一個對象的小圖像。

2.桌面上常見的圖標

溫馨提示

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

評論

0/150

提交評論