操作系統原理chap03課件_第1頁
操作系統原理chap03課件_第2頁
操作系統原理chap03課件_第3頁
操作系統原理chap03課件_第4頁
操作系統原理chap03課件_第5頁
已閱讀5頁,還剩125頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第三章 用戶接口與作業管理用戶與操作系統的接口批處理操作系統的作業管理 作業的基本概念:作業、作業步、作業流交互式系統作業管理系統調用: 用戶程序提出服務請求的手段,基本思想,實現方法操作系統安裝與啟動1. 作業級接口 操作系統為用戶對作業運行全過程控制提供的功能(1) 聯機接口(交互式)(2) 脫機接口一、用戶與操作系統的接口作業級接口程序級接口系統為用戶在程序一級提供有關服務而設置由一組系統調用命令組成負責管理和控制運行的程序并在這些程序與系統控制的資源和提供的服務間實現交互作用用匯編語言:在程序中直接用系統調用命令用高級語言:可在編程時使用過程調用語句2. 程序級接口二、批處理系統作業處

2、理1.作業的基本概念(1)作業 用戶在一次計算過程中,或者一次事務處理過程中,要求計算機系統所做工作的總稱(2)作業步 一個作業可劃分成若干部分,稱為一個作業步 典型的作業控制過程: “編譯”、“連接裝配”、“運行”(3)作業流(4)典型的作業步編譯連接裝配運行目標程序段目標程序源程序輸入數據子程序庫函數動態庫函數計算結果1. 作業的基本概念(續1)2. 批處理作業控制語言與作業說明書(1)作業控制語言用戶用于描述批處理作業處理過程控制意圖的一種特殊程序書寫作業說明書的語言稱為作業控制語言(JCL)(2)作業控制語言的類別 包括:I/O命令、編譯命令、操作命令以及條件命令等(3)作業說明書表達

3、用戶對作業的控制意圖內容:作業的基本描述作業控制描述資源要求描述2. 批處理作業控制語言與作業說明書(續)3. 作業控制塊與作業表(1)作業控制塊(JCB:Job Control Block)作業控制塊是批處理作業存在的標志保存有系統對于作業進行管理所需要的全部信息位于磁盤區域中(2)作業控制塊的內容 作業控制塊中所包含的信息數量及內容因系統而異較簡單的系統較復雜的系統 3. 作業控制塊與作業表(續1)作業標知用戶名稱用戶帳號調度信息資源需求作業狀態作業類別輸入井地址輸出井地址進入系統時間開始處理時間作業完成時間作業退出時間資源使用情況 作業控制塊JCB3. 作業控制塊與作業表(續2)(3)作

4、業控制塊的建立 當作業開始由輸入設備向磁盤的輸入井傳輸時 系統輸入程序為其建立一個作業控制塊 進行初始化 初始化的大部分信息取自作業說明書 3. 作業控制塊與作業表(續3)(4)作業控制塊的使用需要訪問作業控制塊的程序系統輸入程序作業調度程序作業控制程序系統輸出程序等3. 作業控制塊與作業表(續4)(5)作業控制塊的撤消作業完成后,其作業控制塊由系統輸出程序撤消作業控制塊被撤消后其作業也不復存在3. 作業控制塊與作業表(續5)(6)作業表每個作業有個作業控制塊所有作業JCB構成一個作業表作業表存放在外存固定區域中,長度是固定限制了系統所能同時容納的作業數量 系統輸入程序、作業調度程序、系統輸出

5、程序都需要訪問作業表 因而存在互斥問題JCB1 JCB2 JCBi JCBn 作業表3. 作業控制塊與作業表(續6)4. 批處理作業的狀態及轉換一個作業從進入系統到運行結束經歷四個不同的狀態:“進入”“后備”“運行”“完成” 作業和進程的狀態轉換圖數據進入狀態退出狀態后備狀態運行狀態作業控制進程 輸入設備數據源程序輸出設備作業說明書輸入井運行等待就緒輸出井輸入程序輸出程序作業調度進程調度4. 批處理作業的狀態及轉換(續1)(1)運行狀態的作業三種狀態:就緒狀態執行狀態阻塞狀態4. 批處理作業的狀態及轉換(續2)5. 作業的建立一個作業建立過程的兩個子過程:作業的輸入JCB的建立 作業控制塊JC

6、B和作業:一一對應關系(1)作業的輸入 將作業程序、數據和作業說明書從輸入設備(例如鍵盤)輸入到外存,并形成初始信息作業輸入方式聯機輸入方式脫機輸入方式SPOOLing系統5. 作業的建立(續1) 聯機輸入方式用戶和系統通過交互會話來輸入作業外圍設備直接和主機連接 脫機輸入方式 為了解決單臺設備聯機輸入時的CPU浪費問題5. 作業的建立(續2)(2)JCB的建立在系統把作業信息輸入到輸入井之后根據作業說明書和有關作業信息在外存的位置等建立作業控制表JCBJCB包含對作業進行管理所必須的信息JCB表的數量是一個常數外存輸入井的大小有限 只有在獲得JCB表項和足夠輸入井空間后作業才可能創建成功5.

