計(jì)算機(jī)操作系統(tǒng)知識(shí)點(diǎn)整理_第1頁
計(jì)算機(jī)操作系統(tǒng)知識(shí)點(diǎn)整理_第2頁
計(jì)算機(jī)操作系統(tǒng)知識(shí)點(diǎn)整理_第3頁
計(jì)算機(jī)操作系統(tǒng)知識(shí)點(diǎn)整理_第4頁
計(jì)算機(jī)操作系統(tǒng)知識(shí)點(diǎn)整理_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

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

4、indows 系列和 linux 系統(tǒng)為主。 網(wǎng)絡(luò)操作系統(tǒng) 特征: (1) 計(jì)算機(jī)網(wǎng)絡(luò)是一個(gè)互連的計(jì)算機(jī)系統(tǒng)群體。這些計(jì)算機(jī)在物理上是分散的。 (2) 這些計(jì)算機(jī)是自治的,每臺(tái)計(jì)算機(jī)有自己的操作系統(tǒng),各自獨(dú)立工作,它們?cè)诰W(wǎng)絡(luò)協(xié)議控制下協(xié)同工作。 (3) 系統(tǒng)互連要通過通信設(shè)施(硬件、軟件)來實(shí)現(xiàn)。 (4) 系統(tǒng)通過通信設(shè)施執(zhí)行信息交換、資源共享、互操作和協(xié)作處理。 分布式系統(tǒng)(Distributed System) 特征: (1) 功能的分布 (2) 堅(jiān)強(qiáng)性 (3) 高可靠性 3,操作系統(tǒng)的功能 處理機(jī)管理、存儲(chǔ)管理(內(nèi)存分配、存儲(chǔ)保護(hù)、內(nèi)存擴(kuò)充) 、設(shè)備管理(通道、控制器、輸入輸出設(shè)備的分配

5、與管理,設(shè)備獨(dú)立性) 、信息 管理(文件系統(tǒng)管理)、用戶接口(程序一級(jí)的接口、作業(yè)一級(jí)的接口) 。 4. 通道和中斷技術(shù) 通道:用于控制 I/O 設(shè)備與內(nèi)存間的數(shù)據(jù)傳輸。啟動(dòng)后可獨(dú)立于 CPU 運(yùn)行,實(shí)現(xiàn) CPU 與 I/O 的并行。 通道有專用的 I/O 處理器,可與 CPU 并行工作 可實(shí)現(xiàn) I/O 聯(lián)機(jī)處理 中斷是指 CPU 在收到外部中斷信號(hào)后,停止原來工作,轉(zhuǎn)去處理該中斷事件,完畢后回到原來斷點(diǎn)繼續(xù)工作。 中斷處理過程:中斷請(qǐng)求,中斷響應(yīng),中斷點(diǎn)(暫停當(dāng)前任務(wù)并保存現(xiàn)場) ,中斷處理例程,中斷返回(恢復(fù)中斷點(diǎn)的 現(xiàn)場并繼續(xù)原有任務(wù) 監(jiān)督程序開展為執(zhí)行系統(tǒng)(executive syst

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

7、地址存放器 條件碼存放器 程序計(jì)數(shù)器 指令計(jì)數(shù)器 程序狀態(tài)字 PSW 中斷現(xiàn)場保護(hù)存放器 過程調(diào)用用堆棧 存儲(chǔ)器的訪問速度 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)條件未被滿足時(shí)重復(fù)所描述的操作 while 條件 do 操作 . .od 當(dāng)條件滿足時(shí),進(jìn)行相應(yīng)的操作 if 條件 then 操作 else 操作 fi 滿足if所指的條件時(shí),進(jìn)行then后的相關(guān)操作,否那么完成else后的相關(guān)操作。 第二章 1.作業(yè):在一次應(yīng)用業(yè)務(wù)處理過程

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

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

10、網(wǎng)絡(luò)聯(lián)機(jī)方式以上述幾種輸入輸出方式為根底。當(dāng)用戶通過計(jì)算機(jī)網(wǎng)絡(luò)中的某一臺(tái)設(shè)備對(duì)計(jì)算機(jī)網(wǎng)絡(luò)中的另一臺(tái)主機(jī)進(jìn)行輸入輸出操作 時(shí),就構(gòu)成了網(wǎng)絡(luò)聯(lián)機(jī)方式。 4. 系統(tǒng)調(diào)用 大小 指令的執(zhí)行和中斷 啟動(dòng)電源一一產(chǎn)生中斷信號(hào)一一觸發(fā) 操作系統(tǒng)的啟動(dòng) 讀人中讀人中斷斷 姓理指姓理指 系統(tǒng)調(diào)用大致可分為 6 類: (1) 設(shè)備管理:該類系統(tǒng)調(diào)用被用來請(qǐng)求和釋放有關(guān)設(shè)備以及啟動(dòng)設(shè)備操作等。 (2) 文件管理:包括對(duì)文件的讀、寫、創(chuàng)立和刪除等。 (3) 進(jìn)程控制:包括進(jìn)程創(chuàng)立、進(jìn)程執(zhí)行、進(jìn)程撤銷、進(jìn)程等待和執(zhí)行優(yōu)先級(jí)控制等。 (4) 進(jìn)程通信:該系統(tǒng)調(diào)用被用在進(jìn)程之間傳遞消息或符號(hào)。 (5) 存儲(chǔ)管理:包括調(diào)查作

11、業(yè)占據(jù)內(nèi)存區(qū)的大小、獲取作業(yè)占據(jù)內(nèi)存區(qū)的始址等。 (6) 線程管理:包括線程的創(chuàng)立、調(diào)度、執(zhí)行、撤銷等。 系統(tǒng)調(diào)用的實(shí)現(xiàn):當(dāng)用戶使用系統(tǒng)調(diào)用時(shí),產(chǎn)生一條相應(yīng)的指令,處理機(jī)在執(zhí)行到該指令時(shí)發(fā)生相應(yīng)的中斷,并發(fā)出有關(guān)信號(hào)給該處理機(jī) 制。該處理機(jī)制在收到了處理機(jī)發(fā)來的信號(hào)后,啟動(dòng)相關(guān)的處理程序去完成該系統(tǒng)調(diào)用所要求的功能。 陷進(jìn)處理機(jī)構(gòu):在系統(tǒng)中為控制系統(tǒng)調(diào)用效勞的機(jī)構(gòu)稱為陷進(jìn)處理機(jī)構(gòu)。 陷進(jìn)指令:把由于系統(tǒng)調(diào)用引起處理機(jī)中斷的指令稱為陷進(jìn)指令。 第三章 1. 程序的并發(fā)執(zhí)行 程序用來描述計(jì)算機(jī)所完成的獨(dú)立功能,并在時(shí)間上嚴(yán)格地按前后次序相繼地進(jìn)行計(jì)算機(jī)操作序列集合,是一個(gè)靜態(tài)概念。 個(gè)程序由假設(shè)干

12、個(gè)程序段組成,而這些程序段的執(zhí)行必須是順序的,這種程序執(zhí)行的方式就稱為程序的順序執(zhí)行。 程序順序執(zhí)行的特點(diǎn): 1. 順序性 處理機(jī)嚴(yán)格按照程序所規(guī)定的順序執(zhí)行,即每個(gè)操作必須在下一個(gè)操作開始之前結(jié)束。 2. 封閉性 程序一旦開始執(zhí)行,其計(jì)算結(jié)果不受外界的影響,當(dāng)程序的初始條件給定之后,其后的狀態(tài)只能由程序本身確定,即只有本程序才 能改變它。 3. 可再現(xiàn)性 程序執(zhí)行的結(jié)果與初始條件有關(guān),而與執(zhí)行時(shí)間無關(guān)。即只要程序的初始條件相同,它的執(zhí)行結(jié)果是相同的,不管它在什么時(shí)間執(zhí) 行,也不管計(jì)算機(jī)的運(yùn)行速度。 多道程序系統(tǒng)中程序執(zhí)行環(huán)境的變化 執(zhí)行環(huán)境的特點(diǎn): (1) 獨(dú)立性 在多道環(huán)境下執(zhí)行的每道程序

13、都是邏輯上獨(dú)立的。 (2) 隨機(jī)性 程序和數(shù)據(jù)的輸入和執(zhí)行開始時(shí)間都是隨機(jī)的。 (3) 資源共享 軟硬件資源的有限性導(dǎo)致資源共享。 程序并發(fā)執(zhí)行:假設(shè)干個(gè)程序段同時(shí)在系統(tǒng)中運(yùn)行,這些程序的執(zhí)行在時(shí)間上是重迭的,一個(gè)程序段的執(zhí)行尚未結(jié)束,另一個(gè)程序段的執(zhí)行 已經(jīng)開始,即使這種重迭是很小的,也稱這幾個(gè)程序段是并發(fā)執(zhí)行的。 2 .進(jìn)程:進(jìn)程是一個(gè)程序?qū)δ硞€(gè)數(shù)據(jù)集的執(zhí)行過程,是分配資源的根本單位。 進(jìn)程和程序的區(qū)別與聯(lián)系: 程序是指令的集合,是靜態(tài)的概念。 進(jìn)程是程序在處理機(jī)上的一次執(zhí)行的過程,是動(dòng)態(tài)的概念。程序可以作為軟件資料長期保存。進(jìn) 程是有生命周期的。 進(jìn)程是一個(gè)獨(dú)立的運(yùn)行單位,能與其它進(jìn)程并

