操作系統(tǒng)-第7章(修)_第1頁
操作系統(tǒng)-第7章(修)_第2頁
操作系統(tǒng)-第7章(修)_第3頁
操作系統(tǒng)-第7章(修)_第4頁
操作系統(tǒng)-第7章(修)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章操作系統(tǒng)接口

為了使用戶能方便地通過操作系統(tǒng)使用計算機,OS向用戶提供了各種接口,具體有:命令接口系統(tǒng)功能調用(程序接口)圖形用戶接口7.1聯機命令接口命令接口:OS向用戶提供的“用戶與操作系統(tǒng)的接口”,該接口以命令形式呈現在用戶面前,直接提供給用戶在鍵盤終端上使用。聯機命令接口:分時、個人OS中,通過終端鍵入命令,以取得OS的服務,并控制自己作業(yè)的運行。該接口包括:一組聯機命令(格式、類型)終端處理程序命令解釋程序脫機命令接口:用于批處理系統(tǒng)中,由作業(yè)控制語言JCL組成,對作業(yè)的控制和干預,事先寫在作業(yè)說明上,然后將作業(yè)說明及作業(yè)提交系統(tǒng),照說明上執(zhí)行,若出現異常,則照說明上進行干預。7.1.1聯機命令接口-命令格式

為了能向用戶提供多方面的服務,OS通常向用戶提供了眾多的命令,命令格式和條數與實際的操作系統(tǒng)有關,命令格式分成:命令行方式(一般形式)

commandarg1,arg2,…,[option1,…,optionm]MS-DOS操作系統(tǒng)中的命令格式

1、dir[驅動器名][/p][/w]2、typefile13、copysourcetarget4、mkdir[驅動器名][\路徑名\新目錄名]批命令方式

允許用戶預先把一系列命令組織在一種稱為批命令文件的文件中,一次建立,多次執(zhí)行。如MS-DOS系統(tǒng)的.BAT文件。

7.1.1聯機命令接口-命令類型

根據聯機命令的功能,可分為以下幾類:系統(tǒng)訪問類:包括注冊login,注銷logout,常用于多用戶系統(tǒng)中,以驗證用戶身份的合法性,從而保證整個系統(tǒng)的安全性。磁盤操作類:包括format,diskcopy,backup,…,常用于微機OS中。

Format:磁盤格式化命令。

Diskcopy:復制整個軟盤命令。

Diskcomp:軟盤比較命令。

Backup:備份命令。硬盤上的文件復制到軟盤上,RESTORE命令則完成相反的操作。7.1.1聯機命令接口-命令類型文件操作類:包括type,copy,cmp,rename,erase,…常用于微機OS中。

type:將指定文件內容顯示在屏幕上。

copy:實現文件的拷貝。

comp:對兩個指定文件進行比較。

Rename:重新命名。

erase:刪除一個或一組文件。目錄操作類:包括md,dir,rd,tree,cd,…常用于微機OS中。

mkdir:建立指定名字的新目錄。

dir:顯示指定磁盤中的目錄項。

rmdir:刪除子目錄命令

tree:顯示指定盤上的所有目錄路徑及其層次關系。

chdir:

改變當前目錄。7.1.1聯機命令接口-命令類型其它命令:包括輸出重定向>,輸入重定向<,批命令,管道連接“|”,常用于微機OS中。

(1)輸入輸出重定向命令。OS中定義了兩個標準I/O設備。命令的輸入取自鍵盤;而命令的輸出送往顯示終端。在命令中設置輸出重定向“>”符,其后接文件名或設備名,表示將命令的輸出改向,送到指定文件或設備上。

(2)管道連接。指把第一條命令的輸出信息作為第二條命令的輸入信息;與此類推;格式為:

Command1|Command2|…|Commandn;

(3)過濾命令。例如,MS-DOS中用命令:find/N“erase”(路徑名)

7.1.2

終端處理程序

負責接收用戶鍵入的終端命令,并將它顯示在終端屏幕上,主要具有以下功能:接收字符:接收用戶從終端鍵入的字符,并將它傳送給命令解釋程序或用戶進程,有兩種方式來實現此功能(面向字符方式和面向行方式)。

面向字符方式:

驅動程序只接收從終端打入的字符,并且不加修改地將它傳送給用戶程序。

面向行方式:

終端處理程序將所接收的字符暫存在行緩沖中,并可對行內字符進行編輯。僅在收到行結束符后,才將一行正確的信息送命令解釋程序。7.1.2

終端處理程序字符緩沖:暫存用戶鍵入的字符,該功能可采用兩種方式(公用緩沖池方式,專用緩沖方式)。

專用緩沖區(qū)方式:

系統(tǒng)為每個終端設置一個緩沖區(qū),長度200字符左右。適合單用戶微機或終端很少的多用戶機,但利用率低。

公用緩沖池方式:設置一個由多個緩沖區(qū)構成的公用緩沖池,緩沖區(qū)大小相同,利用率高。所有的空緩沖區(qū)鏈接成一個空緩沖區(qū)鏈(從終端輸入數據),裝有輸入數據的緩沖區(qū)鏈接成一條輸入鏈(向用戶程序傳送數據)。7.1.2

終端處理程序回送顯示:將用戶每鍵入的一個字符送屏幕顯示,此功能可由硬件實現,但多用軟件更靈活。屏幕編輯:方便用戶對鍵入的字符進行編輯,提供了若干編輯鍵,如backspace,insert,,Pgup,Pgdn…。特殊字符處理:提供了對中斷字符,停止上卷字符,恢復上卷字符等特殊字符的識別和處理。

中斷字符:

程序在運行中出現異常情況時,用戶可通過鍵入中斷字符的辦法來中止當前程序的運行。在許多系統(tǒng)中是利用Break或Delete或Ctrl+C鍵作為中斷字符。

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

恢復上卷字符:有的系統(tǒng)利用Ctrl+Q鍵使停止上卷的屏幕恢復上卷。7.1.3命令解釋程序

主要負責對用戶輸入的命令進行識別,然后去調用相應命令的處理程序,以完成請求的任務,位于OS的最高層。如:MS-DOS(COMMAND.COM),UNIX(SHELL).MS-DOS(COMMAND.COM)命令解釋程序的作用命令解釋程序的工作流程命令解釋程序的組成

常駐部分:中斷服務子程序;如:int20正常退出。

初始化部分:跟隨常駐內存部分之后,在啟動時獲得控制權,還包括AUTOEXEC.BAT。

暫存部分:主要是命令解釋程序。包括:內部命令處理程序、批文件處理程序,以及裝入和執(zhí)行外部命令的程序。命令解釋程序的作用等待用戶輸入命令。命令解釋程序獲CPU控制權后,在屏幕上產生提示符,等待用戶輸入命令。接收并識別命令。當用戶輸入完一條命令并以回車結束,終端處理程序就將該命令提交命令解釋程序,并對此命令進行分析。若命令非法,則產生錯誤信息。否則轉相應的命令處理程序。執(zhí)行相應的命令處理程序。轉到相應的命令處理程序入口地址,再把控制權交給該處理程序去執(zhí)行。(對內部命令,其命令處理程序就含在解釋程序內,所以由解釋程序直接執(zhí)行)。處理結果送屏幕上顯示。并將處理結果送屏幕上顯示,或顯示某些出錯信息。命令解釋程序的工作流程輸入命令命令合法否?是內部命令?從外存調入命令執(zhí)行Dir命令處理程序type命令處理程序copy命令處理程序date命令處理程序顯示提示符從內部命令的表查找7.2系統(tǒng)調用(程序接口)處理機的態(tài)中斷類型系統(tǒng)調用簡介系統(tǒng)調用的類型系統(tǒng)調用的實現實現機制執(zhí)行過程參數傳遞系統(tǒng)調用與過程調用的區(qū)別Win32應用程序接口21.為什么要區(qū)分處理機的狀態(tài)系統(tǒng)中有兩類程序管理程序用戶程序管理系統(tǒng)資源使用資源,提出申請控制程序運行被控制區(qū)分處理機狀態(tài)的目的:保護操作系統(tǒng)

2.什么是處理機的狀態(tài)中央處理機的工作狀態(tài),當前它正在執(zhí)行哪類程序,決定處理機的態(tài)。處理機的狀態(tài)33.處理機狀態(tài)的分類管態(tài)/系統(tǒng)態(tài)(Supervisormode)

操作系統(tǒng)的管理程序執(zhí)行時機器所處的狀態(tài);可使用全部指令(包括特權指令);可使用全部系統(tǒng)資源(包括整個存儲區(qū)域);目態(tài)/用戶態(tài)(Usermode)

用戶程序執(zhí)行時機器所處的狀態(tài);在此狀態(tài)下禁止使用特權指令,不能直接取用資源與改變機器狀態(tài),并且只允許用戶程序訪問自己的存儲區(qū)域。處理機的狀態(tài)

管態(tài)/系統(tǒng)態(tài)目態(tài)/用戶態(tài)

操作系統(tǒng)的程序執(zhí)行用戶程序執(zhí)行

使用全部指令禁止使用特權指令

使用全部系統(tǒng)資源只允許用戶程序