7、 作業的建立(續3)6. 批處理作業的調度主要功能:審查系統能否滿足用戶作業的資源要求 只要通過調用相應的資源管理程序的有關部分 審核其表中是否能滿足作業說明書中的要求即可按照一定的算法從輸入井中的后備作業中選取作業 調度的關鍵在選擇恰當的算法(1)調度算法評價調度實質上是一個策略問題設定的目標往往是相互沖突的 目標:單位時間內運行盡可能多的作業使處理機盡可能保持“忙碌”使各種I/O設備得以充分利用對所有的作業都是公平合理的6. 批處理作業的調度(續1)要設計一個理想的調度算法是一件十分困難的事在實際系統中,調度算法往往折衷考慮設計調度算法時應考慮的因素:調度算法應與系統設計目標保持一致注意系

8、統資源均衡使用保證提交的作業在截止時間內完成設法縮短作業平均周轉時間大多數操作系統都采用比較簡單的調度算法6. 批處理作業的調度(續2)作業平均周轉時間假定某一作業進入“輸入井”的時間為Si, 它被選中執行,得到計算結果的時間為Ei 它的周轉時間為Ti Ei Si 則作業平均周轉時間為: T( ) n為被測定作業流中的作業數(2)調度算法性能的衡量6. 批處理作業的調度(續3)平均帶權周轉時間 W( ) ri 為某作業i的實際執行時間 T:衡量不同調度算法對同一個作業流的性能 W:同一調度算法對不同作業流的性能衡量 6. 批處理作業的調度(續4)(3)系統進行作業調度的決策因素作業到達時間預先

9、為作業確定的優先級系統可測定的其他因素:作業所需的CPU時間C存儲要求M打印輸出的行數L其他的資源要求6. 批處理作業的調度(續5)(4)常見的批處理作業調度算法先來先服務算法(FCFS:First Come First Serve)最短作業優先算法(SJF:Shortest Job First)最高響應比優先算法 (HRN:Highest Response Ratio Next) 響應比R = 作業周轉時間 / 作業處理時間 =(作業處理時間+作業等待時間)/ 作業處理時間 = 1 +(作業等待時間 / 作業處理時間)6. 批處理作業的調度(續6)基于優先數調度算法 (HPF:Highest

10、 Priority First) (a)由用戶規定優先數(外部優先數) 用戶提交作業時,根據急迫程度規定適當的優先數 作業調度程序根據JCB優先數決定進入內存的次序 (b)由系統計算優先數(內部優先數)例:可按如下公式計算作業的優先數:優先數 = 用戶規定優先數 作業處理時間 + 作業等待時間 輸出量6. 批處理作業的調度(續7)均衡調度算法(分類排隊算法)基本思想:根據系統運行情況和作業屬性將作業分類輪流從不同的作業類中挑選作業目標:力求均衡地利用各種系統資源,發揮資源使用效率力求使用戶滿意6. 批處理作業的調度(續8)例1:將待處理作業分成如下隊列: 隊列1:計算量大的作業 隊列2:I/O

11、量大的作業 隊列3:計算量與I/O量均衡的作業調度時,在三個隊列中各取一些作業在內存中的作業有的使用處理機有的使用外部設備使得系統的各種資源能得到充分利用6. 批處理作業的調度(續9)例2:將待處理作業分成如下三個隊列: 隊列1:長作業 隊列2:中等長度作業 隊列3:短作業調度時取隊列1一作業,隊列2一作業,隊列3一作業長作業用戶和短作業用戶均比較滿意6. 批處理作業的調度(續10)(5)作業調度算法應用例子1假設在單道批處理環境下有四個作業,已知它們進入系統的時間、估計運行時間 應用先來先服務、最短作業優先和最高響應比優先作業調度算法,分別計算出作業的平均周轉時間和帶權的平均周轉時間6. 批

12、處理作業的調度(續11)先來先服務調度算法計算結果6. 批處理作業的調度(續12)最短作業優先作業算法計算結果6. 批處理作業的調度(續13)最高響應比優先作業算法計算結果6. 批處理作業的調度(續14)在兩道環境下有四個作業已知它們進入系統的時間、估計運行時間系統采用短作業優先作業調度算法,作業被調度運行后不再退出當一新作業投入運行后,可按照作業運行時間長短調整作業執行的次序請給出這四個作業的執行時間序列,并計算出平均周轉時間及帶權平均周轉時間(6)作業調度算法應用例子26. 批處理作業的調度(續15)兩道批處理系統中最短作業優先作業算法計算結果6. 批處理作業的調度(續16)四個作業的執行