14、行(并發(fā))活動(dòng)。而程序那么不是。 進(jìn)程是競爭計(jì)算機(jī)系統(tǒng)有限資源的根本單位,也是進(jìn)行處理機(jī)調(diào)度的根本單位。 不同的進(jìn)程可以包含同一程序,只要該程序所對(duì)應(yīng)的數(shù)據(jù)集不同。 作業(yè)和進(jìn)程的關(guān)系 作業(yè)是用戶需要計(jì)算機(jī)完成某項(xiàng)任務(wù)時(shí)要求計(jì)算機(jī)所做工作的集合。而進(jìn)程那么是已提交完畢程序的執(zhí)行過程的描述,是資源分配的根本單 位。 其主要區(qū)別如下: 作業(yè)是用戶向計(jì)算機(jī)提交任務(wù)的任務(wù)實(shí)體。 一個(gè)作業(yè)可由多個(gè)進(jìn)程組成。 作業(yè)的概念主要用于批處理系統(tǒng)中。 進(jìn)程描述 在系統(tǒng)中一個(gè)進(jìn)程存在:進(jìn)程控制塊 PCB、有關(guān)程序段、數(shù)據(jù)結(jié)構(gòu)集 進(jìn)程控制塊 PCB (Process Control Block) 包含一個(gè)進(jìn)程的描述信息

15、、控制信息及資源信息,有些系統(tǒng)還有進(jìn)程調(diào)度等待所使用的現(xiàn)場保護(hù)區(qū)。 PCB 集中反映一個(gè)進(jìn)程的動(dòng)態(tài)特征 在創(chuàng)立時(shí),建立 PCB,并伴隨進(jìn)程運(yùn)行的全過程,當(dāng)進(jìn)程完成其功能后,系統(tǒng)釋放 PCB,進(jìn)程也隨之消亡 (1) 描述信息 1、 進(jìn)程名或進(jìn)程標(biāo)識(shí)號(hào) name 每個(gè)進(jìn)程都必須有一個(gè)唯一的標(biāo)識(shí)符,可以是字符串,也可以是一個(gè)數(shù)字。 UNIX 系統(tǒng)中就是一個(gè)整型數(shù)。在進(jìn)程創(chuàng)立時(shí)由系統(tǒng)賦予。 2、 用戶名或用戶標(biāo)識(shí)號(hào) 每個(gè)進(jìn)程都隸屬于某個(gè)用戶,用戶名或用戶標(biāo)識(shí)號(hào)有利于資源共享和保護(hù) 3、 家族關(guān)系 process family 有的系統(tǒng)允許一個(gè)進(jìn)程可創(chuàng)立自已的子進(jìn)程,子進(jìn)程還可以創(chuàng)立,一個(gè)進(jìn)程往往處在一

16、個(gè)家族之中,就需要記錄進(jìn)程在家族中位置的 信息。 (2) 控制信息 1、進(jìn)程當(dāng)前狀態(tài) status 說明進(jìn)程當(dāng)前所處的狀態(tài)。 為了管理的方便,系統(tǒng)設(shè)計(jì)時(shí)會(huì)將相同的狀態(tài)的進(jìn)程組成一個(gè)隊(duì)列,如就緒進(jìn)程隊(duì)列,等待進(jìn)程那么要根據(jù)等待的事件組成多個(gè)等待隊(duì)列, 如等待打印機(jī)隊(duì)列、等待磁盤 I/O 完成隊(duì)列等等。 2、 進(jìn)程優(yōu)先級(jí) priority 進(jìn)程的優(yōu)先級(jí)反映進(jìn)程的緊迫程度,通常由用戶指定和系統(tǒng)設(shè)置。 3、 執(zhí)行程序開始地址 start-addr 4、 各種計(jì)時(shí)信息 進(jìn)程占用系統(tǒng)資源的情況,不同的系統(tǒng)的處理差異很大。 5、 通信信息 communication information 是指某個(gè)進(jìn)程在運(yùn)

