計算機(jī)操作系統(tǒng)知識點總結(jié)一_第1頁
計算機(jī)操作系統(tǒng)知識點總結(jié)一_第2頁
計算機(jī)操作系統(tǒng)知識點總結(jié)一_第3頁
計算機(jī)操作系統(tǒng)知識點總結(jié)一_第4頁
計算機(jī)操作系統(tǒng)知識點總結(jié)一_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章1.操作系統(tǒng)的概念:通常把操作系統(tǒng)定義為用以控制和管理計算機(jī)系統(tǒng)資源方便用戶使用的程序和數(shù)據(jù)結(jié)構(gòu)的集合。2.操作系統(tǒng)的基本類型:批處理操作系統(tǒng)、分時操作系統(tǒng)、實時操作系統(tǒng)、個人計算機(jī)操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、分布式操作系統(tǒng)。批處理操作系統(tǒng)特點:用戶脫機(jī)使用計算機(jī)成批處理多道程序運行優(yōu)點:由于系統(tǒng)資源為多個作業(yè)所共享,其工作方式是作業(yè)之間自動調(diào)度執(zhí)行。并在運行過程中用戶不干預(yù)自己的作業(yè),從而大大提高了系統(tǒng)資源的利用率和作業(yè)吞吐量。缺點:無交互性,用戶一旦提交作業(yè)就失去了對其運行的控制能力;而且是批處理的,作業(yè)周轉(zhuǎn)時間長,用戶使用不方便。批處理系統(tǒng)中作業(yè)處理及狀態(tài)分時操作系統(tǒng)(Time Sha

2、ring OS)分時操作系統(tǒng)是一個聯(lián)機(jī)的多用戶交互式的操作系統(tǒng),如UNIX是多用戶分時操作系統(tǒng)。分時計算機(jī)系統(tǒng):由于中斷技術(shù)的使用,使得一臺計算機(jī)能連接多個用戶終端,用戶可通過各自的終端使用和控制計算機(jī),我們把一臺計算機(jī)連接多個終端的計算機(jī)系統(tǒng)稱為分時計算機(jī)系統(tǒng),或稱分時系統(tǒng)。分時技術(shù):把處理機(jī)的響應(yīng)時間分成若于個大小相等(或不相等)的時間單位,稱為時間片(如100毫秒),每個終端用戶獲得CPU,就等于獲得一個時間片,該用戶程序開始運行,當(dāng)時間片到(用完),用戶程序暫停運行,等待下一次運行。特點:人機(jī)交互性好:在調(diào)試和運行程序時由用戶自己操作。共享主機(jī):多個用戶同時使用。用戶獨立性:對每個用戶

3、而言好象獨占主機(jī)。實時操作系統(tǒng)(real-time OS)實時操作系統(tǒng)是一種聯(lián)機(jī)的操作系統(tǒng),對外部的請求,實時操作系統(tǒng)能夠在規(guī)定的時間內(nèi)處理完畢。特點:有限等待時間有限響應(yīng)時間用戶控制可靠性高系統(tǒng)出錯處理能力強(qiáng)設(shè)計實時操作系統(tǒng)要考慮的一些因素:(1)實時時鐘管理(2)連續(xù)的人機(jī)對話(3)過載 (4) 高度可靠性和安全性需要采取冗余措施。通用操作系統(tǒng)同時兼有多道批處理、分時、實時處理的功能,或其中兩種以上的功能。個人計算機(jī)上的操作系統(tǒng)個人計算機(jī)上的操作系統(tǒng)是聯(lián)機(jī)的交互式單用戶操作系統(tǒng),目前在個人計算機(jī)上使用的操作系統(tǒng)以windows系列和linux系統(tǒng)為主。網(wǎng)絡(luò)操作系統(tǒng)特征:(1)計算機(jī)網(wǎng)絡(luò)是一

4、個互連的計算機(jī)系統(tǒng)群體。這些計算機(jī)在物理上是分散的。(2)這些計算機(jī)是自治的,每臺計算機(jī)有自己的操作系統(tǒng),各自獨立工作,它們在網(wǎng)絡(luò)協(xié)議控制下協(xié)同工作。(3)系統(tǒng)互連要通過通信設(shè)施(硬件、軟件)來實現(xiàn)。(4)系統(tǒng)通過通信設(shè)施執(zhí)行信息交換、資源共享、互操作和協(xié)作處理。分布式系統(tǒng)(Distributed System)特征:(1)功能的分布(2)堅強(qiáng)性(3)高可靠性3操作系統(tǒng)的功能處理機(jī)管理、存儲管理(內(nèi)存分配、存儲保護(hù)、內(nèi)存擴(kuò)充)、設(shè)備管理(通道、控制器、輸入輸出設(shè)備的分配與管理,設(shè)備獨立性)、信息管理(文件系統(tǒng)管理)、用戶接口(程序一級的接口、作業(yè)一級的接口)。4.通道和中斷技術(shù)通道:用于控制I