13、時間序列為:JOB1:10:0010:05,10:4011:05JOB2:10:0510:25JOB3:10:2510:30JOB4:10:3010:40兩道批處理系統中最短作業優先作業算法計算結果(續1)6. 批處理作業的調度(續17)10:00,JOB1進入,只有一作業,JOB1被調入執行10:05,JOB2到達,最多允許兩作業同時進入 所以JOB2也被調入內存中有兩作業,哪一個執行?題目規定當一新作業運行后,可按作業運行時間長短調整執行次序即基于優先數可搶占式調度策略優先數是根據作業估計運行時間大小來決定的由于JOB2運行時間(20分)比JOB1少(到10:05,JOB1還需25分鐘)所

14、以JOB2運行,而JOB1等待兩道批處理系統中最短作業優先作業算法分析過程6. 批處理作業的調度(續18)10:10,JOB3到達輸入井,內存已有兩作業 JOB3不能馬上進入內存;10:20,JOB4也不能進入內存10:25,JOB2運行結束,退出,內存中剩下JOB1 輸入井中有兩作業JOB3和JOB4,如何調度?作業調度算法:最短作業優先因此JOB3進入內存比較JOB1和JOB3運行時間JOB3運行時間短,故JOB3運行同樣,JOB3退出后,下一個是JOB4JOB4結束后,JOB1才能繼續運行兩道批處理系統中最短作業優先作業算法分析過程(續1)6. 批處理作業的調度(續19)(7)多道程序對

15、平均周轉時間的影響作業流在多道環境下運行平均周轉時間、帶權平均周轉時間 比單道環境下都有明顯改善不是任意作業組合都能改善調度性能 有時甚至可能變壞6. 批處理作業的調度(續20)例:四個各需兩小時作業同時投入運行,I/O等待時間均占25%,即占CPU時間各為1.5小時根據計算公式,CPU的空轉率為0采用簡單輪轉法調度,每小時各作業分別占用25%的CPU時間,算得該作業組合的平均周轉時間約為6小時,而平均帶權周轉時間約為3但是,若以單道程序方式運行:平均周轉時間T=(2+4+6+8)/4=5小時平均帶權周轉時間W=(1+2+3+4)/4=2.56. 批處理作業的調度(續21)7作業調度與進程調度

16、作業能否占用處理器?什么時間能夠占用處理器?由進程調度來決定進程的初始狀態為就緒狀態進程調度選擇當前可占用 CPU處理進程,當它讓出處理器時,進程調度就再選另一作業的進程作業調度與進程調度相互配合,實現作業的并行作業調度與進程調度的例子 某系統采用不能移動已在內存中作業的可變分區方案管理內存 供用戶使用的內存空間為100K,系統配有4臺磁帶機 一批作業如下圖:作業 進入時間 估計 內存需要 磁帶機需要 運行時間JOB1 10:00 25分鐘 15K 2臺JOB2 10:20 30分鐘 60K 1臺JOB3 10:30 10分鐘 50K 3臺JOB4 10:35 20分鐘 10K 2臺JOB5

17、10:40 15分鐘 30K 2臺7作業調度與進程調度(續1)作業調度與進程調度的例子(續1) 該系統采用多道程序設計技術,對磁帶機采用靜態分配,忽略設備工作時間和系統進行調度所共花的時間,請分別給出采用“先來先服務調度算法”和“短作業優先算法”選中作業執行的次序以及它們的平均周轉時間。 若允許移動已在主存儲器中的作業,則作業被選中的次序又是怎樣的呢?它們的平均周轉時間又如何?小結: 作業調度前提:并行道數、資源滿足 進程調度7作業調度與進程調度(續2)8. 批處理作業的控制當作業為執行態時,作業調度程序為其建立一作業控制進程, 由該進程控制作業運行作業控制進程:主要負責控制作業的運行,具體解

18、釋執行作業說明書的每一個作業步,并創建子進程來完成相應步驟一個作業步的處理:(1)建立子進程(2)為其申請資源(3)訪問該作業的JCB(4)釋放占有資源(5)撤消子進程等作業控制程序只有一個 對應每一處于執行狀態的作業有一作業控制進程9. 作業退出把輸出結果送到輸出設備上(啟動緩輸出進程完成)回收各種資源10. SPOOLing系統工作原理全稱:Simultaneous Peripheral Operations On-Line含義:同時的外圍設備聯機操作(假脫機技術)包括:輸入程序模塊輸出程序模塊作業調度程序作業和進程的狀態轉換圖數據進入狀態退出狀態后備狀態運行狀態作業控制進程 輸入設備數據