17、行的過程中要與其它進(jìn)程進(jìn)行通信,該區(qū)記錄有關(guān)進(jìn)程通信方面的信息。 (3) 資源管理信息 包括有關(guān)存儲(chǔ)器的信息、使用輸入、輸出設(shè)備的信息、有關(guān)文件系統(tǒng)的信息: 1、 占用內(nèi)存大小及管理用數(shù)據(jù)結(jié)構(gòu)指針。 2、 在某些復(fù)雜系統(tǒng)中,還有對(duì)換或覆蓋用的有關(guān)信息。 3、 共享程序段大小及起始地址。 4、 輸入輸出設(shè)備的設(shè)備號(hào),所要傳送的數(shù)據(jù)長度、緩沖區(qū)地址、緩沖區(qū)長度及使用設(shè)備的有關(guān)數(shù)據(jù)結(jié)構(gòu)指針等。 5、 指向文件系統(tǒng)的指針及有關(guān)標(biāo)識(shí)等。 (4) 、CPU 現(xiàn)場保護(hù)區(qū) cpustatus 當(dāng)進(jìn)程因某種原因不能繼續(xù)占用 CPU 時(shí)(等待打印機(jī)),釋放 CPU,這時(shí)就要將 CPU 的各種狀態(tài)信息保護(hù)起來,為將

18、來再次得到處理機(jī) 恢復(fù) CPU 的各種狀態(tài),繼續(xù)運(yùn)行。 進(jìn)程上下文實(shí)際上是進(jìn)程執(zhí)行活動(dòng)全過程的靜態(tài)描述。 進(jìn)程上下文是一個(gè)抽象的概念,它包含了每個(gè)進(jìn)程執(zhí)行過的、執(zhí)行時(shí)的以及待執(zhí)行的指令和數(shù)據(jù),在指令存放器、堆棧(存放個(gè)調(diào)用子程 序的返回點(diǎn)和參數(shù)等),狀態(tài)字存放器等中的內(nèi)容。 上文:已執(zhí)行過的進(jìn)程指令和數(shù)據(jù)在相關(guān)存放器與堆棧中的內(nèi)容。 正文:正在執(zhí)行的指令和數(shù)據(jù)在相關(guān)存放器與堆棧中的內(nèi)容。 下文:待執(zhí)行的指令和數(shù)據(jù)在相關(guān)存放器與堆棧中的內(nèi)容。 進(jìn)程上下文切換 進(jìn)程上下文切換發(fā)生在不同的進(jìn)程之間而不是同一個(gè)進(jìn)程內(nèi)。包含 3 個(gè)局部,第一局部為保存被切換進(jìn)程的正文局部(或當(dāng)前狀態(tài))至有 關(guān)存儲(chǔ)區(qū)。第

19、二局部操作系統(tǒng)進(jìn)程中有關(guān)調(diào)度和資源分配程序執(zhí)行,并選取新的進(jìn)程。第三局部那么是將被選中進(jìn)程的原來被保存的正文部 分從有關(guān)存儲(chǔ)區(qū)中選出,并送至有關(guān)存放器或堆棧中,激活被選中進(jìn)程執(zhí)行。 I進(jìn)程乙執(zhí)行 中斷或避程調(diào)用 保存進(jìn)程P il汶至PCB】 系統(tǒng)進(jìn)程執(zhí)行 選取新進(jìn)程尸2,恢夏尸2上下艾 新進(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)中進(jìn)程空間被劃分為兩局部:用戶空間和系統(tǒng)空間。 為了防止用戶程序訪問系統(tǒng)空間,造成

20、訪問出錯(cuò),計(jì)算機(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)度隊(duì)列中的那些進(jìn)程,它們已經(jīng)準(zhǔn)備就緒,一旦得到 CPU,就立即可以運(yùn)行,這些進(jìn)程所取的狀態(tài)為就緒狀態(tài)。 有多個(gè) 進(jìn)程處于此狀態(tài) 執(zhí)行狀態(tài)Running 當(dāng)進(jìn)程由調(diào)度/分派程序分派后,得到 CPU 控制權(quán),它的程序正在運(yùn)行,該進(jìn)程所處的狀態(tài)為執(zhí)行狀態(tài)。 在系統(tǒng)中,總只有一個(gè)進(jìn)程處于 此狀態(tài) 等待狀態(tài)Wait 假設(shè)一個(gè)進(jìn)程正在等待某個(gè)事件的發(fā)生如等待 I/O 的完成,而暫

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

22、現(xiàn)資源共享的目的。 原語:把系統(tǒng)態(tài)下執(zhí)行的某些具有特定功能的程序段稱為原語。 用于進(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)用: createname,priority,start-addr UNIX 系統(tǒng):fork 進(jìn)程撤銷:1該進(jìn)程已完成所要求的功能而正常終止 2由于某種錯(cuò)誤導(dǎo)致非正常終止3祖先進(jìn)程要求撤銷某個(gè)子進(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)

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

24、程喚醒操作一般在中斷處理、進(jìn)程通信等過程中。例如,打印機(jī)完成中斷處理程序, 在完成了打印完成的操作后,就去檢查等待 打印機(jī)的隊(duì)列,假設(shè)不為空,那么調(diào)用進(jìn)程喚醒操作,喚醒一個(gè)或多個(gè)等待打印機(jī)的進(jìn)程。 4. 進(jìn)程互斥 產(chǎn)生互斥的原因:資源共享、進(jìn)程合作 臨界資源:一次僅允許一個(gè)進(jìn)程使用的資源稱為臨界資源。 臨界區(qū):每個(gè)進(jìn)程中訪問臨界資源的那段程序段稱為臨界區(qū)臨界段 。 間接制約:由于共享某公有資源而引起的在臨界區(qū)內(nèi)不允許并發(fā)進(jìn)程交叉執(zhí)行的現(xiàn)象稱為有共享公有資源而造成的對(duì)并發(fā)進(jìn)程執(zhí)行速度的 間接制約,簡稱間接制約。 互斥:在操作系統(tǒng)中,當(dāng)某一進(jìn)程正在訪問某臨界區(qū)時(shí),就不允許其它進(jìn)程進(jìn)入,否那么就會(huì)發(fā)

25、生 后果無法估計(jì)的錯(cuò)誤。我們把進(jìn)程之 間的這種相互制約的關(guān)系稱為互斥。 進(jìn)入臨界區(qū)的準(zhǔn)那么: 1不能假設(shè)各并發(fā)進(jìn)程的相對(duì)執(zhí)行速度; 2 并發(fā)進(jìn)程中的某個(gè)進(jìn)程不在臨界區(qū)時(shí),它不能阻止其他進(jìn)程進(jìn)入臨界區(qū); 3 并發(fā)進(jìn)程中的假設(shè)干個(gè)進(jìn)程申請(qǐng)進(jìn)入界區(qū)時(shí),只能允許一個(gè)進(jìn)程進(jìn)入; 4當(dāng)有假設(shè)干個(gè)進(jìn)程欲進(jìn)入臨界區(qū)時(shí),應(yīng)在有限的時(shí)間內(nèi)使其進(jìn)入。 解決進(jìn)程互斥的最簡單的方法是加鎖。 在系統(tǒng)中為每個(gè)臨界資源設(shè)置一個(gè)鎖位, 1 表示資源可用, 0 表示資源已被占用不可用。 這樣當(dāng)一個(gè)進(jìn)程使用某個(gè)臨界資源之前必須完成以下操作: 1、 考察鎖位的值; 2、 假設(shè)原來的值是為 1 ,將鎖位置為 0占用該資源; 3、 假設(shè)