5、/O設(shè)備與內(nèi)存間的數(shù)據(jù)傳輸。啟動后可獨立于CPU運行,實現(xiàn)CPU與I/O的并行。¡ 通道有專用的I/O處理器,可與CPU并行工作¡ 可實現(xiàn) I/O聯(lián)機(jī)處理中斷是指CPU在收到外部中斷信號后,停止原來工作,轉(zhuǎn)去處理該中斷事件,完畢后回到原來斷點繼續(xù)工作。¡ 中斷處理過程:中斷請求,中斷響應(yīng),中斷點(暫停當(dāng)前任務(wù)并保存現(xiàn)場),中斷處理例程,中斷返回(恢復(fù)中斷點的現(xiàn)場并繼續(xù)原有任務(wù)監(jiān)督程序發(fā)展為執(zhí)行系統(tǒng)(executive system),常駐內(nèi)存5.多道批處理系統(tǒng)特點¡ 多道:內(nèi)存中同時存放幾個作業(yè);¡ 宏觀上并行運行:都處于運行狀態(tài),但都未運行完

6、;¡ 微觀上串行運行:各作業(yè)交替使用CPU;優(yōu)點:¡ 資源利用率高:CPU和內(nèi)存利用率較高;¡ 作業(yè)吞吐量大:單位時間內(nèi)完成的工作總量大;缺點:¡ 用戶交互性差:整個作業(yè)完成后或中間出錯時,才與用戶交互,不利于調(diào)試和修改;¡ 作業(yè)平均周轉(zhuǎn)時間長:短作業(yè)的周轉(zhuǎn)時間顯著增長;多道程序系統(tǒng)中,要解決的問題:同步互斥、內(nèi)存不夠、使用效率、內(nèi)存保護(hù)6.計算機(jī)硬件:構(gòu)成計算機(jī)的基本硬件元素:處理器、存儲器、輸入輸出控制與總線、外部設(shè)備。與操作系統(tǒng)相關(guān)的幾種主要的寄存器數(shù)據(jù)寄存器n 地址寄存器n 條件碼寄存器n 程序計數(shù)器n 指令計數(shù)器n 程序狀態(tài)字PSWn

7、 中斷現(xiàn)場保護(hù)寄存器n 過程調(diào)用用堆棧存儲器的訪問速度指令的執(zhí)行和中斷操作系統(tǒng)的啟動啟動電源產(chǎn)生中斷信號觸發(fā)CPU中的一段指令發(fā)現(xiàn)操作系統(tǒng)引導(dǎo)區(qū)位置導(dǎo)入內(nèi)存執(zhí)行操作系統(tǒng)程序加載到內(nèi)存制定區(qū)域初始化硬件7.算法begin.end 算法的開始于結(jié)束 repeat 操作.until 條件 當(dāng)“條件”未被滿足時重復(fù)所描述的“操作”while 條件 do 操作.od 當(dāng)“條件”滿足時,進(jìn)行相應(yīng)的“操作”if 條件 then 操作 else 操作 fi 滿足“if”所指的“條件”時,進(jìn)行“then”后的相關(guān)“操作”,否則完成“else”后的相關(guān)操作。第二章1.作業(yè):在一次應(yīng)用業(yè)務(wù)處理過程中,從輸入開始到輸

8、出結(jié)束,用戶要求計算機(jī)所做的有關(guān)該次業(yè)務(wù)處理的全部工作稱為一個作業(yè)。作業(yè)由不同的順序相連的作業(yè)步組成,作業(yè)步是一個作業(yè)的處理過程中計算機(jī)所做的相對獨立的工作。2.作業(yè)的組織:作業(yè)由三部分組成,即程序、數(shù)據(jù)和作業(yè)說明書。作業(yè)中包含的程序和數(shù)據(jù)完成用戶所要求的業(yè)務(wù)處理工作,作業(yè)說明書則體現(xiàn)用戶的控制意圖。由作業(yè)說明書在系統(tǒng)中生成一個稱為作業(yè)控制塊(JCB)的表格,JCB包括:作業(yè)名、估計執(zhí)行時間、優(yōu)先數(shù)(用于調(diào)度)、作業(yè)說明書文件名、程序類型、資源要求(靜態(tài)申請和動態(tài)申請)、作業(yè)狀態(tài)(提交后各執(zhí)行完成)。作業(yè)說明書包括:作業(yè)基本情況描述(用戶名、作業(yè)名、使用語言名、允許最大處理時間等)、作業(yè)控制描

9、述(控制方式、操作順序、出錯處理等)、作業(yè)資源要求描述(要求處理時間、內(nèi)存空間、外設(shè)類型和數(shù)量、處理及優(yōu)先級、庫函數(shù)或?qū)嵱贸绦虻龋?.如何控制作業(yè)聯(lián)機(jī)輸入輸出方式聯(lián)機(jī)輸入輸出方式大多用在交互式系統(tǒng)中,用戶與系統(tǒng)通過交互式會話輸入輸出作業(yè)。在聯(lián)機(jī)輸入輸出方式中,外圍設(shè)備直接與主機(jī)相連接。脫機(jī)輸入輸出方式脫機(jī)輸入又稱為預(yù)輸入方式,利用低檔個人計算機(jī)作為外圍處理機(jī)進(jìn)行輸入輸出處理。直接耦合方式把主機(jī)與低檔外圍通過一個公用的大容量外存直接耦合起來。SPOOLING系統(tǒng)(外圍設(shè)備同時聯(lián)機(jī)操作)多臺外圍設(shè)備通過通道或DMA器件和主機(jī)與外存連接起來。網(wǎng)絡(luò)聯(lián)機(jī)方式網(wǎng)絡(luò)聯(lián)機(jī)方式以上述幾種輸入輸出方式為基礎(chǔ)。當(dāng)

10、用戶通過計算機(jī)網(wǎng)絡(luò)中的某一臺設(shè)備對計算機(jī)網(wǎng)絡(luò)中的另一臺主機(jī)進(jìn)行輸入輸出操作時,就構(gòu)成了網(wǎng)絡(luò)聯(lián)機(jī)方式。4.系統(tǒng)調(diào)用系統(tǒng)調(diào)用大致可分為6類:(1)設(shè)備管理:該類系統(tǒng)調(diào)用被用來請求和釋放有關(guān)設(shè)備以及啟動設(shè)備操作等。(2)文件管理:包括對文件的讀、寫、創(chuàng)建和刪除等。(3)進(jìn)程控制:包括進(jìn)程創(chuàng)建、進(jìn)程執(zhí)行、進(jìn)程撤銷、進(jìn)程等待和執(zhí)行優(yōu)先級控制等。(4)進(jìn)程通信:該系統(tǒng)調(diào)用被用在進(jìn)程之間傳遞消息或符號。(5)存儲管理:包括調(diào)查作業(yè)占據(jù)內(nèi)存區(qū)的大小、獲取作業(yè)占據(jù)內(nèi)存區(qū)的始址等。(6)線程管理:包括線程的創(chuàng)建、調(diào)度、執(zhí)行、撤銷等。系統(tǒng)調(diào)用的實現(xiàn):當(dāng)用戶使用系統(tǒng)調(diào)用時,產(chǎn)生一條相應(yīng)的指令,處理機(jī)在執(zhí)行到該指令時發(fā)

11、生相應(yīng)的中斷,并發(fā)出有關(guān)信號給該處理機(jī)制。該處理機(jī)制在收到了處理機(jī)發(fā)來的信號后,啟動相關(guān)的處理程序去完成該系統(tǒng)調(diào)用所要求的功能。陷進(jìn)處理機(jī)構(gòu):在系統(tǒng)中為控制系統(tǒng)調(diào)用服務(wù)的機(jī)構(gòu)稱為陷進(jìn)處理機(jī)構(gòu)。陷進(jìn)指令:把由于系統(tǒng)調(diào)用引起處理機(jī)中斷的指令稱為陷進(jìn)指令。第三章1.程序的并發(fā)執(zhí)行程序用來描述計算機(jī)所完成的獨立功能,并在時間上嚴(yán)格地按前后次序相繼地進(jìn)行計算機(jī)操作序列集合,是一個靜態(tài)概念。個程序由若干個程序段組成,而這些程序段的執(zhí)行必須是順序的,這種程序執(zhí)行的方式就稱為程序的順序執(zhí)行。程序順序執(zhí)行的特點:n 1.順序性 處理機(jī)嚴(yán)格按照程序所規(guī)定的順序執(zhí)行,即每個操作必須在下一個操作開始之前結(jié)束。n 2.

12、封閉性 程序一旦開始執(zhí)行,其計算結(jié)果不受外界的影響,當(dāng)程序的初始條件給定之后,其后的狀態(tài)只能由程序本身確定,即只有本程序才能改變它。n 3.可再現(xiàn)性 程序執(zhí)行的結(jié)果與初始條件有關(guān),而與執(zhí)行時間無關(guān)。即只要程序的初始條件相同,它的執(zhí)行結(jié)果是相同的,不論它在什么時間執(zhí)行,也不管計算機(jī)的運行速度。多道程序系統(tǒng)中程序執(zhí)行環(huán)境的變化執(zhí)行環(huán)境的特點:n (1)獨立性在多道環(huán)境下執(zhí)行的每道程序都是邏輯上獨立的。n (2)隨機(jī)性程序和數(shù)據(jù)的輸入和執(zhí)行開始時間都是隨機(jī)的。n (3)資源共享軟硬件資源的有限性導(dǎo)致資源共享。程序并發(fā)執(zhí)行:若干個程序段同時在系統(tǒng)中運行,這些程序的執(zhí)行在時間上是重迭的,一個程序段的執(zhí)行

13、尚未結(jié)束,另一個程序段的執(zhí)行已經(jīng)開始,即使這種重迭是很小的,也稱這幾個程序段是并發(fā)執(zhí)行的。2.進(jìn)程:進(jìn)程是一個程序?qū)δ硞€數(shù)據(jù)集的執(zhí)行過程,是分配資源的基本單位。進(jìn)程和程序的區(qū)別與聯(lián)系:程序是指令的集合,是靜態(tài)的概念。 進(jìn)程是程序在處理機(jī)上的一次執(zhí)行的過程,是動態(tài)的概念。程序可以作為軟件資料長期保存。進(jìn)程是有生命周期的。進(jìn)程是一個獨立的運行單位,能與其它進(jìn)程并行(并發(fā))活動。而程序則不是。進(jìn)程是競爭計算機(jī)系統(tǒng)有限資源的基本單位,也是進(jìn)行處理機(jī)調(diào)度的基本單位。不同的進(jìn)程可以包含同一程序,只要該程序所對應(yīng)的數(shù)據(jù)集不同。作業(yè)和進(jìn)程的關(guān)系作業(yè)是用戶需要計算機(jī)完成某項任務(wù)時要求計算機(jī)所做工作的集合。而進(jìn)程

14、則是已提交完畢程序的執(zhí)行過程的描述,是資源分配的基本單位。其主要區(qū)別如下:n 作業(yè)是用戶向計算機(jī)提交任務(wù)的任務(wù)實體。n 一個作業(yè)可由多個進(jìn)程組成。n 作業(yè)的概念主要用于批處理系統(tǒng)中。進(jìn)程描述在系統(tǒng)中一個進(jìn)程存在:進(jìn)程控制塊PCB、有關(guān)程序段、數(shù)據(jù)結(jié)構(gòu)集 進(jìn)程控制塊 PCB (Process Control Block)包含一個進(jìn)程的描述信息、控制信息及資源信息,有些系統(tǒng)還有進(jìn)程調(diào)度等待所使用的現(xiàn)場保護(hù)區(qū)。PCB集中反映一個進(jìn)程的動態(tài)特征。在創(chuàng)建時,建立PCB,并伴隨進(jìn)程運行的全過程,當(dāng)進(jìn)程完成其功能后,系統(tǒng)釋放PCB,進(jìn)程也隨之消亡(1)描述信息 1、進(jìn)程名或進(jìn)程標(biāo)識號 name 每個進(jìn)程都必