19、源程序輸出設備作業說明書輸入井運行等待就緒輸出井輸入程序輸出程序作業調度進程調度10. SPOOLing系統工作原理(續1)10. SPOOLing系統工作原理(續2)作業執行前用慢速設備將作業預先輸入到后援存儲器(如磁盤、磁鼓,稱為輸入井)中,稱為預輸入作業運行后,使用數據時,從輸入井中取出作業執行不必直接啟動外設輸出數據,只需將這些數據寫入輸出井中作業全部運行完畢,再由外設輸出全部數據和信息,稱為緩輸出實現了對作業輸入、組織調度和輸出的統一管理使外設在CPU直接控制下,與CPU并行工作(稱為假脫機)輸入裝置輸出裝置通道通道輸出裝置輸出裝置通 道 主機系統輸入管 輸出管理模塊 理模塊外 設輸

20、入井 輸出井 SPOOLing系統10. SPOOLing系統工作原理(續3)三、 交互式系統的作業管理1. 概述(1)命令接口 在操作系統與計算機用戶之間提供易于理解的雙向通信機制基本任務:解釋命令,傳送命令以便執行接受系統信息,提交給用戶(以響應語言的形式)交互式命令的接口復雜 含功能結構,可能問題的處理,如各種約定、前端處理、命令日志、命令注解、宏命令及命令組等交互式控制靈活方便,可以隨時進行各種處理,排除問題,方便調試;系統利用率低接口包括:一組聯機命令,終端處理程序,命令解釋程序1. 概述(續1)(2)終端處理程序交互式命令接口:用戶同操作系統的通信通過一個輸入/輸出裝置來實現I/O

21、裝置一般是顯示終端 輸入通過鍵盤:在有的系統中,可通過指示裝置(例如鼠標)輸入 系統輸入呈現在顯示屏幕上,一次顯示若干正文行 某些系統中,提供圖形顯示功能不管哪種I/O方式,這個終端裝置是由一個終端處理程序管理和控制1. 概述(續2)終端處理程序提供的輸入輸出方式對整個用戶命令接口有重大影響也確定了用戶與其應用程序之間的通信方式終端處理程序必須作為用戶接口的一個組成部分來考慮 即,直接影響命令接口的一些問題須由終端處理程序解決1. 概述(續3)(3)直接影響命令接口的一些問題(a)回送顯示(Echoing) 通常,每從鍵盤打入一個字符,終端處理程序回送響應的字符到顯示屏上 有時用戶要求其顯示一

22、個不同的字符或不顯示(例如,用戶鍵入口令時) 對于通過遠程通信線路訪問的終端,可能需要抑制這種回送 回送顯示委托給遠程終端來實現1. 概述(續4)(b)提前打入(Type ahead) 假定輸入字符在一程序準備處理它們之前打入,則由“提前打入進程”把它們保存在緩沖區中 緩沖區容量是有限,當其存滿后,再有輸入時,或者漏掉,或者將破壞緩沖區原有的內容(c)字符變換 有些情況下,需要對打入的字符進行代碼變換 如,把小寫字母轉換成大寫字母,或者反之(d)行緩沖 打入的字符在送到程序前,由終端接口保存,直到整個命令行打入為止 為用戶提供了校驗、編輯,甚至取消命令的機會(3)直接影響命令接口的一些問題(續

23、1)1. 概述(續5)(e)中斷字符(Break Characters) 多數交互式命令接口可以接受一些稱為中斷字符的特殊字符,并立即采取相應的行動 如,在許多系統中,同時打入CTRLC字符鍵,立即終止當前程序執行,并使命令處理程序重新初始化(3)直接影響命令接口的一些問題(續2)1. 概述(續6)2. 命令解釋程序命令解釋程序有兩種處理方法:(a)由終端命令解釋程序直接處理 在沒有創建子進程功能的系統中 終端命令通常由對應的命令解釋程序處理 在這樣系統中,僅有一個進程對應一個終端用戶(b)由子進程代為處理在具有創建子進程功能的系統中,對于較為單純的命令,如列目錄,拷貝文件等,命令解釋程序本身

24、便能完成,此時由命令解釋程序直接處理對較復雜命令,如對于C源程序進行編譯,命令解釋程序本身不能處理,此時創建一個子進程,并由該子進程運行C編譯程序3. 命令接口的結構命令接口由命令處理器來實現命令處理器的實現方式:(a)作為OS的一個部分 如,OS/MVT或VAX/VMS(b)作為OS的一個獨特模塊,能方便地修改或替換 如,RT-11或CP/M(c)作為一易于被替換的普通程序 如,UNIX操作系統 (d) 在某些系統中,可能用專門設計的命令接口替代標準的命令接口 如,多用戶UNIX,用戶可有不同命令接口4命令語言命令語言規定由OS執行的一系列操作在一般的命令語言中,用戶通過打入稱為命令行的一行