26、原來值是為 0,該資源已被別人占用,那么轉(zhuǎn)到 1。 當(dāng)進(jìn)程使用完資源后,將鎖位置為 1 :稱為開鎖操作。 5 信號(hào)量與 P、V 原語 信號(hào)量 sem:是一個(gè)整數(shù),在 sem 大于等于零時(shí),代表可供并發(fā)資源使用的資源實(shí)體數(shù),但 sem 小于零時(shí)那么表示正在等待使用臨界區(qū)的 進(jìn)程數(shù)。sem 代表資源的實(shí)體。在實(shí)際應(yīng)用中應(yīng)準(zhǔn)確地說明 sem 的意義和初值。 P 操作: 1 sem 減 1 ; 2 假設(shè) sem 減 1 后仍大于等于 0,那么進(jìn)程繼續(xù)執(zhí)行; 3假設(shè)結(jié)果小于 0,那么該進(jìn)程掛起 注:掛起該進(jìn)程包括:保存調(diào)用進(jìn)程 CPU 現(xiàn)場;置等待狀態(tài);入等待隊(duì)列;轉(zhuǎn)進(jìn)程調(diào)度; $+; ifs = 0

27、算法:V 輸入:8 輸出:無 喚醒等待 S的進(jìn)程; V 操作: (1) s 值加 1; (2) 假設(shè)相加結(jié)果大于 0,進(jìn)程繼續(xù)執(zhí)行; (3) 否那么,喚醒一個(gè)(或多個(gè))等待該信號(hào)燈的進(jìn)程,然后本進(jìn)程繼續(xù)執(zhí)行或轉(zhuǎn)進(jìn)程調(diào)度。 算法:V 輸入:s 輸出,無 f s+; if(s = 0) 喚醒等待 S的進(jìn)程; 當(dāng)一個(gè)進(jìn)程想要進(jìn)入臨界區(qū)時(shí),它必須先執(zhí)行 P 原語操作以將信號(hào)量 sem 減 1。在一個(gè)進(jìn)程完成對(duì)臨界資源的操作后,它必須執(zhí)行 V 原語 操作以釋放它占用的臨界資源。由于信號(hào)量初始值為 1,所以,任一進(jìn)程在執(zhí)行 P 原語操作之后將 sem 的值變?yōu)?0,表示該進(jìn)程可以進(jìn)入 臨界區(qū)。在該進(jìn)程未執(zhí)

28、行 V 原語操作之前如有另一進(jìn)程想進(jìn)入臨界區(qū)的話,它也應(yīng)先執(zhí)行 P 原語操作,從而使 sem 的值變?yōu)?1,因此,第 二個(gè)進(jìn)程將會(huì)被阻塞,直到第一個(gè)進(jìn)程執(zhí)行 V 原語操作之后,sem 的值變?yōu)?0,從而可喚醒第二個(gè)進(jìn)程進(jìn)入就緒隊(duì)列,經(jīng)調(diào)度后進(jìn)入臨界 區(qū)。在第二個(gè)進(jìn)程執(zhí)行完 V 原語操作之后,如果沒有其它進(jìn)程申請(qǐng)進(jìn)入臨界區(qū)的話,那么 sem 又恢復(fù)到初始值。 用信號(hào)量實(shí)現(xiàn)兩并發(fā)進(jìn)程 Pa, Pb 互斥的描述如下: (1) 設(shè) sem 為互斥信號(hào)量,其取值范圍為(1, 0, -1)。 其中 sem=1 標(biāo)志進(jìn)程 Pa, Pb 都未進(jìn)入類名為 S 的臨界區(qū),sem=0 表示進(jìn)程 Pa, Pb 已進(jìn)入