15、須有一個唯一的標(biāo)識符,可以是字符串,也可以是一個數(shù)字。UNIX系統(tǒng)中就是一個整型數(shù)。在進(jìn)程創(chuàng)建時由系統(tǒng)賦予。 2、用戶名或用戶標(biāo)識號 每個進(jìn)程都隸屬于某個用戶,用戶名或用戶標(biāo)識號有利于資源共享和保護(hù) 3、家族關(guān)系 process family 有的系統(tǒng)允許一個進(jìn)程可創(chuàng)建自已的子進(jìn)程,子進(jìn)程還可以創(chuàng)建,一個進(jìn)程往往處在一個家族之中,就需要記錄進(jìn)程在家族中位置的信息。 (2)控制信息 1、進(jìn)程當(dāng)前狀態(tài) status說明進(jìn)程當(dāng)前所處的狀態(tài)。為了管理的方便,系統(tǒng)設(shè)計時會將相同的狀態(tài)的進(jìn)程組成一個隊列,如就緒進(jìn)程隊列,等待進(jìn)程則要根據(jù)等待的事件組成多個等待隊列,如等待打印機(jī)隊列、等待磁盤I/O完成隊列等

16、等。2、進(jìn)程優(yōu)先級 priority 進(jìn)程的優(yōu)先級反映進(jìn)程的緊迫程度,通常由用戶指定和系統(tǒng)設(shè)置。3、執(zhí)行程序開始地址 start-addr4、各種計時信息進(jìn)程占用系統(tǒng)資源的情況,不同的系統(tǒng)的處理差別很大。5、通信信息 communication information是指某個進(jìn)程在運行的過程中要與其它進(jìn)程進(jìn)行通信,該區(qū)記錄有關(guān)進(jìn)程通信方面的信息。(3)資源管理信息包括有關(guān)存儲器的信息、使用輸入、輸出設(shè)備的信息、有關(guān)文件系統(tǒng)的信息:1、占用內(nèi)存大小及管理用數(shù)據(jù)結(jié)構(gòu)指針。2、在某些復(fù)雜系統(tǒng)中,還有對換或覆蓋用的有關(guān)信息。3、共享程序段大小及起始地址。4、輸入輸出設(shè)備的設(shè)備號,所要傳送的數(shù)據(jù)長度、緩

17、沖區(qū)地址、緩沖區(qū)長度及使用設(shè)備的有關(guān)數(shù)據(jù)結(jié)構(gòu)指針等。5、指向文件系統(tǒng)的指針及有關(guān)標(biāo)識等。(4)、CPU現(xiàn)場保護(hù)區(qū) cpustatus當(dāng)進(jìn)程因某種原因不能繼續(xù)占用CPU時(等待打印機(jī)),釋放CPU,這時就要將CPU的各種狀態(tài)信息保護(hù)起來,為將來再次得到處理機(jī)恢復(fù)CPU的各種狀態(tài),繼續(xù)運行。進(jìn)程上下文實際上是進(jìn)程執(zhí)行活動全過程的靜態(tài)描述。進(jìn)程上下文是一個抽象的概念,它包含了每個進(jìn)程執(zhí)行過的、執(zhí)行時的以及待執(zhí)行的指令和數(shù)據(jù),在指令寄存器、堆棧(存放個調(diào)用子程序的返回點和參數(shù)等),狀態(tài)字寄存器等中的內(nèi)容。上文:已執(zhí)行過的進(jìn)程指令和數(shù)據(jù)在相關(guān)寄存器與堆棧中的內(nèi)容。正文:正在執(zhí)行的指令和數(shù)據(jù)在相關(guān)寄存器與

18、堆棧中的內(nèi)容。下文:待執(zhí)行的指令和數(shù)據(jù)在相關(guān)寄存器與堆棧中的內(nèi)容。進(jìn)程上下文切換進(jìn)程上下文切換發(fā)生在不同的進(jìn)程之間而不是同一個進(jìn)程內(nèi)。包含3個部分,第一部分為保存被切換進(jìn)程的正文部分(或當(dāng)前狀態(tài))至有關(guān)存儲區(qū)。第二部分操作系統(tǒng)進(jìn)程中有關(guān)調(diào)度和資源分配程序執(zhí)行,并選取新的進(jìn)程。第三部分則是將被選中進(jìn)程的原來被保存的正文部分從有關(guān)存儲區(qū)中選出,并送至有關(guān)寄存器或堆棧中,激活被選中進(jìn)程執(zhí)行。進(jìn)程空間和大小任一進(jìn)程都有自己的地址空間,把該空間稱為進(jìn)程空間或虛空間。進(jìn)程空間的大小只與處理機(jī)的位數(shù)有關(guān)。程序的執(zhí)行都在進(jìn)程空間內(nèi)進(jìn)行。用戶程序、進(jìn)程的各種控制表格等都按一定的結(jié)構(gòu)排列在進(jìn)程空間中。在有的系統(tǒng)中

19、進(jìn)程空間被劃分為兩部分:用戶空間和系統(tǒng)空間。為了防止用戶程序訪問系統(tǒng)空間,造成訪問出錯,計算機(jī)通過程序狀態(tài)寄存器等設(shè)置不同的執(zhí)行模式,即用戶模式(用戶態(tài))和系統(tǒng)模式(系統(tǒng)態(tài))來進(jìn)行保護(hù)。3.進(jìn)程狀態(tài)及其轉(zhuǎn)換進(jìn)程的三種基本狀態(tài):執(zhí)行狀態(tài)、就緒狀態(tài)、等待狀態(tài)(又稱阻塞、掛起、睡眠)就緒狀態(tài)(Ready) 存在于處理機(jī)調(diào)度隊列中的那些進(jìn)程,它們已經(jīng)準(zhǔn)備就緒,一旦得到CPU,就立即可以運行,這些進(jìn)程所取的狀態(tài)為就緒狀態(tài)。(有多個進(jìn)程處于此狀態(tài))執(zhí)行狀態(tài)(Running)當(dāng)進(jìn)程由調(diào)度/分派程序分派后,得到CPU控制權(quán),它的程序正在運行,該進(jìn)程所處的狀態(tài)為執(zhí)行狀態(tài)。(在系統(tǒng)中,總只有一個進(jìn)程處于此狀態(tài))等

20、待狀態(tài)(Wait)若一個進(jìn)程正在等待某個事件的發(fā)生(如等待I/O的完成),而暫停執(zhí)行,這時,即使給它CPU時間,它也無法執(zhí)行,則稱該進(jìn)程處于等待狀態(tài)。進(jìn)程狀態(tài)轉(zhuǎn)換運行到等待 等待某事件的發(fā)生(如等待I/O完成)等待到就緒 事件已經(jīng)發(fā)生(如I/O完成)運行到就緒 時間片到(例如,兩節(jié)課時間到,下課)新建進(jìn)程到就緒 新創(chuàng)建的進(jìn)程進(jìn)入就緒狀態(tài)就緒到運行 當(dāng)處理機(jī)空閉時,由調(diào)度(分派)程序從就緒進(jìn)程隊列中選擇一個進(jìn)程占用CPU。進(jìn)程控制:就是系統(tǒng)使用一些具有特定功能的程序段來創(chuàng)建、撤銷進(jìn)程以及完成進(jìn)程各狀態(tài)的轉(zhuǎn)換,從而達(dá)到多進(jìn)程高效率并發(fā)執(zhí)行和協(xié)調(diào)、實現(xiàn)資源共享的目的。原語:把系統(tǒng)態(tài)下執(zhí)行的某些具有特