25、指令來規定每一個動作每一命令行以命令開始,它標識所要執行的操作大多數命令是用運行一個程序來執行所請求的操作 多數命令行中要給出一些參數, 每一命令語句實際上是帶有參數的一個過程調用一個命令語言通常提供下列幾組命令:(1)系統訪問命令登錄命令,如,login等撤離命令,如,logout等(2)文件管理命令(3)編輯、編譯和執行命令(4)詢問命令(5)操作員專用命令4. 命令語言(續1)4. 命令語言(續2) 命令行:規定由操作系統執行的一系列操作命令行:一行可有一個或多個命令,每次一行,包含一個或多個命令。shell給出提示符時可輸入,以回車鍵提交。如:“ls -a -l”列出當前目錄文件列表;

26、gunzip mp1.tar.gz; tar -xvf mp1.tar; rm -r -f mp1.tar為解壓縮后再展開。命令格式:一個命令可有命令參數,格式包括選項/開關 (option/switch)或參數(argument)。如UNIX系統: cp -r doc /tmpargv0, argv1, .(含子目錄的文件復制:/tmp為目標地址)4. 命令語言(續3)命令分類:內部命令和外部命令內部命令:直接由shell本身完成,功能簡單、使用頻繁;如:DOS的copy命令。外部命令:運行相應的可執行文件,在使用時加載。如:DOS的xcopy命令命令簡化:利用參數替換可簡化命令輸入,通配符

27、(?, *)用于匹配一組文件名如:UNIX的cp命令:當前目錄上有兩個1.tar和2.tar時,cp *.tar /tmp等同于cp 1.tar /tmp; cp 2.tar /tmp命令的附加功能 命令的附加功能用以擴大命令的功能性、選擇性、適應性。包括:(1)參數與變量 位置變量 關鍵字變量(2)命令通配符(3)重定向(4)管道與過濾器4. 命令語言(續4)批處理命令:針對脫機用戶操作和大量順序操作功能而設計 批處理命令可以是專門的命令,也可是系統的基本命令;還有有關的語法結構,循環、分支、轉移、判別等,構成一套特殊的命令語言5命令文件5命令文件(續)提前寫出命令并存入文件,稱之為命令文件

28、命令文件提供了一種把一系列命令組裝成文件的方法,然后用文件名作為命令名執行另外一系列命令特點:(1)接受參數、變量,宏變量替換(2)允許嵌套形式調用其他命令文件(3)允許參數來自終端的命令文件本身(4)允許執行顯示到終端、存入文件或送入打印機(5)允許命令加入注釋(6)出錯時允許用戶干預(7)可把輸入傳給程序,可有循環、分支、轉移等時間片輪轉:在OS控制下,采用“時間片輪轉”方法使每個終端作業都能在一個“時間片”內去占用處理器當時間片用完后,讓出處理器給另一個終端作業這樣,保證從終端用戶輸入命令到計算機系統給出應答 只是幾秒鐘的時間,使端用戶感到滿意6. 交互式系統實例分時系統分時系統中的用戶

29、控制作業的執行大致有四個階段:終端的連接用戶登錄控制作業執行用戶退出6. 交互式系統實例分時系統(續1)(1) 終端的連接必須使終端設備與計算機系統在線路上接通近程終端是直接與計算機系統連接的,當終端設備加電后,終端就與計算機系統在線路上接通了遠程終端通過租用專線或交換線接到計算機系統,在終端加電后用戶還需通過電話撥號進行呼叫,直到接通當終端與計算機系統在線路上接通后,計算機系統會在終端上顯示信息告訴用戶6. 交互式系統實例分時系統(續2)(2) 用戶登錄用戶必須向系統登錄用戶首先輸入“登錄”命令(LOGON)命令 系統會向詢問用戶名、作業名、口令和資源需求等 經過識別用戶、核對口令,系統在終

30、端上顯示“已登錄”和進入系統的時間等信息若口令不對或資源暫時不能滿足時,則系統在終端上顯示“登錄不成功”并給出登錄失敗的原因用戶的登錄過程可看作是對終端作業的作業調度6. 交互式系統實例分時系統(續3)(3) 控制作業執行登錄成功的終端用戶可從終端上輸入作業的程序和數據使用系統提供的命令語言或會話語句控制作業執行每輸入一命令或一會話語句后,由系統解釋執行且在終端上顯示執行成功或問題由用戶決定下一步命令或會話直到作業完成6. 交互式系統實例分時系統(續4)(4) 用戶退出用戶輸入“退出”命令(LOGOFF 命令)請求退出系統系統接收命令后就收回該用戶所占的資源讓其退出同時在終端上顯示“退出時間”

31、或“使用系統時間6. 交互式系統實例分時系統(續5)7. 圖形用戶接口GUI在命令行方式下,用戶與操作系統的交互要求用戶記憶命令格式。在圖形用戶接口方式下,用戶可利用鼠標對屏幕上的圖標進行操作,完成與操作系統的交互,從而減少記憶內容,方便用戶使用。它的技術基礎是高分辯顯示器和鼠標(1)窗口系統(window system)的特點(2)窗口系統的圖形元素及其狀態(3)窗口管理器(window manager)(4)例子7. 圖形用戶接口GUI(續1)(1)窗口系統(window system)的特點利用圖形元素表示功能:將各種圖形元素顯示在屏幕上,用戶可以通過操縱圖形元素(如菜單、圖標)來執行相

