版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、-作者xxxx-日期xxxx操作系第3版(孟慶昌)答案【精品文檔】部分習題參考答案針對書中習題的重點和難點部分給出參考答案,而其余習題可在書中相應章節(jié)處得到答案。第 1 章3操作系統(tǒng)是裸機之上的第一層軟件,它只在核心態(tài)模式下運行,受硬件保護,與硬件關(guān)系尤為密切。操作系統(tǒng)是整個計算機系統(tǒng)的控制管理中心,其他所有軟件都建立在操作系統(tǒng)之上。操作系統(tǒng)對它們既具有支配權(quán)力,又為其運行建造必備環(huán)境。4脫機I/O是指輸入/輸出工作不受主機直接控制,而由衛(wèi)星機專門負責完成I/O,主機專門完成快速計算任務(wù),從而二者可以并行操作。聯(lián)機I/O是指作業(yè)的輸入、調(diào)入內(nèi)存及結(jié)果輸出都在CPU直接控制下進行。8硬件 是指計
2、算機物理裝置本身,它是計算機系統(tǒng)的物理基礎(chǔ)。如CPU、內(nèi)存、設(shè)備等。軟件 是相對硬件而言的,它是與數(shù)據(jù)處理系統(tǒng)的操作有關(guān)的計算機程序、過程、規(guī)則及相關(guān)文檔資料的總稱。簡單地說,軟件是計算機執(zhí)行的程序。多道程序設(shè)計 在這種設(shè)計技術(shù)下,內(nèi)存中能同時存放多道程序,在管理程序的控制下交替地執(zhí)行。這些作業(yè)共享CPU和系統(tǒng)中的其他資源。并發(fā) 是指兩個或多個活動在同一給定的時間間隔中進行。它是宏觀上的概念。吞吐量 在一段給定的時間內(nèi),計算機所能完成的總工作量。分時 就是對時間的共享。在分時系統(tǒng)中,分時主要是指若干并發(fā)程序?qū)PU時間的共享。實時 表示“及時”或“即時”。系統(tǒng)調(diào)用 是用戶在程序中能以“函數(shù)調(diào)用
3、”形式調(diào)用的、由操作系統(tǒng)提供的子功能的集合。每一個子功能稱做一條系統(tǒng)調(diào)用命令。它是操作系統(tǒng)對外的接口,是用戶級程序取得操作系統(tǒng)服務(wù)的唯一途徑。10通常,大家會熟悉以下操作系統(tǒng):Windows 2000,Windows XP,UNIX或Linux。在上機工作過程中,操作系統(tǒng)為用戶提供的服務(wù)包括:命令和數(shù)據(jù)輸入/輸出的管理,內(nèi)存的分配,用戶文件的管理,CPU的分配,設(shè)備管理等。12當執(zhí)行操作系統(tǒng)程序時,處理機處于核心態(tài)。它有較高的特權(quán),可以執(zhí)行所有的指令,包括一般用戶程序中不能使用的特權(quán)指令,從而能對所有寄存器和內(nèi)存進行訪問、啟動I/O操作等。用戶程序是在用戶態(tài)下執(zhí)行,它的權(quán)限較低,只能執(zhí)行指令集
4、中非特權(quán)指令。設(shè)置這兩種不同狀態(tài)的目的是為了保護操作系統(tǒng)程序(特別是其內(nèi)核部分),防止受到用戶程序的損害。13只在核心態(tài)下執(zhí)行的指令有:屏蔽所有中斷。設(shè)置時鐘日期。啟動打印機。清內(nèi)存。14實時系統(tǒng)的一個重要特征就是對時間的嚴格限制和要求。實時系統(tǒng)的首要任務(wù)是調(diào)度一切可利用的資源完成實時控制任務(wù),其次才著眼于提高計算機系統(tǒng)的使用效率。所以,設(shè)計實時操作系統(tǒng)必須首先考慮處理各種事件的時間限制。15特權(quán)指令是一類只能在核心態(tài)下執(zhí)行的機器指令。而系統(tǒng)調(diào)用不是機器指令,它往往以函數(shù)調(diào)用的形式出現(xiàn),實現(xiàn)操作系統(tǒng)提供的子功能,它是操作系統(tǒng)與用戶的編程接口。在用戶程序中可以使用系統(tǒng)調(diào)用來獲得操作系統(tǒng)服務(wù)。在系
5、統(tǒng)調(diào)用代碼中可以使用特權(quán)指令。16結(jié)構(gòu)關(guān)系清晰,提高系統(tǒng)的可靠性和安全性。各層模塊的功能明確,提高系統(tǒng)的可擴充性和可移植性。各層間具有單向依賴性,增強系統(tǒng)的可維護性。符合軟件工程的思想,便于實施研制開發(fā)。18精減核心的功能,提供了一種簡單的高度模塊化的體系結(jié)構(gòu),提高了系統(tǒng)設(shè)計及使用的靈活性。可移植性好。所有與具體機器特征相關(guān)的代碼,全部隔離在微內(nèi)核中??缮炜s性好。操作系統(tǒng)能方便地進行定制、擴充或縮減,以適應硬件的快速更新和應用需求的不斷變化。實時性好。微內(nèi)核可以方便地支持實時處理。提供多線程機制,支持多處理器的體系結(jié)構(gòu)和分布式系統(tǒng)及計算機網(wǎng)絡(luò)。系統(tǒng)安全性好。傳統(tǒng)的操作系統(tǒng)將安全性功能建立在內(nèi)核
6、之外,因而它并不是很安全的。而微內(nèi)核則將安全性作為系統(tǒng)內(nèi)特性來進行設(shè)計。第 2 章1由于多道程序并發(fā)執(zhí)行時共享系統(tǒng)資源,共同決定這些資源的狀態(tài),因此系統(tǒng)中各程序在執(zhí)行過程中就出現(xiàn)了相互制約的新關(guān)系,程序的執(zhí)行出現(xiàn)“走走停?!钡男聽顟B(tài)。用程序這個靜態(tài)概念已不能如實反映程序并發(fā)執(zhí)行過程中的這些特征。為此,人們引入了“進程(Process)”這一概念來描述程序動態(tài)執(zhí)行過程的性質(zhì)。進程和程序是兩個完全不同的概念。進程與程序的主要區(qū)別如表C-1所示。表C-1進 程程 序進程是動態(tài)概念程序是靜態(tài)概念進程具有并發(fā)性,宏觀上同時運行程序本身具有順序性,程序的并發(fā)執(zhí)行是通過進程實現(xiàn)的進程具有獨立性,是一個能獨立
7、運行的單位,是系統(tǒng)資源分配的基本單位,是運行調(diào)度的基本單位程序本身沒有此特性程序和進程無一一對應關(guān)系,一個進程可順序執(zhí)行多個程序一個程序可由多個進程共用進程異步前進,會相互制約程序不具備此特性然而,進程與程序之間存在密切關(guān)系,進程的功能是通過程序的運行得以實現(xiàn)的,進程活動的主體是程序。進程不能脫離開具體程序而獨自存在。2PCB是進程組成中最關(guān)鍵的部分。每個進程有唯一的進程控制塊;操作系統(tǒng)根據(jù)PCB對進程實施控制和管理,進程的動態(tài)、并發(fā)等特征是利用PCB表現(xiàn)出來的;PCB是進程存在的唯一標志。PCB中有表明進程狀態(tài)的信息,該進程的狀態(tài)包括運行態(tài)、就緒態(tài)和阻塞態(tài),它利用狀態(tài)信息來描述進程的動態(tài)性質(zhì)
8、。4(1)就緒運行:CPU空閑,就緒態(tài)進程被調(diào)度程序選中。運行阻塞:運行態(tài)進程因某種條件未滿足而放棄對CPU的占用,如等待讀文件。阻塞就緒:阻塞態(tài)進程所等待的事件發(fā)生了,例如讀數(shù)據(jù)的操作完成。運行就緒:正在運行的進程用完了本次分配給它的CPU時間片。(2)下述狀態(tài)變遷:(A)21,可以。運行進程用完了本次分配給它的時間片,讓出CPU,從就緒隊列中選一個進程投入運行。(B)32,不行。任何時候一個進程只能處于一種狀態(tài),它既然由運行態(tài)變?yōu)樽枞麘B(tài),就不能再變?yōu)榫途w態(tài)。(C)41,可以。某一阻塞態(tài)進程等待的事件出現(xiàn)了,而且此時就緒隊列為空,該進程進入就緒隊列后馬上又被調(diào)度運行。8不是所有的共享資源都是
9、臨界資源。因為臨界資源是一次僅允許一個進程使用的資源,而系統(tǒng)中有很多資源可以讓多個進程同時使用,例如硬盤、正文段等。10因為打印機是一種臨界資源,所以這三個進程只能互斥使用這臺打印機,即一個用戶的計算結(jié)果打印完之后,另一個用戶再打印。設(shè)三個進程分別為A, B和C,如圖C-1所示。設(shè)一個互斥信號量為mutex,其初值為1。圖C-111(1)這個算法不對。因為A, B兩進程共用一個緩沖區(qū)Q,如果A先運行,且信息數(shù)量足夠多,那么緩沖區(qū)Q中的信息就會發(fā)生后面的沖掉前面的,造成信息丟失,B就不能從Q中讀出完整的信息。改正:A, B兩進程要同步使用緩沖區(qū)Q。為此,設(shè)立兩個信號量。empty 緩沖區(qū)Q為空,
10、初值為1。full 緩沖區(qū)Q為滿,初值為0。算法框圖如圖C-2所示。(2)這個算法不對。因為A, B兩個進程是并發(fā)的,它們共享一個臨界資源,所以二者應互斥地使用該臨界資源,在進入臨界區(qū)時不存在A先B后的時序關(guān)系,而是哪個進程先到一步就先進入自己的臨界區(qū)。改正:A, B兩個進程應互斥地進入臨界區(qū)。為此,設(shè)立一個信號量:互斥信號量為mutex,其初值為1。算法框圖如圖C-3所示。 圖C-2 圖C-312(1)如圖C-4所示,系統(tǒng)可設(shè)三個進程來完成這個任務(wù):R進程負責從卡片輸入機上讀入卡片信息,輸入到緩沖區(qū)B1中;C進程負責從緩沖區(qū)B1中取出信息,進行加工處理,之后將結(jié)果送到緩沖區(qū)B2中;P進程負責
11、從緩沖區(qū)B2中取出信息,并在打印機上印出。圖C-4(2)R進程受C進程影響,B1放滿信息后R進程要等待,等到C進程將其中信息全部取走,才能繼續(xù)讀入信息;C進程受R進程和P進程的約束,B1中信息放滿后C進程才可從中取出它們,且B2被取空后C進程才可將加工結(jié)果送入其中;P進程受C進程的約束,B2中信息放滿后P進程才可從中取出它們,進行打印。(3)信號量含義及初值:B1full 緩沖區(qū)B1滿,初值為0。B1empty 緩沖區(qū)B1空,初值為1。B2full 緩沖區(qū)B2滿,初值為0。B2empty 緩沖區(qū)B2空,初值為1。13(1) 輸入、輸出兩組進程讀/寫緩沖區(qū)需要的條件是: 所有進程都要互斥使用緩沖
12、區(qū)。 所有輸入進程連續(xù)寫入緩沖區(qū)的個數(shù)不能超過緩沖區(qū)的總?cè)萘浚╪)。 輸出進程不能超前輸入進程。 設(shè)置三個信號量:full 放有信息的緩沖區(qū)數(shù),其初值為0。empty 可供使用的緩沖區(qū)數(shù),其初值為n。mutex 互斥信號量,初值為1,表示各進程互斥進入臨界區(qū),即保證任何時候只有一個進程使用緩沖區(qū)。兩個計數(shù)變量:in和out分別是輸入進程和輸出進程使用的計數(shù)量,表示下面使用的緩沖區(qū)編號,初值都是0。 輸入進程: 輸出進程: while(TRUE) while(TRUE) P(empty); P(full); P(mutex); P(mutex); 信息送往buffer(in); 從buffer(
13、out)中取出信息 in=(in+1)mod n; /*以n為模*/ out=(out+1)mod n; /*以n為模*/ V(mutex); V(mutex); V(full); V(empty); (2) 輸入、輸出兩組進程讀/寫緩沖區(qū)需要的條件是所有進程都要互斥使用緩沖區(qū);輸出進程不能超前輸入進程。 信號量:full 緩沖區(qū)滿的情況,初值為0。mutex 互斥信號量,初值為1。計數(shù)器:i=0, j=0 (i, j分別為輸入進程和輸出進程使用的緩沖區(qū)號碼)。 輸入進程: 輸出進程: while(TRUE) while(TRUE) P(mutex); P(full); 信息送往buffer(
14、i); P(mutex); i=i+1; 從buffer(j)中取出信息; V(mutex); j=j+1; V(full); V(mutex); 14(1)完成此項工作可編寫一個程序(函數(shù))或者兩個程序(函數(shù))。每個讀者對應一個進程。當一個讀者進入閱覽室時,就為他建立一個進程;當讀者離開閱覽室時,就終止該進程??梢?,有多少個讀者到來就要有多少個進程。而完成工作的程序代碼可以是一個,或者二個,這是各個讀者進程共用的。(2)信號量:S 座位情況,初值為100。mutex 互斥使用登記表,初值為1。有兩種解法,分別對應利用一個程序(函數(shù))編寫和利用二個程序(函數(shù))編寫。第一種解法 第二種解法(一個
15、函數(shù),用自然語言描述) (二個函數(shù),用C語言描述) 每位讀者進程 typedef struct /* 定義結(jié)構(gòu)型信號量 */ int value; struct PCB *list; semaphore; semaphore s=100; P(S)semaphore mutex=1; P(mutex)void main() 查表,登記 V(mutex)register( ); /*查表并登記*/ 入室,閱讀reading( ); /*閱讀*/ P(mutex)delete( ); /*查表并刪除登記項*/ 出室查表,刪除登記項 V(mutex)void register( ) V(S) P(S
16、); P(mutex); Check_register( ); V(mutex); void delete( ) P(mutex); Check_delete( ); V(mutex); V(S); 15在生產(chǎn)者-消費者問題中,如果對調(diào)生產(chǎn)者進程中的兩個P操作,形如:生產(chǎn)者進程Producer: while(TRUE) P(mutex); P(empty); V(mutex); V(full);當緩沖區(qū)全滿時,只要有一個生產(chǎn)者進程試圖進入臨界區(qū),并在empty信號量上阻塞,所有消費者進程都無法進入自己的臨界區(qū),從而無法使該進程醒來。于是,所有生產(chǎn)者進程和消費者進程都無限期地處于阻塞狀態(tài),從而出
17、現(xiàn)死鎖。然而,如果對調(diào)生產(chǎn)者進程中的兩個V操作,并不出現(xiàn)任何故障,只是從進程退出臨界區(qū)的角度考慮,應越快越好。如果對調(diào)消費者進程中的兩個P操作,也會產(chǎn)生同樣問題。16信號量所能傳遞的信息量是非常有限的,通信效率低。如果用它實施進程間數(shù)據(jù)的傳送就會增加程序的復雜性,使用起來也很不方便,甚至會因使用不當而產(chǎn)生死鎖。為了解決進程間消息通信問題,人們研究和設(shè)計了高級通信機構(gòu)。其主要優(yōu)點是:不僅能較好地解決進程間的同步互斥問題,還能交換大量信息;由操作系統(tǒng)隱藏了進程通信的實現(xiàn)細節(jié),即通信過程對用戶是透明的,從而大大簡化了編制通信程序的復雜性。當某個進程需要向另一個進程發(fā)送消息時,就向系統(tǒng)申請一個消息緩沖
18、區(qū),并把要發(fā)送的數(shù)據(jù)送到消息緩沖區(qū),然后把該消息緩沖區(qū)插入到接收進程的消息隊列中。接收進程在接收消息時,只需從本進程的消息隊列中摘下該緩沖區(qū),并從中取出所需的信息,然后把該緩沖區(qū)交還給系統(tǒng)。17設(shè)隧道一端為A,另一端為B。每輛汽車為一個進程。A、B兩端的汽車進程分別用P_Ai和P_Bi(i=1,2 ,3)表示。雙方通過隧道的方式相同:首先提出申請;獲準后進入隧道,本方進入隧道的汽車計數(shù)加1;如果是本方第一輛車過隧道,則阻塞對方汽車過隧道;若對方無車輛等待,則本方可以連續(xù)放行多臺車輛進入隧道;汽車通過隧道;本方進入隧道的汽車計數(shù)減1;如果是目前本方最后一輛車(即目前本方無車輛過隧道),則放行對方
19、汽車通過。設(shè)置信號量:wait: 等待申請的互斥信號量,初值為1;mutexA: 放行A方汽車過隧道的互斥信號量,初值為1;mutexB: 放行B方汽車過隧道的互斥信號量,初值為1;計數(shù)變量:count1=0;count2=0;過隧道算法描述:P_Ai : P_Bi :P(wait); P(wait); P(mutexA); P(mutexB); count1=count1+1; count2=count2+1; if(count1=1) if(count2=1)P(mutexB); P(mutexA); V(mutexA); V(mutexB); V(wait); V(wait); 汽車通過
20、隧道; 汽車通過隧道; P(mutexA); P(mutexB); count1=count1-1; count2=count2-1; if(count1=0) if(count2=0)V(mutexB); V(mutexA); V(mutexA); V(mutexB);18本題是典型的讀者-寫者問題。查詢信息的用戶是讀者,訂票用戶是寫者,并且要求寫者優(yōu)先?!窘夥?】讀者-寫者按先后順序交叉訪問數(shù)據(jù)庫,如圖C-5所示。圖C-5 計數(shù)變量:rc 正在運行的查詢者進程數(shù)目,初值為0。信號量:Sw 控制訂票者進程的活動,初值為1。Src 互斥使用rc變量,初值為1。S 當訂票者到達時封鎖后續(xù)的讀進程
21、,初值為1?!窘夥?】保證寫者優(yōu)先于讀者,即一旦有寫者到達時,則新讀者要等待。信號量:rmutex當至少有一個寫者到達時,阻止所有讀者訪問的互斥操作信號量,初值為1。wmutex寫者間以及讀者與寫者間互斥操作信號量,初值為1。x控制readcount變量修改的互斥信號量,初值為1。y控制writecount變量修改的互斥信號量,初值為1。z有寫者時,只允許一個讀者在rmutex上排隊,其他讀者在信號量z上排隊,初值為1。計數(shù)變量:readcount讀者計數(shù)器,初值為0。它控制對wmutex的設(shè)置。writecount寫者數(shù)目,初值為0。它控制對rmutex的設(shè)置。 讀者進程 寫者進程 whil
22、e(TRUE) while(TRUE) P(z); P(y); P(rmutex); writecount +; P(x); if(writecount = =1) readcount +; P(rmutex); if(readcount = =1) V(y); P(wmutex); P(wmutex); V(x); 執(zhí)行寫操作 V(rmutex); V(wmutex); V(z); P(y); 執(zhí)行讀操作 writecount -; P(x); if(writecount = =0) readcount-; V(rmutex); if(readcount = =0) V(y); V(wmut
23、ex); V(x); 19除學生進程、教師進程外,為保證系統(tǒng)控制流程,需另設(shè)一個監(jiān)控進程,用于控制學生的進入和計算機的分配,如圖C-6所示。信號量:student 學生到達情況,初值為0。computer 計算機分配情況,初值為2m。enter 能否進入機房情況,初值為0。finish 學生完成情況,初值為0。check 檢查工作完成情況,初值為0。圖C-620如圖C-7所示。信號量:S_M0=1,S_M1=2,S_M2=3,S_M3=2各個信箱中可用格子的信號量。S0=2,S1=0,S2=0,S3=0 各個信箱中信息的信號量。mutex0,mutex1,mutex2,mutex3 互斥使用各
24、信箱的信號量,初值均為1。圖C-726用一個信號量表示一根筷子,五個信號量構(gòu)成信號量數(shù)組chopstick5,所有信號量初值為1。第i個哲學家的進餐過程可描述如下:while(TRUE) 思考問題 P(chopsticki); P(chopstick(i+1)mod 5); 進餐 V(chopsticki; V(chopstick(i+1)mod 5); #define N 5 #define LEFT (i-1)%N #define RIGHT (i+1)%N #define THINKING 0 #define HUNGRY 1 #define EATING 2 typedef struc
25、t /* 定義結(jié)構(gòu)型信號量 */ int value; struct PCB *list; semaphore; int stateN; semaphore chopstick 5 =1,1,1,1,1; semaphore mutex=1; /* 互斥進入臨界區(qū) */ semaphore sN; /* 每位哲學家一個信號量 */ void philosopher(int i) while (TRUE) think(); /* 哲學家在思考問題 */ take_chopstick(i); /* 拿到兩根筷子或者等待 */ eat(); /* 進餐 */ put_chopstick(i); /*
26、 把筷子放回原處 */ void take_chopstick(int i) P(mutex); statei=HUNGRY; test(i); /* 試圖拿兩根筷子 */ V(mutex); P(si); void put_chopstick(int i) P(mutex); statei=THINKING; test(LEFT); /* 查看左鄰,現(xiàn)在能否進餐 */ test(RIGHT); /* 查看右鄰,現(xiàn)在能否進餐 */ V(mutex); void test(int i) if (statei=HUNGRY & stateLEFT!=EATING & stateRIGHT!=EAT
27、ING) statei=EATING; V(si ); 第 3 章4解決死鎖的一般方法有:死鎖的預防、死鎖的避免、死鎖的檢測與恢復等三種。5死鎖預防的基本思想是:要求進程申請資源時遵循某種協(xié)議,從而打破產(chǎn)生死鎖的4個必要條件中的一個或幾個,保證系統(tǒng)不會進入死鎖狀態(tài)。6死鎖避免的基本思想是:對進程所發(fā)出的每一個申請資源命令加以動態(tài)地檢查,并根據(jù)檢查結(jié)果決定是否進行資源分配。就是說,在資源分配過程中若預測有發(fā)生死鎖的可能性,則加以避免。這種方法的關(guān)鍵是確定資源分配的安全性。8死鎖預防的有效方法是:資源有序分配策略 分類編號,按序分配。死鎖避免的著名算法是銀行家算法。9會產(chǎn)生死鎖。設(shè)當輪船距A橋10
28、0 m時就鳴笛警告,此時橋上無車輛,吊橋A就吊起。但是B橋上有車輛,而且由于A橋吊起,車輛無法前進,B橋上的車輛無法下橋。于是,輪船和車輛都不能前進,造成死鎖現(xiàn)象。一種防止死鎖的辦法是:當輪船距A橋100 m時就鳴笛警告,車輛不能再上B橋。當B橋上無車輛時,就吊起B(yǎng)橋;然后,當A橋上無車輛,則吊起A橋。輪船通過A橋和B橋后,兩個吊橋放下,車輛可以通行(這種方法相當于資源的按序號分配)。10(1)能同時運行的最大作業(yè)數(shù)是2,實際上空閑的磁帶機最少是2臺,最多是4臺。(2)作業(yè)對磁帶機資源提出請求時,系統(tǒng)判斷:若分配的話,系統(tǒng)是否仍處于安全狀態(tài)。在3個作業(yè)各分到3臺磁帶機的情況下,系統(tǒng)仍然是安全的
29、。所以,能同時運行的最大作業(yè)數(shù)是3,實際上空閑的磁帶機最少和最多臺數(shù)各是0和1。11處于死鎖狀態(tài)的進程都占有一定資源,而處于饑餓狀態(tài)的進程永遠得不到所申請的資源。死鎖是一種僵局,在無外力干預下,處于死鎖狀態(tài)的全部進程都不能前進,即它們都處于阻塞態(tài),可能造成整個系統(tǒng)癱瘓;而出現(xiàn)饑餓時系統(tǒng)照常運行,只是某個或某幾個進程永遠也不能得到所需的全部服務(wù)。造成死鎖的根本原因是資源有限且使用不當;而造成饑餓的原因是資源分配策略或調(diào)度策略不合適,如果采用先來先服務(wù)的資源分配策略就可以避免饑餓。發(fā)生死鎖時,一定至少有一個資源被無限期地占用而得不到釋放;而饑餓出現(xiàn)時,系統(tǒng)中的每個資源占有者都在有限的時間內(nèi)釋放它所
30、占用的資源。12(1)各路段作為“資源”,各車輛視為“進程”。產(chǎn)生死鎖的4個必要條件:互斥條件 路段是獨占資源;占有且等待條件 各車輛都占有一段路段,且等待另一方車輛占有的路段;不可搶占條件 堵車,無法前進;循環(huán)等待條件 各路段上的車都堵住了。(2)一種可避免死鎖發(fā)生的簡單辦法是:設(shè)立紅綠信號燈,同一方向上兩個路口的紅綠燈同時變換,并且規(guī)定南北方向的車輛先行,過一段時間后,再放行東西方向的車輛。照此輪換。13可能死鎖。因為當進程p1執(zhí)行P(s1),進程p2執(zhí)行P(s3),進程p3執(zhí)行P(s2)后,三個資源(即信號量s1, s2, s3)被三個進程分別占用,下面任何一個進程都無法得到所申請的資源
31、,于是都無限期地循環(huán)等待,造成死鎖。一個防止死鎖產(chǎn)生的修改辦法是:進程申請信號量時,按序申請,如圖C-8所示。圖C-814(1)不會。因為這是一種搶占式分配資源的方式,它破壞了發(fā)生死鎖的4個必要條件之一,即不可搶占條件。(2)這種方式會使得某個(或某些)進程無限地等待下去。因為某個進程如果需要的資源較多,系統(tǒng)當前不能滿足其要求,則它被封鎖。然而后續(xù)的進程接連搶走該進程所分到的資源,使之回到初始狀態(tài),從而該進程始終得不到所需的全部資源,出現(xiàn)“饑餓”現(xiàn)象。15設(shè)每個進程對共享資源的最大需求量為max(0maxm),由于每個進程最多申請使用max個資源,在最壞的情況下,每個進程都得到(max-1)個
32、資源,并且都需要申請最后一個資源。此時,系統(tǒng)剩余的資源為m-n(max-1)。只要系統(tǒng)還有一個資源可用,就可以使其中的一個進程獲得所需的全部資源。進而該進程運行結(jié)束后,釋放出它占用的資源,供其他進程使用,從而所有的進程都可以運行完成。就是說,當m-n(max-1)1時,系統(tǒng)不會發(fā)生死鎖。整理該不等式,得到如下關(guān)系:nmax(m+n-1),所以,nmaxm+n。從而證明n個進程所有最大需求量之和小于m+n時,該系統(tǒng)不會產(chǎn)生死鎖。16 T0時刻是安全狀態(tài),因為存在一個安全序列 p4, p5, p1, p2, p3。 不能實現(xiàn)資源分配,因為所剩余的資源數(shù)量不夠。 可以分配。當分配完成后,系統(tǒng)剩余的資
33、源向量為(0, 3, 2),這時,仍可找到一個安全序列 p4, p5, p1, p2, p3。 不能分配。如果分配的話,則系統(tǒng)剩余的資源向量為(0, 1, 2),這時無法找到一個安全序列。第 4 章1處理機調(diào)度的主要目的就是為了分配處理機。4作業(yè)在其存在過程中分為提交、后備、執(zhí)行和完成4種狀態(tài)。6作業(yè)調(diào)度與進程調(diào)度之間的差別主要是:作業(yè)調(diào)度是宏觀調(diào)度,它所選擇的作業(yè)只是具有獲得處理機的資格,但尚未占有處理機,不能立即在其上實際運行;而進程調(diào)度是微觀調(diào)度,動態(tài)地把處理機實際地分配給所選擇的進程,使之真正活動起來。另外,進程調(diào)度相當頻繁,而作業(yè)調(diào)度執(zhí)行的次數(shù)一般很少。作業(yè)調(diào)度從外存的后備隊列中選擇
34、一批作業(yè)調(diào)入內(nèi)存,為它們創(chuàng)建進程,這些進程被送入就緒隊列。進程調(diào)度從就緒隊列中選出一個進程來,并把它的狀態(tài)改為運行態(tài),把CPU分配給它。當運行進程要等待某一事件時,就讓出CPU,進入相應的阻塞隊列,并進行進程調(diào)度。運行進程完成后,由作業(yè)調(diào)度進行善后處理工作。7在確定調(diào)度方式和調(diào)度算法時,常用的評價準則有:CPU利用率、吞吐量、周轉(zhuǎn)時間、就緒等待時間和響應時間。8FCFS見圖C-9。RR見圖C-10。非搶占式優(yōu)先級見圖C-11。圖C-9圖C-10圖C-11和FCFS見表C-2。RR見表C-3。非搶占式優(yōu)先級見表C-4。表C-2作 業(yè)到達時間運行時間完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間10101010 2
35、111110 3221311 4311411 5451915 平均周轉(zhuǎn)時間平均帶權(quán)周轉(zhuǎn)時間 表C-3作 業(yè)到達時間運行時間完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間1010 19 19211 2 1322 8 6431 5 2545 16 12平均周轉(zhuǎn)時間平均帶權(quán)周轉(zhuǎn)時間 表C-4作 業(yè)到達時間運行時間完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間101010 1021119 18 32213 1143111 854518 14平均周轉(zhuǎn)時間平均帶權(quán)周轉(zhuǎn)時間 9和見表C-5和圖C-12。表C-5作 業(yè)到達時間進入內(nèi)存時間結(jié)束時間周轉(zhuǎn)時間A8:008:009:1070B8:208:208:5030C8:309:1010:0090
36、D8:508:5010:2090平均周轉(zhuǎn)時間 70平均帶權(quán)周轉(zhuǎn)時間圖C-12采用非搶占優(yōu)先權(quán)方式見圖C-13和表C-6。圖C-13表C-6作 業(yè)到達時間進入內(nèi)存時間結(jié)束時間周轉(zhuǎn)時間A8:008:008:4040B8:208:209:1050C8:308:4010:0090D8:509:1010:2090平均周轉(zhuǎn)時間平均帶權(quán)周轉(zhuǎn)時間 10由于要求在一臺處理機上按單道方式(即內(nèi)存中只有一個作業(yè))執(zhí)行,所以可采用的調(diào)度算法是先來先服務(wù)法(FCFS),短作業(yè)優(yōu)先法(SJF),高響應比優(yōu)先法(HRRF)。而FCFS法一般不會使平均周轉(zhuǎn)時間最短。(1)按短作業(yè)優(yōu)先法,運行次序為J3, J4, J2, J5
37、, J1,如表C-7所示。表C-7作 業(yè)運行時間完成時間周轉(zhuǎn)時間J19 30 30J26 14 14J33 3 3J45 8 8J57 21 21平均周轉(zhuǎn)時間(2)按高響應比優(yōu)先法:響應比=1+作業(yè)的等待時間/作業(yè)的執(zhí)行時間各作業(yè)的響應比(作業(yè)3先執(zhí)行):RR1=1+3/9=1.333,RR2=1+3/6=1.500 RR4=1+3/5=,RR5=1+3/7=1.429 按響應比高者優(yōu)先,則運行次序為J3, J4, J2, J5, J1。平均周轉(zhuǎn)時間為15.2。14硬件主要處理過程是:CPU中止當前程序的正常執(zhí)行;保存原程序的程序計數(shù)器PC和程序狀態(tài)寄存器PS的內(nèi)容;取出盤I/O中斷向量,轉(zhuǎn)到
38、相應的處理程序。軟件主要處理過程是:保存被中斷程序的現(xiàn)場(如通用寄存器的內(nèi)容);分析中斷原因,由中斷向量得到盤I/O中斷的處理程序地址;運行盤I/O中斷處理程序,判斷I/O工作是否完成,如正常完成,則做I/O結(jié)束處理;執(zhí)行完中斷處理程序,核心恢復前面保存的現(xiàn)場,進程回到用戶態(tài)。15UNIX系統(tǒng)的進程調(diào)度采用多級反饋隊列輪轉(zhuǎn)法;而Linux基本上采用“搶占式優(yōu)先級”方式。相同點:調(diào)度方式都是以優(yōu)先級為基礎(chǔ)。即核心執(zhí)行調(diào)度時,就從進程就緒隊列中挑選一個優(yōu)先級最高的進程,令其投入運行。調(diào)度時機相似。都是在當前進程自身無法或不適宜繼續(xù)運行的情況下,核心就執(zhí)行進程調(diào)度。不同點: 調(diào)度策略不同。(下略)
39、優(yōu)先級的計算方法不同。(下略)第 5 章9請求分頁技術(shù)與簡單分頁技術(shù)之間的根本區(qū)別是:請求分頁提供虛擬存儲器,而簡單分頁系統(tǒng)并未提供虛擬存儲器。10125C(H)11緊縮;段表地址寄存器中的段表長;段長12選擇題:(B)必須在CPU訪問之前移入主存(A)擴大邏輯內(nèi)存容量 (B)減少(D)請求分頁 13. 649 2310 2311 訪問非法,產(chǎn)生中斷 1727 段越界,產(chǎn)生中斷14每一段在邏輯上是相對完整的一組信息。分段技術(shù)中的共享是在段一級出現(xiàn)的。這樣,任何共享的信息就可單獨成為一段。同樣,段中所有內(nèi)容可以用相同的方式進行使用,從而規(guī)定相同的保護權(quán)限。然而,頁是信息的物理單位,在一頁中可能存
40、在邏輯上互相獨立的兩組或多組信息,各有不同的使用方式和存取權(quán)限,因而,對分頁難以進行共享和保護。15見表C-8。表C-8內(nèi) 存 塊 數(shù)置 換 算 法FIFOLRUOPT31615115108716該訪問序列的頁面走向為0, 1, 0, 3, 1, 2, 4, 3,見表C-9。表C-9算 法FIFOLRUOPT缺頁次數(shù)675缺頁率17工作集是一個進程在某一小段時間內(nèi)訪問頁面的集合。利用工作集模型可防止抖動,也可以進行頁面置換。19減少多道程序的道數(shù)可能改善CPU的效率。因為此時CPU的效率低,而磁盤的效率非常高,表明磁盤設(shè)備頻繁地進行頁面的換入和換出。在此情況下,系統(tǒng)已不能完成什么任務(wù),因為各個
41、進程都把它們的全部時間花在頁面置換上,系統(tǒng)出現(xiàn)了抖動。此時,為增加CPU利用率和消除抖動,必須減少多道程序度。20(1)本題中給定:每個內(nèi)存塊可存放200個整數(shù),有兩個內(nèi)存塊用于存放數(shù)組的數(shù)據(jù),數(shù)組元素按行存儲。對于程序A,數(shù)組訪問的順序是:a00 a01 a02 a099a10 a11 a12 a199a990 a991 a992 a9999可以看出,數(shù)組的存儲順序與訪問順序是一致的。這樣每訪問兩行數(shù)組元素就遇到一次缺頁中斷。如果采用LRU頁面置換算法,則會產(chǎn)生50次缺頁中斷。對于程序B,數(shù)組訪問的順序是:a00 a10 a20 a990a01 a11 a21 a991a099 a199 a
42、299 a9999可以看出,數(shù)組的存儲順序(按行存儲)與訪問順序(按列訪問)不一致。這樣每訪問兩個數(shù)組元素就遇到一次缺頁中斷。如果采用LRU頁面置換算法,則會產(chǎn)生5 000次缺頁中斷。(2)若每頁只能存放100個整數(shù),對于程序A,數(shù)組的存儲順序與訪問順序是一致的。這樣每訪問一行數(shù)組元素就遇到一次缺頁中斷。如果采用LRU頁面置換算法,則會產(chǎn)生100次缺頁中斷。對于程序B,數(shù)組的存儲順序(按行存儲)與訪問順序(按列訪問)不一致。這樣每訪問一個數(shù)組元素就遇到一次缺頁中斷。如果采用LRU頁面置換算法,則會產(chǎn)生10 000次缺頁中斷。上面的結(jié)果說明:頁面越大,缺頁中斷的次數(shù)越少;頁面越小,缺頁中斷次數(shù)越
43、多。另外,缺頁中斷次數(shù)還與程序的局部化性質(zhì)有關(guān)。第 6 章1文件 是被命名的相關(guān)信息的集合體,它通常存放在外存(如磁盤、磁帶)上,可以作為一個獨立單位存放并實施相應的操作(如打開、關(guān)閉、讀、寫等)。文件系統(tǒng) 操作系統(tǒng)中負責操縱和管理文件的一整套設(shè)施,它實現(xiàn)文件的共享和保護,方便用戶“按名存取”。目錄項 為了加快對文件的檢索,把文件控制塊集中在一起進行管理。這種文件控制塊的有序集合稱為文件目錄。當然,文件控制塊也是其中的目錄項。目錄文件 全由目錄項構(gòu)成的文件稱為目錄文件。路徑 在樹形目錄結(jié)構(gòu)中,從根出發(fā)經(jīng)由所需子目錄到達指定文件的通路。當前目錄 為節(jié)省文件檢索的時間,每個用戶可以指定一個目錄作為
44、當前工作目錄,以后訪問文件時,就從這個目錄開始向下順序檢索。這個目錄就稱做當前目錄。3UNIX系統(tǒng)中文件主要分為以下類型:普通文件、目錄文件和特別文件。4文件的邏輯組織 用戶對文件的觀察和使用是從自身處理文件數(shù)據(jù)時所采用的組織方式來看待文件組織形式。這種從用戶觀點出發(fā)所見到的文件組織形式稱為文件的邏輯組織。文件的物理組織 文件在存儲設(shè)備上的存儲組織形式稱為文件的物理組織。文件的邏輯組織有以下形式:有結(jié)構(gòu)文件和無結(jié)構(gòu)文件。有結(jié)構(gòu)文件又稱為記錄式文件,它在邏輯上可被看成一組連續(xù)順序記錄的集合,又可分為定長記錄文件和變長記錄文件兩種。無結(jié)構(gòu)文件是指文件內(nèi)部不再劃分記錄,它是由一組相關(guān)信息組成的有序字
45、符流,即流式文件。5文件的物理組織形式主要有:連續(xù)文件,鏈接文件,索引文件和多重索引文件。見表C-10。表C-10文件物理組織形式優(yōu) 點缺 點連續(xù)文件順序存取速度較快創(chuàng)建文件時就確定它的長度很難實現(xiàn);它不便于文件的動態(tài)擴充;可能出現(xiàn)外部碎片,從而造成浪費鏈接文件克服了連續(xù)文件的缺點一般僅適于順序訪問,而不利于對文件的隨機存??;每個物理塊上增加一個連接字,為信息管理增加了一些麻煩索引文件除了具備鏈接文件的優(yōu)點之外,還克服了它的缺點需要增加索引表帶來的空間開銷。往往以內(nèi)存空間為代價來換取存取速度的改善多重索引文件除具有一般索引文件的優(yōu)點外,還可滿足對靈活性和節(jié)省內(nèi)存的要求間接索引需要多次訪盤而影響
46、速度7文件控制塊 用于描述和控制文件的數(shù)據(jù)結(jié)構(gòu),其中包括文件名、文件類型、位置、大小等信息。文件控制塊與文件一一對應,即在文件系統(tǒng)內(nèi)部,給每個文件唯一地設(shè)置一個文件控制塊,核心利用這種結(jié)構(gòu)對文件實施各種管理。8文件系統(tǒng)中的目錄結(jié)構(gòu)有:單級目錄結(jié)構(gòu)、二級目錄結(jié)構(gòu)、樹形目錄結(jié)構(gòu)和非循環(huán)圖目錄結(jié)構(gòu)。見表C-11。UNIX系統(tǒng)采用非循環(huán)圖目錄結(jié)構(gòu),即帶鏈接的樹形目錄結(jié)構(gòu)。表C-11文件系統(tǒng)目錄結(jié)構(gòu)優(yōu) 點缺 點單級目錄結(jié)構(gòu)簡單,能實現(xiàn)按名存取查找速度慢;不允許重名;不便于共享二級目錄結(jié)構(gòu)允許重名;提高了檢索目錄的速度仍不利于文件共享樹形目錄結(jié)構(gòu)文件的層次和隸屬關(guān)系清晰,便于實現(xiàn)不同級別的存取保護和文件系統(tǒng)的動態(tài)裝卸只能在用戶級對文件進行臨時共享非循環(huán)圖目錄結(jié)構(gòu)具有樹形結(jié)構(gòu)的優(yōu)點,而且實現(xiàn)對文件的永久共享管理較復雜10文件的共享是指系統(tǒng)允許多個用戶(進程)共同使用某個或某些文件。文件鏈接是給文件起別名,即將該文件的目錄項登記在鏈接目錄中。這樣,訪問該文件的路徑就不只一條。不同的用戶(或進程)就可以利用各自的路徑來共享同一文件。11文件的后備就是把硬盤上的文件轉(zhuǎn)儲到其他外部介質(zhì)上。 將磁盤上的數(shù)據(jù)轉(zhuǎn)儲到磁帶上有兩種方式:物理轉(zhuǎn)儲和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度護校與養(yǎng)老機構(gòu)合作服務(wù)合同3篇
- 女生節(jié)活動策劃方案(3篇)
- 中小學校實驗室內(nèi)部管理制度范文(二篇)
- 2025年度物流運輸安全環(huán)保服務(wù)協(xié)議范本3篇
- 液壓銑床課程設(shè)計摘要
- 財務(wù)分析圖表課程設(shè)計
- 平路機安全操作規(guī)程范文(2篇)
- 二零二五年度房地產(chǎn)租賃權(quán)包銷合同3篇
- 2025年上半年安全員工作總結(jié)(3篇)
- 2024年滬教版高三歷史上冊階段測試試卷
- 2021-2022學年浙江省“9 1”高中聯(lián)盟高一年級下冊學期期中數(shù)學試題【含答案】
- 初級審計師考試:2022初級審計理論與實務(wù)真題及答案
- 餐飲部員工排班表
- 幼兒園食堂管理規(guī)范(適用于政府和社會力量舉辦的幼兒園食堂)
- 公司金融ppt課件(完整版)
- 徐州醫(yī)科大學附屬醫(yī)院
- 自動化立體庫貨架驗收報告
- 消防系統(tǒng)工程質(zhì)量控制資料檢查記錄
- 中藥封包療法操作規(guī)范
- 浙江產(chǎn)業(yè)帶分布情況
- 道岔主要幾何尺寸表
評論
0/150
提交評論