21、定功能的程序段稱為原語。用于進(jìn)程控制的原語有:創(chuàng)建原語、撤銷原語、阻塞原語、喚醒原語。進(jìn)程創(chuàng)建方式:由系統(tǒng)程序模塊統(tǒng)一創(chuàng)建;由父進(jìn)程創(chuàng)建。進(jìn)程創(chuàng)建系統(tǒng)調(diào)用: create(name,priority,start-addr) UNIX系統(tǒng):fork()進(jìn)程撤銷:(1)該進(jìn)程已完成所要求的功能而正常終止(2)由于某種錯誤導(dǎo)致非正常終止(3)祖先進(jìn)程要求撤銷某個子進(jìn)程。在一般操作系統(tǒng)中進(jìn)程撤消的系統(tǒng)調(diào)用是:kill UNIX系統(tǒng)中是exit() 如果撤銷進(jìn)程有自己的子進(jìn)程,則撤銷原語先撤銷其子進(jìn)程的PCB結(jié)構(gòu)并釋放子進(jìn)程所釋放的資源后,再撤銷當(dāng)前進(jìn)程的PCB結(jié)構(gòu)和釋放其資源。進(jìn)程的阻塞與喚醒當(dāng)一個處

22、在運行狀態(tài)的進(jìn)程,因等待某個事件的發(fā)生(如等待打印機(jī))而不能繼續(xù)運行時,將調(diào)用進(jìn)程掛起系統(tǒng)調(diào)用,把進(jìn)程的狀態(tài)置為阻塞狀態(tài),并調(diào)用進(jìn)程調(diào)度程序(等于讓出處理機(jī))。進(jìn)程從運行狀態(tài)轉(zhuǎn)換成阻塞狀態(tài)是由進(jìn)程掛起原語實現(xiàn)的,因此,調(diào)用進(jìn)程掛起操作是在進(jìn)程處于運行狀態(tài)下執(zhí)行的。它的執(zhí)行將引起等待某事件的隊列的改變.一個正在運行的進(jìn)程會因等待某事件(例如,等待打印機(jī))的發(fā)生,由運行狀態(tài)轉(zhuǎn)換成阻塞狀態(tài),當(dāng)它等待的事件發(fā)生后,這個進(jìn)程將由阻塞狀態(tài)轉(zhuǎn)換成就緒狀態(tài)。這種轉(zhuǎn)換由進(jìn)程喚醒操作完成。喚醒一個進(jìn)程有兩種方式:系統(tǒng)進(jìn)程喚醒、事件發(fā)生進(jìn)程喚醒。 調(diào)用進(jìn)程喚醒操作一般在中斷處理、進(jìn)程通信等過程中。例如,打印機(jī)完成中

23、斷處理程序, 在完成了打印完成的操作后,就去檢查等待打印機(jī)的隊列,若不為空,則調(diào)用進(jìn)程喚醒操作,喚醒一個(或多個)等待打印機(jī)的進(jìn)程。 4.進(jìn)程互斥產(chǎn)生互斥的原因:資源共享、進(jìn)程合作臨界資源:一次僅允許一個進(jìn)程使用的資源稱為臨界資源。臨界區(qū):每個進(jìn)程中訪問臨界資源的那段程序段稱為臨界區(qū)(臨界段)。間接制約:由于共享某公有資源而引起的在臨界區(qū)內(nèi)不允許并發(fā)進(jìn)程交叉執(zhí)行的現(xiàn)象稱為有共享公有資源而造成的對并發(fā)進(jìn)程執(zhí)行速度的間接制約,簡稱間接制約?;コ猓涸诓僮飨到y(tǒng)中,當(dāng)某一進(jìn)程正在訪問某臨界區(qū)時,就不允許其它進(jìn)程進(jìn)入,否則就會發(fā)生(后果)無法估計的錯誤。我們把進(jìn)程之間的這種相互制約的關(guān)系稱為互斥。進(jìn)入臨界

24、區(qū)的準(zhǔn)則:(1)不能假設(shè)各并發(fā)進(jìn)程的相對執(zhí)行速度;(2)并發(fā)進(jìn)程中的某個進(jìn)程不在臨界區(qū)時,它不能阻止其他進(jìn)程進(jìn)入臨界區(qū);(3)并發(fā)進(jìn)程中的若干個進(jìn)程申請進(jìn)入界區(qū)時,只能允許一個進(jìn)程進(jìn)入;(4)當(dāng)有若干個進(jìn)程欲進(jìn)入臨界區(qū)時,應(yīng)在有限的時間內(nèi)使其進(jìn)入。解決進(jìn)程互斥的最簡單的辦法是加鎖。在系統(tǒng)中為每個臨界資源設(shè)置一個鎖位,n 1 表示資源可用,n 0 表示資源已被占用(不可用)。這樣當(dāng)一個進(jìn)程使用某個臨界資源之前必須完成下列操作:1、考察鎖位的值;2、若原來的值是為“1”,將鎖位置為“0”(占用該資源);3、若原來值是為“0”,(該資源已被別人占用),則轉(zhuǎn)到1。當(dāng)進(jìn)程使用完資源后,將鎖位置為“1“,

25、稱為開鎖操作。5.信號量與P、V原語信號量sem:是一個整數(shù),在sem大于等于零時,代表可供并發(fā)資源使用的資源實體數(shù),但sem小于零時則表示正在等待使用臨界區(qū)的進(jìn)程數(shù)。sem代表資源的實體。在實際應(yīng)用中應(yīng)準(zhǔn)確地說明sem的意義和初值。P操作:(1)sem減1;(2)若sem減1后仍大于等于0,則進(jìn)程繼續(xù)執(zhí)行;(3)若結(jié)果小于0,則該進(jìn)程掛起。注:掛起該進(jìn)程包括:保留調(diào)用進(jìn)程CPU現(xiàn)場;置“等待”狀態(tài);入等待隊列;轉(zhuǎn)進(jìn)程調(diào)度; V操作:(1)s值加1;(2)若相加結(jié)果大于0,進(jìn)程繼續(xù)執(zhí)行;(3)否則,喚醒一個(或多個)等待該信號燈的進(jìn)程,然后本進(jìn)程繼續(xù)執(zhí)行或轉(zhuǎn)進(jìn)程調(diào)度。 P、V原語實現(xiàn)互斥的原理

26、當(dāng)一個進(jìn)程想要進(jìn)入臨界區(qū)時,它必須先執(zhí)行P原語操作以將信號量sem減1。在一個進(jìn)程完成對臨界資源的操作后,它必須執(zhí)行V原語操作以釋放它占用的臨界資源。由于信號量初始值為1,所以,任一進(jìn)程在執(zhí)行P原語操作之后將sem的值變?yōu)?,表示該進(jìn)程可以進(jìn)入臨界區(qū)。在該進(jìn)程未執(zhí)行V原語操作之前如有另一進(jìn)程想進(jìn)入臨界區(qū)的話,它也應(yīng)先執(zhí)行P原語操作,從而使sem的值變?yōu)?1,因此,第二個進(jìn)程將會被阻塞,直到第一個進(jìn)程執(zhí)行V原語操作之后,sem的值變?yōu)?,從而可喚醒第二個進(jìn)程進(jìn)入就緒隊列,經(jīng)調(diào)度后進(jìn)入臨界區(qū)。在第二個進(jìn)程執(zhí)行完V原語操作之后,如果沒有其它進(jìn)程申請進(jìn)入臨界區(qū)的話,則sem又恢復(fù)到初始值。用信號量實現(xiàn)

27、兩并發(fā)進(jìn)程Pa,Pb互斥的描述如下:(1) 設(shè)sem為互斥信號量,其取值范圍為(1,0,-1)。其中sem=1標(biāo)志進(jìn)程Pa,Pb都未進(jìn)入類名為S的臨界區(qū),sem=0表示進(jìn)程Pa,Pb已進(jìn)入類名為S的臨界區(qū),sem=-1表示進(jìn)程Pa,Pb中,一個進(jìn)程已進(jìn)入臨界區(qū),而另一進(jìn)程等待進(jìn)入臨界區(qū)。(2) 描述Pa:P(sem)<S>V(sem):.Pb:P(sem)<S>V(sem):. 6.進(jìn)程同步同步:把異步環(huán)境下的一組并發(fā)進(jìn)程,因直接制約而互相發(fā)送消息而進(jìn)行互相合作、互相等待,使得各進(jìn)程按一定的速度執(zhí)行的過程稱為進(jìn)程間的同步。用wait(消息名)表示進(jìn)程等待合作進(jìn)程發(fā)來的消