(包括整個存儲區(qū)域)訪問自己的存儲區(qū)域4.特權指令集涉及外部設備的輸入/輸出指令修改特殊寄存器的指令改變機器狀態(tài)的指令4處理機的狀態(tài)思考:命令解釋程序是運行于用戶態(tài)還是系統(tǒng)態(tài)?7按中斷功能分類

輸入輸出中斷——I/O傳輸結束或出錯中斷外中斷——時鐘中斷、操作員控制臺中斷、通信中斷等機器故障中斷——電源故障、主存取指令錯等程序性中斷——定點溢出、用戶態(tài)下用核態(tài)指令、非法操作等訪管中斷——對操作系統(tǒng)提出某種需求時所發(fā)出的中斷按中斷方式分類

強迫性中斷——不是正在運行的程序所期待的中斷如:輸入輸出中斷、外中斷、機器故障中斷、程序性中斷自愿中斷——是運行程序所期待的事件如:訪管中斷中斷分類8按中斷來源分類

中斷——由處理機外部事件引起的中斷,如磁盤、打印機中斷等俘獲(陷入)——由處理機內部事件引起的中斷,如電源故障等中斷與俘獲的例trap指令俘點溢出地址越界非法指令exitforkreadclock時鐘

rk磁盤

tty終端中斷與俘獲中斷俘獲中斷分類由于系統(tǒng)調用引起的中斷屬于內中斷,因此把由于系統(tǒng)調用引起中斷的指令成為陷入指令。201.系統(tǒng)功能調用的定義

操作系統(tǒng)如何為用戶提供服務(程序一級)

操作系統(tǒng)提供實現各種功能的例行子程序。應用程序

i

系統(tǒng)調用

中央處理機存儲器外部設備應用程序計算機系統(tǒng)部件系統(tǒng)功能調用22

什么是系統(tǒng)調用

系統(tǒng)功能調用是用戶在程序一級請求操作系統(tǒng)服務的一種手段,它是帶有一定功能號的“訪管指令”。其功能是由操作系統(tǒng)中的程序完成的,即由軟件方法實現的。注意:訪管指令是由機器硬件廠商提供。

訪管指令(自愿進管指令、陷入指令)

為了實現用戶請求系統(tǒng)為其服務的愿望,在指令系統(tǒng)中要增設一條訪管指令(SVCn)產生訪管中斷。

svcnsvc表示訪管指令的操作碼或記憶符

n為地址碼(功能號)系統(tǒng)功能調用21應用程序如何調用操作服務功能?

采用統(tǒng)一進管方式——

系統(tǒng)提供訪管指令、訪管中斷

0:顯示一個字符串1:讀文件

應用程序j

read();

操作系統(tǒng)統(tǒng)功能模塊系統(tǒng)功能調用中央處理機存儲器外部設備應用程序計算機系統(tǒng)部件Svc1訪管中斷目態(tài)管態(tài)22

訪管中斷

當處理機執(zhí)行到訪管指令時就發(fā)生中斷,該中斷稱為訪管中斷,它表示正在運行的程序對操作系統(tǒng)的某種需求。

操作系統(tǒng)提供實現各種功能的例行子程序,其中的每一個功能對應訪管指令的一個功能號。舉例如下:

svc0顯示一個字符

svc1打印一個字符串

系統(tǒng)功能調用系統(tǒng)調用(SYSTEMCALL),也稱程序接口操作系統(tǒng)提供給編程人員的唯一接口,編程人員利用系統(tǒng)調用,完成與機器硬件部分相關的工作。用戶得以在程序中調用操作系統(tǒng)所提供的一些子功能。OS核心中都有一組實現系統(tǒng)功能的過程(子程序),系統(tǒng)調用就是對上述過程的調用。編程人員利用系統(tǒng)調用,向OS提出服務請求,由OS代為完成。每個系統(tǒng)都有上百種系統(tǒng)調用,涉及進程、文件和設備控制等。系統(tǒng)調用是由特殊的機器指令實現的。系統(tǒng)的系統(tǒng)調用越多,功能就越強,使用更加靈活。系統(tǒng)功能調用進程控制創(chuàng)建一進程(fork)結束進程(exit)等待子進程結束(wait)執(zhí)行一個文件(exec)文件操縱創(chuàng)建文件(creat)打開文件(open)關閉文件(close)讀文件(read)寫文件(write)進程通信建立消息隊列(msgget)發(fā)送消息(msgsend)接收消息(msgrcv))系統(tǒng)維護設置時間(stime)獲得時間(time)獲得進程和子進程時間(times)設置文件訪問和修改時間(Utime)獲得當前unix系統(tǒng)的名稱(Uname)不同的操作系統(tǒng)有一定的差異。系統(tǒng)功能調用類型(UNIX)23

a1a0┇ai例行子程序入口地址表A+0A+1┇A+i保護現場;取n值;按n值轉移;