29、類名為 S 的臨界區(qū),sem=-1 表示進(jìn)程 Pa, Pb 中, 一個(gè)進(jìn)程已進(jìn)入臨界區(qū),而另一進(jìn)程等待進(jìn)入臨界區(qū)。 (2) 描述 Pa: P (sem) V(sem): Pb: P (sem) V(sem):: 兩窗酰發(fā)航叱P部值L 0. 假設(shè)皿f 表旅散瞿使用啊概 piint=O ,表示有-世理正在打印機(jī); 新EL瀚T81花使用瞰 EWT解等存使用軸機(jī). r. CA n H pa () P tpri nt), 使用打印帆; v(pri nt) P a mai n () int print=1; cobegin paQ ; Pb(); b 口 C i nt); ,使用打即機(jī); v ( par

30、1 m. ) j P、V 原語實(shí)現(xiàn)互斥的原理 deposit (data): begin local x P( Bufempty); 按FIFO 方式選擇一個(gè)空緩沖區(qū) Buf(x); Buf( dul Buf(x)置滿標(biāo)記 V(BuflhU) end6.進(jìn)程同步 同步:把異步環(huán)境下的一組并發(fā)進(jìn)程,因直接制約而互相發(fā)送消息而進(jìn)行互相合作、互相等待,使得各進(jìn)程按一定的速度執(zhí)行的過程稱 為進(jìn)程間的同步。 用 wait (消息名)表示進(jìn)程等待合作進(jìn)程發(fā)來的消息 . 功能:等待到消息名為 true 的進(jìn)程繼續(xù)執(zhí)行。 用 signal (消息名)表示向合作進(jìn)程發(fā)送消息 功能:發(fā)送消息名,并將其值置為 tr

31、ue。 利用過程 wait 和 singnal 描述計(jì)算進(jìn)程 Pc 和打印進(jìn)程 Pp 的同步關(guān)系 (1) (2) (3) 設(shè)消息名 Bufempty 表示 buf 為空,消息名 Buffull 表示 Buf 中裝滿了數(shù)據(jù)。 初始化 Bufempty=true , Buffull=false.。 描述: Pc A: wait(Bufempty) 計(jì)算 Buf 計(jì)算結(jié)果 Bufempty false signal(Buffull) Goto A Pp B : wait(Bufful) 打印 Buf 中的數(shù)據(jù) 去除 Buf 中的數(shù)據(jù) Bufful false signal(Bufempty) Got

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

33、emove( data) * Begin local x P (BuffuU); 按 FIFO 方式選擇一個(gè)裝滿數(shù)據(jù)的緩沖區(qū) Buf(x) data Buf(x) Buf(x)置空標(biāo)記 V ( Bufempty) End 7.生產(chǎn)者與消費(fèi)者問題 對(duì)于生產(chǎn)者進(jìn)程:產(chǎn)生一個(gè)數(shù)據(jù),當(dāng)要送入緩沖區(qū)時(shí),要檢查緩沖區(qū)是否已滿,假設(shè)未滿,那么可將數(shù)據(jù)送入緩沖區(qū),并通知消費(fèi)者進(jìn)程;否 那么,等待; 對(duì)于消費(fèi)者進(jìn)程:當(dāng)它去取數(shù)據(jù)時(shí),要看緩沖區(qū)中是否有數(shù)據(jù)可取,假設(shè)有那么取走一個(gè)數(shù)據(jù),并通知生產(chǎn)者進(jìn)程,否那么,等待。 這種相互等待,并互通信息就是典型的進(jìn)程同步。 同時(shí),緩沖區(qū)是個(gè)臨界資源,因此,諸進(jìn)程對(duì)緩沖區(qū)的操

34、作程序是一個(gè)共享臨界區(qū),因此,還有個(gè)互斥的問題。 CIEALH; P( avai) P( mutex) 遂數(shù)據(jù)人緩沖區(qū)某輯元 V t ) end re move( data) t b*En PffuU) P( mutex ) 取韁 沖IX中某單元數(shù)據(jù) V ( avail) V ( mutex ) End 口11_ :攜沖區(qū)產(chǎn)品勰日.初!直為 E erppty:雄沖區(qū)可存放產(chǎn)品的空位,初值為n, ITOJt ex I又寸&凝孑P IS 直1火丁 p if-TJffi 送? 1 4 pro ( & 生 4卜產(chǎn)品; 口 (empty): 口(mu Tex): 構(gòu)產(chǎn)品旅入察沖區(qū): v

35、Crnu Les c; V : J con si iine-r。 While 還安約t續(xù)消竟) ( ; p CniLl t . 從緩沖 區(qū)中 取出 個(gè)產(chǎn) 品: v (mu t ex); V : 消赧一令產(chǎn)站, 8. 進(jìn)程通信 通信(communication )意味著進(jìn)程間傳遞數(shù)據(jù)。操作系統(tǒng)可以看作是各種進(jìn)程組成的,這些進(jìn)程都具有各自獨(dú)立的功能,且大多數(shù)都被外 部需要而啟動(dòng)執(zhí)行。 在單機(jī)系統(tǒng)中進(jìn)程的通信有 4 種形式: (1) 主從式 (2) 會(huì)話式 (3) 消息或郵箱機(jī)制 (4) 共享存儲(chǔ)區(qū)方式 會(huì)話方式的特點(diǎn): (1) 使用進(jìn)程在使用效勞進(jìn)程所提供的效勞之前,必須得到效勞進(jìn)程的許可。 (2

36、) 效勞進(jìn)程根據(jù)使用進(jìn)程的要求提供效勞,但對(duì)所提供效勞的控制由效勞進(jìn)程自身完成。 (3) 使用進(jìn)程和效勞進(jìn)程在進(jìn)行通信時(shí)有固定連接關(guān)系。 消息或郵箱機(jī)制的特點(diǎn)是: (1) 只要存在空緩沖區(qū)或郵箱,發(fā)送進(jìn)程就可以發(fā)送消息。 (2) 與會(huì)話系統(tǒng)不同,發(fā)送進(jìn)程和接受進(jìn)程之間無直接聯(lián)接關(guān)系。 (3) 發(fā)送進(jìn)程和接受進(jìn)程之間存在緩沖區(qū)或郵箱用來存放被傳送消息。 郵箱通信就是由發(fā)送進(jìn)程申請(qǐng)建立一與接受進(jìn)程聯(lián)接的郵箱。設(shè)置郵箱的最大好處是發(fā)送進(jìn)程和接受進(jìn)程之間沒有時(shí)間上的限制。 共享存儲(chǔ)區(qū)方式不要求數(shù)據(jù)移動(dòng),兩個(gè)需要互相交換信息的進(jìn)程通過共享數(shù)據(jù)區(qū)的操作到達(dá)互相通信的目的。 9. 死鎖問題 死鎖:指個(gè)并發(fā)進(jìn)

37、程彼此互相等待對(duì)方所擁有的資源,且這些并發(fā)進(jìn)程在得到對(duì)方的資源之前不會(huì)釋放自己所擁有的資源。從而造成大家 都想得到資源而又得不到資源,個(gè)并發(fā)進(jìn)程不能繼續(xù)向前推進(jìn)的狀態(tài)。 死鎖的起因:根本原因在于系統(tǒng)提供的資源個(gè)數(shù)少于并發(fā)進(jìn)程所要求的該類資源數(shù)。 產(chǎn)生死鎖有四個(gè)必要條件: (1) 互斥條件。并發(fā)進(jìn)程所要求和占有的資源是不能同時(shí)被兩個(gè)以上進(jìn)程使用或操作的,進(jìn)程對(duì)他所需要的資源進(jìn)行排他性控制。 (2) 不剝奪條件。進(jìn)程所獲得的資源在未使用完畢之前,不能被其它進(jìn)程強(qiáng)行剝奪,而只能由獲得該資源的進(jìn)程自己釋放。 (3) 局部分配。進(jìn)程每次申請(qǐng)它所需要的一局部資源,在等待新資源的同時(shí),繼續(xù)占用已分配的資源。

38、 (4) 環(huán)路等待條件。存在一種進(jìn)程循環(huán)鏈,鏈中每一個(gè)進(jìn)程已獲得的資源同時(shí)被下一個(gè)進(jìn)程所請(qǐng)求。 只要有一個(gè)條件不滿足,死鎖就可解除。 預(yù)防死鎖 1 .破壞請(qǐng)求與保持條件每個(gè)進(jìn)程在運(yùn)行之前,必須預(yù)先提出自己所要使用的全部資源,調(diào)度程序在該進(jìn)程所需要的資源末得到滿足之 前,不讓它們投入運(yùn)行,并且當(dāng)資源一旦分配給某個(gè)進(jìn)程之后,那么在該進(jìn)程的整個(gè)運(yùn)行期間相應(yīng)資源一直被它占有,這就破壞了產(chǎn)生死 鎖的局部分配條件。 2. 破壞環(huán)路條件 對(duì)系統(tǒng)提供的每一項(xiàng)資源,由系統(tǒng)設(shè)計(jì)者將它們按類型進(jìn)行線性排隊(duì),并賦予不同的序號(hào)。 3. 資源受控動(dòng)態(tài)分配 為了防止死鎖發(fā)生,操作系統(tǒng)必須根據(jù)預(yù)先掌握的關(guān)于資源用法的信息控制

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

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

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

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

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

44、間為: n T=1/n E Ti i=1 帶權(quán)周轉(zhuǎn)時(shí)間 Wi=Ti/Tri Ti 作業(yè)周轉(zhuǎn)時(shí)間 Tri 作業(yè)執(zhí)行時(shí)間 一批作業(yè)的平均帶權(quán)周轉(zhuǎn)時(shí)間為 n W=1/n E Wi i=1 3. 進(jìn)程調(diào)度 進(jìn)程調(diào)度的功能: 用 PCB 塊記錄系統(tǒng)中所有進(jìn)程的執(zhí)行情況 按照一定的調(diào)度算法,選擇一個(gè)處于就緒狀態(tài)的進(jìn)程,給它分配處理機(jī) (這是最重要的功能) 實(shí)施進(jìn)行進(jìn)程上下文的切換 引起進(jìn)程調(diào)度的原因: (1) 正在執(zhí)行的進(jìn)程執(zhí)行完畢。這時(shí),如果不選擇新的就緒進(jìn)程執(zhí)行,將浪費(fèi)處理機(jī)資源。 (2) 執(zhí)行中進(jìn)程自己調(diào)用阻塞原語將自己阻塞起來進(jìn)入睡眠等待狀態(tài)。 (3) 執(zhí)行中進(jìn)程調(diào)用了 P 原語操作,從而因資源缺

45、乏而被阻塞;或調(diào)用了 V 原語激活了等待資源的進(jìn)程隊(duì)列。 (4) 執(zhí)行中進(jìn)程提出了 I/O 請(qǐng)求后被阻塞。 (5) 在分時(shí)系統(tǒng)中時(shí)間片已經(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í)行方式是可剝奪時(shí),還有: (7) 就緒隊(duì)列中的某進(jìn)程的優(yōu)先級(jí)變得高于當(dāng)前執(zhí)行進(jìn)程的優(yōu)先級(jí),從而也將發(fā)生進(jìn)程調(diào)度。 可剝奪方式:即就緒隊(duì)列中一旦有優(yōu)先級(jí)高于當(dāng)前進(jìn)程優(yōu)先級(jí)的進(jìn)程存在時(shí),便立即發(fā)生進(jìn)程調(diào)度,轉(zhuǎn)讓處理機(jī)。 非剝奪方式(不可剝奪方式):即使在就緒隊(duì)列存在有優(yōu)先級(jí)

46、高于當(dāng)前執(zhí)行進(jìn)程時(shí),當(dāng)前進(jìn)程仍將繼續(xù)占有處理機(jī),直到該進(jìn)程因自己調(diào) 度調(diào)用原語操作或、等待 I/O 進(jìn)入阻塞狀態(tài)或時(shí)間片用完時(shí)才重新發(fā)生調(diào)度讓出處理機(jī)。 進(jìn)程調(diào)度性能評(píng)價(jià) (1) 進(jìn)程調(diào)度性能是衡量操作系統(tǒng)性能的一個(gè)重要指標(biāo) (2) 在大多數(shù)情況下,利用測試或模擬系統(tǒng)響應(yīng)時(shí)間的方法來評(píng)價(jià)進(jìn)程調(diào)度的性能 4.調(diào)度算法 先來先效勞(FCFS)算法 將用戶作業(yè)和就緒進(jìn)程按提交順序或變成就緒狀態(tài)的先后排成隊(duì)列,并按照先來先效勞的方式進(jìn)行調(diào)度處理。 優(yōu)點(diǎn):在一般意義下是公平的,即每個(gè)作業(yè)或進(jìn)程都按照它們?cè)陉?duì)列中等待時(shí)間長短來決定它們是否優(yōu)先享受效勞。 缺點(diǎn):對(duì)于那些執(zhí)行時(shí)間較短的作業(yè)或進(jìn)程來說,如果它們