28、息.功能:等待到消息名為true的進(jìn)程繼續(xù)執(zhí)行。用signal(消息名)表示向合作進(jìn)程發(fā)送消息功能:發(fā)送消息名,并將其值置為true。利用過程wait和singnal描述計算進(jìn)程Pc和打印進(jìn)程Pp的同步關(guān)系(1) 設(shè)消息名Bufempty表示buf為空,消息名Buffull表示Buf中裝滿了數(shù)據(jù)。(2) 初始化Bufempty=true,Buffull=false.。(3) 描述:Pc : A:wait(Bufempty) 計算 Buf 計算結(jié)果 Bufempty false signal(Buffull) Goto APp : B:wait(Bufful) 打印Buf中的數(shù)據(jù) 清除Buf中的

29、數(shù)據(jù) Bufful false signal(Bufempty) Goto B私有信號量(private Semaphore):進(jìn)程同步的信號量只與制約進(jìn)程及被制約進(jìn)程有關(guān)而不是與整組并發(fā)進(jìn)程有關(guān)。因此該信號量稱為私有信號量。用P,V原語操作實現(xiàn)同步首先,為各并發(fā)進(jìn)程設(shè)置私有信號量,然后,為私有信號量賦初值,最后,利用P,V原語和私有信號量規(guī)定各進(jìn)程的執(zhí)行順序。例:設(shè)進(jìn)程Pa和Pb通過緩沖區(qū)隊列傳遞數(shù)據(jù)。Pa為發(fā)送進(jìn)程,Pb為接收進(jìn)程。Pa發(fā)送數(shù)據(jù)時調(diào)用發(fā)送過程deposit(data),Pb接受數(shù)據(jù)時調(diào)用過程remove(data),且數(shù)據(jù)的發(fā)送和接受過程滿足如下條件:(1)在7.生產(chǎn)者與消

30、費者問題對于生產(chǎn)者進(jìn)程:產(chǎn)生一個數(shù)據(jù),當(dāng)要送入緩沖區(qū)時,要檢查緩沖區(qū)是否已滿,若未滿,則可將數(shù)據(jù)送入緩沖區(qū),并通知消費者進(jìn)程;否則,等待;對于消費者進(jìn)程:當(dāng)它去取數(shù)據(jù)時,要看緩沖區(qū)中是否有數(shù)據(jù)可取,若有則取走一個數(shù)據(jù),并通知生產(chǎn)者進(jìn)程,否則,等待。這種相互等待,并互通信息就是典型的進(jìn)程同步。同時,緩沖區(qū)是個臨界資源,因此,諸進(jìn)程對緩沖區(qū)的操作程序是一個共享臨界區(qū),因此,還有個互斥的問題。 8.進(jìn)程通信通信(communication)意味著進(jìn)程間傳遞數(shù)據(jù)。操作系統(tǒng)可以看作是各種進(jìn)程組成的,這些進(jìn)程都具有各自獨立的功能,且大多數(shù)都被外部需要而啟動執(zhí)行。在單機(jī)系統(tǒng)中進(jìn)程的通信有4種形式:(1)主從

31、式(2)會話式(3)消息或郵箱機(jī)制(4)共享存儲區(qū)方式會話方式的特點:(1)使用進(jìn)程在使用服務(wù)進(jìn)程所提供的服務(wù)之前,必須得到服務(wù)進(jìn)程的許可。(2)服務(wù)進(jìn)程根據(jù)使用進(jìn)程的要求提供服務(wù),但對所提供服務(wù)的控制由服務(wù)進(jìn)程自身完成。(3)使用進(jìn)程和服務(wù)進(jìn)程在進(jìn)行通信時有固定連接關(guān)系。消息或郵箱機(jī)制的特點是:(1)只要存在空緩沖區(qū)或郵箱,發(fā)送進(jìn)程就可以發(fā)送消息。(2)與會話系統(tǒng)不同,發(fā)送進(jìn)程和接受進(jìn)程之間無直接聯(lián)接關(guān)系。(3)發(fā)送進(jìn)程和接受進(jìn)程之間存在緩沖區(qū)或郵箱用來存放被傳送消息。郵箱通信就是由發(fā)送進(jìn)程申請建立一與接受進(jìn)程聯(lián)接的郵箱。設(shè)置郵箱的最大好處是發(fā)送進(jìn)程和接受進(jìn)程之間沒有時間上的限制。共享存儲區(qū)

32、方式不要求數(shù)據(jù)移動,兩個需要互相交換信息的進(jìn)程通過共享數(shù)據(jù)區(qū)的操作達(dá)到互相通信的目的。9.死鎖問題死鎖:指個并發(fā)進(jìn)程彼此互相等待對方所擁有的資源,且這些并發(fā)進(jìn)程在得到對方的資源之前不會釋放自己所擁有的資源。從而造成大家都想得到資源而又得不到資源,個并發(fā)進(jìn)程不能繼續(xù)向前推進(jìn)的狀態(tài)。死鎖的起因:根本原因在于系統(tǒng)提供的資源個數(shù)少于并發(fā)進(jìn)程所要求的該類資源數(shù)。產(chǎn)生死鎖有四個必要條件:(1)互斥條件。并發(fā)進(jìn)程所要求和占有的資源是不能同時被兩個以上進(jìn)程使用或操作的,進(jìn)程對他所需要的資源進(jìn)行排他性控制。 (2)不剝奪條件。進(jìn)程所獲得的資源在未使用完畢之前,不能被其它進(jìn)程強(qiáng)行剝奪,而只能由獲得該資源的進(jìn)程自己

33、釋放。(3)部分分配。進(jìn)程每次申請它所需要的一部分資源,在等待新資源的同時,繼續(xù)占用已分配的資源。(4)環(huán)路等待條件。存在一種進(jìn)程循環(huán)鏈,鏈中每一個進(jìn)程已獲得的資源同時被下一個進(jìn)程所請求。只要有一個條件不滿足,死鎖就可解除。預(yù)防死鎖 1破壞“請求與保持條件” 每個進(jìn)程在運行之前,必須預(yù)先提出自己所要使用的全部資源,調(diào)度程序在該進(jìn)程所需要的資源末得到滿足之前,不讓它們投入運行,并且當(dāng)資源一旦分配給某個進(jìn)程之后,那么在該進(jìn)程的整個運行期間相應(yīng)資源一直被它占有,這就破壞了產(chǎn)生死鎖的部分分配條件。2破壞環(huán)路條件 對系統(tǒng)提供的每一項資源,由系統(tǒng)設(shè)計者將它們按類型進(jìn)行線性排隊,并賦予不同的序號。3資源受控

34、動態(tài)分配 為了避免死鎖發(fā)生,操作系統(tǒng)必須根據(jù)預(yù)先掌握的關(guān)于資源用法的信息控制資源分配,使得共同進(jìn)展路徑的下一步不致于進(jìn)入危險區(qū),即只要有產(chǎn)生死鎖的可能性,就避免把一種資源分配給一個進(jìn)程。 死鎖的檢測和恢復(fù) 1資源剝奪法 (1)還原算法。即恢復(fù)計算結(jié)果和狀態(tài)。(2)建立檢查點主要是用來恢復(fù)分配前的狀態(tài)。 2撤消進(jìn)程法 按一定的順序中止進(jìn)程序列,直至已釋放到有足夠的資源來完成剩下的資源為止。第四章1.一個作業(yè)從提交給計算機(jī)系統(tǒng)到執(zhí)行結(jié)束退出系統(tǒng),一般都要經(jīng)歷提交、收容、執(zhí)行和完成四個狀態(tài)。一個作業(yè)在其處于從輸入設(shè)備進(jìn)入外部存儲設(shè)備的過程成為提交狀態(tài)。處于提交狀態(tài)的作業(yè),因其信息尚未全部進(jìn)入系統(tǒng),所

35、以不能被調(diào)用程序選取。收容狀態(tài)也稱為后備狀態(tài),輸入管理系統(tǒng)不斷地將作業(yè)輸入到外存中對應(yīng)部分(或稱輸入井,即專門用來存放待處理作業(yè)信息的一組外存分區(qū))。若一個作業(yè)的全部信息已全部被輸入進(jìn)輸入井,那么,在它還未被調(diào)度去執(zhí)行之前,該作業(yè)處于收容狀態(tài)。作業(yè)調(diào)度程序從后備作業(yè)中選取若干作業(yè)到內(nèi)存投入運行。它為被選中作業(yè)建立進(jìn)程并分配必要的資源,這時,這些被選中的作業(yè)處于執(zhí)行狀態(tài)。當(dāng)作業(yè)運行完畢,但它所占用的資源尚未全部被系統(tǒng)收回時,該作業(yè)處于完成狀態(tài)。一般來說,處理機(jī)調(diào)度可分為4級:作業(yè)調(diào)度、交換調(diào)度、進(jìn)程調(diào)度、線程調(diào)度。 作業(yè)調(diào)度:又稱宏觀調(diào)度或高級調(diào)度,其主要任務(wù)是按一定的原則對外存輸入井上的大量后