恢復現場;訪管中斷處理程序

svci

用戶程序+ASubmam例行子程序Sub0Sub1Subi┇a0a1ai┇系統(tǒng)功能調用實現機制目態(tài)管態(tài)陷入CPU保護用戶程序的現場;執(zhí)行相應功能:根據系統(tǒng)調用提供的功能號,訪問系統(tǒng)功能入口地址表,得到相應功能的人口地址,然后轉去執(zhí)行;返回處理:在系統(tǒng)調用處理結束之后,還要恢復處理器現場。在操作系統(tǒng)中,處理器的現場一般被保護在特定的內存區(qū)或寄存器中。系統(tǒng)功能調用的實現-執(zhí)行過程目的:實現用戶程序和系統(tǒng)程序間的參數傳遞。常用實現方法:由陷入指令自帶參數:陷入指令的長度有限的,且還要攜帶系統(tǒng)調用功能號,只能自帶有限的參數。通過有關通用寄存器來傳遞參數:這些寄存器應是系統(tǒng)程序和用戶程序都能訪問,由于寄存器長度較短,無法傳遞較多的參數。更為常見的是在內存中開辟專用堆棧區(qū)來傳遞參數。系統(tǒng)功能調用的實現-參數傳遞Win32應用程序接口在Windows中,定義了一系列程序(應用程序接口Win32API),提供OS服務。該接口(部分)支持Win95以后的Windows版本Win32API調用的種類非常多,以千計算。在Windows中不好分辨哪些是系統(tǒng)調用(被內核執(zhí)行),哪些是用戶空間的庫調用。事實上,一個Windows版本中的系統(tǒng)調用也許在另一個Windows版本中會在用戶空間執(zhí)行。由于圖形子系統(tǒng)在內核中運行(在某些Windows版本中),它們也是系統(tǒng)調用,否則是庫調用。Win32應用程序接口21Linux系統(tǒng)的核心結構系統(tǒng)調用界面程序庫進程通信進程調度存儲管理文件子系統(tǒng)高速緩沖字符設備塊設備設備驅動程序用戶程序硬件控制硬件用戶級核心級硬件層進程管理與存儲管理網絡管理網絡協(xié)議網絡驅動用戶程序通道外設內存數據區(qū)中斷處理程序管理程序通道程序返回取通道指令┇入口參數設備類設備號數據長度主存地址┇┇┇┇結束指令構造通道程序I/O完成中斷I/O中斷響應I/O中斷返回訪管陷入下一步啟動I/O結束置通道地址字通道工作過程當編程人員給定了系統(tǒng)調用名和參數之后(即向OS系統(tǒng)提出了申請),由陷入處理機構(類似于硬件中斷處理機構)完成。陷入處理機構是系統(tǒng)專門為控制系統(tǒng)調用服務設立的。當用戶使用系統(tǒng)調用時,產生一條相應的指令(陷入指令,trap指令),CPU在執(zhí)行到該指令時發(fā)生相應的中斷,發(fā)出有關信號給該處理機構,并啟動相應的處理程序來完成該系統(tǒng)調用所要求的功能。陷入指令(或訪管指令):由于系統(tǒng)調用引起處理機中斷的指令。系統(tǒng)功能調用實現機制(小節(jié))在陷入中斷發(fā)生時,從用戶態(tài)->核心態(tài)。這一轉換在發(fā)生訪管中斷時由硬件自動實現。系統(tǒng)調用語句本身是硬件提供的(機器指令),但其所調用的功能是操作系統(tǒng)提供的。每種機器的機器指令集中都有一條系統(tǒng)調用指令。(IBM個人計算機INT指令,SUN工作站上的TRAP,SGI工作站上SYSCALL指令)。系統(tǒng)功能調用實現機制(小節(jié))相同點:改變指令流程;重復執(zhí)行和公用;改變指令流程后需要返回原處;系統(tǒng)功能調用于一般過程調用區(qū)別不同點:運行在不同的系統(tǒng)狀態(tài)一般過程調用,其調用程序和被調用程序都運行在相同狀態(tài):核心態(tài)或用戶態(tài)。系統(tǒng)調用:調用程序在用戶態(tài),被調用程序在系統(tǒng)態(tài)。進入方式不同,狀態(tài)的轉換通常利用call或jump指令進入普通的過程調用,而進行系統(tǒng)調用則需要利用int或trap指令通過軟中斷進入。一般的過程調用不涉及系統(tǒng)狀態(tài)的轉換,可直接由調用過程轉向被調用過程。運行系統(tǒng)調用時,調用和被調用過程在不同系統(tǒng)狀態(tài),不允許由調用過程直接轉向被調用過程。通過軟中斷機制先由

溫馨提示

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

評論

0/150

提交評論