32、應的功能同屏多窗口與并發進程相對應:屏幕上同時顯示多個窗口;一個進程可以對應一個或多個窗口;窗口動態創建、改變、撤銷輸入方式:鼠標指針點擊(或其他定位設備)和鍵盤輸入;通常是即時交互一致的圖形元素風格可方便用戶學習和使用:如按鈕、滾動條優點:操作直觀(不必記命令行參數),可與多個進程交互,便于進行多媒體處理簡而言之:交互的并發性好、傳遞信息量大7. 圖形用戶接口GUI(續2)(2)窗口系統的圖形元素及其狀態窗口(window):屏幕上的矩形區域(可以通過掩模mask來顯示任意形狀)包括:標題條(title bar)、邊框(border)、窗口角(corner)、系統菜單框(system men

33、u box)、最大化/最小化按鈕(maximize/minimize)、滾動條(scroll bar)等狀態:當前/非當前窗口(active/inactive) 接受輸入,最大化/最小化/恢復原大小(restore),窗口的前后遮蓋Z軸,焦點(focus)接受鍵盤輸入(而非鼠標)桌面(desktop)和墻紙(wallpaper)圖標(icon):一個小圖象(如32x32或64x64 pixel),通常供鼠標指針點擊。通過不同的圖標可以標識不同的對象。如:可執行程序、最小化的窗口、文件動畫圖標7. 圖形用戶接口GUI(續3)鼠標指針(mouse pointer):鼠標指針通常對應屏幕上的光標(c

34、ursor)光標在屏幕上只有一個,在不同屏幕位置(上下文)可以呈現不同形狀,可以獨立于鼠標來直接操縱光標鼠標點擊:左鍵/右鍵/中鍵(left/right/middle button),單擊(click)/雙擊(double-click),拖曳(drag)/拖放(drag-and-drop)按鈕(button):鼠標點擊或按回車鍵/空格鍵時執行相應功能,如 menu button;提供單項或多項選擇,如radiobutton和checkbutton;當前按鈕及其切換菜單(menu):臨時窗口,菜單條(menu bar)、彈出式菜單、下拉式菜單(上下文相關菜單)對話框(dialog box):臨時

35、窗口,顯示提示信息(message)或填寫用戶設置7. 圖形用戶接口GUI(續4)(3)窗口管理器(window manager):形成統一的使用風格處理窗口的普遍特性,如:窗口的大小、位置(窗口的標題條、邊框、控制菜單框)窗口中由應用程序管理的部分稱為客戶區(client area)協調各窗口間的相互關系,如:窗口之間的前后遮蓋關系,桌面7. 圖形用戶接口GUI(續5)(4)例子: MS Windows特點MS Windows結構基本概念消息處理:兩種方法7. 圖形用戶接口GUI(續6)特點是OS 的一部分,提供默認的窗口風格(如菜單、對話框)除Windows2000外,窗口應用程序只能在控

36、制臺(本地)執行7. 圖形用戶接口GUI(續7)MS Windows結構:可分成三個部分OS系統服務(KERNEL):內存管理、程序加載(包括DLL)、任務調度、文件管理用戶接口(USER):窗口和消息管理,以及菜單、控制、對話框、定時器等圖形設備接口(GDI, Graphic Device Interface):管理顯示器,為USER與應用程序提供與硬件設備獨立的接口7. 圖形用戶接口GUI(續8)基本概念消息(message):消息作為窗口的輸入,如用戶操作、其他窗口或系統發出的請求或通知窗口過程(window procedure):消息由各窗口自己的窗口過程來作處理窗口過程的調用參數:接

37、收窗口句柄(可以在多個窗口共用一個窗口過程時加以區分)、消息ID(消息的類型)、消息參數(16+32位或32+32位值,整數或指針)還可以取得消息的發生時間和屏幕坐標7. 圖形用戶接口GUI(續9)消息處理:兩種方法排隊消息:放到進程(線程)的FIFO消息隊列里。如應用程序發送的消息,系統的鼠標、鍵盤、定時器、窗口繪制和退出等。排隊消息所用的API:發送消息到消息隊列PostMessage;從消息隊列讀取消息GetMessage, PeekMessage;分發一個消息到相應窗口DispatchMessage;非排隊消息:直接發送到指定窗口的窗口過程。非排隊消息所用的API:SendMessag