36、備作業(yè)進(jìn)行選擇,給選出的作業(yè)分配內(nèi)存、輸入輸出設(shè)備等必要的資源,并建立相應(yīng)的根程序,以使該作業(yè)的進(jìn)程獲得競爭處理機(jī)的權(quán)利,另外,當(dāng)該作業(yè)執(zhí)行完畢時,還負(fù)責(zé)回收系統(tǒng)資源。交換調(diào)度:又稱中級調(diào)度,其主要任務(wù)是按照給定的原則和策略,將處于外存交換區(qū)中的就緒狀態(tài)或就緒等待狀態(tài)的進(jìn)程調(diào)入內(nèi)存,或把處于內(nèi)存就緒狀態(tài)或內(nèi)存等待狀態(tài)的進(jìn)程交換到外存交換區(qū)。交換調(diào)度主要涉及內(nèi)存的管理和擴(kuò)充,一般將它歸在存儲管理之中。進(jìn)程調(diào)度:又稱微觀調(diào)度或低級調(diào)度,其主要任務(wù)是按照某種策略和方法選取一個處于就緒狀態(tài)的進(jìn)程占用處理機(jī)。只有在多道批處理系統(tǒng)中才有作業(yè)調(diào)度,而在分時和實時系統(tǒng)中一般只有進(jìn)程調(diào)度、交換調(diào)度和線程調(diào)度。這

37、是因為在分時和實時系統(tǒng)中,為了縮短響應(yīng)時間或為了滿足用戶需求的截止時間,作業(yè)不是建立在外存中,而是直接建立在內(nèi)存中。2.作業(yè)調(diào)度作業(yè)調(diào)度的功能:(1)記錄系統(tǒng)中各作業(yè)的狀況,包括執(zhí)行階段的有關(guān)情況。通常,系統(tǒng)為每個作業(yè)建立一個作業(yè)控制表JCB記錄這些有關(guān)信息。作業(yè)控制塊JCB:在作業(yè)調(diào)度的過程中記錄作業(yè)各方面的信息。它隨作業(yè)的創(chuàng)建而產(chǎn)生,隨作業(yè)的撤消而被清除。(2)從后備隊列中選取一部分作業(yè)投入執(zhí)行(3)為被選中的作業(yè)做好執(zhí)行前的準(zhǔn)備工作。(4)在作業(yè)執(zhí)行結(jié)束時做好善后處理工作。作業(yè)調(diào)度目標(biāo):(1) 對所有作業(yè)應(yīng)該是公平合理的。(2) 應(yīng)使設(shè)備有高的利用率。(3) 每天執(zhí)行盡可能多的作業(yè)(4)

38、 有快的響應(yīng)時間對于批處理系統(tǒng),作業(yè)的平均周轉(zhuǎn)時間或平均帶權(quán)周轉(zhuǎn)時間,被作為衡量調(diào)度算法優(yōu)劣的標(biāo)準(zhǔn);對于分時系統(tǒng)和實時系統(tǒng),外加平均響應(yīng)時間作為衡量調(diào)度算法優(yōu)劣的標(biāo)準(zhǔn)(1)周轉(zhuǎn)時間:作業(yè)i從提交時刻到完成時刻稱為作業(yè)的周轉(zhuǎn)時間。Ti = Tei - TsiTei為作業(yè)i的完成時間,Tsi為作業(yè)的提交時間一個作業(yè)的周轉(zhuǎn)時間說明了該作業(yè)在系統(tǒng)內(nèi)停留的時間,包含兩部分:一是等待時間;二為執(zhí)行時間Ti = Twi + TriTwi主要是指作業(yè)i由后備狀態(tài)到執(zhí)行狀態(tài)的等待時間,它不包括作業(yè)進(jìn)入執(zhí)行狀態(tài)后的等待時間。一批作業(yè)的平均周轉(zhuǎn)時間為: nT=1/n Ti i=1帶權(quán)周轉(zhuǎn)時間Wi=Ti/Tri Ti

39、作業(yè)周轉(zhuǎn)時間 Tri作業(yè)執(zhí)行時間一批作業(yè)的平均帶權(quán)周轉(zhuǎn)時間為 nW=1/n Wi i=13進(jìn)程調(diào)度進(jìn)程調(diào)度的功能:用PCB塊記錄系統(tǒng)中所有進(jìn)程的執(zhí)行情況按照一定的調(diào)度算法,選擇一個處于就緒狀態(tài)的進(jìn)程,給它分配處理機(jī)(這是最重要的功能)實施進(jìn)行進(jìn)程上下文的切換引起進(jìn)程調(diào)度的原因:(1) 正在執(zhí)行的進(jìn)程執(zhí)行完畢。這時,如果不選擇新的就緒進(jìn)程執(zhí)行,將浪費處理機(jī)資源。(2) 執(zhí)行中進(jìn)程自己調(diào)用阻塞原語將自己阻塞起來進(jìn)入睡眠等待狀態(tài)。(3) 執(zhí)行中進(jìn)程調(diào)用了P原語操作,從而因資源不足而被阻塞;或調(diào)用了V原語激活了等待資源的進(jìn)程隊列。(4) 執(zhí)行中進(jìn)程提出了I/O請求后被阻塞。(5) 在分時系統(tǒng)中時間片已

40、經(jīng)用完。(6) 在執(zhí)行完系統(tǒng)調(diào)用,在系統(tǒng)程序返回用戶進(jìn)程,可認(rèn)為系統(tǒng)進(jìn)程執(zhí)行完畢,從而可調(diào)度選擇一新的用戶程序執(zhí)行。以上都是CPU執(zhí)行不可剝奪方式下做引起的進(jìn)程調(diào)度的原因,在CPU執(zhí)行方式是可剝奪時,還有:(7) 就緒隊列中的某進(jìn)程的優(yōu)先級變得高于當(dāng)前執(zhí)行進(jìn)程的優(yōu)先級,從而也將發(fā)生進(jìn)程調(diào)度??蓜儕Z方式:即就緒隊列中一旦有優(yōu)先級高于當(dāng)前進(jìn)程優(yōu)先級的進(jìn)程存在時,便立即發(fā)生進(jìn)程調(diào)度,轉(zhuǎn)讓處理機(jī)。非剝奪方式(不可剝奪方式):即使在就緒隊列存在有優(yōu)先級高于當(dāng)前執(zhí)行進(jìn)程時,當(dāng)前進(jìn)程仍將繼續(xù)占有處理機(jī),直到該進(jìn)程因自己調(diào)度調(diào)用原語操作或、等待I/O進(jìn)入阻塞狀態(tài)或時間片用完時才重新發(fā)生調(diào)度讓出處理機(jī)。進(jìn)程調(diào)度

41、性能評價(1)進(jìn)程調(diào)度性能是衡量操作系統(tǒng)性能的一個重要指標(biāo)(2)在大多數(shù)情況下,利用測試或模擬系統(tǒng)響應(yīng)時間的方法來評價進(jìn)程調(diào)度的性能4.調(diào)度算法先來先服務(wù)(FCFS)算法將用戶作業(yè)和就緒進(jìn)程按提交順序或變成就緒狀態(tài)的先后排成隊列,并按照先來先服務(wù)的方式進(jìn)行調(diào)度處理。優(yōu)點:在一般意義下是公平的,即每個作業(yè)或進(jìn)程都按照它們在隊列中等待時間長短來決定它們是否優(yōu)先享受服務(wù)。缺點:對于那些執(zhí)行時間較短的作業(yè)或進(jìn)程來說,如果它們在某些執(zhí)行時間很長的作業(yè)或進(jìn)程之后到達(dá),則它們等待很長時間。(時間片)輪轉(zhuǎn)法(RR)算法描述:就緒隊列按進(jìn)程到達(dá)的時間來排列。處理機(jī)的時間被分為固定大小的時間片。調(diào)度程序總是選擇就