47、在某些執(zhí)行時(shí)間很長的作業(yè)或進(jìn)程之后到達(dá),那么它們等待很長時(shí)間。 (時(shí)間片)輪轉(zhuǎn)法(RR) 算法描述:就緒隊(duì)列按進(jìn)程到達(dá)的時(shí)間來排列。處理機(jī)的時(shí)間被分為固定大小的時(shí)間片。調(diào)度程序總是選擇就緒隊(duì)列中的第一個(gè)進(jìn)程。一 個(gè)執(zhí)行進(jìn)程如果在用完一個(gè)時(shí)間片后還沒有完成其任務(wù),它就自動(dòng)釋放處理機(jī)回到就緒隊(duì)列的末尾重新排隊(duì),等待下一次被調(diào)度。 缺點(diǎn):只能用來分配那些可搶占資源,而且這種算法只能用于進(jìn)程調(diào)度,不能用于作業(yè)調(diào)度(作業(yè)調(diào)度包含了不可搶占資源) 。 時(shí)間片的選取非常重要,時(shí)間片長度的選擇會(huì)直接影響系統(tǒng)開銷和響應(yīng)時(shí)間。如果時(shí)間片長度過短,那么調(diào)度程序剝奪處理機(jī)的次數(shù) 增多,這將使進(jìn)程上下文交換次數(shù)也大大增

48、加,加重了系統(tǒng)開銷。如果時(shí)間片長度選擇過長 (大),大到一個(gè)進(jìn)程足以完成其全部運(yùn)行工作 所需的時(shí)間,那么時(shí)間片輪轉(zhuǎn)法就退化為先來先效勞策略了。最正確的時(shí)間片量值應(yīng)能使分時(shí)用戶得到好的響應(yīng)時(shí)間。 時(shí)間片確實(shí)定 在輪轉(zhuǎn)法中,時(shí)間片長度 q 根據(jù)系統(tǒng)對(duì)響應(yīng)時(shí)間的要求 R 和就緒隊(duì)列中所能容納的最大進(jìn)程數(shù) Nmax 確定的。 q=R/Nmax 一種改良的方法就是每當(dāng)一輪調(diào)度開始時(shí),系統(tǒng)根據(jù)就緒隊(duì)列中當(dāng)前的進(jìn)程數(shù)計(jì)算一次 q,作為新一輪調(diào)度的時(shí)間片。 多級(jí)反應(yīng)輪轉(zhuǎn)法(進(jìn)程調(diào)度) (1) 在時(shí)間片輪轉(zhuǎn)法中設(shè)置三個(gè)就緒隊(duì)列 a. 時(shí)間片完成就緒隊(duì)列 b. 等待結(jié)束就緒隊(duì)列 c. 新進(jìn)程就緒隊(duì)列 (2) 每個(gè)