38、e,直到接收方窗口過程處理完才返回接收方正處于GetMessage,而接受并處理SendMessage送來的消息之后,仍處于GetMessage。為防止死鎖,一般要:if (InSendMessage() ReplyMessage(TRUE);7. 圖形用戶接口GUI(續10)消息循環:不斷移出消息,并加以處理。用戶不作處理的消息,應傳給默認窗口過程加以處理:DefWindowProc()WM_PAINT消息:通知窗口客戶區中的某部分(region)已被改變,應用程序應該對其重新繪制。總是被排在線程消息隊列的最后,并且多個WM_PAINT消息中的region會自動被合并為一個7. 圖形用戶接口

39、GUI(續11)四. 系統調用1.系統調用簡介系統調用,是用戶在程序中調用操作系統所提供的一些子功能這是特殊的過程調用,由特殊的機器指令實現這個指令還將系統轉入管態系統調用程序是一個低級過程,只能由匯編語言直接訪問系統調用是操作系統提供給編程人員的唯一接口利用系統調用,動態請求和釋放系統資源完成與硬件相關的工作以及控制程序的執行等 每個操作系統都提供幾百種系統調用,包括:外存文件與目錄的讀寫,各種I/O設備的使用,在程序中啟動另一個程序,查詢和統計系統資源使用情況等等實際上系統調用語句本身是硬件提供的(機器指令),但其所調用的功能是操作系統提供的每種機器的機器指令集中都有一條系統調用指令(訪管

40、指令)1.系統調用簡介(續1)匯編程序例子:打印5個字符 方法1:調用DOS功能 MOVE A, PARA1 MOVE B, PARA2 INT 21H系統調用的例子-11.系統調用簡介(續2) 方法2:用OUT語句直接打印 L1:MOVE A,I IN ADDR1,B OR B,BS JNC L1 OUT ADDR2,A RET系統調用的例子-21.系統調用簡介(續3) I/O設備的硬件接口一般由四種寄存器(地址,數據,狀態,控制)或其子集組成任一程序中若要使用I/O設備來輸出數據或接受輸入必須通過對這四種寄存器讀寫的I/O機器指令進行1.系統調用簡介(續4) 匯編程序例子2:讀寫硬盤文件內

41、容 MOVE DX,OFFSETBUFF MOVE CX,BYTE MOVE BX,HANDLE MOVE AH,3FH INT 21H系統調用的例子-31.系統調用簡介(續5)磁盤讀寫的例子:更復雜原因: A、磁盤的控制和狀態接口寄存器比打印機的復雜的多,而且還有地址接口寄存器 B、通常一個外存存儲介質上可以存放多個文件,隨著文件的建立、刪除和拷貝在不停地變化,每個文件的長度隨著其內容的變化而不停地變化系統調用的例子-41.系統調用簡介(續6) 高級語言例子:打印5個字符 char buff4=“abcde”; for(i=4;i=0;i-) print(buffi);高級語言例子: 讀硬盤

42、文件f1的第10到20個字節 seek(fd,10,0); read(fd,buff,11);系統調用的例子-51.系統調用簡介(續7).A= A+1printf(. . .)B=B+A(1)源程序段1.系統調用簡介(續8)(2)printf目標代碼(3)程序段編譯產生的可執行代碼(4)操作系統內部代碼INT.INTA=A+1B=B+A.INOUT.嵌入后該系統調用的操作系統內部實現代碼1.系統調用簡介(續9)用戶程序函數操作系統凡是與硬件相關、與應用無關的工作,都通過操作系統程序來完成1.系統調用簡介(續10)2. 系統調用的處理過程為了保證OS不被用戶程序破壞 不允許用戶程序訪問OS的系統

43、程序和數據 那么,怎樣得到系統服務的呢?需要有一個類似于硬件中斷處理的處理機構當用戶使用操作系統調用時,產生一條相應的指令處理機在執行到該指令時發生相應的中斷,并發出有關的信號給該處理機構該處理機構在收到了處理機發來的信號后,啟動相關的處理程序去完成該系統調用所要求的功能2. 系統調用的處理過程(續1)在系統中為控制系統調用服務的機構稱為陷入(TRAP)或異常處理機構相對應,把由于系統調用引起處理機中斷的指令稱為陷入或異常指令(或稱訪管指令)在操作系統中,每個系統調用都對應一個事先給定的功能號,例如0、1、2、3等在陷入指令中必須包括對應系統調用的功能號而且,在有些陷入指令中,還帶有傳給陷入處

44、理機構和內部處理程序的有關參數必須為實現系統調用功能的子程序編造入口地址表每個入口地址與相應的系統程序名對應陷入處理程序把陷入指令包含功能號與入口地址表有關項對應, 系統調用功能號驅動有關子程序執行在系統調用處理結束之后,用戶程序需利用系統調用返回結果繼續執行保護現場:在進入系統調用處理之前,陷入處理機構還需保存處理機現場在系統調用處理結束之后,要恢復處理機現場,現場被保護在特定的內存區或寄存器中2. 系統調用的處理過程(續2) system call 入口地址表 (1)保護處理現場(2)取系統調用功能號并尋找子程序入口(3)返回A0A1Ai AnA0 A1AiAnSub0Sub1SubiSu

45、bn 用戶程序 陷入處理機構 系統子程序系統調用的處理過程系統調用處理過程read (fd, buffer, nbytes)參數傳遞過程問題怎樣實現用戶程序和系統程序間的參數傳遞?常用的實現方法:由陷入指令自帶參數:陷入指令的長度有限的,且還要攜帶系統調用功能號,只能自帶有限的參數通過有關通用寄存器來傳遞參數:這些寄存器應是系統程序和用戶程序都能訪問,由于寄存器長度較短,從法傳遞較多的參數大多在內存中開辟專用堆棧區來傳遞參數3. 系統調用的分類將系統的功能分為兩部分:系統自身所需要的作為服務提供給用戶的OS的系統調用:進程控制類系統調用文件操作類系統調用進程通信類系統調用設備管理類系統調用信息

46、維護類系統調用進程管理文件管理目錄管理其他 系統調用方式(INT)與程序中一般的調用方式的相同點:改變指令流程重復執行和公用改變指令流程后需要返回原處4.系統調用與一般過程調用的比較系統調用方式(INT)與程序中一般的調用方式的不同點:運行在不同的系統狀態 一般過程調用,其調用程序和被調用程序都運行在相同狀態:核心態或用戶態系統調用:調用程序在用戶態,被調用程序在系統態狀態的轉換一般的過程調用不涉及系統狀態的轉換,可直接由調用過程轉向被調用過程運行系統調用時,調用和被調用過程在不同系統狀態,不允許由調用過程直接轉向被調用過程通過軟中斷機制先由用戶態轉換為核心態在OS核心分析后,轉向相應的系統調

47、用處理子程序4.系統調用與一般過程調用的比較(續1)返回問題一般過程調用在被調用過程執行完后,回調用過程搶占式調度的系統中,被調用過程執行完后,系統將對所有要求運行的進程進行優先級分析。如果調用進程仍有最高優先級,則返回到調用進程執行 否則,引起重新調度,讓優先級最高的進程優先執行。此時,系統把調用進程放入就緒隊列嵌套或遞歸調用對系統調用,一般不允許在同一個進程中發生嵌套或遞歸(不同進程可以重入同一個系統調用)4.系統調用與一般過程調用的比較(續3) 進入方式不同CALL指令的內部實現過程返回地址壓棧(即該CALL指令所在的地址)將該CALL指令中所含的地址(即被調用代碼所在地址)送入PCRE

48、T指令的內部實現過程從棧頂彈出返回地址送入程序計數器PC利用int或trap指令進行系統調用;利用call 或 jmp 指令進入普通的過程調用4.系統調用與一般過程調用的比較(續4)系統調用是動態調用,而CALL調用方式是靜態調用a. 同一程序中不包含被調用代碼 系統調用是動態調用,程序中不包含被調用代碼,好處:(1)用戶程序長度縮短(2)當OS升級時,調用方不必改變4.系統調用與一般過程調用的比較(續5) b. 系統調用方式的調用地址和返回地址都是不固定的 系統調用指令中不包含調用地址, 只包含功能號 是按功能號(在可執行目標程序中)調用的在操作系統內部 由系統調用處理程序通過系統調用分支表

49、 (OS的一個數據結構) 將功能號轉換為相應的指令地址4.系統調用與一般過程調用的比較(續6).功能號 地址顯 示打 印讀文件.OS的系統調用分支表OS代碼顯示打印讀文件OS用戶程序INT.4.系統調用與一般過程調用的比較(續7)系統調用返回指令中不包括返回地址,通過棧保存和彈出返回地址系統調用返回地址不固定,因為用戶程序在不同的地方調用OS CALL調用方式是靜態調用,被調用代碼與調用代碼在同一程序之內。CALL調用方式,其調用地址是固定的,包含在調用語句中;返回地址是不固定的(同一子程序可能被不同處多次調用),在程序執行過程中通過棧的實現來保存和彈出返回地址4.系統調用與一般過程調用的比較

50、(續8)c. 安全接口INT指令和IRET指令的執行過程中 要處理程序狀態字PSW INT指令中要保存用戶程序的老PSW 并根據中斷向量表設置新PSW IRET指令中要在返回用戶程序前恢復用戶程序的老PSW4.系統調用與一般過程調用的比較(續9)安全接口(續1)目的:目態、管態的管理系統態與用戶態的轉換 由系統在INT指令與IRET指令內部自動完成 沒有用一條單獨的專門指令好處:有效地防止在系統態下執行用戶程序4.系統調用與一般過程調用的比較(續10)5. Win32 應用程序接口在Windows中,定義了一系列程序(應用程序接口Win32 API) ,提供OS服務這個接口(部分)支持Win95 以后的Windows版本Win32 API

溫馨提示

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

評論

0/150

提交評論