42、緒隊列中的第一個進(jìn)程。一個執(zhí)行進(jìn)程如果在用完一個時間片后還沒有完成其任務(wù),它就自動釋放處理機(jī)回到就緒隊列的末尾重新排隊,等待下一次被調(diào)度。缺點:只能用來分配那些可搶占資源,而且這種算法只能用于進(jìn)程調(diào)度,不能用于作業(yè)調(diào)度(作業(yè)調(diào)度包含了不可搶占資源)。 時間片的選取非常重要,時間片長度的選擇會直接影響系統(tǒng)開銷和響應(yīng)時間。如果時間片長度過短,則調(diào)度程序剝奪處理機(jī)的次數(shù)增多,這將使進(jìn)程上下文交換次數(shù)也大大增加,加重了系統(tǒng)開銷。如果時間片長度選擇過長(大),大到一個進(jìn)程足以完成其全部運行工作所需的時間,那么時間片輪轉(zhuǎn)法就退化為先來先服務(wù)策略了。最佳的時間片量值應(yīng)能使分時用戶得到好的響應(yīng)時間。時間片的確

43、定在輪轉(zhuǎn)法中,時間片長度q根據(jù)系統(tǒng)對響應(yīng)時間的要求R和就緒隊列中所能容納的最大進(jìn)程數(shù)Nmax確定的。 q=R/Nmax一種改進(jìn)的方法就是每當(dāng)一輪調(diào)度開始時,系統(tǒng)根據(jù)就緒隊列中當(dāng)前的進(jìn)程數(shù)計算一次q,作為新一輪調(diào)度的時間片。多級反饋輪轉(zhuǎn)法(進(jìn)程調(diào)度)(1)在時間片輪轉(zhuǎn)法中設(shè)置三個就緒隊列a.時間片完成就緒隊列b.等待結(jié)束就緒隊列c.新進(jìn)程就緒隊列(2)每個隊列建立時按FCFS排列,同一隊列中進(jìn)程的優(yōu)先級相同,不同隊列具有不同的優(yōu)先級優(yōu)先級高的隊列中進(jìn)程的時間片短,優(yōu)先級低的隊列中進(jìn)程的時間片長。(3)進(jìn)程調(diào)度時,先調(diào)度高優(yōu)先級就緒隊列中的進(jìn)程,當(dāng)高優(yōu)先級就緒隊列為空時才調(diào)度優(yōu)先級低的就緒隊列中的

44、進(jìn)程(4)一個進(jìn)程在執(zhí)行過程中要經(jīng)歷不同的就緒隊列優(yōu)先級法算法描述:按照某種原則給作業(yè)或進(jìn)程確定一個優(yōu)先級,進(jìn)程的就緒隊列或作業(yè)的后備隊列按對象的優(yōu)先級進(jìn)行排列,高前低后。對象進(jìn)入隊列是插入。當(dāng)調(diào)度發(fā)生時,排列在最前面的進(jìn)程或作業(yè)被調(diào)度。確定優(yōu)先級的方法有兩類:動態(tài)法和靜態(tài)法靜態(tài)法是根據(jù)作業(yè)或進(jìn)程的靜態(tài)特性,在作業(yè)或進(jìn)程開始執(zhí)行之前就確定它們的優(yōu)先級,一旦開始執(zhí)行后就不能改變。動態(tài)法:把作業(yè)或進(jìn)程靜態(tài)性和動態(tài)性結(jié)合起來確定作業(yè)或進(jìn)程的優(yōu)先級,隨著作業(yè)或進(jìn)程的執(zhí)行過程,優(yōu)先級不斷變化。作業(yè)調(diào)度中靜態(tài)優(yōu)先級確定原則:(1) 由用戶自己根據(jù)作業(yè)的緊急程度輸入一個適當(dāng)?shù)膬?yōu)先級(2) 由系統(tǒng)或操作員根據(jù)

45、作業(yè)類型指定優(yōu)先級。(3) 系統(tǒng)根據(jù)作業(yè)要求資源情況確定優(yōu)先級。進(jìn)程調(diào)度靜態(tài)優(yōu)先級確定原則:(1) 按照進(jìn)程的類型給與不同的優(yōu)先級。(2) 將作業(yè)的靜態(tài)優(yōu)先級作為它所屬進(jìn)程的優(yōu)先級。由于在進(jìn)程調(diào)度中靜態(tài)優(yōu)先級確定方法的缺陷:系統(tǒng)效率低、調(diào)度性能不高,所以多采用動態(tài)的方法確定優(yōu)先級。進(jìn)程調(diào)度動態(tài)優(yōu)先級確定原則:(1) 根據(jù)進(jìn)程占有CPU時間的長短來決定。一個進(jìn)程占有處理機(jī)時間越長,則在被阻塞后再次獲得調(diào)度的優(yōu)先級越低,反之,獲得調(diào)度的可能性越大(2) 根據(jù)就緒進(jìn)程等待CPU的時間長短來決定。一個就緒進(jìn)程在就緒隊列中等待的時間越長,則它獲得調(diào)度選中的優(yōu)先級就越高。最短作業(yè)優(yōu)先法SJF(作業(yè)調(diào)度)選

46、擇那些估計需要執(zhí)行時間最短的作業(yè)投入執(zhí)行,為它們創(chuàng)建進(jìn)程和分配資源。優(yōu)點:可使得系統(tǒng)在同一時間內(nèi)處理的作業(yè)個數(shù)最多,從而吞吐量也就大于其他調(diào)度方式。缺點:對于一個不斷有作業(yè)進(jìn)入的批處理系統(tǒng)來說,最短作業(yè)優(yōu)先法有可能使得那些長作業(yè)永遠(yuǎn)得不到調(diào)度執(zhí)行的機(jī)會。最高響應(yīng)比優(yōu)先法(作業(yè)調(diào)度)綜合平衡FCFS和SJF,既考慮等待時間長的作業(yè),也照顧執(zhí)行時間短的作業(yè)。響應(yīng)比:R=(等待時間W+執(zhí)行時間T)/執(zhí)行時間T優(yōu)點:長作業(yè)有機(jī)會獲得調(diào)度執(zhí)行缺點:同一時間內(nèi)處理的作業(yè)數(shù)少于最短作業(yè)優(yōu)先法,吞吐量也小于最短作業(yè)優(yōu)先法 調(diào)度前計算響應(yīng)比,系統(tǒng)開銷增加。算法評價FCFS算法 :作業(yè)到達(dá)率; :服務(wù)器(主機(jī))的

47、服務(wù)率;只有當(dāng)< 時系統(tǒng)才是穩(wěn)定的。n:系統(tǒng)中的平均作業(yè)個數(shù);R:系統(tǒng)響應(yīng)時間; : /,是系統(tǒng)中存在作業(yè)的概率,1-是系統(tǒng)中沒有作業(yè)的概率。 n= /(1-)Little結(jié)果:n=R;R=n/ FCFS算法的評價: R=n/=/(1-)*1/RR算法q:時間片;k:每個進(jìn)程平均需要的時間片數(shù),即該進(jìn)程到達(dá)等待隊列的次數(shù);線性優(yōu)先級法的調(diào)度性能1/:平均服務(wù)時間,則:1/=k×qRR算法的評價:已使用過k次時間片的進(jìn)程的響應(yīng)時間是:R(k)=/(1-) =1/(1-)=k×q/(1-)FCFS方式短作業(yè)駐留時間與長作業(yè)相同,對短作業(yè)不利。輪轉(zhuǎn)法所需服務(wù)時間短的顧客響應(yīng)

48、時間將會小于所需服務(wù)時間長的顧客響應(yīng)時間。實時調(diào)度算法分類:靜態(tài)表格驅(qū)動類、靜態(tài)優(yōu)先級驅(qū)動搶先式調(diào)度算法類、動態(tài)計劃調(diào)度算法類、盡力而為調(diào)度算法類。具有代表性的實時調(diào)度算法時限式調(diào)度法(靜態(tài)表格驅(qū)動類代表):是一種以滿足用戶要求時限為調(diào)度原則的算法。算法描述:時限有兩種:處理開始時限和處理結(jié)束時限,在實際中可以使用任一種時限。頻率單調(diào)調(diào)度(靜態(tài)優(yōu)先級驅(qū)動搶先式調(diào)度算法類代表):是一種被廣泛用于多周期性實時處理的調(diào)度算法。其基本原理是頻率低(周期越長)的任務(wù)優(yōu)先級越低。第五章1.存儲器:能接收數(shù)據(jù)和保存數(shù)據(jù)、而且能根據(jù)命令提供這些數(shù)據(jù)的裝置。存儲器分成兩類:內(nèi)存儲器(簡稱內(nèi)存、主存、物理存儲器)