49、隊(duì)列建立時(shí)按 FCFS 排列,同一隊(duì)列中進(jìn)程的優(yōu)先級(jí)相同,不同隊(duì)列具有不同的優(yōu)先級(jí) 優(yōu)先級(jí)高的隊(duì)列中進(jìn)程的時(shí)間片短,優(yōu)先級(jí)低的隊(duì)列中進(jìn)程的時(shí)間片長。 (3) 進(jìn)程調(diào)度時(shí),先調(diào)度高優(yōu)先級(jí)就緒隊(duì)列中的進(jìn)程,當(dāng)高優(yōu)先級(jí)就緒隊(duì)列為空時(shí)才調(diào)度優(yōu)先級(jí)低的就緒隊(duì)列中的進(jìn)程 (4) 一個(gè)進(jìn)程在執(zhí)行過程中要經(jīng)歷不同的就緒隊(duì)列 優(yōu)先級(jí)法 算法描述:按照某種原那么給作業(yè)或進(jìn)程確定一個(gè)優(yōu)先級(jí),進(jìn)程的就緒隊(duì)列或作業(yè)的后備隊(duì)列按對(duì)象的優(yōu)先級(jí)進(jìn)行排列,高前低后。對(duì)象進(jìn) 入隊(duì)列是插入。當(dāng)調(diào)度發(fā)生時(shí),排列在最前面的進(jìn)程或作業(yè)被調(diào)度。 確定優(yōu)先級(jí)的方法有兩類:動(dòng)態(tài)法和靜態(tài)法 靜態(tài)法是根據(jù)作業(yè)或進(jìn)程的靜態(tài)特性,在作業(yè)或進(jìn)程開始執(zhí)行

50、之前就確定它們的優(yōu)先級(jí),一旦開始執(zhí)行后就不能改變。 動(dòng)態(tài)法:把作業(yè)或進(jìn)程靜態(tài)性和動(dòng)態(tài)性結(jié)合起來確定作業(yè)或進(jìn)程的優(yōu)先級(jí),隨著作業(yè)或進(jìn)程的執(zhí)行過程,優(yōu)先級(jí)不斷變化。 作業(yè)調(diào)度中靜態(tài)優(yōu)先級(jí)確定原那么: (1) 由用戶自己根據(jù)作業(yè)的緊急程度輸入一個(gè)適當(dāng)?shù)膬?yōu)先級(jí) (2) 由系統(tǒng)或操作員根據(jù)作業(yè)類型指定優(yōu)先級(jí)。 (3) 系統(tǒng)根據(jù)作業(yè)要求資源情況確定優(yōu)先級(jí)。 進(jìn)程調(diào)度靜態(tài)優(yōu)先級(jí)確定原那么: (1) 按照進(jìn)程的類型給與不同的優(yōu)先級(jí)。 (2) 將作業(yè)的靜態(tài)優(yōu)先級(jí)作為它所屬進(jìn)程的優(yōu)先級(jí)。 由于在進(jìn)程調(diào)度中靜態(tài)優(yōu)先級(jí)確定方法的缺陷:系統(tǒng)效率低、調(diào)度性能不高,所以多采用動(dòng)態(tài)的方法確定優(yōu)先級(jí)。 進(jìn)程調(diào)度動(dòng)態(tài)優(yōu)先級(jí)確定原

51、那么: (1) 根據(jù)進(jìn)程占有 CPU 時(shí)間的長短來決定。一個(gè)進(jìn)程占有處理機(jī)時(shí)間越長,那么在被阻塞后再次獲得調(diào)度的優(yōu)先級(jí)越低,反之,獲得 調(diào)度的可能性越大 (2) 根據(jù)就緒進(jìn)程等待 CPU 的時(shí)間長短來決定。一個(gè)就緒進(jìn)程在就緒隊(duì)列中等待的時(shí)間越長,那么它獲得調(diào)度選中的優(yōu)先級(jí)就越高。 最短作業(yè)優(yōu)先法 SJF(作業(yè)調(diào)度) 選擇那些估計(jì)需要執(zhí)行時(shí)間最短的作業(yè)投入執(zhí)行,為它們創(chuàng)立進(jìn)程和分配資源。 優(yōu)點(diǎn):可使得系統(tǒng)在同一時(shí)間內(nèi)處理的作業(yè)個(gè)數(shù)最多,從而吞吐量也就大于其他調(diào)度方式。 缺點(diǎn):對(duì)于一個(gè)不斷有作業(yè)進(jìn)入的批處理系統(tǒng)來說,最短作業(yè)優(yōu)先法有可能使得那些長作業(yè)永遠(yuǎn)得不到調(diào)度執(zhí)行的時(shí)機(jī)。 最高響應(yīng)比優(yōu)先法(作

52、業(yè)調(diào)度) 綜合平衡 FCFS 和 SJF,既考慮等待時(shí)間長的作業(yè),也照顧執(zhí)行時(shí)間短的作業(yè)。 響應(yīng)比:R=等待時(shí)間 W+執(zhí)行時(shí)間 T/執(zhí)行時(shí)間 T 優(yōu)點(diǎn):長作業(yè)有時(shí)機(jī)獲得調(diào)度執(zhí)行 缺點(diǎn):同一時(shí)間內(nèi)處理的作業(yè)數(shù)少于最短作業(yè)優(yōu)先法,吞吐量也小于最短作業(yè)優(yōu)先法 調(diào)度前計(jì)算響應(yīng)比,系統(tǒng)開銷增加。 算法評(píng)價(jià) FCFS 算法 入:作業(yè)到達(dá)率; 11 :效勞器主機(jī)的效勞率; 只有當(dāng)入 卬時(shí)系統(tǒng)才是穩(wěn)定的。 n:系統(tǒng)中的平均作業(yè)個(gè)數(shù); R:系統(tǒng)響應(yīng)時(shí)間; P :入/卬,是系統(tǒng)中存在作業(yè)的概率, 1-p 是系統(tǒng)中沒有作業(yè)的概率。 n= P /1- P Little 結(jié)果:門=入 R; R=n/入 FCFS 算法的

53、評(píng)價(jià): R=n/ 入=P /1- P *1/ 入 RR 算法 q:時(shí)間片; k:每個(gè)進(jìn)程平均需要的時(shí)間片數(shù),即該進(jìn)程到達(dá)等待隊(duì)列的次數(shù); 線性優(yōu)先級(jí)法的調(diào)度性能 1/g :平均效勞時(shí)間,那么:1/卬=kx q RR 算法的評(píng)價(jià): 已使用過 k 次時(shí)間片的進(jìn)程的響應(yīng)時(shí)間是: Rk= P /入1-P =1/卬1- P =k x q/1- p FCFS 方式短作業(yè)駐留時(shí)間與長作業(yè)相同,對(duì)短作業(yè)不利。 輪轉(zhuǎn)法所需效勞時(shí)間短的顧客響應(yīng)時(shí)間將會(huì)小于所需效勞時(shí)間長的顧客響應(yīng)時(shí)間。 實(shí)時(shí)調(diào)度算法分類:靜態(tài)表格驅(qū)動(dòng)類、靜態(tài)優(yōu)先級(jí)驅(qū)動(dòng)搶先式調(diào)度算法類、動(dòng)態(tài)方案調(diào)度算法類、盡力而為調(diào)度算法類。 具有代表性的實(shí)時(shí)調(diào)度

