




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
大學(xué)《計(jì)算機(jī)操作系統(tǒng)》期末復(fù)習(xí)知識(shí)點(diǎn)歸納及習(xí)題庫大合集目錄TOC\o"1-5"\h\z\o"CurrentDocument"《計(jì)算機(jī)操作系統(tǒng)》知識(shí)點(diǎn)歸納總結(jié)一 1\o"CurrentDocument"《計(jì)算機(jī)操作系統(tǒng)》知識(shí)點(diǎn)歸納總結(jié)二 29\o"CurrentDocument"《計(jì)算機(jī)操作系統(tǒng)》習(xí)題庫 44\o"CurrentDocument"《計(jì)算機(jī)操作系統(tǒng)》各章期末復(fù)習(xí)題 88《計(jì)算機(jī)操作系統(tǒng)》知識(shí)點(diǎn)歸納總結(jié)一第一章★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)(TimeSharingOS)分時(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í)間分成若于個(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è)用戶同時(shí)使用。用戶獨(dú)立性:對(duì)每個(gè)用戶而言好象獨(dú)占主機(jī)。③實(shí)時(shí)操作系統(tǒng)(real-timeOS)實(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)以windows系列和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)(DistributedSystem)特征:(1)功能的分布(2)堅(jiān)強(qiáng)性(3)高可靠性★3.操作系統(tǒng)的功能處理機(jī)管理、存儲(chǔ)管理(內(nèi)存分配、存儲(chǔ)保護(hù)、內(nèi)存擴(kuò)充)、設(shè)備管理(通道、控制器、輸入輸出設(shè)備的分配與管理,設(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的并行。O通道有專用的I/O處理器,可與CPU并行工作O可實(shí)現(xiàn)I/O聯(lián)機(jī)處理中斷是指CPU在收到外部中斷信號(hào)后,停止原來工作,轉(zhuǎn)去處理該中斷事件,完畢后回到原來斷點(diǎn)繼續(xù)工作。o中斷處理過程:中斷請(qǐng)求,中斷響應(yīng),中斷點(diǎn)(暫停當(dāng)前任務(wù)并保存現(xiàn)場(chǎng)),中斷處理例程,中斷返回(恢復(fù)中斷點(diǎn)的現(xiàn)場(chǎng)并繼續(xù)原有任務(wù)監(jiān)督程序發(fā)展為執(zhí)行系統(tǒng)(executivesystem)>常駐內(nèi)存★5.多道批處理系統(tǒng)特點(diǎn)O多道:內(nèi)存中同時(shí)存放幾個(gè)作業(yè);O宏觀上并行運(yùn)行:都處于運(yùn)行狀態(tài),但都未運(yùn)行完;O微觀上串行運(yùn)行:各作業(yè)交替使用CPU;優(yōu)點(diǎn):O資源利用率高:CPU和內(nèi)存利用率較高;O作業(yè)吞吐量大:?jiǎn)挝粫r(shí)間內(nèi)完成的工作總量大;缺點(diǎn):O用戶交互性差:整個(gè)作業(yè)完成后或中間出錯(cuò)時(shí),才與用戶交互,不利于調(diào)試和修改;O作業(yè)平均周轉(zhuǎn)時(shí)間長(zhǎng):短作業(yè)的周轉(zhuǎn)時(shí)間顯著增長(zhǎng);多道程序系統(tǒng)中,要解決的問題:同步互斥、內(nèi)存不夠、使用效率、內(nèi)存保護(hù).計(jì)算機(jī)硬件:構(gòu)成計(jì)算機(jī)的基本硬件元素:處理器、存儲(chǔ)器、輸入輸出控制與總線、外部設(shè)備。與操作系統(tǒng)相關(guān)的幾種主要的寄存器數(shù)據(jù)寄存器地址寄存器條件碼寄存器程序計(jì)數(shù)器指令計(jì)數(shù)器程序狀態(tài)字PSW中斷現(xiàn)場(chǎng)保護(hù)寄存器過程調(diào)用用堆棧存儲(chǔ)器的訪問速度大小指令的執(zhí)行和中斷操作系統(tǒng)的啟動(dòng)啟動(dòng)電源——產(chǎn)生中斷信號(hào)——觸發(fā)CPU中的一段指令發(fā)現(xiàn)操作系統(tǒng)引導(dǎo)區(qū)位置——導(dǎo)入內(nèi)存執(zhí)行——操作系統(tǒng)程序加載到內(nèi)存制定區(qū)域一初始化硬件…….算法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ù)處理過程中,從輸入開始到輸出結(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è)說明書則體現(xiàn)用戶的控制意圖。★由作業(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è)名、使用語言名、允許最大處理時(shí)間等)、作業(yè)控制描述(控制方式、操作順序、出錯(cuò)處理等)、作業(yè)資源要求描述(要求處理時(shí)間、內(nèi)存空間、外設(shè)類型和數(shù)量、處理及優(yōu)先級(jí)、庫函數(shù)或?qū)嵱贸绦虻龋??!?.如何控制作業(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ī)方式網(wǎng)絡(luò)聯(lián)機(jī)方式以上述幾種輸入輸出方式為基礎(chǔ)。當(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)用系統(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)查作業(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)用服務(wù)的機(jī)構(gòu)稱為陷進(jìn)處理機(jī)構(gòu)。陷進(jìn)指令:把由于系統(tǒng)調(diào)用引起處理機(jī)中斷的指令稱為陷進(jìn)指令。第三章.程序的并發(fā)執(zhí)行程序用來描述計(jì)算機(jī)所完成的獨(dú)立功能,并在時(shí)間上嚴(yán)格地按前后次序相繼地進(jìn)行計(jì)算機(jī)操作序列集合,是一個(gè)靜態(tài)概念。個(gè)程序由若干個(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í)行的每道程序都是邏輯上獨(dú)立的。(2)隨機(jī)性程序和數(shù)據(jù)的輸入和執(zhí)行開始時(shí)間都是隨機(jī)的。(3)資源共享軟硬件資源的有限性導(dǎo)致資源共享。程序并發(fā)執(zhí)行:若干個(gè)程序段同時(shí)在系統(tǒng)中運(yùn)行,這些程序的執(zhí)行在時(shí)間上是重迭的,一個(gè)程序段的執(zhí)行尚未結(jié)束,另一個(gè)程序段的執(zhí)行已經(jīng)開始,即使這種重迭是很小的,也稱這幾個(gè)程序段是并發(fā)執(zhí)行的。.★.進(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)的概念。程序可以作為軟件資料長(zhǎng)期保存。進(jìn)程是有生命周期的。②進(jìn)程是一個(gè)獨(dú)立的運(yùn)行單位,能與其它進(jìn)程并行(并發(fā))活動(dòng)。而程序則不是。③進(jìn)程是競(jìng)爭(zhēng)計(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(ProcessControlBlock)包含一個(gè)進(jìn)程的描述信息、控制信息及資源信息,有些系統(tǒng)還有進(jìn)程調(diào)度等待所使用的現(xiàn)場(chǎng)保護(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)系processfamily有的系統(tǒng)允許一個(gè)進(jìn)程可創(chuàng)建自己的子進(jìn)程,子進(jìn)程還可以創(chuàng)建,一個(gè)進(jìn)程往往處在一個(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-addr4,各種計(jì)時(shí)信息進(jìn)程占用系統(tǒng)資源的情況,不同的系統(tǒng)的處理差別很大。5、通信信息communicationinformation是指某個(gè)進(jìn)程在運(yùn)行的過程中要與其它進(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ù)長(zhǎng)度、緩沖區(qū)地址、緩沖區(qū)長(zhǎng)度及使用設(shè)備的有關(guān)數(shù)據(jù)結(jié)構(gòu)指針等。5,指向文件系統(tǒng)的指針及有關(guān)標(biāo)識(shí)等。(4)、CPU現(xiàn)場(chǎng)保護(hù)區(qū)cpustatus當(dāng)進(jìn)程因某種原因不能繼續(xù)占用CPU時(shí)(等待打印機(jī)),釋放CPU,這時(shí)就要將CPU的各種狀態(tài)信息保護(hù)起來,為將來再次得到處理機(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ū)。第二部分操作系統(tǒng)進(jìn)程中有關(guān)調(diào)度和資源分配程序執(zhí)行,并選取新的進(jìn)程。第三部分則是將被選中進(jìn)程的原來被保存的正文部分從有關(guān)存儲(chǔ)區(qū)中選出,并送至有關(guān)寄存器或堆棧中,激活被選中進(jìn)程執(zhí)行。|進(jìn)程片執(zhí)行中斷或進(jìn)程調(diào)用保存進(jìn)程修正文至PCB]系統(tǒng)進(jìn)程執(zhí)行選取新進(jìn)程乙,恢復(fù)尸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)空間,造成訪問出錯(cuò),計(jì)算機(jī)通過程序狀態(tài)寄存器等設(shè)置不同的執(zhí)行模式,即用戶模式(用戶態(tài))和系統(tǒng)模式(系統(tǒng)態(tài))來進(jìn)行保護(hù)。.進(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)若一個(gè)進(jìn)程正在等待某個(gè)事件的發(fā)生(如等待I/O的完成),而暫停執(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.進(jìn)程控制:就是系統(tǒng)使用一些具有特定功能的程序段來創(chuàng)建、撤銷進(jìn)程以及完成進(jìn)程各狀態(tài)的轉(zhuǎn)換,從而達(dá)到多進(jìn)程高效率并發(fā)執(zhí)行和協(xié)調(diào)、實(shí)現(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)用:create(name,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)用是:killUNIX系統(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)一個(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)程喚醒操作一般在中斷處理、進(jìn)程通信等過程中。例如,打印機(jī)完成中斷處理程序,在完成了打印完成的操作后,就去檢查等待打印機(jī)的隊(duì)列,若不為空,則調(diào)用進(jìn)程喚醒操作,喚醒一個(gè)(或多個(gè))等待打印機(jī)的進(jìn)程。.進(jìn)程互斥產(chǎn)生互斥的原因:資源共享、進(jìn)程合作★臨界資源:一次僅允許一個(gè)進(jìn)程使用的資源稱為臨界資源?!锱R界區(qū):每個(gè)進(jìn)程中訪問臨界資源的那段程序段稱為臨界區(qū)(臨界段)。間接制約:由于共享某公有資源而引起的在臨界區(qū)內(nèi)不允許并發(fā)進(jìn)程交叉執(zhí)行的現(xiàn)象稱為有共享公有資源而造成的對(duì)并發(fā)進(jìn)程執(zhí)行速度的間接制約,簡(jiǎn)稱間接制約?!锘コ猓涸诓僮飨到y(tǒng)中,當(dāng)某一進(jìn)程正在訪問某臨界區(qū)時(shí),就不允許其它進(jìn)程進(jìn)入,否則就會(huì)發(fā)生(后果)無法估計(jì)的錯(cuò)誤。我們把進(jìn)程之間的這種相互制約的關(guān)系稱為互斥。進(jìn)入臨界區(qū)的準(zhǔn)則:⑴不能假設(shè)各并發(fā)進(jìn)程的相對(duì)執(zhí)行速度;(2)并發(fā)進(jìn)程中的某個(gè)進(jìn)程不在臨界區(qū)時(shí),它不能阻止其他進(jìn)程進(jìn)入臨界區(qū);(3)并發(fā)進(jìn)程中的若干個(gè)進(jìn)程申請(qǐng)進(jìn)入界區(qū)時(shí),只能允許一個(gè)進(jìn)程進(jìn)入;(4)當(dāng)有若干個(gè)進(jìn)程欲進(jìn)入臨界區(qū)時(shí),應(yīng)在有限的時(shí)間內(nèi)使其進(jìn)入。解決進(jìn)程互斥的最簡(jiǎn)單的辦法是加鎖。在系統(tǒng)中為每個(gè)臨界資源設(shè)置一個(gè)鎖位,1表示資源可用,0表示資源已被占用(不可用)。這樣當(dāng)一個(gè)進(jìn)程使用某個(gè)臨界資源之前必須完成下列操作:1、考察鎖位的值;2、若原來的值是為“1”,將鎖位置為“0”(占用該資源);3、若原來值是為“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的意義和初值?!颬操作:sem減1;(2)若sem減1后仍大于等于0,則進(jìn)程繼續(xù)執(zhí)行;(3)若結(jié)果小于0,則該進(jìn)程掛起。注:掛起該進(jìn)程包括:保留調(diào)用進(jìn)程CPU現(xiàn)場(chǎng);置“等待”狀態(tài);入等待隊(duì)列;轉(zhuǎn)進(jìn)程調(diào)度;算法:V輸入:s輸出:無(s++;if(s<=0)喚醒等待S的進(jìn)程;
V操作:s值力口1;(2)若相加結(jié)果大于0,進(jìn)程繼續(xù)執(zhí)行;(3)否則,喚醒一個(gè)(或多個(gè))等待該信號(hào)燈的進(jìn)程,然后本進(jìn)程繼續(xù)執(zhí)行或轉(zhuǎn)進(jìn)程調(diào)度?!颬、★P、V原語實(shí)現(xiàn)互斥的原理輸入:s輸出:無{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)?,表示該進(jìn)程可以進(jìn)入臨界區(qū)。在該進(jìn)程未執(zhí)行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)?,從而可喚醒第二個(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互斥的描述如下:設(shè)sem為互斥信號(hào)量,其取值范圍為(1,0,-1)。其中sem=l標(biāo)志進(jìn)程Pa,Pb都未進(jìn)入類名為S的臨界區(qū),sem=0表示進(jìn)程Pa,Pb已進(jìn)入類名為S的臨界區(qū),sem=-l表示進(jìn)程Pa,Pb中,一個(gè)進(jìn)程已進(jìn)入臨界區(qū),而另一進(jìn)程等待進(jìn)入臨界區(qū)。描述Pa:
P(sem)<S>V(sem):PbP(sem)<S>V(sem):Pb:P(sem)<S>V(sem)::mainO{intprint=l;cobeginpa();pb();麗懂麟發(fā)財(cái)時(shí),pmt值1、0.-1.若pxint*罰沒有進(jìn)程使用腳機(jī);苦pnnt=0,表示有一個(gè)進(jìn)程正在使用打印業(yè)若pnnt=-l,表示有一進(jìn)程正在使掰腳機(jī),還有一個(gè)進(jìn)程箱使用腳機(jī).p(print);使用打印機(jī);vp(print);使用打印機(jī);v(print),使用打EJJ機(jī)v(parxnt),6.進(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ā)送消息名,并將其值置為true。利用過程wait和singnal描述計(jì)算進(jìn)程Pc和打印進(jìn)程Pp的同步關(guān)系(1)設(shè)消息名Bufempty表示buf為空,消息名Buffull表示Buf中裝滿了數(shù)據(jù)。(2)初始化Bufempty=true?BufTull=false.o(3)描述:PcsA;wait(Bufempty)計(jì)算Bui 計(jì)算結(jié)果Bufempty*— falsesignal(Buffull)GotoAPpsB:wait(Bufful)打印Buf中的數(shù)據(jù)清除Buf中的數(shù)據(jù)Buffill- falsesignal(Bufempty)GotoB★私有信號(hào)量(privateSemaphore):進(jìn)程同步的信號(hào)量只與制約進(jìn)程及被制約進(jìn)程有關(guān)而不是與整組并發(fā)進(jìn)程有關(guān)。因此該信號(hào)量稱為私有信號(hào)量?!镉肞,V原語操作實(shí)現(xiàn)同步首先,為各并發(fā)進(jìn)程設(shè)置私有信號(hào)量,然后,為私有信號(hào)量賦初值,最后,利用P,V原語和私有信號(hào)量規(guī)定各進(jìn)程的執(zhí)行順序。例:設(shè)進(jìn)程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ù)時(shí)調(diào)用過程remove(data),且數(shù)據(jù)的發(fā)送和接受過程滿足如下條件:~~—Bufl——Buf2—―…一一Bufz——Bufh—―(1)在Pa:deposit(data):beginlocalxP(Bufempty);按FIFO方式選擇一個(gè)空緩沖區(qū)Buf(x);Buf(x)-datBuf(x)置滿標(biāo)記V(BuflbU)endPB:remove(data):BeginlocalxP(Buffull);按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ù)據(jù)送入緩沖區(qū),并通知消費(fèi)者進(jìn)程;否則,等待;對(duì)于消費(fèi)者進(jìn)程:當(dāng)它去取數(shù)據(jù)時(shí),要看緩沖區(qū)中是否有數(shù)據(jù)可取,若有則取走一個(gè)數(shù)據(jù),并通知生產(chǎn)者進(jìn)程,否則,等待。這種相互等待,并互通信息就是典型的進(jìn)程同步。同時(shí),緩沖區(qū)是個(gè)臨界資源,因此,諸進(jìn)程對(duì)緩沖區(qū)的操作程序是一個(gè)共享臨界區(qū),因此,還有個(gè)互斥的問題。
deposit(data):beginP(avail)P(mutex)送數(shù)據(jù)入緩沖區(qū)某單元V(ftill)V(mutex)endremove(data):beginP(ftill)P(mutex)取緩沖區(qū)中某單元數(shù)據(jù)V(avail)V(mutex)Endfull:緩沖區(qū)產(chǎn)品數(shù)目,初值為O;urapty:緩沖區(qū)可存放產(chǎn)品的立位,初值為XI.mutex:對(duì)鑲沖區(qū)互斥信號(hào)火丁.初使力1?producer"。consumer*()((while 產(chǎn)未完)while(坯要繼續(xù)消費(fèi)>{{--?P(full).生* G產(chǎn)品;p(mutex);p(empty);從緩沖區(qū)中取出一個(gè)產(chǎn)品;p(mutex),v(mut.ex);格產(chǎn)品放入緩沖區(qū);v(empty),v(mutex),消費(fèi)一個(gè)產(chǎn)品;v(full).???;}}}}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)程在使用服務(wù)進(jìn)程所提供的服務(wù)之前,必須得到服務(wù)進(jìn)程的許可。⑵服務(wù)進(jìn)程根據(jù)使用進(jìn)程的要求提供服務(wù),但對(duì)所提供服務(wù)的控制由服務(wù)進(jìn)程自身完成。(3)使用進(jìn)程和服務(wù)進(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.死鎖問題死鎖:指?jìng)€(gè)并發(fā)進(jìn)程彼此互相等待對(duì)方所擁有的資源,且這些并發(fā)進(jìn)程在得到對(duì)方的資源之前不會(huì)釋放自己所擁有的資源。從而造成大家都想得到資源而又得不到資源,個(gè)并發(fā)進(jìn)程不能繼續(xù)向前推進(jìn)的狀態(tài)?!锼梨i的起因:根本原因在于系統(tǒng)提供的資源個(gè)數(shù)少于并發(fā)進(jìn)程所要求的該類資源數(shù)?!锂a(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ù)占用已分配的資源。(4)環(huán)路等待條件。存在一種進(jìn)程循環(huán)鏈,鏈中每一個(gè)進(jìn)程已獲得的資源同時(shí)被下一個(gè)進(jìn)程所請(qǐng)求。只要有一個(gè)條件不滿足,死鎖就可解除。預(yù)防死鎖.破壞“請(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)生死鎖的部分分配條件。.破壞環(huán)路條件對(duì)系統(tǒng)提供的每一項(xiàng)資源,由系統(tǒng)設(shè)計(jì)者將它們按類型進(jìn)行線性排隊(duì),并賦予不同的序號(hào)。.資源受控動(dòng)態(tài)分配為了避免死鎖發(fā)生,操作系統(tǒng)必須根據(jù)預(yù)先掌握的關(guān)于資源用法的信息控制資源分配,使得共同進(jìn)展路徑的下一步不致于進(jìn)入危險(xiǎn)區(qū),即只要有產(chǎn)生死鎖的可能性,就避免把一種資源分配給一個(gè)進(jìn)程。死鎖的檢測(cè)和恢復(fù).資源剝奪法(1)還原算法。即恢復(fù)計(jì)算結(jié)果和狀態(tài)。(2)建立檢查點(diǎn)主要是用來恢復(fù)分配前的狀態(tài)。.撤消進(jìn)程法按一定的順序中止進(jìn)程序列,直至已釋放到有足夠的資源來完成剩下的資源為止。第四章.一個(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),輸入管理系統(tǒng)不斷地將作業(yè)輸入到外存中對(duì)應(yīng)部分(或稱輸入井,即專門用來存放待處理作業(yè)信息的一組外存分區(qū))。若一個(gè)作業(yè)的全部信息已全部被輸入進(jìn)輸入井,那么,在它還未被調(diào)度去執(zhí)行之前,該作業(yè)處于收容狀態(tài)。作業(yè)調(diào)度程序從后備作業(yè)中選取若干作業(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)行選擇,給選出的作業(yè)分配內(nèi)存、輸入輸出設(shè)備等必要的資源,并建立相應(yīng)的根程序,以使該作業(yè)的進(jìn)程獲得競(jìng)爭(zhēng)處理機(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)樵诜謺r(shí)和實(shí)時(shí)系統(tǒng)中,為了縮短響應(yīng)時(shí)間或?yàn)榱藵M足用戶需求的截止時(shí)間,作業(yè)不是建立在外存中,而是直接建立在內(nèi)存中。.作業(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):對(duì)所有作業(yè)應(yīng)該是公平合理的。應(yīng)使設(shè)備有高的利用率。每天執(zhí)行盡可能多的作業(yè)有快的響應(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-TsiTei為作業(yè)i的完成時(shí)間,Tsi為作業(yè)的提交時(shí)間一個(gè)作業(yè)的周轉(zhuǎn)時(shí)間說明了該作業(yè)在系統(tǒng)內(nèi)停留的時(shí)間,包含兩部分:一是等待時(shí)間;二為執(zhí)行時(shí)間Ti=Twi+TriTwi主要是指作業(yè)i由后備狀態(tài)到執(zhí)行狀態(tài)的等待時(shí)間,它不包括作業(yè)進(jìn)入執(zhí)行狀態(tài)后的等待時(shí)間.★一批作業(yè)的平均周轉(zhuǎn)時(shí)間為:nT==l/nETii=l★帶權(quán)周轉(zhuǎn)時(shí)間Tri作業(yè)執(zhí)行時(shí)間Wi=Ti/Tri TiTri作業(yè)執(zhí)行時(shí)間★一批作業(yè)的平均帶權(quán)周轉(zhuǎn)時(shí)間為W=l/nEWii=l3.進(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ī)資源。執(zhí)行中進(jìn)程自己調(diào)用阻塞原語將自己阻塞起來進(jìn)入睡眠等待狀態(tài)。執(zhí)行中進(jìn)程調(diào)用了P原語操作,從而因資源不足而被阻塞;或調(diào)用了V原語激活了等待資源的進(jìn)程隊(duì)列。執(zhí)行中進(jìn)程提出了I/O請(qǐng)求后被阻塞。(5)在分時(shí)系統(tǒng)中時(shí)間片已經(jīng)用完。在執(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í),還有:就緒隊(duì)列中的某進(jìn)程的優(yōu)先級(jí)變得高于當(dāng)前執(zhí)行進(jìn)程的優(yōu)先級(jí),從而也將發(fā)生進(jìn)程調(diào)度??蓜儕Z方式:即就緒隊(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í)高于當(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ù)情況下,利用測(cè)試或模擬系統(tǒng)響應(yīng)時(shí)間的方法來評(píng)價(jià)進(jìn)程調(diào)度的性能★4.調(diào)度算法①先來先服務(wù)(FCFS)算法將用戶作業(yè)和就緒進(jìn)程按提交順序或變成就緒狀態(tài)的先后排成隊(duì)列,并按照先來先服務(wù)的方式進(jìn)行調(diào)度處理。優(yōu)點(diǎn):在一般意義下是公平的,即每個(gè)作業(yè)或進(jìn)程都按照它們?cè)陉?duì)列中等待時(shí)間長(zhǎng)短來決定它們是否優(yōu)先享受服務(wù)。缺點(diǎn):對(duì)于那些執(zhí)行時(shí)間較短的作業(yè)或進(jìn)程來說,如果它們?cè)谀承﹫?zhí)行時(shí)間很長(zhǎng)的作業(yè)或進(jìn)程之后到達(dá),則它們等待很長(zhǎng)時(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í)間片長(zhǎng)度的選擇會(huì)直接影響系統(tǒng)開銷和響應(yīng)時(shí)間。如果時(shí)間片長(zhǎng)度過短,則調(diào)度程序剝奪處理機(jī)的次數(shù)增多,這將使進(jìn)程上下文交換次數(shù)也大大增加,加重了系統(tǒng)開銷。如果時(shí)間片長(zhǎng)度選擇過長(zhǎng)(大),大到一個(gè)進(jìn)程足以完成其全部運(yùn)行工作所需的時(shí)間,那么時(shí)間片輪轉(zhuǎn)法就退化為先來先服務(wù)策略了。最佳的時(shí)間片量值應(yīng)能使分時(shí)用戶得到好的響應(yīng)時(shí)間。時(shí)間片的確定在輪轉(zhuǎn)法中,時(shí)間片長(zhǎng)度q根據(jù)系統(tǒng)對(duì)響應(yīng)時(shí)間的要求R和就緒隊(duì)列中所能容納的最大進(jìn)程數(shù)Nmax確定的。 q=R/Nmax一種改進(jìn)的方法就是每當(dāng)一輪調(diào)度開始時(shí),系統(tǒng)根據(jù)就緒隊(duì)列中當(dāng)前的進(jìn)程數(shù)計(jì)算一次q,作為新一輪調(diào)度的時(shí)間片。③多級(jí)反饋輪轉(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è)隊(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í)間片長(zhǎng)。(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í)行之前就確定它們的優(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í)確定原則:根據(jù)進(jìn)程占有CPU時(shí)間的長(zhǎng)短來決定。一個(gè)進(jìn)程占有處理機(jī)時(shí)間越長(zhǎng),則在被阻塞后再次獲得調(diào)度的優(yōu)先級(jí)越低,反之,獲得調(diào)度的可能性越大根據(jù)就緒進(jìn)程等待CPU的時(shí)間長(zhǎng)短來決定。一個(gè)就緒進(jìn)程在就緒隊(duì)列中等待的時(shí)間越長(zhǎng),則它獲得調(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)先法有可能使得那些長(zhǎng)作業(yè)永遠(yuǎn)得不到調(diào)度執(zhí)行的機(jī)會(huì)。⑥最高響應(yīng)比優(yōu)先法(作業(yè)調(diào)度)綜合平衡FCFS和SJF,既考慮等待時(shí)間長(zhǎng)的作業(yè),也照顧執(zhí)行時(shí)間短的作業(yè)。響應(yīng)比:R=(等待時(shí)間W+執(zhí)行時(shí)間T)/執(zhí)行時(shí)間T優(yōu)點(diǎn):長(zhǎng)作業(yè)有機(jī)會(huì)獲得調(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算法A:作業(yè)到達(dá)率;P:服務(wù)器(主機(jī))的服務(wù)率;只有當(dāng)人<口時(shí)系統(tǒng)才是穩(wěn)定的。n:系統(tǒng)中的平均作業(yè)個(gè)數(shù);R:系統(tǒng)響應(yīng)時(shí)間;P:入/U,是系統(tǒng)中存在作業(yè)的概率,LP是系統(tǒng)中沒有作業(yè)的概率。n=P/(I-P)Little結(jié)果:n=入R;R=n/A.FCFS算法的評(píng)價(jià):R=n/X=p/(1-p)*1/XRR算法q:時(shí)間片;k:每個(gè)進(jìn)程平均需要的時(shí)間片數(shù),即該進(jìn)程到達(dá)等待隊(duì)列的次數(shù);線性優(yōu)先級(jí)法的調(diào)度性能1/U:平均服務(wù)時(shí)間,貝!I:l/u=kXqRR算法的評(píng)價(jià):已使用過k次時(shí)間片的進(jìn)程的響應(yīng)時(shí)間是:R(k)=P7(X(1.p))=l/(U(l-P))=kXq/(l-p)FCFS方式短作業(yè)駐留時(shí)間與長(zhǎng)作業(yè)相同,對(duì)短作業(yè)不利。輪轉(zhuǎn)法所需服務(wù)時(shí)間短的顧客響應(yīng)時(shí)間將會(huì)小于所需服務(wù)時(shí)間長(zhǎng)的顧客響應(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)計(jì)劃調(diào)度算法類、盡力而為調(diào)度算法類。具有代表性的實(shí)時(shí)調(diào)度算法時(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)度算法。其基本原理是頻率低(周期越長(zhǎng))的任務(wù)優(yōu)先級(jí)越低。第五章.存儲(chǔ)器:能接收數(shù)據(jù)和保存數(shù)據(jù)、而且能根據(jù)命令提供這些數(shù)據(jù)的裝置。存儲(chǔ)器分成兩類:內(nèi)存儲(chǔ)器(簡(jiǎn)稱內(nèi)存、主存、物理存儲(chǔ)器)外存儲(chǔ)器(簡(jiǎn)稱外存、輔助存儲(chǔ)器)虛擬存儲(chǔ)器:為用戶提供一種不受物理存儲(chǔ)器結(jié)構(gòu)和容量限制的存儲(chǔ)器的技術(shù)稱為虛擬存儲(chǔ)器,或稱虛擬存儲(chǔ)技術(shù)。虛擬存儲(chǔ)器需要大容量的外存儲(chǔ)器的支持,或稱物資基礎(chǔ)。程序地址:用戶編程序時(shí)所用的地址(或稱邏輯地址、虛地址),基本單位可與內(nèi)存的基本單位相同,也可以不相同。程序地址空間(邏輯地址空間、虛地址空間):用戶的程序地址的集合稱為邏輯地址空間,它的編址總是從0開始的,可以是一維線性空間,也可以是多維空間。物理地址:把內(nèi)存分成若干個(gè)大小相等的存儲(chǔ)單元,每個(gè)單元給一個(gè)編號(hào),這個(gè)編號(hào)稱為內(nèi)存地址(物理地址、絕對(duì)地址、實(shí)地址),存儲(chǔ)單元占8位,稱作字節(jié)(byte)。物理地址空間:物理地址的集合稱為物理地址空間(主存地址空間),它是一個(gè)一維的線性空間。安排進(jìn)程的地址方法:(1)按照物理存儲(chǔ)器中的位置賦予實(shí)際物理地址。好處:CPU執(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地址為始地址的線性或多維虛擬地址空間。.存儲(chǔ)管理功能:★地址映射將程序地址空間中使用的邏輯地址變換成主存中的地址的過程主存分配按照一定的算法把某一空閑的主存區(qū)分配給作業(yè)或進(jìn)程。存儲(chǔ)保護(hù)保證用戶程序(或進(jìn)程映象)在各自的存儲(chǔ)區(qū)域內(nèi)操作,互不干擾。提供虛擬存儲(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)存的邏輯地址轉(zhuǎn)換成物理地址。優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎ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í)間o重定位寄存器的內(nèi)容由操作系統(tǒng)用特權(quán)指令來設(shè)置,比較靈活。實(shí)現(xiàn)動(dòng)態(tài)地址映射必須有硬件的支持,并有一定的執(zhí)行時(shí)間延遲?,F(xiàn)代計(jì)算機(jī)系統(tǒng)中都采用動(dòng)態(tài)地址映射技術(shù)。優(yōu)點(diǎn):可以對(duì)內(nèi)存進(jìn)行非連續(xù)分配,動(dòng)態(tài)重定位提供了實(shí)現(xiàn)虛擬存儲(chǔ)器的基礎(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ū).內(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)存,而把等待事件已發(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ù)測(cè)在不遠(yuǎn)的將來會(huì)訪問到的哪些程序段和數(shù)據(jù)段,并在它們?cè)L問前調(diào)入。.內(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)存中放置信息的區(qū)域(或位置),即如何在若干個(gè)空閑區(qū)中選擇一個(gè)或幾個(gè)空閑區(qū)的原則;⑶交換策略 當(dāng)內(nèi)存不足時(shí),決定將某些信息調(diào)出內(nèi)存的策略。(4)調(diào)入策略 外存中的程序段和數(shù)據(jù)段什么時(shí)間按照什么樣的控制方式進(jìn)入內(nèi)存⑸回收策略 回收的時(shí)機(jī),對(duì)所回收的內(nèi)存空閑區(qū)和已存在的內(nèi)存空閑區(qū)的整理。.內(nèi)存信息的共享與保護(hù)常用的存儲(chǔ)保護(hù)有三種。硬件法、軟件法、軟硬件結(jié)合(1)上下界保護(hù)(常用的硬件保護(hù)法)上界寄存器存放程序裝入內(nèi)存后的開始地址(首址)下界寄存器存放程序裝入內(nèi)存后的末地址判別式:上界寄存器W物理地址W下界寄存器(2)保護(hù)鍵法:為每一個(gè)被保護(hù)存儲(chǔ)塊分配一個(gè)單獨(dú)的保護(hù)鍵。在程序狀態(tài)字中則設(shè)置相應(yīng)的保護(hù)鍵開關(guān)字段。(3)界限寄存器與CPU的用戶態(tài)或核心態(tài)工作方式相結(jié)合的保護(hù)方式。用戶態(tài)進(jìn)程只能訪問那些在界限寄存器所規(guī)定范圍內(nèi)的內(nèi)存部分,而核心態(tài)進(jìn)程則可以訪問整個(gè)內(nèi)存地址空間。.分區(qū)存儲(chǔ)管理分區(qū)管理:把內(nèi)存劃分成若干個(gè)大小不等的區(qū)域,除操作系統(tǒng)占用一個(gè)區(qū)域之外,其余由多道環(huán)境下的各并發(fā)進(jìn)程共享。分區(qū)管理基本原理:給每一個(gè)內(nèi)存中的進(jìn)程劃分一塊適當(dāng)大小的存儲(chǔ)區(qū),以連續(xù)存儲(chǔ)各進(jìn)程的數(shù)據(jù)和程序,使各進(jìn)程得以并發(fā)執(zhí)行。按分區(qū)的時(shí)機(jī),分區(qū)管理可以分為固定分區(qū)、動(dòng)態(tài)分區(qū)。(1)固定分區(qū)把內(nèi)存空間分成若干個(gè)大小不等的區(qū)域,稱為分區(qū)。每個(gè)用戶程序(作業(yè)、進(jìn)程)調(diào)入內(nèi)存后,占用其中一個(gè)分區(qū),程序運(yùn)行完成后釋放該分區(qū)。(2)動(dòng)態(tài)分區(qū)系統(tǒng)生成后,操作系統(tǒng)占用內(nèi)存的一部分,剩下的部分作為一個(gè)空閑區(qū),當(dāng)一個(gè)用戶程序(作業(yè)、進(jìn)程)調(diào)入內(nèi)存時(shí),把這個(gè)空閑區(qū)的低地址部分的區(qū)域分配給它,當(dāng)有作業(yè)完成后釋放所占用的存儲(chǔ)區(qū)。在系統(tǒng)運(yùn)行的過程中,系統(tǒng)中形成多個(gè)空閑的不連續(xù)的存儲(chǔ)區(qū),稱主空閑。分區(qū)的分配與回收(1)固定分區(qū)時(shí)的分配和回收當(dāng)用戶程序要裝入執(zhí)行時(shí),通過請(qǐng)求表提出內(nèi)存分配要求和所要求的內(nèi)存空間大小。存儲(chǔ)管理程序根據(jù)請(qǐng)求表查詢分區(qū)說明表,從中找出一個(gè)滿足要求的空閑分區(qū),并將其分配給申請(qǐng)者。當(dāng)進(jìn)程執(zhí)行完畢,不再需要內(nèi)存資源時(shí),管理程序?qū)?duì)應(yīng)的分區(qū)狀態(tài)置為未使用即可。(2)動(dòng)態(tài)分區(qū)時(shí)的分配和回收動(dòng)態(tài)分區(qū)時(shí)的分配與回收主要解決三個(gè)問題:分配空閑區(qū)、更新可用表、合并空閑區(qū)動(dòng)態(tài)分區(qū)時(shí)的分配方法從可用表或自由鏈中尋找空閑區(qū)的方法:首次適應(yīng)算法、最佳適應(yīng)算法、最壞適應(yīng)算法①首次適應(yīng)算法首次適應(yīng)算法的表是按空閑區(qū)首址升序的(即空閑區(qū)表是按空閑區(qū)首址從小到大)方法組織的。分配時(shí)從表首開始,以請(qǐng)求內(nèi)存區(qū)的大小逐個(gè)與空閑區(qū)進(jìn)行比較,找到第一個(gè)滿足要求的空閑后,若空閑區(qū)大小與請(qǐng)求區(qū)的大小相等,則將該空閑區(qū)分配給請(qǐng)求者,并撤消該空閑區(qū)所在表目;若大于請(qǐng)求區(qū),就將該空閑區(qū)的一部分分配給請(qǐng)求者,然后,修改空閑區(qū)的大小和首址。②最佳適應(yīng)算法最佳適應(yīng)算法是將申請(qǐng)者放入與其大小最接近的空閑區(qū)中。切割后的空閑區(qū)最小,若系統(tǒng)中有與申請(qǐng)區(qū)大小相等的空閑區(qū),這種算法肯定能將這種空閑區(qū)分配給申請(qǐng)者。(首次適應(yīng)法則不一定)這種算法最大的缺點(diǎn)是分割后的空閑區(qū)將會(huì)很小,直至無法使用,而造成浪費(fèi)。③最壞適應(yīng)算法為了克服最佳適應(yīng)算法把空閑區(qū)切割得大小的缺點(diǎn),人們提出了一種最壞適應(yīng)算法,即每次分配時(shí),總是將最大的空閑區(qū)切去一部分分配給請(qǐng)求者,其依據(jù)是當(dāng)一個(gè)很大的空閑區(qū)被切割了一部分后可能仍是一個(gè)較大的空閑區(qū)。避免了空閑區(qū)越分越小的問題。(3)動(dòng)態(tài)分區(qū)的分配與回收分配算法中切割空閑區(qū)是從低地址開始的,剩下的部分仍作為一個(gè)空閑區(qū),門限值是切割空閑區(qū)后剩下的區(qū)域若小于門限值,就不切割該空閑區(qū),統(tǒng)統(tǒng)分給申請(qǐng)者。這三種放置算法的優(yōu)劣很難區(qū)分,要具體情況具體分析。例如:某時(shí)刻系統(tǒng)中有三個(gè)空閑區(qū),其大小和首址為:(35KB,100KB)、(12KB,156KB)、(28KB,200KB).有一作業(yè)系列:(JOBE12KB)、(JOB2,30KB)、(JOB3,28KB)
從搜索速度上看,最先適應(yīng)算法具有最佳性能。從回收過程來看,最先適應(yīng)算法也是最佳的。最先適應(yīng)法盡可能地利用了地地址空間,從而保證高地址有較大的空閑區(qū)來放置要求內(nèi)存較多的作業(yè)或進(jìn)程。最佳適應(yīng)法找到的空閑區(qū)是最佳的,最壞適應(yīng)法是基于不留下碎片空閑區(qū)這一點(diǎn)出發(fā)的,它選擇最大的空閑區(qū)來滿足用戶的需求,以期分配后的剩余部分仍能進(jìn)行再分配。分區(qū)存儲(chǔ)管理的優(yōu)缺點(diǎn):優(yōu)點(diǎn):(1)實(shí)現(xiàn)了多個(gè)作業(yè)或進(jìn)程對(duì)內(nèi)存的共享,有助于多道程序設(shè)計(jì),從而提高了系統(tǒng)的資源利用率(2)該方法要求的硬件支持少,管理算法簡(jiǎn)單,因而容易實(shí)現(xiàn)缺點(diǎn):(1)內(nèi)存利用率仍然不高(2)作業(yè)或進(jìn)程的大小受分區(qū)大小控制,除非配合采用覆蓋技術(shù)和交換技術(shù)(3)無法實(shí)現(xiàn)各分區(qū)之間的信息共享覆蓋與交換技術(shù).覆蓋與交換技術(shù)是在多道環(huán)境下用來擴(kuò)充內(nèi)存的兩種方法。覆蓋技術(shù)要求程序員提供一個(gè)清楚地覆蓋結(jié)構(gòu)。即程序員必須完成把一個(gè)程序劃分成不同的程序段,并規(guī)定好它們的執(zhí)行和覆蓋順序的工作。操作系統(tǒng)根據(jù)程序員提供的覆蓋結(jié)構(gòu)來完成程序段之間的覆蓋。交換技術(shù)是指先將內(nèi)存某部分的程序或數(shù)據(jù)寫入外存交換區(qū),再?gòu)耐獯娼粨Q區(qū)中調(diào)入指定的程序或數(shù)據(jù)到內(nèi)存中來,并讓其執(zhí)行的一種內(nèi)存擴(kuò)充技術(shù)。交換技術(shù)不要求程序員給出程序段之間的覆蓋結(jié)構(gòu),交換主要是在進(jìn)程或作業(yè)之間進(jìn)行,覆蓋則主要是在同一個(gè)作業(yè)或進(jìn)程內(nèi)執(zhí)行,覆蓋只能覆蓋那些與覆蓋程序段無關(guān)的程序段。交換進(jìn)程由換入和換出兩個(gè)過程組成。.頁式管理頁式管理的基本原理首先,進(jìn)程虛擬地址空間分成大小相等的頁面,進(jìn)程的虛擬地址變?yōu)轫撎?hào)P與頁內(nèi)地址W組成。內(nèi)存空間也按頁的大小劃分稱片或頁面,這些頁面為系統(tǒng)中的任一進(jìn)程所共享(除去操作系統(tǒng)以外),分頁管理時(shí),用戶進(jìn)程在內(nèi)存空間內(nèi)除了在每個(gè)頁面內(nèi)地址連續(xù)之外,每個(gè)頁面之間不再連續(xù))。采用請(qǐng)求調(diào)頁或預(yù)調(diào)頁技術(shù)實(shí)現(xiàn)內(nèi)外存存儲(chǔ)器的統(tǒng)一管理。頁式虛擬地址變?yōu)閮?nèi)存頁面物理地址:頁式管理把頁式虛擬地址與內(nèi)存頁面物理地址建立一一對(duì)應(yīng)頁表,并用相應(yīng)的硬件地址變換機(jī)構(gòu),來解決離散地址變換問題。頁式存儲(chǔ)管理要解決如下問題:(1)頁式存儲(chǔ)管理系統(tǒng)的地址映射;(2)調(diào)入策略;(3)淘汰策略;(4)放置策略。靜態(tài)頁面管理靜態(tài)頁面管理方法是在作業(yè)或進(jìn)程開始執(zhí)行之前,把該作業(yè)或進(jìn)程的程序段或數(shù)據(jù)全部裝入內(nèi)存的各個(gè)頁面中,并通過頁表和硬件變換地址機(jī)構(gòu)實(shí)現(xiàn)虛擬地址到內(nèi)存物理地址的地址映射。①內(nèi)存頁面分配和回收靜態(tài)頁面管理的第一步是為要求內(nèi)存的作業(yè)或進(jìn)程分配足夠的頁面。系統(tǒng)依靠存儲(chǔ)頁面表、請(qǐng)求表以及頁表來完成內(nèi)存的分配工作。頁表是頁式存儲(chǔ)管理的數(shù)據(jù)結(jié)構(gòu),它包括用戶程序空間的頁面與內(nèi)存塊的對(duì)應(yīng)關(guān)系、頁面的存儲(chǔ)保護(hù)和存取控制方面的信息。最簡(jiǎn)單的頁表是由頁號(hào)和頁面號(hào)組成,頁表在內(nèi)存中占有一塊固定的存儲(chǔ)區(qū),大小由進(jìn)程或作業(yè)的長(zhǎng)度來決定。頁式管理時(shí)每個(gè)進(jìn)程至少擁有一個(gè)頁表。請(qǐng)求表用來確定作業(yè)或進(jìn)程的虛擬空間的各頁在內(nèi)存中的實(shí)際對(duì)應(yīng)位置。系統(tǒng)應(yīng)該知道每個(gè)作業(yè)或進(jìn)程的頁表起始地址和長(zhǎng)度,以進(jìn)行內(nèi)存分配和地址變換。請(qǐng)求表中還應(yīng)該包括每個(gè)進(jìn)程或作業(yè)所請(qǐng)求的頁面數(shù)。存儲(chǔ)頁表指出內(nèi)存各頁面是否已被分配出去,以及未分配頁面的總數(shù)。通常有兩種記錄空閑存儲(chǔ)塊的方法:位圖法和鏈表法。位圖法:在內(nèi)存中劃分一塊固定區(qū)域,每個(gè)單元的每個(gè)比特代表一個(gè)頁面,如果該頁面已被分配,則對(duì)應(yīng)比特位置1,否則置0。鏈表法:在空閑頁面鏈中,對(duì)首頁面的第一個(gè)單元和第二個(gè)單元分別放入空閑頁面總數(shù)與指向下一個(gè)空閑頁面的指針。其他頁面的第一個(gè)單元中則分別放入指向下一個(gè)頁面的指針。鏈表法由于使用了空閑頁面本身的單元存放指針,因此不占據(jù)額外的內(nèi)存空間。分配算法:請(qǐng)求表給出進(jìn)程或作業(yè)要求的頁面數(shù),然后,由存儲(chǔ)頁面數(shù)表檢查是否有足夠的空閑頁面,如果沒有,則本次無法分配,如果有則首先分配設(shè)置頁表,并填寫請(qǐng)求表中的相應(yīng)表項(xiàng)后,按一定的查找算法,搜索出所要求的空閑頁面,并將對(duì)應(yīng)的頁面號(hào)填入頁表中。靜態(tài)頁式管理的頁面回收方法:當(dāng)進(jìn)程執(zhí)行完畢時(shí)拆除對(duì)應(yīng)的頁表,并把頁表中的各頁面插入存儲(chǔ)頁面表即可。動(dòng)態(tài)頁式管理動(dòng)態(tài)頁式管理分為請(qǐng)求頁式管理和預(yù)調(diào)入頁式管理。請(qǐng)求式分頁存儲(chǔ)管理與靜態(tài)頁式管理在內(nèi)存塊的分配與回收,存儲(chǔ)保護(hù)某方面都十分相似,不同之處在于地址重定位問題。在請(qǐng)求式分頁存儲(chǔ)管理的地址重定位時(shí),可能會(huì)出現(xiàn)所需頁面不在主存的情況,此時(shí),系統(tǒng)必須解決以下兩個(gè)問題:(1)當(dāng)程序要訪問的某頁不在內(nèi)存時(shí),如何發(fā)現(xiàn)這種缺頁情況?發(fā)現(xiàn)后應(yīng)如何處理?(2)當(dāng)需要把外存上的某個(gè)頁面調(diào)入內(nèi)存時(shí),此時(shí)內(nèi)存中沒有空閑塊應(yīng)怎么辦?怎樣發(fā)現(xiàn)不在內(nèi)存中虛頁的問題可以用擴(kuò)充頁表的方法解決。增設(shè)缺頁中斷位和該頁在外存的首址。缺頁中斷位:該位為“1”,表示此頁已在內(nèi)存;為“0”,表示該頁不在內(nèi)存。當(dāng)此位為0時(shí),會(huì)發(fā)出“缺頁”中斷信號(hào),以求得系統(tǒng)的處理。抖動(dòng)現(xiàn)象:置換算法選擇不當(dāng),有可能產(chǎn)生剛被調(diào)出內(nèi)存的頁又馬上被調(diào)回內(nèi)存,調(diào)回內(nèi)存不久又馬上被調(diào)出內(nèi)存,如此反復(fù)的局面。這使得整個(gè)系統(tǒng)的頁面調(diào)度非常頻繁,以致大部分時(shí)間花費(fèi)在主存和輔存之間的來回調(diào)入調(diào)出上的現(xiàn)象。改變位:該位為“0”時(shí),表示此頁面在內(nèi)存時(shí)數(shù)據(jù)未被修改過;為“1”時(shí),表示被修改過。當(dāng)此頁面被選中為淘汰對(duì)象時(shí),根據(jù)此位的取值來確定是否要將該頁的內(nèi)容進(jìn)行磁盤回寫操作。頁號(hào)頁面號(hào)中斷位外存首址改變位請(qǐng)求頁式管理中的置換算法置換算法在內(nèi)存中沒有空閑頁面時(shí)被調(diào)用。它的目的是選出一個(gè)被淘汰的頁面.把內(nèi)存和外存統(tǒng)一管理的真正目的是把那些被訪問概率非常高的頁存放在內(nèi)存中。因此,置換算法應(yīng)該置換那些被訪問概率最低的頁,將它們移出內(nèi)存。比較常用的置換算法有:隨機(jī)淘汰算法(在系統(tǒng)設(shè)計(jì)人員無法確定哪些頁被訪問的概率較低時(shí),隨機(jī)地選擇某個(gè)用戶的頁面并將其換出)、輪轉(zhuǎn)法RR(輪轉(zhuǎn)法循回?fù)Q出內(nèi)存可用去內(nèi)一個(gè)可以被換出的頁,無論該頁是剛被換進(jìn)或已換進(jìn)內(nèi)存很長(zhǎng)時(shí)間)和先進(jìn)先出法FIFO(選擇內(nèi)存駐留時(shí)間最長(zhǎng)的一頁將其淘汰)。最近最久未用頁面淘汰算法(最近最久未用(LRU)頁面淘汰算法的著眼點(diǎn)是在要進(jìn)行頁面淘汰時(shí),檢查這些淘汰對(duì)象的被訪問時(shí)間,總是把最長(zhǎng)時(shí)間未被訪問過的頁面淘汰出去。這是一種基于程序局部性原理的淘汰算法。也就是說,該算法認(rèn)為如果一個(gè)頁面剛被訪問過,那么不久的將來被訪問的可能性就大;否則被訪問的可能性就小。)最近最少用頁面淘汰算法(最近最少用(LFU)頁面淘汰算法的著眼點(diǎn)是考慮內(nèi)存塊中頁面的使用頻率,它認(rèn)為在一段時(shí)間里使用得最多的頁面,將來用到的可能性就大。因此,當(dāng)要進(jìn)行頁面淘汰時(shí),總是把當(dāng)前使用得最少的頁面淘汰出去。要實(shí)現(xiàn)LFU頁面淘汰算法,應(yīng)該為每個(gè)內(nèi)存中的頁面設(shè)置一個(gè)計(jì)數(shù)器。對(duì)某個(gè)頁面訪問一次,它的計(jì)數(shù)器就加1。經(jīng)過一個(gè)時(shí)間間隔,把所有計(jì)數(shù)器都清0。產(chǎn)生缺頁中斷時(shí),比較每個(gè)頁面計(jì)數(shù)器的值,把計(jì)數(shù)器取值最小的那個(gè)頁面淘汰出去。)最優(yōu)頁面淘汰算法(如果己知一個(gè)作業(yè)的頁面走向,那么要進(jìn)行頁面淘汰時(shí),應(yīng)該把以后不再使用的或在最長(zhǎng)時(shí)間內(nèi)不會(huì)用到的頁面淘汰出去,這樣所引起的缺頁中斷次數(shù)肯定最小,這就是所謂的“最優(yōu)(OPT)頁面淘汰算法”。遺憾的是,OPT的前提是要已知作業(yè)運(yùn)行時(shí)的頁面走向,這是根本不可能做到的,所以O(shè)PT頁面淘汰算法沒有實(shí)用價(jià)值,它只能用來做為一個(gè)標(biāo)桿(或尺度),與別的淘汰算法進(jìn)行比較。如果在相同頁面走向的前提下,某個(gè)淘汰算法產(chǎn)生的缺頁中斷次數(shù)是否接近它。)Belady現(xiàn)象:一般來說,對(duì)于任一作業(yè)或進(jìn)程,如果給它的頁面數(shù)越接近于它所要求的頁面數(shù),則發(fā)生缺頁的次數(shù)會(huì)越小。但是,使用FIFO算法時(shí),有時(shí)會(huì)出現(xiàn)分配的頁面數(shù)增多,缺頁次數(shù)反而增加的奇怪現(xiàn)象。這種現(xiàn)象稱為Belady現(xiàn)象。存儲(chǔ)保護(hù)頁式管理可以為內(nèi)存提供兩種方式的保護(hù)。一種是地址越界保護(hù),另一種是通過頁表控制對(duì)內(nèi)存信息的存取操作方式以提供保護(hù)。地址越界保護(hù)可由地址變換機(jī)構(gòu)中的控制寄存器的值——頁表長(zhǎng)度和所要訪問的虛地址相比較來完成。存取控制保護(hù)的實(shí)現(xiàn)則是在頁表中增加相應(yīng)的保護(hù)位即可?!镯撌焦芾淼膬?yōu)缺點(diǎn)優(yōu)點(diǎn)(1)由于它不要求作業(yè)或進(jìn)程的程序段和數(shù)據(jù)在內(nèi)存中連續(xù)存放,從而有效地解決了碎片問題;(2)動(dòng)態(tài)頁式管理提供了內(nèi)存和外存統(tǒng)一管理的虛存實(shí)現(xiàn)方式,使用戶可以利用的存儲(chǔ)空間大大增加。這既提高了主存的利用率,又有利于組織多道程序執(zhí)行。缺點(diǎn)(1)要求有相應(yīng)的硬件支持。例如地址變換機(jī)構(gòu),缺頁中斷的產(chǎn)生和選擇淘汰頁面等都要求有相應(yīng)的硬件支持。這增加了機(jī)器成本。(2)增加了系統(tǒng)開銷,例如缺頁中斷處理。(3)請(qǐng)求調(diào)頁的算法如選擇不當(dāng),有可能產(chǎn)生抖動(dòng)現(xiàn)象。(4)雖然消除了碎片,但每個(gè)作業(yè)和進(jìn)程的最后一頁總有一部分空間得不到利用。如果頁面較大,則這一部分的損失仍然較大。.段式管理段式存儲(chǔ)管理的基本思想:把程序按內(nèi)容或過程(函數(shù))關(guān)系分成段,每段有自己的名字。一個(gè)用戶作業(yè)或進(jìn)程所包含的段對(duì)應(yīng)于一個(gè)二維線性虛擬空間,也就是一個(gè)二維虛擬存儲(chǔ)器。段式管理程序以段為單位分配內(nèi)存,然后通過地址映射機(jī)構(gòu)把段式虛擬存儲(chǔ)地址轉(zhuǎn)化為內(nèi)存中的實(shí)際地址。和頁式管理一樣,段式管理也采用只把那些經(jīng)常訪問的段駐留內(nèi)存,而把那些在將來一段時(shí)間內(nèi)不被訪問的段放在外存,待需要時(shí)自動(dòng)調(diào)入內(nèi)存的方法實(shí)現(xiàn)二維虛擬存儲(chǔ)器。段式與頁式的比較段式頁式分段由用戶設(shè)計(jì)自己劃分,每段對(duì)應(yīng)的程序模塊,有完整的邏輯意義段面是信息的邏輯單位便于段的共享,執(zhí)行時(shí)按需動(dòng)態(tài)鏈接裝入段長(zhǎng)不等,可動(dòng)態(tài)裝入,有利于新數(shù)據(jù)的增長(zhǎng)二維地址空間:段名、段中地址:段號(hào)、段內(nèi)單元號(hào)管理形式上象頁式,但概念不同分頁用戶看不見,由操作系統(tǒng)為內(nèi)存管理劃分頁面是信息的物理單位頁一般不能共享頁面大小相同,位置不能動(dòng)態(tài)增加一維地址空間往往需要多次缺頁中斷才能把所需的信息完整地調(diào)段式管理的實(shí)現(xiàn)原理段式管理把一個(gè)進(jìn)程的虛地址空間設(shè)計(jì)成二維結(jié)構(gòu),即段號(hào)S與段內(nèi)相對(duì)地址Wo段號(hào)與段號(hào)之間無順序關(guān)系,段的長(zhǎng)度是不固定的。每個(gè)段定義一組邏輯上完整的程序或數(shù)據(jù)。例如,一個(gè)進(jìn)程中的程序和數(shù)據(jù)可被劃分為主程序段、子程序段、數(shù)據(jù)段與工作區(qū)段。每個(gè)段是一個(gè)首地址為零、連續(xù)的一維線性空間。段式管理的內(nèi)存分配與釋放段式管理中以段為單位分配內(nèi)存,每段分配一個(gè)連續(xù)的內(nèi)存區(qū)。由于各段長(zhǎng)度不等,所以這些存儲(chǔ)區(qū)的大小不一。而且,同一進(jìn)程所包含的各段之間不要求連續(xù)。段式管理的內(nèi)存分配和釋放是動(dòng)態(tài)進(jìn)行的,與分區(qū)式管理一樣可以采用最先適應(yīng)法、最佳適應(yīng)法、最壞適應(yīng)法等進(jìn)行空閑區(qū)分配。內(nèi)存回收法也同分區(qū)式管理。當(dāng)內(nèi)存中沒有足夠的空閑區(qū)時(shí),需要淘汰算法?!锒问焦芾淼牡刂纷儞Q由于段式管理只存放部分信息副本在內(nèi)存,而大部分信息在外存中,這必然引起CPU訪問時(shí)發(fā)生所要訪問的段不在內(nèi)存現(xiàn)象。那么CPU如何感知到所要訪問的段不在內(nèi)存而啟動(dòng)中斷處理程序呢?還有,段式虛擬地址屬于一個(gè)二維的虛擬空間,怎樣變換到一個(gè)一維線性物理地址呢?這些都由段式地址變換機(jī)構(gòu)解決。段式管理程序在進(jìn)行初始內(nèi)存分配之前,首先根據(jù)用戶要求的內(nèi)存大小為一個(gè)作業(yè)或進(jìn)程建立一個(gè)段表,以實(shí)現(xiàn)動(dòng)態(tài)地址變換和缺段中斷處理及存儲(chǔ)保護(hù)等。段式管理的地址變換:一般在內(nèi)存中給出一塊固定的區(qū)域放置段表。當(dāng)某進(jìn)程開始執(zhí)行時(shí),管理程序首先把該進(jìn)程的段表始地址放入段表地址寄存器中。通過訪問段表寄存器,管理程序得到該進(jìn)程的段表始地址從而可開始訪問段表。然后,由虛擬地址中的段號(hào)S為索引,查段表。若該段在內(nèi)存,則判斷其存取控制方式是否有錯(cuò)。如果存取控制方式正確,則從段表相應(yīng)表目中查出該段在內(nèi)存的起始地址,并將其和段內(nèi)相對(duì)應(yīng)地址W相加,從而得到實(shí)際內(nèi)存地址。若該段不存在,則產(chǎn)生缺段中斷將CPU控制權(quán)交給內(nèi)存分配程序。內(nèi)存分配程序首先檢查空閑區(qū)鏈,以找到足夠長(zhǎng)度的空閑區(qū)來裝入所需的段。如果內(nèi)存中的可用空閑區(qū)總數(shù)小于所要求的段長(zhǎng)時(shí),則檢查段表中訪問位,以淘汰那些訪問概率低的段并將需要段調(diào)入。段的共享與保護(hù)段式存儲(chǔ)管理可以方便地實(shí)現(xiàn)內(nèi)存信息共享和進(jìn)行有效地內(nèi)存保護(hù).這是因?yàn)槎问前催壿嬕饬x來劃分的,可以按名訪問的緣故。段的共享:在多道環(huán)境下,常常有許多子程序和應(yīng)用程序是被多個(gè)用戶所使用的。特別是在多窗口系統(tǒng)、支持工具等廣泛流行的今天,被共享的程序和數(shù)據(jù)的個(gè)數(shù)和體積都在急劇增加,有時(shí)往往超過用戶程序長(zhǎng)度的許多倍。內(nèi)存只保留一個(gè)副本,供多個(gè)用戶使用,稱為共享。在多道環(huán)境下,由于進(jìn)程的并發(fā)執(zhí)行,一段程序?yàn)槎鄠€(gè)進(jìn)程共享時(shí),有可能出現(xiàn)多次同時(shí)重復(fù)執(zhí)行該段程序的情況。這就要求它在執(zhí)行過程中,該段程序的指令和數(shù)據(jù)不能被修改。共享段進(jìn)行內(nèi)外存交換時(shí),應(yīng)該設(shè)置一個(gè)共享位。顯然,一個(gè)正在被某進(jìn)程使用或即將被某進(jìn)程使用的共享段是不應(yīng)該調(diào)出內(nèi)存的。段的保護(hù):(1)地址越界保護(hù)法(2)存取方式控制保護(hù)法★段式管理的優(yōu)缺點(diǎn)優(yōu)點(diǎn)提供了內(nèi)外存統(tǒng)一管理的虛存實(shí)現(xiàn)。段長(zhǎng)可根據(jù)需要?jiǎng)討B(tài)增長(zhǎng)。便于對(duì)具有完整邏輯功能的信息段進(jìn)行共享。便于實(shí)現(xiàn)動(dòng)態(tài)鏈接。缺點(diǎn)需要更多的硬件支持。處理碎片比較麻煩。給系統(tǒng)管理帶來一定的難度和開銷。每個(gè)段的長(zhǎng)度受內(nèi)存可用區(qū)大小的限制。選擇不恰當(dāng)?shù)奶蕴惴?,可能?huì)產(chǎn)生抖動(dòng)現(xiàn)象。.段頁式管理段頁式管理的基本思想段式管理為用戶提供了一個(gè)二維的虛地址空間,反映了程序的邏輯結(jié)構(gòu),有利于段的動(dòng)態(tài)增長(zhǎng)以及共享和內(nèi)存保護(hù)等,這大大方便了用戶。而分頁管理系統(tǒng)則有效地克服了碎片,提高了存儲(chǔ)器的利用率。從存儲(chǔ)管理的目的來講,主要是方便用戶的程序設(shè)計(jì)和提高內(nèi)存的利用率。那么把段式管理和頁式管理結(jié)合起來讓其互取長(zhǎng)補(bǔ)短不是更好嗎?于是,段頁式管理方式便被提了出來。一般僅用于大型機(jī)。段頁式管理的實(shí)現(xiàn)原理段頁式管理時(shí)的進(jìn)程的虛擬地址空間中的虛擬地址由三部分組成:即段號(hào)S,頁號(hào)P和頁內(nèi)相對(duì)地址D。由于虛擬空間的最小單位是頁而不是段,從而內(nèi)存可用區(qū)也就被劃分成為若干個(gè)大小相等的頁面,且每段所擁有的程序和數(shù)據(jù)在內(nèi)存中可以分開存放。分段的大小也不再受內(nèi)存可用區(qū)的限制。為了實(shí)現(xiàn)段頁式管理,系統(tǒng)必須為每個(gè)作業(yè)或進(jìn)程建立一張段表,管理內(nèi)存分配與釋放、缺段處理、存儲(chǔ)保護(hù)和地址變換等。另外,由于一個(gè)段又被劃分成了若干頁,每個(gè)又必須建立一張頁表,把段中的虛頁變換成內(nèi)存中實(shí)際頁面。顯然,與頁式管理時(shí)相同,頁表中也要有實(shí)現(xiàn)缺頁中斷處理和頁面保護(hù)等功能的表項(xiàng)。另外,由于在段頁式管理中,頁表不再屬于進(jìn)程而屬于段,因此,段表中應(yīng)有頁表首址和長(zhǎng)度的項(xiàng)?!飫?dòng)態(tài)地址變換過程在一般使用段頁式存儲(chǔ)管理的計(jì)算機(jī)系統(tǒng)中,都在內(nèi)存中開辟出一塊固定的區(qū)域存放進(jìn)程的段表和頁表。因此,在段頁式管理系統(tǒng)中,要對(duì)內(nèi)存中指令或數(shù)據(jù)進(jìn)行一次存取的話,至少需要訪問三次以上的內(nèi)存。顯然,CPU的執(zhí)行指令速度大大降低。為了提高地址轉(zhuǎn)換速度,設(shè)置快速聯(lián)想寄存器。它用于存放當(dāng)前最常用的段號(hào)、頁號(hào)和對(duì)應(yīng)的內(nèi)存頁面與其它控制用欄目。★局部性原理和抖動(dòng)問題程序設(shè)計(jì)常識(shí)告訴我們,一個(gè)作業(yè)往往含有許多循環(huán)和子程序的結(jié)構(gòu)。因此,在作業(yè)運(yùn)行期間,在一小段時(shí)間內(nèi),訪問的地址空間往往只涉及整個(gè)程序的一小部分。在另一小段數(shù)據(jù)內(nèi),又只涉及另外的一小部分。這種現(xiàn)象稱為局部性特征。反映在頁面綜跡里,這種特征表現(xiàn)為,在任何一小段時(shí)間里,作業(yè)只集中于訪問某幾頁。所謂工作集,就是一個(gè)作業(yè)在某一小段時(shí)間內(nèi)訪問頁面的集合。如用W(t,ZXt)表示在/△t)到t之間所訪問的不同的頁面,那么,這個(gè)W就稱之為作業(yè)在時(shí)間t的工作集。工作集長(zhǎng)度是w(t,at)中的頁面數(shù)。工作集長(zhǎng)度越短,局部性越突出。一般來說,一個(gè)作業(yè)的工作集,在運(yùn)行的不同時(shí)刻是不同的,工作集大小亦不相等。而且,工作集大小與At有關(guān)。大小很難確定,過小,就不能體現(xiàn)一個(gè)工作集過渡到另一個(gè)工作集一般是緩慢的這一局部性特征。一個(gè)進(jìn)程執(zhí)行過程中缺頁的發(fā)生有兩種可能。一種是并發(fā)進(jìn)程所要求的工作集總和大于內(nèi)存可提供的可用區(qū)。這時(shí),系統(tǒng)將無法正常工作,因?yàn)槿狈ψ銐虻目臻g裝入需要的程序和數(shù)據(jù)。另一種可能性是,雖然存儲(chǔ)管理程序?yàn)槊總€(gè)并發(fā)進(jìn)程分配了足夠的工作集,但系統(tǒng)無法在開始執(zhí)行前選擇適當(dāng)?shù)某绦蚝蛿?shù)據(jù)進(jìn)入內(nèi)存。這種情況下,只能依靠執(zhí)行過程中,當(dāng)CPU發(fā)現(xiàn)所要訪問的指令或數(shù)據(jù)不在內(nèi)存時(shí),由硬件中斷后轉(zhuǎn)入中斷處理程序,將需要的程序和數(shù)據(jù)調(diào)入。系統(tǒng)抖動(dòng):當(dāng)給進(jìn)程分配的內(nèi)存小于所要求的工作集時(shí),由于內(nèi)存外存之間交換頻繁,訪問外存時(shí)間和輸入輸出處理時(shí)間大大增加,反而造成CPU因等待數(shù)據(jù)空轉(zhuǎn),使得整個(gè)系統(tǒng)性能大大下降,這就造成了系統(tǒng)抖動(dòng)。解決抖動(dòng)問題1、增加工作集大??;2、選擇不同的淘汰算法,盡量保持工作集頁面在內(nèi)存中。實(shí)際上,為了使系統(tǒng)獲得高效率,暫停一個(gè)作業(yè),當(dāng)其有足夠數(shù)量的頁面在主存時(shí)才恢復(fù)運(yùn)行;而在調(diào)度一個(gè)新作業(yè)時(shí),必須有足夠多的空閑存儲(chǔ)塊,才讓其進(jìn)入主存?!队?jì)算機(jī)操作系統(tǒng)》知識(shí)點(diǎn)歸納總結(jié)二第一章.OS作為用戶與計(jì)算機(jī)硬件系統(tǒng)之間的接口:含義是:OS處于用戶和計(jì)算機(jī)硬件系統(tǒng)之間,用戶通過OS來使用計(jì)算機(jī)系統(tǒng)。用戶可以通過以下三種方式使用計(jì)算機(jī):命令方式;系統(tǒng)調(diào)用方式;圖形、窗口方式.操作系統(tǒng)的發(fā)展過程:無操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)、單道批處理系統(tǒng)、多道批處理系統(tǒng)、分時(shí)系統(tǒng)、實(shí)時(shí)系統(tǒng)多道批處理系統(tǒng)是操作系統(tǒng)成熟的標(biāo)志。.操作系統(tǒng)的定義:操作系統(tǒng)是一組控制和管理計(jì)算機(jī)硬件和軟件資源,合理地對(duì)各類作業(yè)進(jìn)行調(diào)度,以及方便用戶使用的程序的集合。.分時(shí)系統(tǒng)-(1)人機(jī)交互的特征是邊運(yùn)行邊調(diào)試。(2)共享主機(jī)(3)便于用戶上機(jī).實(shí)時(shí)系統(tǒng)的及時(shí)性:及時(shí)響應(yīng)外部事件請(qǐng)求,在規(guī)定的時(shí)間完成對(duì)該事件的處理,控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致運(yùn)行。.分時(shí)系統(tǒng)的特征:(1)多路性即同時(shí)性,宏觀上同時(shí),微觀上輪流(2)獨(dú)占性每個(gè)用戶感覺獨(dú)占主機(jī)(3)及時(shí)性較短時(shí)間響應(yīng)(1-3秒) (4)交互性.實(shí)時(shí)系統(tǒng)與分時(shí)系統(tǒng)特征的比較:分時(shí)系統(tǒng)是指在一臺(tái)主機(jī)上連接多個(gè)帶有顯示器和鍵盤的終端,同時(shí)允許多個(gè)用戶通過自己的終端,以交互方式使用計(jì)算機(jī),共享主機(jī)中的資源。實(shí)時(shí)系統(tǒng)(RealTimeSystem)是指系統(tǒng)能及時(shí)(或即時(shí))響應(yīng)外部事件的請(qǐng)求,在規(guī)定的時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致地運(yùn)行。實(shí)時(shí)系統(tǒng)的特點(diǎn):多路性、獨(dú)占性、及時(shí)性、交互性、可靠性,主要是及時(shí)性。分時(shí)系統(tǒng)的特征:多路性、獨(dú)占性、及時(shí)性、交互性,其中最主要的就是交互性。.操作系統(tǒng)的基本特征:并發(fā)性(最重要特征)、共享性、虛擬性、異步性.并行與并發(fā):并行性是指多個(gè)事件在同一時(shí)刻同時(shí)發(fā)生;并發(fā)性是指兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生,宏觀上在同一時(shí)間段內(nèi)同時(shí)運(yùn)行,微觀上交替執(zhí)行。.共享:指系統(tǒng)中的資源可供內(nèi)存中多個(gè)并發(fā)執(zhí)行的進(jìn)程共同使用,相應(yīng)地把這種資源共同使用成為資源共享或稱為資源復(fù)用。.臨界資源:在一段時(shí)間內(nèi)只允許一個(gè)進(jìn)程訪問的資源稱為臨界資源或獨(dú)占資源。.并發(fā)和共享是操作系統(tǒng)的二個(gè)最基本特征,他們又是互為存在的條件.虛擬技術(shù):操作系統(tǒng)中的所謂“虛擬"(Virtual),是指通過某種技術(shù)把一個(gè)物理實(shí)體變?yōu)槿舾蓚€(gè)邏輯上的對(duì)應(yīng)物。物理實(shí)體是實(shí)的,即實(shí)際存在的,后者是虛的,是用戶感覺上的東西。用于實(shí)現(xiàn)虛擬的技術(shù)稱為虛擬技術(shù)。.操作系統(tǒng)的主要功能:處理機(jī)管理功能:對(duì)處理機(jī)進(jìn)行分配——進(jìn)程管理和調(diào)度存儲(chǔ)器管理功能:對(duì)內(nèi)存進(jìn)行分配、保護(hù)和擴(kuò)充設(shè)備管理功能:緩沖管理、設(shè)備分配、設(shè)備處理文件管理功能:文件存儲(chǔ)空間的管理、目錄管理、文件的讀寫管理和保護(hù)操作系統(tǒng)與用戶之間的接口用戶接口和程序接口第二章進(jìn)程管理。.程序順序執(zhí)行的特征:順序性、封閉性、可再現(xiàn)性前趨圖(PrecedenceGraph):一個(gè)有向無循環(huán)圖、描述程序或程序段之間執(zhí)行的前后關(guān)系前趨圖是一個(gè)有向無循環(huán)圖。(必須不存在循環(huán)) 根據(jù)程序畫前趨圖:對(duì)于下述四條語句雌序段:SI:a:
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025智謀三國(guó)考試題庫及答案
- 2025公務(wù)員基本試題及答案
- 保護(hù)性耕作與秸稈還田:重塑砂姜黑土生態(tài)密碼
- 從深圳鵬城對(duì)北生藥業(yè)審計(jì)失敗看關(guān)聯(lián)方交易審計(jì)困境與破局
- 2025財(cái)政與金融試題及答案
- 2025財(cái)院金融工程試題及答案
- 2024年青島海灣集團(tuán)有限公司招聘真題
- 2024年靜脈采血理論知識(shí)考試題庫(含答案)
- 2024年安徽池州職業(yè)技術(shù)學(xué)院招聘真題
- 2025年新安全生產(chǎn)月安全生產(chǎn)知識(shí)競(jìng)賽試題庫及答案
- (完整版)220kV線路工程架線施工方案
- 腫瘤標(biāo)志物介紹課件圖片
- 社工項(xiàng)目督導(dǎo)協(xié)議書
- 雅迪電車購(gòu)車合同協(xié)議
- 2025重慶對(duì)外建設(shè)(集團(tuán))有限公司招聘10人筆試參考題庫附帶答案詳解
- 配網(wǎng)基本知識(shí)課件
- 《優(yōu)化公益?zhèn)鞑ゲ呗浴氛n件
- 灌裝代工合同協(xié)議
- 鈑金行業(yè)公司簡(jiǎn)介
- 中醫(yī)八綱辯證
- 2025年度中國(guó)對(duì)非洲二手車出口及非洲重點(diǎn)進(jìn)口國(guó)分析白皮書-特易資訊-2025
評(píng)論
0/150
提交評(píng)論