49、外存儲器(簡稱外存、輔助存儲器)虛擬存儲器:為用戶提供一種不受物理存儲器結(jié)構(gòu)和容量限制的存儲器的技術(shù)稱為虛擬存儲器,或稱虛擬存儲技術(shù)。虛擬存儲器需要大容量的外存儲器的支持,或稱物資基礎(chǔ)。程序地址:用戶編程序時所用的地址(或稱邏輯地址 、虛地址 ),基本單位可與內(nèi)存的基本單位相同,也可以不相同。程序地址空間(邏輯地址空間、虛地址空間):用戶的程序地址的集合稱為邏輯地址空間,它的編址總是從0開始的,可以是一維線性空間,也可以是多維空間。物理地址:把內(nèi)存分成若干個大小相等的存儲單元,每個單元給一個編號,這個編號稱為內(nèi)存地址(物理地址、絕對地址、實地址),存儲單元占8位,稱作字節(jié)(byte)。物理地址

50、空間:物理地址的集合稱為物理地址空間(主存地址空間),它是一個一維的線性空間。安排進(jìn)程的地址方法:(1) 按照物理存儲器中的位置賦予實際物理地址。好處:CPU執(zhí)行目標(biāo)代碼時的執(zhí)行速度高。壞處:由于物理存儲器的容量限制,能裝入內(nèi)存并發(fā)執(zhí)行的進(jìn)程數(shù)將會大大減少,對于某些較大的進(jìn)程來說,當(dāng)其所要求的總內(nèi)存容量超過內(nèi)存容量時將會無法執(zhí)行;由于編譯程序必須知道內(nèi)存的當(dāng)前空閑部分及其地址,并且把一個進(jìn)程的不同程序段連續(xù)的存放起來,因此編譯程序?qū)⒎浅?fù)雜。(2) 編譯鏈接程序把用戶源程序編譯后鏈接到一個以0地址為始地址的線性或多維虛擬地址空間。2.存儲管理功能:地址映射 將程序地址空間中使用的邏輯地址變換成

51、主存中的地址的過程主存分配 按照一定的算法把某一空閑的主存區(qū)分配給作業(yè)或進(jìn)程。存儲保護(hù) 保證用戶程序(或進(jìn)程映象)在各自的存儲區(qū)域內(nèi)操作,互不干擾。提供虛擬存儲技術(shù) 使用戶程序的大小和結(jié)構(gòu)不受主存容量和結(jié)構(gòu)的限制,即使在用戶程序比實際主存容量還要大的情況下,程序也能正確運行實現(xiàn)地址映射有三種方式:.編程或編譯時確定地址映射關(guān)系.靜態(tài)地址映射.動態(tài)地址映射(1)編程或編譯時確定地址映射關(guān)系編程時確定虛實地址的關(guān)系是指在用機(jī)器指令編程時,程序員直接按物理內(nèi)存地址編程,這種程序在系統(tǒng)中是不能做任何移動的,否則就會出錯。(2)靜態(tài)地址映射靜態(tài)地址映射是在程序裝入內(nèi)存時完成從邏輯地址到物理地址的轉(zhuǎn)換的。

52、在一些早期的系統(tǒng)中都有一個裝入程序(加載程序),它負(fù)責(zé)將用戶程序裝入系統(tǒng),并將用戶程序中使用的訪問內(nèi)存的邏輯地址轉(zhuǎn)換成物理地址。優(yōu)點:實現(xiàn)簡單,不要硬件的支持。缺點:程序一旦裝入內(nèi)存,移動就比較困難。有時間上的浪費。在程序裝入內(nèi)存時要將所有訪問內(nèi)存的地址轉(zhuǎn)換成物理地址。必須占用連續(xù)的內(nèi)存空間,很難做到程序和數(shù)據(jù)的共享。(3)動態(tài)地址映射動態(tài)地址映射是在程序執(zhí)行時由系統(tǒng)硬件完成從邏輯地址到物理地址的轉(zhuǎn)換的。動態(tài)地址映射是由硬件地執(zhí)行時完成的,程序中不執(zhí)行的程序就不做地址映射的工作,這樣節(jié)省了CPU的時間 。 重定位寄存器的內(nèi)容由操作系統(tǒng)用特權(quán)指令來設(shè)置,比較靈活。實現(xiàn)動態(tài)地址映射必須有硬件的支持

53、,并有一定的執(zhí)行時間延遲。現(xiàn)代計算機(jī)系統(tǒng)中都采用動態(tài)地址映射技術(shù)。優(yōu)點:可以對內(nèi)存進(jìn)行非連續(xù)分配,動態(tài)重定位提供了實現(xiàn)虛擬存儲器的基礎(chǔ),有利于程序段的共享。動態(tài)地址映射技術(shù)能滿足以下目標(biāo):(1)具有給一個用戶程序任意分配內(nèi)存區(qū)的能力;(2)可實現(xiàn)虛擬存儲;(3)具有重新分配的能力(4)對于一個用戶程序,可以分配到多個不同的存儲區(qū)3.內(nèi)外存數(shù)據(jù)傳輸?shù)目刂埔獙崿F(xiàn)內(nèi)存擴(kuò)充,在程序執(zhí)行過程中,內(nèi)存和外存之間必須經(jīng)常地交換數(shù)據(jù)。內(nèi)外存的數(shù)據(jù)流動控制方法有兩種一種是用戶自己控制程序,例子:覆蓋技術(shù),一種早期的主存擴(kuò)充技術(shù),要求用戶了解程序結(jié)構(gòu),指定各程序段調(diào)入內(nèi)存的先后次序。另一種是操作系統(tǒng)控制,A交換方

54、式:操作系統(tǒng)把等待狀態(tài)的進(jìn)程換出內(nèi)存,而把等待事件已發(fā)生,處于就緒態(tài)的進(jìn)程換入內(nèi)存。B請求調(diào)入方式和預(yù)調(diào)入方式:請求調(diào)入方式:在程序執(zhí)行時,如果所要訪問的程序段或數(shù)據(jù)段不在內(nèi)存中,則操作系統(tǒng)自動地從外存將有關(guān)程序段和數(shù)據(jù)段調(diào)入內(nèi)存地一種操作系統(tǒng)控制方式。預(yù)調(diào)入方式:系統(tǒng)預(yù)測在不遠(yuǎn)的將來會訪問到的哪些程序段和數(shù)據(jù)段,并在它們訪問前調(diào)入。4.內(nèi)存的分配和回收在多道程序設(shè)計的環(huán)境中,內(nèi)存分配的功能包括:制定分配策略、構(gòu)造分配用的數(shù)據(jù)結(jié)構(gòu)、響應(yīng)系統(tǒng)的內(nèi)存分配的請求和回收系統(tǒng)釋放的內(nèi)存區(qū)。內(nèi)存管理策略有5種:(1)分配結(jié)構(gòu) 登記內(nèi)存使用情況,供分配程序使用的表格和鏈表。(2)放置策略 確定調(diào)入內(nèi)存的程序

55、和數(shù)據(jù)在內(nèi)存中的位置。決定內(nèi)存中放置信息的區(qū)域(或位置),即如何在若干個空閑區(qū)中選擇一個或幾個空閑區(qū)的原則;(3)交換策略 當(dāng)內(nèi)存不足時,決定將某些信息調(diào)出內(nèi)存的策略 。(4)調(diào)入策略 外存中的程序段和數(shù)據(jù)段什么時間按照什么樣的控制方式進(jìn)入內(nèi)存(5)回收策略 回收的時機(jī),對所回收的內(nèi)存空閑區(qū)和已存在的內(nèi)存空閑區(qū)的整理。 5.內(nèi)存信息的共享與保護(hù)常用的存儲保護(hù)有三種。硬件法、軟件法、軟硬件結(jié)合(1)上下界保護(hù)(常用的硬件保護(hù)法)上界寄存器 存放程序裝入內(nèi)存后的開始地址(首址)下界寄存器 存放程序裝入內(nèi)存后的末地址判別式:上界寄存器 物理地址下界寄存器(2)保護(hù)鍵法:為每一個被保護(hù)存儲塊分配一個單獨的保護(hù)鍵

溫馨提示

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

最新文檔

評論

0/150

提交評論