54、算法 時(shí)限式調(diào)度法靜態(tài)表格驅(qū)動(dòng)類代表:是一種以滿足用戶要求時(shí)限為調(diào)度原那么的算法。 算法描述:時(shí)限有兩種:處理開始時(shí)限和處理結(jié)束時(shí)限,在實(shí)際中可以使用任一種時(shí)限。 頻率單調(diào)調(diào)度靜態(tài)優(yōu)先級(jí)驅(qū)動(dòng)搶先式調(diào)度算法類代表 :是一種被廣泛用于多周期性實(shí)時(shí)處理的調(diào)度算法。其根本原理是頻率低周期 越長的任務(wù)優(yōu)先級(jí)越低。 第五章 1. 存儲(chǔ)器:能接收數(shù)據(jù)和保存數(shù)據(jù)、而且能根據(jù)命令提供這些數(shù)據(jù)的裝置。 存儲(chǔ)器分成兩類:內(nèi)存儲(chǔ)器簡稱內(nèi)存、主存、物理存儲(chǔ)器外存儲(chǔ)器簡稱外存、輔助存儲(chǔ)器 虛擬存儲(chǔ)器:為用戶提供一種不受物理存儲(chǔ)器結(jié)構(gòu)和容量限制的存儲(chǔ)器的技術(shù)稱為虛擬存儲(chǔ)器,或稱虛擬存儲(chǔ)技術(shù)。虛擬存儲(chǔ)器需要大容 量的外存儲(chǔ)器

55、的支持,或稱物資根底。 程序地址:用戶編程序時(shí)所用的地址或稱邏輯地址 、虛地址,根本單位可與內(nèi)存的根本單位相同,也可以不相同。 程序地址空間邏輯地址空間、 虛地址空間:用戶的程序地址的集合稱為邏輯地址空間, 它的編址總是從 0 開始的,可以是一維線性空間, 也可以是多維空間。 物理地址:把內(nèi)存分成假設(shè)干個(gè)大小相等的存儲(chǔ)單元,每個(gè)單元給一個(gè)編號(hào),這個(gè)編號(hào)稱為內(nèi)存地址物理地址、絕對(duì)地址、實(shí)地址 ,存 儲(chǔ)單元占 8 位,稱作字節(jié)byte。 物理地址空間:物理地址的集合稱為物理地址空間主存地址空間 ,它是一個(gè)一維的線性空間。 安排進(jìn)程的地址方法: 1 按照物理存儲(chǔ)器中的位置賦予實(shí)際物理地址。好處: C

56、PU 執(zhí)行目標(biāo)代碼時(shí)的執(zhí)行速度高。害處:由于物理存儲(chǔ)器的容量限制,能 裝入內(nèi)存并發(fā)執(zhí)行的進(jìn)程數(shù)將會(huì)大大減少,對(duì)于某些較大的進(jìn)程來說,當(dāng)其所要求的總內(nèi)存容量超過內(nèi)存容量時(shí)將會(huì)無法執(zhí)行; 由于編譯程序必須知道內(nèi)存的當(dāng)前空閑局部及其地址, 并且把一個(gè)進(jìn)程的不同程序段連續(xù)的存放起來, 因此編譯程序?qū)⒎浅?fù)雜。 2 編譯鏈接程序把用戶源程序編譯后鏈接到一個(gè)以 0 地址為始地址的線性或多維虛擬地址空間。 2. 存儲(chǔ)管理功能: 地址映射 將程序地址空間中使用的邏輯地址變換成主存中的地址的過程 主存分配按照一定的算法把某一空閑的主存區(qū)分配給作業(yè)或進(jìn)程。 存儲(chǔ)保護(hù) 保證用戶程序(或進(jìn)程映象)在各自的存儲(chǔ)區(qū)域內(nèi)操

57、作,互不干擾。 提供虛擬存儲(chǔ)技術(shù) 使用戶程序的大小和結(jié)構(gòu)不受主存容量和結(jié)構(gòu)的限制,即使在用戶程序比實(shí)際主存容量還要大的情況下,程序也能正 確運(yùn)行. 實(shí)現(xiàn)地址映射有三種方式: 編程或編譯時(shí)確定地址映射關(guān)系 .靜態(tài)地址映射 .動(dòng)態(tài)地址映射 (1) 編程或編譯時(shí)確定地址映射關(guān)系 編程時(shí)確定虛-實(shí)地址的關(guān)系是指在用機(jī)器指令編程時(shí),程序員直接按物理內(nèi)存地址編程,這種程序在系統(tǒng)中是不能做任何移動(dòng)的,否那么 就會(huì)出錯(cuò)。 (2) 靜態(tài)地址映射 靜態(tài)地址映射是在程序裝入內(nèi)存時(shí)完成從邏輯地址到物理地址的轉(zhuǎn)換的。在一些早期的系統(tǒng)中都有一個(gè)裝入程序(加載程序) ,它負(fù)責(zé)將 用戶程序裝入系統(tǒng),并將用戶程序中使用的訪問內(nèi)

58、存的邏輯地址轉(zhuǎn)換成物理地址。 優(yōu)點(diǎn):實(shí)現(xiàn)簡單,不要硬件的支持。 缺點(diǎn):程序一旦裝入內(nèi)存,移動(dòng)就比擬困難。有時(shí)間上的浪費(fèi)。在程序裝入內(nèi)存時(shí)要將所有訪問內(nèi)存的地址轉(zhuǎn)換成物理地址。 必須占用連續(xù)的內(nèi)存空間,很難做到程序和數(shù)據(jù)的共享。 (3) 動(dòng)態(tài)地址映射 動(dòng)態(tài)地址映射是在程序執(zhí)行時(shí)由系統(tǒng)硬件完成從邏輯地址到物理地址的轉(zhuǎn)換的。動(dòng)態(tài)地址映射是由硬件地執(zhí)行時(shí)完成的,程序中不執(zhí)行的 程序就不做地址映射的工作,這樣節(jié)省了 CPU 的時(shí)間。重定位存放器的內(nèi)容由操作系統(tǒng)用特權(quán)指令來設(shè)置,比擬靈活。實(shí)現(xiàn)動(dòng)態(tài)地址 映射必須有硬件的支持,并有一定的執(zhí)行時(shí)間延遲。現(xiàn)代計(jì)算機(jī)系統(tǒng)中都采用動(dòng)態(tài)地址映射技術(shù)。 優(yōu)點(diǎn):可以對(duì)內(nèi)存

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

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

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論