版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章 用戶接口與作業(yè)管理用戶與操作系統(tǒng)的接口批處理操作系統(tǒng)的作業(yè)管理 作業(yè)的基本概念:作業(yè)、作業(yè)步、作業(yè)流交互式系統(tǒng)作業(yè)管理系統(tǒng)調(diào)用: 用戶程序提出服務(wù)請(qǐng)求的手段,基本思想,實(shí)現(xiàn)方法操作系統(tǒng)安裝與啟動(dòng)1. 作業(yè)級(jí)接口 操作系統(tǒng)為用戶對(duì)作業(yè)運(yùn)行全過程控制提供的功能(1) 聯(lián)機(jī)接口(交互式)(2) 脫機(jī)接口一、用戶與操作系統(tǒng)的接口作業(yè)級(jí)接口程序級(jí)接口系統(tǒng)為用戶在程序一級(jí)提供有關(guān)服務(wù)而設(shè)置由一組系統(tǒng)調(diào)用命令組成負(fù)責(zé)管理和控制運(yùn)行的程序并在這些程序與系統(tǒng)控制的資源和提供的服務(wù)間實(shí)現(xiàn)交互作用用匯編語言:在程序中直接用系統(tǒng)調(diào)用命令用高級(jí)語言:可在編程時(shí)使用過程調(diào)用語句2. 程序級(jí)接口二、批處理系統(tǒng)作業(yè)處
2、理1.作業(yè)的基本概念(1)作業(yè) 用戶在一次計(jì)算過程中,或者一次事務(wù)處理過程中,要求計(jì)算機(jī)系統(tǒng)所做工作的總稱(2)作業(yè)步 一個(gè)作業(yè)可劃分成若干部分,稱為一個(gè)作業(yè)步 典型的作業(yè)控制過程: “編譯”、“連接裝配”、“運(yùn)行”(3)作業(yè)流(4)典型的作業(yè)步編譯連接裝配運(yùn)行目標(biāo)程序段目標(biāo)程序源程序輸入數(shù)據(jù)子程序庫函數(shù)動(dòng)態(tài)庫函數(shù)計(jì)算結(jié)果1. 作業(yè)的基本概念(續(xù)1)2. 批處理作業(yè)控制語言與作業(yè)說明書(1)作業(yè)控制語言用戶用于描述批處理作業(yè)處理過程控制意圖的一種特殊程序書寫作業(yè)說明書的語言稱為作業(yè)控制語言(JCL)(2)作業(yè)控制語言的類別 包括:I/O命令、編譯命令、操作命令以及條件命令等(3)作業(yè)說明書表達(dá)
3、用戶對(duì)作業(yè)的控制意圖內(nèi)容:作業(yè)的基本描述作業(yè)控制描述資源要求描述2. 批處理作業(yè)控制語言與作業(yè)說明書(續(xù))3. 作業(yè)控制塊與作業(yè)表(1)作業(yè)控制塊(JCB:Job Control Block)作業(yè)控制塊是批處理作業(yè)存在的標(biāo)志保存有系統(tǒng)對(duì)于作業(yè)進(jìn)行管理所需要的全部信息位于磁盤區(qū)域中(2)作業(yè)控制塊的內(nèi)容 作業(yè)控制塊中所包含的信息數(shù)量及內(nèi)容因系統(tǒng)而異較簡(jiǎn)單的系統(tǒng)較復(fù)雜的系統(tǒng) 3. 作業(yè)控制塊與作業(yè)表(續(xù)1)作業(yè)標(biāo)知用戶名稱用戶帳號(hào)調(diào)度信息資源需求作業(yè)狀態(tài)作業(yè)類別輸入井地址輸出井地址進(jìn)入系統(tǒng)時(shí)間開始處理時(shí)間作業(yè)完成時(shí)間作業(yè)退出時(shí)間資源使用情況 作業(yè)控制塊JCB3. 作業(yè)控制塊與作業(yè)表(續(xù)2)(3)作
4、業(yè)控制塊的建立 當(dāng)作業(yè)開始由輸入設(shè)備向磁盤的輸入井傳輸時(shí) 系統(tǒng)輸入程序?yàn)槠浣⒁粋€(gè)作業(yè)控制塊 進(jìn)行初始化 初始化的大部分信息取自作業(yè)說明書 3. 作業(yè)控制塊與作業(yè)表(續(xù)3)(4)作業(yè)控制塊的使用需要訪問作業(yè)控制塊的程序系統(tǒng)輸入程序作業(yè)調(diào)度程序作業(yè)控制程序系統(tǒng)輸出程序等3. 作業(yè)控制塊與作業(yè)表(續(xù)4)(5)作業(yè)控制塊的撤消作業(yè)完成后,其作業(yè)控制塊由系統(tǒng)輸出程序撤消作業(yè)控制塊被撤消后其作業(yè)也不復(fù)存在3. 作業(yè)控制塊與作業(yè)表(續(xù)5)(6)作業(yè)表每個(gè)作業(yè)有個(gè)作業(yè)控制塊所有作業(yè)JCB構(gòu)成一個(gè)作業(yè)表作業(yè)表存放在外存固定區(qū)域中,長(zhǎng)度是固定限制了系統(tǒng)所能同時(shí)容納的作業(yè)數(shù)量 系統(tǒng)輸入程序、作業(yè)調(diào)度程序、系統(tǒng)輸出
5、程序都需要訪問作業(yè)表 因而存在互斥問題JCB1 JCB2 JCBi JCBn 作業(yè)表3. 作業(yè)控制塊與作業(yè)表(續(xù)6)4. 批處理作業(yè)的狀態(tài)及轉(zhuǎn)換一個(gè)作業(yè)從進(jìn)入系統(tǒng)到運(yùn)行結(jié)束經(jīng)歷四個(gè)不同的狀態(tài):“進(jìn)入”“后備”“運(yùn)行”“完成” 作業(yè)和進(jìn)程的狀態(tài)轉(zhuǎn)換圖數(shù)據(jù)進(jìn)入狀態(tài)退出狀態(tài)后備狀態(tài)運(yùn)行狀態(tài)作業(yè)控制進(jìn)程 輸入設(shè)備數(shù)據(jù)源程序輸出設(shè)備作業(yè)說明書輸入井運(yùn)行等待就緒輸出井輸入程序輸出程序作業(yè)調(diào)度進(jìn)程調(diào)度4. 批處理作業(yè)的狀態(tài)及轉(zhuǎn)換(續(xù)1)(1)運(yùn)行狀態(tài)的作業(yè)三種狀態(tài):就緒狀態(tài)執(zhí)行狀態(tài)阻塞狀態(tài)4. 批處理作業(yè)的狀態(tài)及轉(zhuǎn)換(續(xù)2)5. 作業(yè)的建立一個(gè)作業(yè)建立過程的兩個(gè)子過程:作業(yè)的輸入JCB的建立 作業(yè)控制塊JC
6、B和作業(yè):一一對(duì)應(yīng)關(guān)系(1)作業(yè)的輸入 將作業(yè)程序、數(shù)據(jù)和作業(yè)說明書從輸入設(shè)備(例如鍵盤)輸入到外存,并形成初始信息作業(yè)輸入方式聯(lián)機(jī)輸入方式脫機(jī)輸入方式SPOOLing系統(tǒng)5. 作業(yè)的建立(續(xù)1) 聯(lián)機(jī)輸入方式用戶和系統(tǒng)通過交互會(huì)話來輸入作業(yè)外圍設(shè)備直接和主機(jī)連接 脫機(jī)輸入方式 為了解決單臺(tái)設(shè)備聯(lián)機(jī)輸入時(shí)的CPU浪費(fèi)問題5. 作業(yè)的建立(續(xù)2)(2)JCB的建立在系統(tǒng)把作業(yè)信息輸入到輸入井之后根據(jù)作業(yè)說明書和有關(guān)作業(yè)信息在外存的位置等建立作業(yè)控制表JCBJCB包含對(duì)作業(yè)進(jìn)行管理所必須的信息JCB表的數(shù)量是一個(gè)常數(shù)外存輸入井的大小有限 只有在獲得JCB表項(xiàng)和足夠輸入井空間后作業(yè)才可能創(chuàng)建成功5.
7、 作業(yè)的建立(續(xù)3)6. 批處理作業(yè)的調(diào)度主要功能:審查系統(tǒng)能否滿足用戶作業(yè)的資源要求 只要通過調(diào)用相應(yīng)的資源管理程序的有關(guān)部分 審核其表中是否能滿足作業(yè)說明書中的要求即可按照一定的算法從輸入井中的后備作業(yè)中選取作業(yè) 調(diào)度的關(guān)鍵在選擇恰當(dāng)?shù)乃惴ǎ?)調(diào)度算法評(píng)價(jià)調(diào)度實(shí)質(zhì)上是一個(gè)策略問題設(shè)定的目標(biāo)往往是相互沖突的 目標(biāo):?jiǎn)挝粫r(shí)間內(nèi)運(yùn)行盡可能多的作業(yè)使處理機(jī)盡可能保持“忙碌”使各種I/O設(shè)備得以充分利用對(duì)所有的作業(yè)都是公平合理的6. 批處理作業(yè)的調(diào)度(續(xù)1)要設(shè)計(jì)一個(gè)理想的調(diào)度算法是一件十分困難的事在實(shí)際系統(tǒng)中,調(diào)度算法往往折衷考慮設(shè)計(jì)調(diào)度算法時(shí)應(yīng)考慮的因素:調(diào)度算法應(yīng)與系統(tǒng)設(shè)計(jì)目標(biāo)保持一致注意系
8、統(tǒng)資源均衡使用保證提交的作業(yè)在截止時(shí)間內(nèi)完成設(shè)法縮短作業(yè)平均周轉(zhuǎn)時(shí)間大多數(shù)操作系統(tǒng)都采用比較簡(jiǎn)單的調(diào)度算法6. 批處理作業(yè)的調(diào)度(續(xù)2)作業(yè)平均周轉(zhuǎn)時(shí)間假定某一作業(yè)進(jìn)入“輸入井”的時(shí)間為Si, 它被選中執(zhí)行,得到計(jì)算結(jié)果的時(shí)間為Ei 它的周轉(zhuǎn)時(shí)間為Ti Ei Si 則作業(yè)平均周轉(zhuǎn)時(shí)間為: T( ) n為被測(cè)定作業(yè)流中的作業(yè)數(shù)(2)調(diào)度算法性能的衡量6. 批處理作業(yè)的調(diào)度(續(xù)3)平均帶權(quán)周轉(zhuǎn)時(shí)間 W( ) ri 為某作業(yè)i的實(shí)際執(zhí)行時(shí)間 T:衡量不同調(diào)度算法對(duì)同一個(gè)作業(yè)流的性能 W:同一調(diào)度算法對(duì)不同作業(yè)流的性能衡量 6. 批處理作業(yè)的調(diào)度(續(xù)4)(3)系統(tǒng)進(jìn)行作業(yè)調(diào)度的決策因素作業(yè)到達(dá)時(shí)間預(yù)先
9、為作業(yè)確定的優(yōu)先級(jí)系統(tǒng)可測(cè)定的其他因素:作業(yè)所需的CPU時(shí)間C存儲(chǔ)要求M打印輸出的行數(shù)L其他的資源要求6. 批處理作業(yè)的調(diào)度(續(xù)5)(4)常見的批處理作業(yè)調(diào)度算法先來先服務(wù)算法(FCFS:First Come First Serve)最短作業(yè)優(yōu)先算法(SJF:Shortest Job First)最高響應(yīng)比優(yōu)先算法 (HRN:Highest Response Ratio Next) 響應(yīng)比R = 作業(yè)周轉(zhuǎn)時(shí)間 / 作業(yè)處理時(shí)間 =(作業(yè)處理時(shí)間+作業(yè)等待時(shí)間)/ 作業(yè)處理時(shí)間 = 1 +(作業(yè)等待時(shí)間 / 作業(yè)處理時(shí)間)6. 批處理作業(yè)的調(diào)度(續(xù)6)基于優(yōu)先數(shù)調(diào)度算法 (HPF:Highest
10、 Priority First) (a)由用戶規(guī)定優(yōu)先數(shù)(外部?jī)?yōu)先數(shù)) 用戶提交作業(yè)時(shí),根據(jù)急迫程度規(guī)定適當(dāng)?shù)膬?yōu)先數(shù) 作業(yè)調(diào)度程序根據(jù)JCB優(yōu)先數(shù)決定進(jìn)入內(nèi)存的次序 (b)由系統(tǒng)計(jì)算優(yōu)先數(shù)(內(nèi)部?jī)?yōu)先數(shù))例:可按如下公式計(jì)算作業(yè)的優(yōu)先數(shù):優(yōu)先數(shù) = 用戶規(guī)定優(yōu)先數(shù) 作業(yè)處理時(shí)間 + 作業(yè)等待時(shí)間 輸出量6. 批處理作業(yè)的調(diào)度(續(xù)7)均衡調(diào)度算法(分類排隊(duì)算法)基本思想:根據(jù)系統(tǒng)運(yùn)行情況和作業(yè)屬性將作業(yè)分類輪流從不同的作業(yè)類中挑選作業(yè)目標(biāo):力求均衡地利用各種系統(tǒng)資源,發(fā)揮資源使用效率力求使用戶滿意6. 批處理作業(yè)的調(diào)度(續(xù)8)例1:將待處理作業(yè)分成如下隊(duì)列: 隊(duì)列1:計(jì)算量大的作業(yè) 隊(duì)列2:I/O
11、量大的作業(yè) 隊(duì)列3:計(jì)算量與I/O量均衡的作業(yè)調(diào)度時(shí),在三個(gè)隊(duì)列中各取一些作業(yè)在內(nèi)存中的作業(yè)有的使用處理機(jī)有的使用外部設(shè)備使得系統(tǒng)的各種資源能得到充分利用6. 批處理作業(yè)的調(diào)度(續(xù)9)例2:將待處理作業(yè)分成如下三個(gè)隊(duì)列: 隊(duì)列1:長(zhǎng)作業(yè) 隊(duì)列2:中等長(zhǎng)度作業(yè) 隊(duì)列3:短作業(yè)調(diào)度時(shí)取隊(duì)列1一作業(yè),隊(duì)列2一作業(yè),隊(duì)列3一作業(yè)長(zhǎng)作業(yè)用戶和短作業(yè)用戶均比較滿意6. 批處理作業(yè)的調(diào)度(續(xù)10)(5)作業(yè)調(diào)度算法應(yīng)用例子1假設(shè)在單道批處理環(huán)境下有四個(gè)作業(yè),已知它們進(jìn)入系統(tǒng)的時(shí)間、估計(jì)運(yùn)行時(shí)間 應(yīng)用先來先服務(wù)、最短作業(yè)優(yōu)先和最高響應(yīng)比優(yōu)先作業(yè)調(diào)度算法,分別計(jì)算出作業(yè)的平均周轉(zhuǎn)時(shí)間和帶權(quán)的平均周轉(zhuǎn)時(shí)間6. 批
12、處理作業(yè)的調(diào)度(續(xù)11)先來先服務(wù)調(diào)度算法計(jì)算結(jié)果6. 批處理作業(yè)的調(diào)度(續(xù)12)最短作業(yè)優(yōu)先作業(yè)算法計(jì)算結(jié)果6. 批處理作業(yè)的調(diào)度(續(xù)13)最高響應(yīng)比優(yōu)先作業(yè)算法計(jì)算結(jié)果6. 批處理作業(yè)的調(diào)度(續(xù)14)在兩道環(huán)境下有四個(gè)作業(yè)已知它們進(jìn)入系統(tǒng)的時(shí)間、估計(jì)運(yùn)行時(shí)間系統(tǒng)采用短作業(yè)優(yōu)先作業(yè)調(diào)度算法,作業(yè)被調(diào)度運(yùn)行后不再退出當(dāng)一新作業(yè)投入運(yùn)行后,可按照作業(yè)運(yùn)行時(shí)間長(zhǎng)短調(diào)整作業(yè)執(zhí)行的次序請(qǐng)給出這四個(gè)作業(yè)的執(zhí)行時(shí)間序列,并計(jì)算出平均周轉(zhuǎn)時(shí)間及帶權(quán)平均周轉(zhuǎn)時(shí)間(6)作業(yè)調(diào)度算法應(yīng)用例子26. 批處理作業(yè)的調(diào)度(續(xù)15)兩道批處理系統(tǒng)中最短作業(yè)優(yōu)先作業(yè)算法計(jì)算結(jié)果6. 批處理作業(yè)的調(diào)度(續(xù)16)四個(gè)作業(yè)的執(zhí)行
13、時(shí)間序列為:JOB1:10:0010:05,10:4011:05JOB2:10:0510:25JOB3:10:2510:30JOB4:10:3010:40兩道批處理系統(tǒng)中最短作業(yè)優(yōu)先作業(yè)算法計(jì)算結(jié)果(續(xù)1)6. 批處理作業(yè)的調(diào)度(續(xù)17)10:00,JOB1進(jìn)入,只有一作業(yè),JOB1被調(diào)入執(zhí)行10:05,JOB2到達(dá),最多允許兩作業(yè)同時(shí)進(jìn)入 所以JOB2也被調(diào)入內(nèi)存中有兩作業(yè),哪一個(gè)執(zhí)行?題目規(guī)定當(dāng)一新作業(yè)運(yùn)行后,可按作業(yè)運(yùn)行時(shí)間長(zhǎng)短調(diào)整執(zhí)行次序即基于優(yōu)先數(shù)可搶占式調(diào)度策略優(yōu)先數(shù)是根據(jù)作業(yè)估計(jì)運(yùn)行時(shí)間大小來決定的由于JOB2運(yùn)行時(shí)間(20分)比JOB1少(到10:05,JOB1還需25分鐘)所
14、以JOB2運(yùn)行,而JOB1等待兩道批處理系統(tǒng)中最短作業(yè)優(yōu)先作業(yè)算法分析過程6. 批處理作業(yè)的調(diào)度(續(xù)18)10:10,JOB3到達(dá)輸入井,內(nèi)存已有兩作業(yè) JOB3不能馬上進(jìn)入內(nèi)存;10:20,JOB4也不能進(jìn)入內(nèi)存10:25,JOB2運(yùn)行結(jié)束,退出,內(nèi)存中剩下JOB1 輸入井中有兩作業(yè)JOB3和JOB4,如何調(diào)度?作業(yè)調(diào)度算法:最短作業(yè)優(yōu)先因此JOB3進(jìn)入內(nèi)存比較JOB1和JOB3運(yùn)行時(shí)間JOB3運(yùn)行時(shí)間短,故JOB3運(yùn)行同樣,JOB3退出后,下一個(gè)是JOB4JOB4結(jié)束后,JOB1才能繼續(xù)運(yùn)行兩道批處理系統(tǒng)中最短作業(yè)優(yōu)先作業(yè)算法分析過程(續(xù)1)6. 批處理作業(yè)的調(diào)度(續(xù)19)(7)多道程序?qū)?/p>
15、平均周轉(zhuǎn)時(shí)間的影響作業(yè)流在多道環(huán)境下運(yùn)行平均周轉(zhuǎn)時(shí)間、帶權(quán)平均周轉(zhuǎn)時(shí)間 比單道環(huán)境下都有明顯改善不是任意作業(yè)組合都能改善調(diào)度性能 有時(shí)甚至可能變壞6. 批處理作業(yè)的調(diào)度(續(xù)20)例:四個(gè)各需兩小時(shí)作業(yè)同時(shí)投入運(yùn)行,I/O等待時(shí)間均占25%,即占CPU時(shí)間各為1.5小時(shí)根據(jù)計(jì)算公式,CPU的空轉(zhuǎn)率為0采用簡(jiǎn)單輪轉(zhuǎn)法調(diào)度,每小時(shí)各作業(yè)分別占用25%的CPU時(shí)間,算得該作業(yè)組合的平均周轉(zhuǎn)時(shí)間約為6小時(shí),而平均帶權(quán)周轉(zhuǎn)時(shí)間約為3但是,若以單道程序方式運(yùn)行:平均周轉(zhuǎn)時(shí)間T=(2+4+6+8)/4=5小時(shí)平均帶權(quán)周轉(zhuǎn)時(shí)間W=(1+2+3+4)/4=2.56. 批處理作業(yè)的調(diào)度(續(xù)21)7作業(yè)調(diào)度與進(jìn)程調(diào)度
16、作業(yè)能否占用處理器?什么時(shí)間能夠占用處理器?由進(jìn)程調(diào)度來決定進(jìn)程的初始狀態(tài)為就緒狀態(tài)進(jìn)程調(diào)度選擇當(dāng)前可占用 CPU處理進(jìn)程,當(dāng)它讓出處理器時(shí),進(jìn)程調(diào)度就再選另一作業(yè)的進(jìn)程作業(yè)調(diào)度與進(jìn)程調(diào)度相互配合,實(shí)現(xiàn)作業(yè)的并行作業(yè)調(diào)度與進(jìn)程調(diào)度的例子 某系統(tǒng)采用不能移動(dòng)已在內(nèi)存中作業(yè)的可變分區(qū)方案管理內(nèi)存 供用戶使用的內(nèi)存空間為100K,系統(tǒng)配有4臺(tái)磁帶機(jī) 一批作業(yè)如下圖:作業(yè) 進(jìn)入時(shí)間 估計(jì) 內(nèi)存需要 磁帶機(jī)需要 運(yùn)行時(shí)間JOB1 10:00 25分鐘 15K 2臺(tái)JOB2 10:20 30分鐘 60K 1臺(tái)JOB3 10:30 10分鐘 50K 3臺(tái)JOB4 10:35 20分鐘 10K 2臺(tái)JOB5
17、10:40 15分鐘 30K 2臺(tái)7作業(yè)調(diào)度與進(jìn)程調(diào)度(續(xù)1)作業(yè)調(diào)度與進(jìn)程調(diào)度的例子(續(xù)1) 該系統(tǒng)采用多道程序設(shè)計(jì)技術(shù),對(duì)磁帶機(jī)采用靜態(tài)分配,忽略設(shè)備工作時(shí)間和系統(tǒng)進(jìn)行調(diào)度所共花的時(shí)間,請(qǐng)分別給出采用“先來先服務(wù)調(diào)度算法”和“短作業(yè)優(yōu)先算法”選中作業(yè)執(zhí)行的次序以及它們的平均周轉(zhuǎn)時(shí)間。 若允許移動(dòng)已在主存儲(chǔ)器中的作業(yè),則作業(yè)被選中的次序又是怎樣的呢?它們的平均周轉(zhuǎn)時(shí)間又如何?小結(jié): 作業(yè)調(diào)度前提:并行道數(shù)、資源滿足 進(jìn)程調(diào)度7作業(yè)調(diào)度與進(jìn)程調(diào)度(續(xù)2)8. 批處理作業(yè)的控制當(dāng)作業(yè)為執(zhí)行態(tài)時(shí),作業(yè)調(diào)度程序?yàn)槠浣⒁蛔鳂I(yè)控制進(jìn)程, 由該進(jìn)程控制作業(yè)運(yùn)行作業(yè)控制進(jìn)程:主要負(fù)責(zé)控制作業(yè)的運(yùn)行,具體解
18、釋執(zhí)行作業(yè)說明書的每一個(gè)作業(yè)步,并創(chuàng)建子進(jìn)程來完成相應(yīng)步驟一個(gè)作業(yè)步的處理:(1)建立子進(jìn)程(2)為其申請(qǐng)資源(3)訪問該作業(yè)的JCB(4)釋放占有資源(5)撤消子進(jìn)程等作業(yè)控制程序只有一個(gè) 對(duì)應(yīng)每一處于執(zhí)行狀態(tài)的作業(yè)有一作業(yè)控制進(jìn)程9. 作業(yè)退出把輸出結(jié)果送到輸出設(shè)備上(啟動(dòng)緩輸出進(jìn)程完成)回收各種資源10. SPOOLing系統(tǒng)工作原理全稱:Simultaneous Peripheral Operations On-Line含義:同時(shí)的外圍設(shè)備聯(lián)機(jī)操作(假脫機(jī)技術(shù))包括:輸入程序模塊輸出程序模塊作業(yè)調(diào)度程序作業(yè)和進(jìn)程的狀態(tài)轉(zhuǎn)換圖數(shù)據(jù)進(jìn)入狀態(tài)退出狀態(tài)后備狀態(tài)運(yùn)行狀態(tài)作業(yè)控制進(jìn)程 輸入設(shè)備數(shù)據(jù)
19、源程序輸出設(shè)備作業(yè)說明書輸入井運(yùn)行等待就緒輸出井輸入程序輸出程序作業(yè)調(diào)度進(jìn)程調(diào)度10. SPOOLing系統(tǒng)工作原理(續(xù)1)10. SPOOLing系統(tǒng)工作原理(續(xù)2)作業(yè)執(zhí)行前用慢速設(shè)備將作業(yè)預(yù)先輸入到后援存儲(chǔ)器(如磁盤、磁鼓,稱為輸入井)中,稱為預(yù)輸入作業(yè)運(yùn)行后,使用數(shù)據(jù)時(shí),從輸入井中取出作業(yè)執(zhí)行不必直接啟動(dòng)外設(shè)輸出數(shù)據(jù),只需將這些數(shù)據(jù)寫入輸出井中作業(yè)全部運(yùn)行完畢,再由外設(shè)輸出全部數(shù)據(jù)和信息,稱為緩輸出實(shí)現(xiàn)了對(duì)作業(yè)輸入、組織調(diào)度和輸出的統(tǒng)一管理使外設(shè)在CPU直接控制下,與CPU并行工作(稱為假脫機(jī))輸入裝置輸出裝置通道通道輸出裝置輸出裝置通 道 主機(jī)系統(tǒng)輸入管 輸出管理模塊 理模塊外 設(shè)輸
20、入井 輸出井 SPOOLing系統(tǒng)10. SPOOLing系統(tǒng)工作原理(續(xù)3)三、 交互式系統(tǒng)的作業(yè)管理1. 概述(1)命令接口 在操作系統(tǒng)與計(jì)算機(jī)用戶之間提供易于理解的雙向通信機(jī)制基本任務(wù):解釋命令,傳送命令以便執(zhí)行接受系統(tǒng)信息,提交給用戶(以響應(yīng)語言的形式)交互式命令的接口復(fù)雜 含功能結(jié)構(gòu),可能問題的處理,如各種約定、前端處理、命令日志、命令注解、宏命令及命令組等交互式控制靈活方便,可以隨時(shí)進(jìn)行各種處理,排除問題,方便調(diào)試;系統(tǒng)利用率低接口包括:一組聯(lián)機(jī)命令,終端處理程序,命令解釋程序1. 概述(續(xù)1)(2)終端處理程序交互式命令接口:用戶同操作系統(tǒng)的通信通過一個(gè)輸入/輸出裝置來實(shí)現(xiàn)I/O
21、裝置一般是顯示終端 輸入通過鍵盤:在有的系統(tǒng)中,可通過指示裝置(例如鼠標(biāo))輸入 系統(tǒng)輸入呈現(xiàn)在顯示屏幕上,一次顯示若干正文行 某些系統(tǒng)中,提供圖形顯示功能不管哪種I/O方式,這個(gè)終端裝置是由一個(gè)終端處理程序管理和控制1. 概述(續(xù)2)終端處理程序提供的輸入輸出方式對(duì)整個(gè)用戶命令接口有重大影響也確定了用戶與其應(yīng)用程序之間的通信方式終端處理程序必須作為用戶接口的一個(gè)組成部分來考慮 即,直接影響命令接口的一些問題須由終端處理程序解決1. 概述(續(xù)3)(3)直接影響命令接口的一些問題(a)回送顯示(Echoing) 通常,每從鍵盤打入一個(gè)字符,終端處理程序回送響應(yīng)的字符到顯示屏上 有時(shí)用戶要求其顯示一
22、個(gè)不同的字符或不顯示(例如,用戶鍵入口令時(shí)) 對(duì)于通過遠(yuǎn)程通信線路訪問的終端,可能需要抑制這種回送 回送顯示委托給遠(yuǎn)程終端來實(shí)現(xiàn)1. 概述(續(xù)4)(b)提前打入(Type ahead) 假定輸入字符在一程序準(zhǔn)備處理它們之前打入,則由“提前打入進(jìn)程”把它們保存在緩沖區(qū)中 緩沖區(qū)容量是有限,當(dāng)其存滿后,再有輸入時(shí),或者漏掉,或者將破壞緩沖區(qū)原有的內(nèi)容(c)字符變換 有些情況下,需要對(duì)打入的字符進(jìn)行代碼變換 如,把小寫字母轉(zhuǎn)換成大寫字母,或者反之(d)行緩沖 打入的字符在送到程序前,由終端接口保存,直到整個(gè)命令行打入為止 為用戶提供了校驗(yàn)、編輯,甚至取消命令的機(jī)會(huì)(3)直接影響命令接口的一些問題(續(xù)
23、1)1. 概述(續(xù)5)(e)中斷字符(Break Characters) 多數(shù)交互式命令接口可以接受一些稱為中斷字符的特殊字符,并立即采取相應(yīng)的行動(dòng) 如,在許多系統(tǒng)中,同時(shí)打入CTRLC字符鍵,立即終止當(dāng)前程序執(zhí)行,并使命令處理程序重新初始化(3)直接影響命令接口的一些問題(續(xù)2)1. 概述(續(xù)6)2. 命令解釋程序命令解釋程序有兩種處理方法:(a)由終端命令解釋程序直接處理 在沒有創(chuàng)建子進(jìn)程功能的系統(tǒng)中 終端命令通常由對(duì)應(yīng)的命令解釋程序處理 在這樣系統(tǒng)中,僅有一個(gè)進(jìn)程對(duì)應(yīng)一個(gè)終端用戶(b)由子進(jìn)程代為處理在具有創(chuàng)建子進(jìn)程功能的系統(tǒng)中,對(duì)于較為單純的命令,如列目錄,拷貝文件等,命令解釋程序本身
24、便能完成,此時(shí)由命令解釋程序直接處理對(duì)較復(fù)雜命令,如對(duì)于C源程序進(jìn)行編譯,命令解釋程序本身不能處理,此時(shí)創(chuàng)建一個(gè)子進(jìn)程,并由該子進(jìn)程運(yùn)行C編譯程序3. 命令接口的結(jié)構(gòu)命令接口由命令處理器來實(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)中,可能用專門設(shè)計(jì)的命令接口替代標(biāo)準(zhǔn)的命令接口 如,多用戶UNIX,用戶可有不同命令接口4命令語言命令語言規(guī)定由OS執(zhí)行的一系列操作在一般的命令語言中,用戶通過打入稱為命令行的一行
25、指令來規(guī)定每一個(gè)動(dòng)作每一命令行以命令開始,它標(biāo)識(shí)所要執(zhí)行的操作大多數(shù)命令是用運(yùn)行一個(gè)程序來執(zhí)行所請(qǐng)求的操作 多數(shù)命令行中要給出一些參數(shù), 每一命令語句實(shí)際上是帶有參數(shù)的一個(gè)過程調(diào)用一個(gè)命令語言通常提供下列幾組命令:(1)系統(tǒng)訪問命令登錄命令,如,login等撤離命令,如,logout等(2)文件管理命令(3)編輯、編譯和執(zhí)行命令(4)詢問命令(5)操作員專用命令4. 命令語言(續(xù)1)4. 命令語言(續(xù)2) 命令行:規(guī)定由操作系統(tǒng)執(zhí)行的一系列操作命令行:一行可有一個(gè)或多個(gè)命令,每次一行,包含一個(gè)或多個(gè)命令。shell給出提示符時(shí)可輸入,以回車鍵提交。如:“l(fā)s -a -l”列出當(dāng)前目錄文件列表;
26、gunzip mp1.tar.gz; tar -xvf mp1.tar; rm -r -f mp1.tar為解壓縮后再展開。命令格式:一個(gè)命令可有命令參數(shù),格式包括選項(xiàng)/開關(guān) (option/switch)或參數(shù)(argument)。如UNIX系統(tǒng): cp -r doc /tmpargv0, argv1, .(含子目錄的文件復(fù)制:/tmp為目標(biāo)地址)4. 命令語言(續(xù)3)命令分類:內(nèi)部命令和外部命令內(nèi)部命令:直接由shell本身完成,功能簡(jiǎn)單、使用頻繁;如:DOS的copy命令。外部命令:運(yùn)行相應(yīng)的可執(zhí)行文件,在使用時(shí)加載。如:DOS的xcopy命令命令簡(jiǎn)化:利用參數(shù)替換可簡(jiǎn)化命令輸入,通配符
27、(?, *)用于匹配一組文件名如:UNIX的cp命令:當(dāng)前目錄上有兩個(gè)1.tar和2.tar時(shí),cp *.tar /tmp等同于cp 1.tar /tmp; cp 2.tar /tmp命令的附加功能 命令的附加功能用以擴(kuò)大命令的功能性、選擇性、適應(yīng)性。包括:(1)參數(shù)與變量 位置變量 關(guān)鍵字變量(2)命令通配符(3)重定向(4)管道與過濾器4. 命令語言(續(xù)4)批處理命令:針對(duì)脫機(jī)用戶操作和大量順序操作功能而設(shè)計(jì) 批處理命令可以是專門的命令,也可是系統(tǒng)的基本命令;還有有關(guān)的語法結(jié)構(gòu),循環(huán)、分支、轉(zhuǎn)移、判別等,構(gòu)成一套特殊的命令語言5命令文件5命令文件(續(xù))提前寫出命令并存入文件,稱之為命令文件
28、命令文件提供了一種把一系列命令組裝成文件的方法,然后用文件名作為命令名執(zhí)行另外一系列命令特點(diǎn):(1)接受參數(shù)、變量,宏變量替換(2)允許嵌套形式調(diào)用其他命令文件(3)允許參數(shù)來自終端的命令文件本身(4)允許執(zhí)行顯示到終端、存入文件或送入打印機(jī)(5)允許命令加入注釋(6)出錯(cuò)時(shí)允許用戶干預(yù)(7)可把輸入傳給程序,可有循環(huán)、分支、轉(zhuǎn)移等時(shí)間片輪轉(zhuǎn):在OS控制下,采用“時(shí)間片輪轉(zhuǎn)”方法使每個(gè)終端作業(yè)都能在一個(gè)“時(shí)間片”內(nèi)去占用處理器當(dāng)時(shí)間片用完后,讓出處理器給另一個(gè)終端作業(yè)這樣,保證從終端用戶輸入命令到計(jì)算機(jī)系統(tǒng)給出應(yīng)答 只是幾秒鐘的時(shí)間,使端用戶感到滿意6. 交互式系統(tǒng)實(shí)例分時(shí)系統(tǒng)分時(shí)系統(tǒng)中的用戶
29、控制作業(yè)的執(zhí)行大致有四個(gè)階段:終端的連接用戶登錄控制作業(yè)執(zhí)行用戶退出6. 交互式系統(tǒng)實(shí)例分時(shí)系統(tǒng)(續(xù)1)(1) 終端的連接必須使終端設(shè)備與計(jì)算機(jī)系統(tǒng)在線路上接通近程終端是直接與計(jì)算機(jī)系統(tǒng)連接的,當(dāng)終端設(shè)備加電后,終端就與計(jì)算機(jī)系統(tǒng)在線路上接通了遠(yuǎn)程終端通過租用專線或交換線接到計(jì)算機(jī)系統(tǒng),在終端加電后用戶還需通過電話撥號(hào)進(jìn)行呼叫,直到接通當(dāng)終端與計(jì)算機(jī)系統(tǒng)在線路上接通后,計(jì)算機(jī)系統(tǒng)會(huì)在終端上顯示信息告訴用戶6. 交互式系統(tǒng)實(shí)例分時(shí)系統(tǒng)(續(xù)2)(2) 用戶登錄用戶必須向系統(tǒng)登錄用戶首先輸入“登錄”命令(LOGON)命令 系統(tǒng)會(huì)向詢問用戶名、作業(yè)名、口令和資源需求等 經(jīng)過識(shí)別用戶、核對(duì)口令,系統(tǒng)在終
30、端上顯示“已登錄”和進(jìn)入系統(tǒng)的時(shí)間等信息若口令不對(duì)或資源暫時(shí)不能滿足時(shí),則系統(tǒng)在終端上顯示“登錄不成功”并給出登錄失敗的原因用戶的登錄過程可看作是對(duì)終端作業(yè)的作業(yè)調(diào)度6. 交互式系統(tǒng)實(shí)例分時(shí)系統(tǒng)(續(xù)3)(3) 控制作業(yè)執(zhí)行登錄成功的終端用戶可從終端上輸入作業(yè)的程序和數(shù)據(jù)使用系統(tǒng)提供的命令語言或會(huì)話語句控制作業(yè)執(zhí)行每輸入一命令或一會(huì)話語句后,由系統(tǒng)解釋執(zhí)行且在終端上顯示執(zhí)行成功或問題由用戶決定下一步命令或會(huì)話直到作業(yè)完成6. 交互式系統(tǒng)實(shí)例分時(shí)系統(tǒng)(續(xù)4)(4) 用戶退出用戶輸入“退出”命令(LOGOFF 命令)請(qǐng)求退出系統(tǒng)系統(tǒng)接收命令后就收回該用戶所占的資源讓其退出同時(shí)在終端上顯示“退出時(shí)間”
31、或“使用系統(tǒng)時(shí)間6. 交互式系統(tǒng)實(shí)例分時(shí)系統(tǒng)(續(xù)5)7. 圖形用戶接口GUI在命令行方式下,用戶與操作系統(tǒng)的交互要求用戶記憶命令格式。在圖形用戶接口方式下,用戶可利用鼠標(biāo)對(duì)屏幕上的圖標(biāo)進(jìn)行操作,完成與操作系統(tǒng)的交互,從而減少記憶內(nèi)容,方便用戶使用。它的技術(shù)基礎(chǔ)是高分辯顯示器和鼠標(biāo)(1)窗口系統(tǒng)(window system)的特點(diǎn)(2)窗口系統(tǒng)的圖形元素及其狀態(tài)(3)窗口管理器(window manager)(4)例子7. 圖形用戶接口GUI(續(xù)1)(1)窗口系統(tǒng)(window system)的特點(diǎn)利用圖形元素表示功能:將各種圖形元素顯示在屏幕上,用戶可以通過操縱圖形元素(如菜單、圖標(biāo))來執(zhí)行相
32、應(yīng)的功能同屏多窗口與并發(fā)進(jìn)程相對(duì)應(yīng):屏幕上同時(shí)顯示多個(gè)窗口;一個(gè)進(jìn)程可以對(duì)應(yīng)一個(gè)或多個(gè)窗口;窗口動(dòng)態(tài)創(chuàng)建、改變、撤銷輸入方式:鼠標(biāo)指針點(diǎn)擊(或其他定位設(shè)備)和鍵盤輸入;通常是即時(shí)交互一致的圖形元素風(fēng)格可方便用戶學(xué)習(xí)和使用:如按鈕、滾動(dòng)條優(yōu)點(diǎn):操作直觀(不必記命令行參數(shù)),可與多個(gè)進(jìn)程交互,便于進(jìn)行多媒體處理簡(jiǎn)而言之:交互的并發(fā)性好、傳遞信息量大7. 圖形用戶接口GUI(續(xù)2)(2)窗口系統(tǒng)的圖形元素及其狀態(tài)窗口(window):屏幕上的矩形區(qū)域(可以通過掩模mask來顯示任意形狀)包括:標(biāo)題條(title bar)、邊框(border)、窗口角(corner)、系統(tǒng)菜單框(system men
33、u box)、最大化/最小化按鈕(maximize/minimize)、滾動(dòng)條(scroll bar)等狀態(tài):當(dāng)前/非當(dāng)前窗口(active/inactive) 接受輸入,最大化/最小化/恢復(fù)原大小(restore),窗口的前后遮蓋Z軸,焦點(diǎn)(focus)接受鍵盤輸入(而非鼠標(biāo))桌面(desktop)和墻紙(wallpaper)圖標(biāo)(icon):一個(gè)小圖象(如32x32或64x64 pixel),通常供鼠標(biāo)指針點(diǎn)擊。通過不同的圖標(biāo)可以標(biāo)識(shí)不同的對(duì)象。如:可執(zhí)行程序、最小化的窗口、文件動(dòng)畫圖標(biāo)7. 圖形用戶接口GUI(續(xù)3)鼠標(biāo)指針(mouse pointer):鼠標(biāo)指針通常對(duì)應(yīng)屏幕上的光標(biāo)(c
34、ursor)光標(biāo)在屏幕上只有一個(gè),在不同屏幕位置(上下文)可以呈現(xiàn)不同形狀,可以獨(dú)立于鼠標(biāo)來直接操縱光標(biāo)鼠標(biāo)點(diǎn)擊:左鍵/右鍵/中鍵(left/right/middle button),單擊(click)/雙擊(double-click),拖曳(drag)/拖放(drag-and-drop)按鈕(button):鼠標(biāo)點(diǎn)擊或按回車鍵/空格鍵時(shí)執(zhí)行相應(yīng)功能,如 menu button;提供單項(xiàng)或多項(xiàng)選擇,如radiobutton和checkbutton;當(dāng)前按鈕及其切換菜單(menu):臨時(shí)窗口,菜單條(menu bar)、彈出式菜單、下拉式菜單(上下文相關(guān)菜單)對(duì)話框(dialog box):臨時(shí)
35、窗口,顯示提示信息(message)或填寫用戶設(shè)置7. 圖形用戶接口GUI(續(xù)4)(3)窗口管理器(window manager):形成統(tǒng)一的使用風(fēng)格處理窗口的普遍特性,如:窗口的大小、位置(窗口的標(biāo)題條、邊框、控制菜單框)窗口中由應(yīng)用程序管理的部分稱為客戶區(qū)(client area)協(xié)調(diào)各窗口間的相互關(guān)系,如:窗口之間的前后遮蓋關(guān)系,桌面7. 圖形用戶接口GUI(續(xù)5)(4)例子: MS Windows特點(diǎn)MS Windows結(jié)構(gòu)基本概念消息處理:兩種方法7. 圖形用戶接口GUI(續(xù)6)特點(diǎn)是OS 的一部分,提供默認(rèn)的窗口風(fēng)格(如菜單、對(duì)話框)除Windows2000外,窗口應(yīng)用程序只能在控
36、制臺(tái)(本地)執(zhí)行7. 圖形用戶接口GUI(續(xù)7)MS Windows結(jié)構(gòu):可分成三個(gè)部分OS系統(tǒng)服務(wù)(KERNEL):內(nèi)存管理、程序加載(包括DLL)、任務(wù)調(diào)度、文件管理用戶接口(USER):窗口和消息管理,以及菜單、控制、對(duì)話框、定時(shí)器等圖形設(shè)備接口(GDI, Graphic Device Interface):管理顯示器,為USER與應(yīng)用程序提供與硬件設(shè)備獨(dú)立的接口7. 圖形用戶接口GUI(續(xù)8)基本概念消息(message):消息作為窗口的輸入,如用戶操作、其他窗口或系統(tǒng)發(fā)出的請(qǐng)求或通知窗口過程(window procedure):消息由各窗口自己的窗口過程來作處理窗口過程的調(diào)用參數(shù):接
37、收窗口句柄(可以在多個(gè)窗口共用一個(gè)窗口過程時(shí)加以區(qū)分)、消息ID(消息的類型)、消息參數(shù)(16+32位或32+32位值,整數(shù)或指針)還可以取得消息的發(fā)生時(shí)間和屏幕坐標(biāo)7. 圖形用戶接口GUI(續(xù)9)消息處理:兩種方法排隊(duì)消息:放到進(jìn)程(線程)的FIFO消息隊(duì)列里。如應(yīng)用程序發(fā)送的消息,系統(tǒng)的鼠標(biāo)、鍵盤、定時(shí)器、窗口繪制和退出等。排隊(duì)消息所用的API:發(fā)送消息到消息隊(duì)列PostMessage;從消息隊(duì)列讀取消息GetMessage, PeekMessage;分發(fā)一個(gè)消息到相應(yīng)窗口DispatchMessage;非排隊(duì)消息:直接發(fā)送到指定窗口的窗口過程。非排隊(duì)消息所用的API:SendMessag
38、e,直到接收方窗口過程處理完才返回接收方正處于GetMessage,而接受并處理SendMessage送來的消息之后,仍處于GetMessage。為防止死鎖,一般要:if (InSendMessage() ReplyMessage(TRUE);7. 圖形用戶接口GUI(續(xù)10)消息循環(huán):不斷移出消息,并加以處理。用戶不作處理的消息,應(yīng)傳給默認(rèn)窗口過程加以處理:DefWindowProc()WM_PAINT消息:通知窗口客戶區(qū)中的某部分(region)已被改變,應(yīng)用程序應(yīng)該對(duì)其重新繪制。總是被排在線程消息隊(duì)列的最后,并且多個(gè)WM_PAINT消息中的region會(huì)自動(dòng)被合并為一個(gè)7. 圖形用戶接口
39、GUI(續(xù)11)四. 系統(tǒng)調(diào)用1.系統(tǒng)調(diào)用簡(jiǎn)介系統(tǒng)調(diào)用,是用戶在程序中調(diào)用操作系統(tǒng)所提供的一些子功能這是特殊的過程調(diào)用,由特殊的機(jī)器指令實(shí)現(xiàn)這個(gè)指令還將系統(tǒng)轉(zhuǎn)入管態(tài)系統(tǒng)調(diào)用程序是一個(gè)低級(jí)過程,只能由匯編語言直接訪問系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口利用系統(tǒng)調(diào)用,動(dòng)態(tài)請(qǐng)求和釋放系統(tǒng)資源完成與硬件相關(guān)的工作以及控制程序的執(zhí)行等 每個(gè)操作系統(tǒng)都提供幾百種系統(tǒng)調(diào)用,包括:外存文件與目錄的讀寫,各種I/O設(shè)備的使用,在程序中啟動(dòng)另一個(gè)程序,查詢和統(tǒng)計(jì)系統(tǒng)資源使用情況等等實(shí)際上系統(tǒng)調(diào)用語句本身是硬件提供的(機(jī)器指令),但其所調(diào)用的功能是操作系統(tǒng)提供的每種機(jī)器的機(jī)器指令集中都有一條系統(tǒng)調(diào)用指令(訪管
40、指令)1.系統(tǒng)調(diào)用簡(jiǎn)介(續(xù)1)匯編程序例子:打印5個(gè)字符 方法1:調(diào)用DOS功能 MOVE A, PARA1 MOVE B, PARA2 INT 21H系統(tǒng)調(diào)用的例子-11.系統(tǒng)調(diào)用簡(jiǎn)介(續(xù)2) 方法2:用OUT語句直接打印 L1:MOVE A,I IN ADDR1,B OR B,BS JNC L1 OUT ADDR2,A RET系統(tǒng)調(diào)用的例子-21.系統(tǒng)調(diào)用簡(jiǎn)介(續(xù)3) I/O設(shè)備的硬件接口一般由四種寄存器(地址,數(shù)據(jù),狀態(tài),控制)或其子集組成任一程序中若要使用I/O設(shè)備來輸出數(shù)據(jù)或接受輸入必須通過對(duì)這四種寄存器讀寫的I/O機(jī)器指令進(jìn)行1.系統(tǒng)調(diào)用簡(jiǎn)介(續(xù)4) 匯編程序例子2:讀寫硬盤文件內(nèi)
41、容 MOVE DX,OFFSETBUFF MOVE CX,BYTE MOVE BX,HANDLE MOVE AH,3FH INT 21H系統(tǒng)調(diào)用的例子-31.系統(tǒng)調(diào)用簡(jiǎn)介(續(xù)5)磁盤讀寫的例子:更復(fù)雜原因: A、磁盤的控制和狀態(tài)接口寄存器比打印機(jī)的復(fù)雜的多,而且還有地址接口寄存器 B、通常一個(gè)外存存儲(chǔ)介質(zhì)上可以存放多個(gè)文件,隨著文件的建立、刪除和拷貝在不停地變化,每個(gè)文件的長(zhǎng)度隨著其內(nèi)容的變化而不停地變化系統(tǒng)調(diào)用的例子-41.系統(tǒng)調(diào)用簡(jiǎn)介(續(xù)6) 高級(jí)語言例子:打印5個(gè)字符 char buff4=“abcde”; for(i=4;i=0;i-) print(buffi);高級(jí)語言例子: 讀硬盤
42、文件f1的第10到20個(gè)字節(jié) seek(fd,10,0); read(fd,buff,11);系統(tǒng)調(diào)用的例子-51.系統(tǒng)調(diào)用簡(jiǎn)介(續(xù)7).A= A+1printf(. . .)B=B+A(1)源程序段1.系統(tǒng)調(diào)用簡(jiǎn)介(續(xù)8)(2)printf目標(biāo)代碼(3)程序段編譯產(chǎn)生的可執(zhí)行代碼(4)操作系統(tǒng)內(nèi)部代碼INT.INTA=A+1B=B+A.INOUT.嵌入后該系統(tǒng)調(diào)用的操作系統(tǒng)內(nèi)部實(shí)現(xiàn)代碼1.系統(tǒng)調(diào)用簡(jiǎn)介(續(xù)9)用戶程序函數(shù)操作系統(tǒng)凡是與硬件相關(guān)、與應(yīng)用無關(guān)的工作,都通過操作系統(tǒng)程序來完成1.系統(tǒng)調(diào)用簡(jiǎn)介(續(xù)10)2. 系統(tǒng)調(diào)用的處理過程為了保證OS不被用戶程序破壞 不允許用戶程序訪問OS的系統(tǒng)
43、程序和數(shù)據(jù) 那么,怎樣得到系統(tǒng)服務(wù)的呢?需要有一個(gè)類似于硬件中斷處理的處理機(jī)構(gòu)當(dāng)用戶使用操作系統(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ā)來的信號(hào)后,啟動(dòng)相關(guān)的處理程序去完成該系統(tǒng)調(diào)用所要求的功能2. 系統(tǒng)調(diào)用的處理過程(續(xù)1)在系統(tǒng)中為控制系統(tǒng)調(diào)用服務(wù)的機(jī)構(gòu)稱為陷入(TRAP)或異常處理機(jī)構(gòu)相對(duì)應(yīng),把由于系統(tǒng)調(diào)用引起處理機(jī)中斷的指令稱為陷入或異常指令(或稱訪管指令)在操作系統(tǒng)中,每個(gè)系統(tǒng)調(diào)用都對(duì)應(yīng)一個(gè)事先給定的功能號(hào),例如0、1、2、3等在陷入指令中必須包括對(duì)應(yīng)系統(tǒng)調(diào)用的功能號(hào)而且,在有些陷入指令中,還帶有傳給陷入處
44、理機(jī)構(gòu)和內(nèi)部處理程序的有關(guān)參數(shù)必須為實(shí)現(xiàn)系統(tǒng)調(diào)用功能的子程序編造入口地址表每個(gè)入口地址與相應(yīng)的系統(tǒng)程序名對(duì)應(yīng)陷入處理程序把陷入指令包含功能號(hào)與入口地址表有關(guān)項(xiàng)對(duì)應(yīng), 系統(tǒng)調(diào)用功能號(hào)驅(qū)動(dòng)有關(guān)子程序執(zhí)行在系統(tǒng)調(diào)用處理結(jié)束之后,用戶程序需利用系統(tǒng)調(diào)用返回結(jié)果繼續(xù)執(zhí)行保護(hù)現(xiàn)場(chǎng):在進(jìn)入系統(tǒng)調(diào)用處理之前,陷入處理機(jī)構(gòu)還需保存處理機(jī)現(xiàn)場(chǎng)在系統(tǒng)調(diào)用處理結(jié)束之后,要恢復(fù)處理機(jī)現(xiàn)場(chǎng),現(xiàn)場(chǎng)被保護(hù)在特定的內(nèi)存區(qū)或寄存器中2. 系統(tǒng)調(diào)用的處理過程(續(xù)2) system call 入口地址表 (1)保護(hù)處理現(xiàn)場(chǎng)(2)取系統(tǒng)調(diào)用功能號(hào)并尋找子程序入口(3)返回A0A1Ai AnA0 A1AiAnSub0Sub1SubiSu
45、bn 用戶程序 陷入處理機(jī)構(gòu) 系統(tǒng)子程序系統(tǒng)調(diào)用的處理過程系統(tǒng)調(diào)用處理過程read (fd, buffer, nbytes)參數(shù)傳遞過程問題怎樣實(shí)現(xiàn)用戶程序和系統(tǒng)程序間的參數(shù)傳遞?常用的實(shí)現(xiàn)方法:由陷入指令自帶參數(shù):陷入指令的長(zhǎng)度有限的,且還要攜帶系統(tǒng)調(diào)用功能號(hào),只能自帶有限的參數(shù)通過有關(guān)通用寄存器來傳遞參數(shù):這些寄存器應(yīng)是系統(tǒng)程序和用戶程序都能訪問,由于寄存器長(zhǎng)度較短,從法傳遞較多的參數(shù)大多在內(nèi)存中開辟專用堆棧區(qū)來傳遞參數(shù)3. 系統(tǒng)調(diào)用的分類將系統(tǒng)的功能分為兩部分:系統(tǒng)自身所需要的作為服務(wù)提供給用戶的OS的系統(tǒng)調(diào)用:進(jìn)程控制類系統(tǒng)調(diào)用文件操作類系統(tǒng)調(diào)用進(jìn)程通信類系統(tǒng)調(diào)用設(shè)備管理類系統(tǒng)調(diào)用信息
46、維護(hù)類系統(tǒng)調(diào)用進(jìn)程管理文件管理目錄管理其他 系統(tǒng)調(diào)用方式(INT)與程序中一般的調(diào)用方式的相同點(diǎn):改變指令流程重復(fù)執(zhí)行和公用改變指令流程后需要返回原處4.系統(tǒng)調(diào)用與一般過程調(diào)用的比較系統(tǒng)調(diào)用方式(INT)與程序中一般的調(diào)用方式的不同點(diǎn):運(yùn)行在不同的系統(tǒng)狀態(tài) 一般過程調(diào)用,其調(diào)用程序和被調(diào)用程序都運(yùn)行在相同狀態(tài):核心態(tài)或用戶態(tài)系統(tǒng)調(diào)用:調(diào)用程序在用戶態(tài),被調(diào)用程序在系統(tǒng)態(tài)狀態(tài)的轉(zhuǎn)換一般的過程調(diào)用不涉及系統(tǒng)狀態(tài)的轉(zhuǎn)換,可直接由調(diào)用過程轉(zhuǎn)向被調(diào)用過程運(yùn)行系統(tǒng)調(diào)用時(shí),調(diào)用和被調(diào)用過程在不同系統(tǒng)狀態(tài),不允許由調(diào)用過程直接轉(zhuǎn)向被調(diào)用過程通過軟中斷機(jī)制先由用戶態(tài)轉(zhuǎn)換為核心態(tài)在OS核心分析后,轉(zhuǎn)向相應(yīng)的系統(tǒng)調(diào)
47、用處理子程序4.系統(tǒng)調(diào)用與一般過程調(diào)用的比較(續(xù)1)返回問題一般過程調(diào)用在被調(diào)用過程執(zhí)行完后,回調(diào)用過程搶占式調(diào)度的系統(tǒng)中,被調(diào)用過程執(zhí)行完后,系統(tǒng)將對(duì)所有要求運(yùn)行的進(jìn)程進(jìn)行優(yōu)先級(jí)分析。如果調(diào)用進(jìn)程仍有最高優(yōu)先級(jí),則返回到調(diào)用進(jìn)程執(zhí)行 否則,引起重新調(diào)度,讓優(yōu)先級(jí)最高的進(jìn)程優(yōu)先執(zhí)行。此時(shí),系統(tǒng)把調(diào)用進(jìn)程放入就緒隊(duì)列嵌套或遞歸調(diào)用對(duì)系統(tǒng)調(diào)用,一般不允許在同一個(gè)進(jìn)程中發(fā)生嵌套或遞歸(不同進(jìn)程可以重入同一個(gè)系統(tǒng)調(diào)用)4.系統(tǒng)調(diào)用與一般過程調(diào)用的比較(續(xù)3) 進(jìn)入方式不同CALL指令的內(nèi)部實(shí)現(xiàn)過程返回地址壓棧(即該CALL指令所在的地址)將該CALL指令中所含的地址(即被調(diào)用代碼所在地址)送入PCRE
48、T指令的內(nèi)部實(shí)現(xiàn)過程從棧頂彈出返回地址送入程序計(jì)數(shù)器PC利用int或trap指令進(jìn)行系統(tǒng)調(diào)用;利用call 或 jmp 指令進(jìn)入普通的過程調(diào)用4.系統(tǒng)調(diào)用與一般過程調(diào)用的比較(續(xù)4)系統(tǒng)調(diào)用是動(dòng)態(tài)調(diào)用,而CALL調(diào)用方式是靜態(tài)調(diào)用a. 同一程序中不包含被調(diào)用代碼 系統(tǒng)調(diào)用是動(dòng)態(tài)調(diào)用,程序中不包含被調(diào)用代碼,好處:(1)用戶程序長(zhǎng)度縮短(2)當(dāng)OS升級(jí)時(shí),調(diào)用方不必改變4.系統(tǒng)調(diào)用與一般過程調(diào)用的比較(續(xù)5) b. 系統(tǒng)調(diào)用方式的調(diào)用地址和返回地址都是不固定的 系統(tǒng)調(diào)用指令中不包含調(diào)用地址, 只包含功能號(hào) 是按功能號(hào)(在可執(zhí)行目標(biāo)程序中)調(diào)用的在操作系統(tǒng)內(nèi)部 由系統(tǒng)調(diào)用處理程序通過系統(tǒng)調(diào)用分支表
49、 (OS的一個(gè)數(shù)據(jù)結(jié)構(gòu)) 將功能號(hào)轉(zhuǎn)換為相應(yīng)的指令地址4.系統(tǒng)調(diào)用與一般過程調(diào)用的比較(續(xù)6).功能號(hào) 地址顯 示打 印讀文件.OS的系統(tǒng)調(diào)用分支表OS代碼顯示打印讀文件OS用戶程序INT.4.系統(tǒng)調(diào)用與一般過程調(diào)用的比較(續(xù)7)系統(tǒng)調(diào)用返回指令中不包括返回地址,通過棧保存和彈出返回地址系統(tǒng)調(diào)用返回地址不固定,因?yàn)橛脩舫绦蛟诓煌牡胤秸{(diào)用OS CALL調(diào)用方式是靜態(tài)調(diào)用,被調(diào)用代碼與調(diào)用代碼在同一程序之內(nèi)。CALL調(diào)用方式,其調(diào)用地址是固定的,包含在調(diào)用語句中;返回地址是不固定的(同一子程序可能被不同處多次調(diào)用),在程序執(zhí)行過程中通過棧的實(shí)現(xiàn)來保存和彈出返回地址4.系統(tǒng)調(diào)用與一般過程調(diào)用的比較
50、(續(xù)8)c. 安全接口INT指令和IRET指令的執(zhí)行過程中 要處理程序狀態(tài)字PSW INT指令中要保存用戶程序的老PSW 并根據(jù)中斷向量表設(shè)置新PSW IRET指令中要在返回用戶程序前恢復(fù)用戶程序的老PSW4.系統(tǒng)調(diào)用與一般過程調(diào)用的比較(續(xù)9)安全接口(續(xù)1)目的:目態(tài)、管態(tài)的管理系統(tǒng)態(tài)與用戶態(tài)的轉(zhuǎn)換 由系統(tǒng)在INT指令與IRET指令內(nèi)部自動(dòng)完成 沒有用一條單獨(dú)的專門指令好處:有效地防止在系統(tǒng)態(tài)下執(zhí)行用戶程序4.系統(tǒng)調(diào)用與一般過程調(diào)用的比較(續(xù)10)5. Win32 應(yīng)用程序接口在Windows中,定義了一系列程序(應(yīng)用程序接口Win32 API) ,提供OS服務(wù)這個(gè)接口(部分)支持Win95 以后的Windows版本W(wǎng)in32 API
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高一迎期末系列專欄001期-名篇名句默寫(教師版)
- 房地產(chǎn)公司個(gè)人年終工作總結(jié) 15篇
- 感恩節(jié)感恩父母演講稿范文15篇
- 總經(jīng)理年會(huì)致辭(集合15篇)
- 養(yǎng)老保險(xiǎn)知識(shí)
- 數(shù)據(jù)中心運(yùn)維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 市場(chǎng)監(jiān)管案件審核培訓(xùn)
- 初級(jí)會(huì)計(jì)實(shí)務(wù)-初級(jí)會(huì)計(jì)《初級(jí)會(huì)計(jì)實(shí)務(wù)》模擬試卷479
- 智研咨詢-2024年中國消化類藥物行業(yè)市場(chǎng)全景調(diào)查、投資策略研究報(bào)告
- 二零二五年度個(gè)人與物流企業(yè)貨物運(yùn)輸信息保密及合作協(xié)議2篇
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測(cè)試題(附解析)
- 江蘇省揚(yáng)州市蔣王小學(xué)2023~2024年五年級(jí)上學(xué)期英語期末試卷(含答案無聽力原文無音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長(zhǎng)郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 臨床藥師進(jìn)修匯報(bào)課件
- 北京市首都師大附中2025屆數(shù)學(xué)高三第一學(xué)期期末達(dá)標(biāo)測(cè)試試題含解析
- 軍事理論(2024年版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 《無人機(jī)法律法規(guī)知識(shí)》課件-第1章 民用航空法概述
- 政治丨廣東省2025屆高中畢業(yè)班8月第一次調(diào)研考試廣東一調(diào)政治試卷及答案
- 2020-2024年安徽省初中學(xué)業(yè)水平考試中考物理試卷(5年真題+答案解析)
評(píng)論
0/150
提交評(píng)論