計算機操作系統(tǒng)等課后習題答案全_第1頁
計算機操作系統(tǒng)等課后習題答案全_第2頁
計算機操作系統(tǒng)等課后習題答案全_第3頁
計算機操作系統(tǒng)等課后習題答案全_第4頁
計算機操作系統(tǒng)等課后習題答案全_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、在用戶能接受的時延內(nèi)將結(jié)果返回給用戶。解決方法:及時接收問題,可以在系統(tǒng)中設(shè)置多路卡,使主機能同時接收用戶從各個終端上輸入的數(shù)據(jù);為每個終端配置緩沖區(qū),暫存用戶鍵入令或數(shù)據(jù)。及時處理問題,應(yīng)使所有的用戶作業(yè)都直接進入內(nèi)存,并且為每個作業(yè)分配一個時間片,作業(yè)只在的時間片內(nèi)運行,這樣在不長的時間內(nèi),能使每個作業(yè)都運行一次。8為什么要引入實時OS?答:實時操是指系統(tǒng)響應(yīng)外部的請求,在規(guī)定的時間內(nèi)完成對該的處理,并所有實時任務(wù)協(xié)調(diào)一致地運行。引入實時OS 是為了滿足應(yīng)用的需求,更好地滿足實時領(lǐng)域和實時信息處理領(lǐng)域的需要。9什么是硬實時任務(wù)和軟實時任務(wù)?試舉例說明。答:硬實時任務(wù)是指系統(tǒng)必須滿足任務(wù)對截

2、止時間的要求,否則可能出現(xiàn)難以的結(jié)果。舉例來說,運載火箭的等。軟實時任務(wù)是指它的截止時間并不嚴格,偶爾錯過了任務(wù)的截止時間,對系統(tǒng)產(chǎn)生的影響不大。舉例:網(wǎng)頁內(nèi)容的更新、火車售票系統(tǒng)。10在8位微機和16位微機中,占據(jù)了地位的是什么操?答:單用戶單任務(wù)操,其中最具代表性的是CP/M和MS-DOS.11試列出Windows OS 中五個主要版本,并說明它們分別較之前一個版本有何改進。答:(1)Microsoft Windows 1.0是微軟公司在個人電腦上開發(fā)圖形界面的首次嘗試。(2)Windows 95是混合的16位/32位系統(tǒng),第一個支持32位。帶來了更強大、更穩(wěn)定、更實用的桌面圖形用戶界面,

3、結(jié)束了桌面操間的競爭。(3)Windows 98是微軟公司的混合16位/32位Windows 操,改良了硬件標準的支持,革新了內(nèi)存管理,是多進程操。(4)Windows XP是基于Windows 2000的,擁有新用戶圖形界面月神Luna。簡化了用戶安全特性,整合了。(5)Windows Vista 包含了上百種新功能;特別是新版圖形用戶界面和Windows Aero全新界面風格、加強的搜尋功能(Windows Indexing Service)、新創(chuàng)作工具以及重新設(shè)計的、音頻、輸出(打印)和顯示子系統(tǒng)。12試從交互性、及時性以及可靠性方面,將分時系統(tǒng)與實時系統(tǒng)進行比較。答:(1)及時性:實時

4、信息處理系統(tǒng)對實時性的要求與分時系統(tǒng)類似,都是以人所能接受2的等待時間來確定;而實時系統(tǒng)的及時性,是以對象所要求的開始截止時間或完成截止時間來確定的,一般為秒級到毫秒級,甚至有的要低于100微妙。(2)交互性:實時信息處理系統(tǒng)具有交互性,但人的交互僅限于系統(tǒng)中某些特定的服務(wù)程序。不像分時系統(tǒng)那樣能向終端用戶提供數(shù)據(jù)和共享等服務(wù)。(3)可靠性:分時系統(tǒng)也要可靠,但相比之下,實時系統(tǒng)則要具有高度的可靠性。因為任何差錯能帶來巨大的損失,甚至是性后果,所以在實時系統(tǒng)中,往往都采取了多級容錯措施保障系統(tǒng)的安全性及數(shù)據(jù)的安全性。13OS有哪幾大特征?其最基本的特征是什么?答:并發(fā)性、共享性、虛擬性和異步性

5、四個基本特征;最基本的特征是并發(fā)性。14處理機管理有哪些主要功能?它們的主要任務(wù)是什么?答:處理機管理的主要功能是:進程管理、進程同步、進程通信和處理機調(diào)度;進程管理:為作業(yè)創(chuàng)建進程,撤銷已結(jié)束進程,進運行過程中的狀態(tài)轉(zhuǎn)換。進程同步:為多個進程(含線程)的運行進行協(xié)調(diào)。通信:用來實現(xiàn)在相互合作的進程之間的信息交換。處理機調(diào)度:(1)作業(yè)調(diào)度。從后備隊里按照一定的算法,選出若干個作業(yè),為他們分配運行所需的(首選是分配內(nèi)存)。(2)進程調(diào)度:從進程的就緒隊列中,按照一定算法選出一個進程,把處理機分配給它,并設(shè)置運行現(xiàn)場,使進程投入執(zhí)行。15內(nèi)存管理有哪些主要功能?他們的主要任務(wù)是什么?北京石油化工

6、學院信息計算機系3/48計算機操習題參考與計07和計G09的同學們編著 3/48答:內(nèi)存管理的主要功能有:內(nèi)存分配、內(nèi)存保護、地址和內(nèi)存擴充。內(nèi)存分配:為每道程序分配內(nèi)存。內(nèi)存保護:確保每道用戶程序都只在的內(nèi)存空間運行,彼此互不干擾。地址:將地址空間的邏輯地址轉(zhuǎn)換為內(nèi)存空間與對應(yīng)的物理地址。內(nèi)存擴充:用于實現(xiàn)請求調(diào)用功能,置換功能等。16設(shè)備管理有哪些主要功能?其主要任務(wù)是什么?答:主要功能有: 緩沖管理、設(shè)備分配和設(shè)備處理以及虛擬設(shè)備等。主要任務(wù): 完成用戶提出的I/O 請求,為用戶分配I/O 設(shè)備;提高CPU 和I/O 設(shè)3備的利用率;提高I/O速度;以及方便用戶使用I/O設(shè)備.17文件管

7、理有哪些主要功能?其主要任務(wù)是什么?答:文件管理主要功能:文件空間的管理、目錄管理、文件的讀/寫管理和保護。文件管理的主要任務(wù):管理用戶文件和系統(tǒng)文件,方便用戶使用,保證文件安全性。18是什么使操具有異步性特征?答:操的異步性體現(xiàn)在三個方面:一是進程的異步性,進程以人們不可預知的速度向前推進,二是程序的不可再現(xiàn)性,即程序執(zhí)行的結(jié)果有時是不確定的,三是程序執(zhí)行時間的不可預知性,即每個程序何時執(zhí)行,序以及完成時間是不確定的。19模塊接口法哪些問題?可通過什么樣的途徑來解決?答:(1)模塊接口法的問題:在OS設(shè)計時,各模塊間的接口規(guī)定很難滿足在模塊完成后對接口的實際需求。在OS 設(shè)計階段,設(shè)計者必須

8、做出一系列的決定,每一個決定必須建立在上一個決定的基礎(chǔ)上。但模塊化結(jié)構(gòu)設(shè)計的各模塊設(shè)計齊頭并進,無法尋找可靠的順序,造成各種決定的無序性,使程序設(shè)計很難做到設(shè)計中的每一步?jīng)Q定都建立在可靠的基礎(chǔ)上,因此模塊接口法被稱為“無序模塊法”。(2)解決途徑:將模塊接口法的決定順序無序變有序,引入有序分層法。20在微內(nèi)核OS中,為什么要采用客戶/服務(wù)器模式?答:C/S 模式具有獨特的優(yōu)點:數(shù)據(jù)的分布處理和。便于集中管理。靈活性和可擴充性。易于改編應(yīng)用軟件。21試描述什么是微內(nèi)核OS。答:1)足夠小的內(nèi)核 2)基于客戶/服務(wù)器模式3)應(yīng)用機制與策略分離原理 4)采用面向?qū)ο蠹夹g(shù)。22在基于微內(nèi)核結(jié)構(gòu)的OS中

9、,應(yīng)用了哪些新技術(shù)?答:在基于微內(nèi)核結(jié)構(gòu)的OS 中,采用面向?qū)ο蟮某绦蛟O(shè)汁技術(shù)。23何謂微內(nèi)核技術(shù)?在微內(nèi)核中通常提供了哪些功能?答:把操中的成分和功能放到更高的層次(即用戶模式)中去運行,而留下一個盡量小的內(nèi)核,用它來完成操最基本的功能,稱這種技術(shù)為微內(nèi)核技術(shù)。在微內(nèi)核中通常提供了進程(線程)管理、低級器管理、中斷和陷入處理等功能。24微內(nèi)核操具有哪些優(yōu)點?它為何能有這些優(yōu)點?答:1)提高了系統(tǒng)的可擴展性2)增強了系統(tǒng)的可靠性43)可移植性4)提供了對分布式系統(tǒng)的支持5)融入了面向?qū)ο蠹夹g(shù)第二章1. 什么是前趨圖?為什么要引入前趨圖?答:前趨圖(Precedence Graph)是一個有向無

10、循環(huán)圖,記為DAG(Directed AcyclicGraph),用于描述進程之間執(zhí)行的前后關(guān)系。2. 畫出下面四條語句的前趨圖:S1=a:=x+y; S2=b:=z+1; S3=c:=a b; S4=w:=c+1;答:其前趨圖為:3. 什么程序并發(fā)執(zhí)行會產(chǎn)生間斷性特征?答:程序在并發(fā)執(zhí)行時,由于它們共享系統(tǒng),為完成同一項任務(wù)需要相互合作,致使這些并發(fā)執(zhí)行的進程之間,形成了相互制約關(guān)系,從而使得進執(zhí)行期間出現(xiàn)間斷性。4程序并發(fā)執(zhí)行時為什么會失去封閉性和可再現(xiàn)性?答:程序并發(fā)執(zhí)行時,多個程序共享系統(tǒng)中的各種,因而這些的狀態(tài)由多個程序改變,致使程序運行失去了封閉性,也會導致其失去可再現(xiàn)性。5在操中

11、為什么要引入進程概念?它會產(chǎn)生什么樣的影響?答:為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并對并發(fā)執(zhí)行的程序加以和描述,在操中引入了進程概念。影響: 使程序的并發(fā)執(zhí)行得以實行。6試從動態(tài)性,并發(fā)性和性上比較進程和程序?答:(1)動態(tài)性是進程最基本的特性,表現(xiàn)為由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,因得不到而暫停執(zhí)行,由撤銷而消亡。進程有一定的生命期,而程序只是一組有序的指令集合,是靜態(tài)實體。(2)并發(fā)性是進程的重要特征,同時也是OS 的重要特征。引入進程的目的正是為了使5其程序能和其它進程的程序并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的。(3)性是指進程實體是一個能運行的基本,也是系統(tǒng)中獲得和獨立調(diào)度的基本。對于未建

12、立任何進程的程序,不能作為參加運行。7試說明PCB 的作用,為什么說PCB 是進程的惟一標志?答:PCB 是進程實體的一部分,是操中最重要的型數(shù)據(jù)結(jié)構(gòu)。作用是使一個在多道程序環(huán)境下不能運行的程序,成為一個能運行的基本,成為能與其它進程并發(fā)執(zhí)行的進程。OS是根據(jù)PCB對并發(fā)執(zhí)行的進程進行和管理的。8試說明進三個基本狀態(tài)之間轉(zhuǎn)換的典型。答: (1)就緒狀態(tài)態(tài):進程分配到CPU(2)態(tài)就緒狀態(tài):時間片用完(3)態(tài)阻塞狀態(tài):I/O請求(4)阻塞狀態(tài)就緒狀態(tài):I/O完成9為什么要引入掛起狀態(tài)?該狀態(tài)有哪些性質(zhì)?答:引入掛起狀態(tài)處于五種不同的需要: 終端用戶需要,父進程需要,操需要,對換北京石油化工學院信

13、息計算機系5/48計算機操習題參考與計07和計G09的同學們編著 5/48需要和負荷調(diào)節(jié)需要。處于掛起狀態(tài)的進程不能接收處理機調(diào)度。10在進行進程切換時,所要保存的處理機狀態(tài)信息有哪些?答:進行進程切換時,所要保存的處理機狀態(tài)信息有:(1)進程當前暫存信息(2)下一指令地址信息(3)進程狀態(tài)信息(4)過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址信息。11試說明引起進程創(chuàng)建的主要。答:引起進程創(chuàng)建的主要有:用戶登錄、作業(yè)調(diào)度、提供服務(wù)、應(yīng)用請求。12試說明引起進程被撤銷的主要。答:引起進程被撤銷的主要有:正常結(jié)束、異常結(jié)束(越界錯誤、保護錯、指令、指令錯、運行超時、等待超時、算術(shù)運算錯、I/O 故障)、外界干預

14、(操作員或操作系統(tǒng)干預、父進程請求、父進程終止)。13在創(chuàng)建一個進所要完成的主要工作是什么?6答:(1)OS 發(fā)現(xiàn)請求創(chuàng)建新進程后,調(diào)用進程創(chuàng)建Creat();(2)申請空白PCB;(3)為新進程分配;(4)初始化進程塊;(5)將新進程就緒隊列.14在撤銷一個進所要完成的主要工作是什么?答:(1)根據(jù)被終止進程標識符,從PCB 集中檢索出進程PCB,讀出該進程狀態(tài)。(2)若被終止進程處于態(tài),立即終止該進程的執(zhí)行,置調(diào)度標志真,指示該進程被終止后重新調(diào)度。(3)若該進程還有子進程,所有子孫進程終止,以防它們成為不可控進程。(4)將被終止進程擁有的全部,歸還給父進歸還給系統(tǒng)。(5)將被終止進程PC

15、B 從所在隊列或列表中移出,等待其它程序搜集信息。15試說明引起進程阻塞或被喚醒的主要是什么?答:a. 請服務(wù);b. 啟動某種操作;c. 新數(shù)據(jù)尚未到達;d. 無新工作可做.16進運行時哪兩種形式的制約?并舉例說明之。答:(1)間接相互制約關(guān)系。舉例:有兩進程A 和B,如果A 提出打印請已把唯一的一臺打印機分配給了進程B,則進程A 只能阻塞;一旦B打印機,A 才由阻塞改為就緒。(2)直接相互制約關(guān)系。舉例:有輸入進程A 通過單緩沖向進程B 提供數(shù)據(jù)。當緩沖空時,計算進程因不能獲得所需數(shù)據(jù)而阻塞,當進程A 把數(shù)據(jù)輸入緩沖區(qū)后,便喚醒進程B;反之,當緩沖區(qū)已,進程A 因沒有緩沖區(qū)放數(shù)據(jù)而阻塞,進程

16、B 將緩沖區(qū)數(shù)據(jù)取走后便喚醒A。17為什么進進入臨界區(qū)之前應(yīng)先執(zhí)行“進入?yún)^(qū)”代碼?而在前又要執(zhí)行“區(qū)”代碼?答:為了實現(xiàn)多個進程對臨界的互斥,必須在臨界區(qū)前面增加一段用于檢查欲的臨界是否正被的代碼,如果未被,該進程便可進入臨界區(qū)對進行,并設(shè)置正被標志,如果正被,則本進程不能進入臨界區(qū),實現(xiàn)這能的代碼為"7進入?yún)^(qū)"代碼;在臨界區(qū)后,必須執(zhí)行"區(qū)"代碼,用于恢復未被標志,使其它進程能再此臨界。18. 同步機構(gòu)應(yīng)遵循哪些基本準則?為什么?答:同步機構(gòu)應(yīng)遵循的基本準則是:進、忙則等待、有限等待、讓權(quán)等待:為實現(xiàn)進程互斥進入的臨界區(qū)。19. 試從物理概念上說明型信

17、號量wait 和signal。答:wait(S):當S.value>0時,表示目前系統(tǒng)中這類還有可用的。執(zhí)行一次wait 操作,意味著進程請求一個的該類,使系統(tǒng)中可供分配的該類減少一個,因此描述為S.value:=S.value-1;當S.value<0時,表示該類已分配完畢,進程應(yīng)調(diào)用block自我阻塞,放棄處理機,并到信號量鏈表S.L中。signal(S):執(zhí)行一次signal操作,意味著一個的可用,使系統(tǒng)中可供分配的該類數(shù)增加一個,故執(zhí)行S.value:=S.value+1 操作。若加1 后S.value0,則表示在該信號量鏈表中,仍有等待該的進程被阻塞,因此應(yīng)調(diào)用wakeu

18、p,將S.L鏈表中的第一個等待進程喚醒。20你認為整型信號量機制是否完全遵循了同步機構(gòu)的則?答:整型信號量機制全遵循同步機制的則,它不滿足“讓權(quán)等待”準則。21如何利用信號量機制來實現(xiàn)多個進程對臨界的互斥?并舉例說明之。答:為使多個進程互斥某臨界,只需為該設(shè)置一互斥信號量mutex,并設(shè)其初值為1,然后將各進程該的臨界區(qū)CS置于wait(mutex)和signal(mutex)操作之間即可。這樣,每個欲該臨界的進進入臨界區(qū)之前,都要先對mutex 執(zhí)行wait 操作,若該此刻未被,本次wait 操作必然,進程便可進入的臨界區(qū),這時若再有其他進程也欲進入的臨界區(qū),此時由于對mutex 執(zhí)行wai

19、t操作定會失敗,因而該進程阻塞,從而保證了該臨界能被互斥。當臨界的進程臨界區(qū)后,應(yīng)對mutex執(zhí)行signal 操作,該臨界。利用信號量實現(xiàn)進程互斥的進程描述如下:Var mutex: semaphore:=1;beginparbeginprocess 1: beginrepeat8wait(mutex);critical sectionsignal(mutex);remainder sectionuntil false;endprocess 2: beginrepeatwait(mutex);critical sectionsignal(mutex);remainder sectionunt

20、ilfalse;endparend22試寫出相應(yīng)的描述圖2-17所示的前驅(qū)圖。答:(a)Var a, b,c, d, e, f, g, h; semaphore:=0, 0, 0, 0, 0, 0, 0, 0;beginparbeginbegin S1; signal(a); signal(b); end;9beginwait(a);S2;signal(c);signal(d); end;beginwait(b);S3;signal(e);end;beginwait(c);S4;signal(f);end;beginwait(d);S5;signal(g);end;beginwait(e);S

21、6;signal(h);end;beginwait(f);wait(g); wait(h); S7; end;parendend(b)Var a, b, c, d, e, f, g, h,i,j; semaphore:= 0,0,0,0,0,0,0,0,0,0;beginparbeginbeginS1; signal(a); signal(b); end;beginwait(a);S2;signal(c);signal(d);end;beginwait(b);S3;signal(e);signal(f);end;beginwait(c);S4;signal(g);end;beginwait(d

22、);S5;signal(h);end;beginwait(e);S6;signal(i);end;beginwait(f);S7;signal(j);end;beginwait(g);wait(h); wait(i); wait(j);S8; end;parendend23在生產(chǎn)者消費者問題中,如果缺少了signal(full)或signal(empty),對執(zhí)行結(jié)果有何影響?答:如果缺少signal(full),那么表明從第一個生產(chǎn)者進程開始就沒有改變信號量full 值,即使緩沖池已滿,但full 值還是0,這樣消費者進程執(zhí)行wait(full)時認為緩沖空而取不到,消費者進程一直處于等待狀

23、態(tài)。如果缺少signal(empty),在生產(chǎn)者進程向n個緩沖區(qū)投滿后消費者進程才開始從中取,這時empty=0,full=n,那么每當消費者進程取走一個empty 值并不改變,直到緩沖空了,empty 值也是0,即使目前緩沖n 個空緩沖區(qū),生產(chǎn)者進程要想10再往緩沖投放也會因為申請不到空緩沖區(qū)被阻塞。24在生產(chǎn)消費者問題中,如果將兩個wait 操作即wait(full)和wait(mutex)互換位置,或者將signal(mutex)與signal(full)互換位置,結(jié)果如何?答:將wait(full)和wait(mutex)互換位置后,可能引起死鎖??紤]系統(tǒng)中緩沖區(qū)全,產(chǎn)者進程先執(zhí)行了w

24、ait(mutex)操作并獲得,則當再執(zhí)行wait(empty)操作時,它將因失敗而進入阻塞狀態(tài),它期待消費者進程執(zhí)行signal(empty)來喚醒,在此之前,它不可能執(zhí)行signal(mutex)操作,從而使試圖通過執(zhí)行wait(mutex)操作而進入的臨界區(qū)的其他生產(chǎn)者和所有消費者進程全部進入阻塞狀態(tài),這樣容易引起系統(tǒng)死鎖。若signal(mutex)和signal(full)互換位置后只是影響進程對臨界的次序,而引起系統(tǒng)死鎖,因此可以互換位置。25我們在為某一臨界設(shè)置一把鎖W,當W=1時表示,當W=0時表示鎖已打開。試寫出開鎖和的,并利用他們實現(xiàn)互斥。答:整型信號量:lock(W):

25、while W=1 do no-opW:=1;unlock(W): W:=0;型信號量:lock(W): W:=W+1;if(W>1) then block(W, L)unlock(W): W:=W-1;if(W>0) then wakeup(W,L)例子:Var W:semaphore:=0;beginrepeatlock(W);critical sectionunlock(W);remainder sectionuntil false;end1126試修改下面生產(chǎn)者消費者問題解法中的錯誤:答:producer:beginrepeatproducer an item in nex

26、tp;wait(mutex);wait(full); /* 應(yīng)為wait(empty),而且還應(yīng)該在wait(mutex)的前面*/buffer(in):=nextp;/* 緩沖池數(shù)組游標應(yīng)前移: in:=(in+1) mod n; */signal(mutex);/* signal(full); */until false;endconsumer:beginrepeatwait(mutex);wait(empty); /* 應(yīng)為wait(full),而且還應(yīng)該在wait(mutex)的前面*/nextc:=buffer(out);out:=out+1; /* 考慮循環(huán),應(yīng)改為: out:=(

27、out+1) mod n; */signal(mutex);/* signal(empty); */consumer item in nextc;until false;end27試利用型信號量寫出一個出現(xiàn)死鎖的哲學家進餐問題的算法.答:Var chopstick:array0,4 of semaphore;所有信號量均被初始化為1,第i 位哲學家的活動可描述為:12RepeatWait(chopsticki);Wait(. chopstick(i+1)mod5);Ea.t ;Signal(chopsticki);Signal(chopstick(i+1)mod5)Ea.t ;Think;Un

28、til false;28在測量系統(tǒng)中的任務(wù),把所的數(shù)據(jù)送一單緩沖區(qū);計算任務(wù)從該單緩沖中取出數(shù)據(jù)進行計算.試寫出利用信號量機制實現(xiàn)兩者共享單緩沖的同步算法。答:a.Var mutex, empty, full: semaphore:=1,1,0;gather:beginrepeatgather data in nextp;wait(empty);wait(mutex);buffer:=nextp;signal(mutex);signal(full);until false;end13compute:beginrepeatwait(full);wait(mutex);nextc:=buffer;

29、signal(mutex);signal(empty);compute data innextc;until false;endb.Var empty, full: semaphore:=1, 0;gather:beginrepeatgather data in nextp;wait(empty);buffer:=nextp;signal(full);until false;endcompute:beginrepeatwait(full);nextc:=buffer;signal(empty);14compute data in nextc;until false;end29畫圖說明管程由哪幾

30、部分組成,為什么要引入條件變量?答:管程由四部分組成:管程的名稱;局部于管程內(nèi)部的共享數(shù)據(jù)結(jié)構(gòu)說明;對該數(shù)據(jù)結(jié)構(gòu)進行操作的一組過程;對局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)置初始值的語句;當一個進程調(diào)用了管管程中時被阻塞或掛起,直到阻塞或掛起的解除,而在此期間,如果該進程不管程,則其它進程無法進入管程,被迫長時間地等待。為了解決這個問題,引入了條件變量condition。30如何利用管程來解決生產(chǎn)者與消費者問題?答:首先建立一個管程,命名為ProclucerConsumer,包括兩個過程:(1)Put(item)過程。生產(chǎn)者利用該過程將生產(chǎn)的放到緩沖池,用整型變量count 表示在緩沖已有的數(shù)目,當cou

31、ntn 時,表示緩沖,生產(chǎn)者須等待。(2)get(item)過程。消費者利用該過程從緩沖取出一個,當count0時,表示緩沖已無可取的,消費者應(yīng)等待。PC 管程可描述如下:type producer-consumer =monitorVar in,out,count:integer;buffer:array0,n-1of item;15notfull,notempty:condition;procedure entry dot(item)beginif count>=n then not full.wait;buffer(in):=nextp;in:=(in+1)mod n;count:

32、=count+1;if notempty.queue then notempty.signal;endprocedure entry get(item)beginif count<=0 then not full.wait;nextc:=buffer(out);out:=(out+1)mod n;count:=count-1;if notfull.quene then notfull.signal;endbegin in:=out:=0;count:=0end在利用管程解決生產(chǎn)者一消費者問題時,其中的生產(chǎn)者和消費者可描述為:producer: beginpepeatproduce an

33、inem in nestpPC.put(item);until false;endconsumer: beginrepeatPC.get(item);16consume the item in enxtc;until false;end31什么是AND信號量?試利用AND信號量寫出生產(chǎn)者一消費者問題的解法。答:為解決并行帶來的死鎖問題,在wait 操作中引入AND 條件,其基本思想是將進整個運行過程中所需要的所有臨界地全部分配給進程,用。解決生產(chǎn)者消費者問題可描述如下:varmutex,empty,full: semaphore:=1,n,0;buffer: array0,.,n-1 of i

34、tem;in,out: integer:=0,0;beginparbeginproducer: beginrepeatproduce an item in nextp;wait(empty);wait(s1,s2,s3,.,sn); /s1,s2,.,sn為執(zhí)行生產(chǎn)者進程除empty外其余的條件wait(mutex);buffer(in):=nextp;in:=(in+1) mod n;signal(mutex);signal(full);signal(s1,s2,s3,.,sn);until false;endconsumer: beginrepeatwait(full);17wait(k1

35、,k2,k3,.,kn); /k1,k2,.,kn為執(zhí)行消費者進程除full外其余的條件wait(mutex);nextc:=buffer(out);out:=(out+1) mod n;signal(mutex);signal(empty);signal(k1,k2,k3,.,kn);consume the item in nextc;until false;endparendend32什么是信號量集?試利用信號量集寫出讀者一寫者問題的解法。答:對AND信號量加以擴充,形成的信號量集合的讀寫機制。解法:Var RN integer;L,mx: semaphore:=RN,1;beginpar

36、beginreader:beginrepeatSwait(L,1,1);Swait(mx,1,1);perform read operation;Ssignal(L,1);until falseendwriter:begin18repeatSwait(mx,1,1;L,RN,0);perform write operation;Ssignal(mx,1);until falseendparendend33試比較進程間的低級與高級通信工具。答:用戶用低級通信工具實現(xiàn)進程通信很不方便,效率低,通信對用戶不透明,所有操作都必須由來實現(xiàn),而高級通信工具彌補了這些缺陷,用戶直接利用操提供的一組通信命令,

37、高效地傳送大量的數(shù)據(jù)。34當前有哪幾種高級通信機制?答:共享器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng)。35消息隊列通信機制有哪幾方面的功能?答:(1)消息(2)消息(3)接收(4)互斥與同步。36為什么要在OS 中引入線程?答:在操中引入線程,則是為了減少程序在并發(fā)執(zhí)行時所付出的時空開銷,使OS具有更好的并發(fā)性,提高CPU的利用率。進程是分配的基本,而線程則是系統(tǒng)調(diào)度的基本。37試說明線程具有哪些屬性?答:(1)輕型實體(2)調(diào)度和分派的基本(3)可并發(fā)執(zhí)行(4)共享進程。38. 試從調(diào)度性,并發(fā)性,擁有及系統(tǒng)開銷方面對進程和線程進行比較。答:(1)調(diào)度性。線OS 中作為調(diào)度和分派的基本,進程只作

38、為擁有的基本。(2)并發(fā)性。進程可以并發(fā)執(zhí)行,一個進程的多個線程也可并發(fā)執(zhí)行。(3)擁有。進程始終是擁有的基本,線程只擁有運行時必不可少的,本身基本不擁有系統(tǒng),但可以隸屬進程的。(4)系統(tǒng)開銷。操在創(chuàng)建、撤消和切換進付出的開銷顯著大于線程。39. 為了在多線程OS中實現(xiàn)進程之間的同步與通信,通常提供了哪幾種同步機制?19答:同步功能可以程序流并共享數(shù)據(jù),從而并發(fā)執(zhí)行多個線程。共有四種同步模型:互斥鎖、讀寫鎖、條件變量和信號。40用于實現(xiàn)線程同步的私用信號量和公用信號量之間有何差別?答:(1)私用信號量。當某線程需利用信號量實現(xiàn)同一進程中各線程之間的同步時,可調(diào)用創(chuàng)建信號量令來創(chuàng)建一個私用信號量

39、,其數(shù)據(jù)結(jié)構(gòu)存放在應(yīng)用程序的地址空間中。(2)公用信號量。公用信號量是為實現(xiàn)不同進程間或不同進程中各線程之間的同步而設(shè)置的。其數(shù)據(jù)結(jié)構(gòu)是存放在受保護的系統(tǒng)區(qū)中,由OS為它分配空間并進行管理。41何謂用戶級線程和內(nèi)核支持線程?答:(1)用戶級線程:僅于用戶空間中的線程,無須內(nèi)核支持。這種線程的創(chuàng)建、撤銷、線程間的同步與通信等功能,都無需利用系統(tǒng)調(diào)用實現(xiàn)。用戶級線程的切換通常發(fā)生在一個應(yīng)用進程的諸多線程之間,同樣無需內(nèi)核支持。(2)內(nèi)核支持線內(nèi)核支持下運行的線程。無論是用戶進程中的線程,還是系統(tǒng)線程中的線程,其創(chuàng)建、撤銷和切換等都是依靠內(nèi)核,在內(nèi)核空間中實現(xiàn)的。在內(nèi)核空間里還為每個內(nèi)核支持線程設(shè)置

40、了線程塊,內(nèi)核根據(jù)該塊感知某線程的并實施。42試說明用戶級線程的實現(xiàn)方法。答:用戶級線程是在用戶空間中的實現(xiàn)的,運行在“運”與“內(nèi)核線程”的中上。運用于管理和線程的函數(shù)的集合。內(nèi)核線輕型進程LWP可通過系統(tǒng)調(diào)用獲得內(nèi)核提供服務(wù),利用LWP進程作為。43試說明內(nèi)核支持線程的實現(xiàn)方法。答:系統(tǒng)在創(chuàng)建新進,分配一個任務(wù)數(shù)據(jù)區(qū)PTDA,其中包括若干個線程塊TCB空間。創(chuàng)建一個線程分配一個TCB,有關(guān)信息寫入TCB,為之分配必要的。當PTDA中的TCB 用完,而進程又有新線,只要所創(chuàng)建的線程數(shù)目未超過系統(tǒng)值,系統(tǒng)可在為之分配新的TCB;在撤銷一個線,也應(yīng)回收線程的所有和TCB。第三章1高級調(diào)度與低級調(diào)度

41、的主要任務(wù)是什么?為什么要引入中級調(diào)度?20答:高級調(diào)度的主要任務(wù)是根據(jù)某種算法,把外存上處于后備隊列中的那些作業(yè)調(diào)入內(nèi)存。低級調(diào)度是保存處理機的現(xiàn)場信息,按某種算法先取進程,再把處理器分配給進程。引入中級調(diào)度的主要目的是為了提高內(nèi)存利用率和系統(tǒng)吞吐量。使那些暫時不能運行的進程不再占用內(nèi)存,將它們調(diào)至外存等待,把進程狀態(tài)改為就緒駐外存狀態(tài)或掛起狀態(tài)。2何謂作業(yè)、作業(yè)步和作業(yè)流?答:作業(yè)包含通常的數(shù)據(jù),還配有作業(yè)說統(tǒng)根據(jù)該說明書對程序的運行進行。批處理系統(tǒng)中是以作業(yè)為基本從外存調(diào)入內(nèi)存。作業(yè)步是指每個作業(yè)運行期間都必須經(jīng)過若干個相對相互關(guān)聯(lián)的順序的步驟。作業(yè)流是指若干個作業(yè)進入系統(tǒng)后依次存放在外

42、存上形成的輸入作業(yè)流;在操下,逐個作業(yè)進程處理,于是形成了處理作業(yè)流。的3在什么情況下需要使用作業(yè)塊JCB?其中包含了哪些內(nèi)容?答:每當作業(yè)進入系統(tǒng)時,系統(tǒng)便為每個作業(yè)建立一個作業(yè)到相應(yīng)的后備隊列中。塊JCB,根據(jù)作業(yè)類型將它JCB 包含的內(nèi)容通常有:1) 作業(yè)標識2)用戶名稱3)用戶賬戶4)作業(yè)類型(CPU繁忙型、I/O 芳名型、批量型、終端型)5)作業(yè)狀態(tài)6)調(diào)度信息(優(yōu)先級、作業(yè)已運行)7)要求8)進入系統(tǒng)時間9) 開始處理時間10) 作業(yè)完成時間11) 作業(yè)時間12)使用情況等4在作業(yè)調(diào)度中確定接納多少個作業(yè)和接納哪些作業(yè)?答:作業(yè)調(diào)度每次接納進入內(nèi)存的作業(yè)數(shù),取決于多道程序度。哪些作

43、業(yè)從外存調(diào)入內(nèi)存,取決于采用的調(diào)度算法。最簡單的是先來服務(wù)調(diào)度算法,較常用的是短作業(yè)優(yōu)先調(diào)度算法和基于作業(yè)優(yōu)先級的調(diào)度算法。5試說明低級調(diào)度的主要功能。答:(1)保存處理機的現(xiàn)場信息(2)按某種算法選取進程(3)把處理機分配給進程。6在搶占調(diào)度,搶占的原則是什么?答:搶占的原則有:時間片原則、優(yōu)先權(quán)原則、短作業(yè)優(yōu)先權(quán)原則等。7在選擇調(diào)度調(diào)度算法時,應(yīng)遵循的準則是什么?答:(1)面向用戶的準則:周轉(zhuǎn)時間短、響應(yīng)時間快、截止時間的保證、優(yōu)先權(quán)準則。(2)面向系統(tǒng)的準則:系統(tǒng)吞吐量高、處理機利用率好、各類的平衡利用。8在批處理系統(tǒng)、分時系統(tǒng)和實時系統(tǒng)中,各采用哪幾種進程(作業(yè))調(diào)度算法?答:批處理系

44、統(tǒng)的調(diào)度算法:短作業(yè)優(yōu)先、優(yōu)先權(quán)、高響應(yīng)比優(yōu)先、多級反饋隊列調(diào)度算法。分時系統(tǒng)的調(diào)度算法:時間片輪轉(zhuǎn)法。實時系統(tǒng)的調(diào)度算法:最早截止時間優(yōu)先即EDF、最低松弛度優(yōu)先即LLF算法。219何謂靜態(tài)和動態(tài)優(yōu)先級?確定靜態(tài)優(yōu)先級的依據(jù)是什么?答:靜態(tài)優(yōu)先級是指在創(chuàng)建進確定且在進程的整個運行期間保持不變的優(yōu)先級。動態(tài)優(yōu)先級是指在創(chuàng)建進賦予的優(yōu)先權(quán),可以隨進程推進或隨其等待時間增加而改變的優(yōu)先級,可以獲得更好的調(diào)度性能。確定進程優(yōu)先級的依據(jù):進程類型、進程對的需求和用戶要求。10試比較FCFS和SPF兩種進程調(diào)度算法。答:相同點:兩種調(diào)度算法以用于作業(yè)調(diào)度和進程調(diào)度。不同點:FCFS調(diào)度算法每次后備隊列中

45、選擇一個或多個最先進入該隊列的作業(yè),將它們調(diào)入內(nèi)存、分配、創(chuàng)建進程、到就緒隊列。該算法有利于長作業(yè)/進程,不利于短作業(yè)/進程。SPF算法每次調(diào)度后備隊列中選擇一個或若干個估計運行時間最短的作業(yè),調(diào)入內(nèi)存中運行。該算法有利于短作業(yè)/進程,不利于長作業(yè)/進程。11在時間片輪轉(zhuǎn)法中,確定時間片的大?。看穑簳r間片應(yīng)略大于一次典型的交互需要的時間。一般應(yīng)考慮三個因素:系統(tǒng)對相應(yīng)時間的要求、就緒隊列中進程的數(shù)目和系統(tǒng)的處理能力。12通過一個例子來說明通常的優(yōu)先級調(diào)度算法不能適用于實時系統(tǒng)?答:實時系統(tǒng)的調(diào)度算法很多,主要是基于任務(wù)的開始截止時間和任務(wù)緊急/松弛程度的任務(wù)優(yōu)先級調(diào)度算法,通常的優(yōu)先級調(diào)度算法

46、不能滿足實時系統(tǒng)的調(diào)度實時性要求而不適用。13為什么說多級反饋隊列調(diào)度算法能較好地滿足各方面用戶的需求?答:(1)終端型作業(yè)用戶提交的作業(yè)大多屬于較小的交互型作業(yè),系統(tǒng)只要使這些作業(yè)在第一隊列規(guī)定的時間片內(nèi)完成,終端作業(yè)用戶就會感到滿足。(2)短批處理作業(yè)用戶,開始時像終端型作業(yè)一樣,如果在第一隊列中執(zhí)行一個時間片段即可完成,便可獲得與終端作業(yè)一樣的響應(yīng)時間。對于稍長作業(yè),通常只需在第二和第三隊列各執(zhí)行一時間片即可完成,其周轉(zhuǎn)時間仍然較短。(3)長批處理作業(yè),它將依次在第1,2,n個隊列中運行,然后再按輪轉(zhuǎn)方式運行, 用戶不必擔心其作業(yè)長期得不到處理。所以,多級反饋隊列調(diào)度算法能滿足多用戶需求

47、。14為什么在實時系統(tǒng)中,要(尤其是CPU)具有較強的處理能力?答:實時系統(tǒng)中通常有著多個實時任務(wù)。若處理機的處理能力不夠強,有可能因為處理機忙不過來而使某些實時任務(wù)得不到及時處理,導致發(fā)生難以預料的后果。15按照調(diào)度方式可將實時調(diào)度算法分為哪幾種?答:可分為非搶占式和搶占式兩種算法。而非搶占式算法又分為非搶占式輪轉(zhuǎn)和優(yōu)先調(diào)度算22法;搶占式調(diào)度算法又分為基于時鐘中斷的搶占式優(yōu)先權(quán)和立即搶占式優(yōu)先權(quán)調(diào)度算法。16什么是最早截止時間優(yōu)先調(diào)度算法?舉例說明。答:根據(jù)任務(wù)的開始截止時間確定的任務(wù)優(yōu)先級調(diào)度算法。截止時間越早則優(yōu)先級越高。該算法要求在系統(tǒng)中保持一個實時任務(wù)就緒隊列,該隊列按各任務(wù)截止時

48、間的先后排序。舉例:非搶占式調(diào)度方式用于非周期實時任務(wù)。圖3-9 是將該算法用于非搶占調(diào)度方式之例。該例中具有四個非周期任務(wù),它們先后到達。系統(tǒng)首先調(diào)度任務(wù)1執(zhí)行,在任務(wù)1執(zhí)行期間,任務(wù)2、3又先后到達。由于任務(wù)3的開始截止時間早于任務(wù)2,故系統(tǒng)在任務(wù)1后將調(diào)度任務(wù)3執(zhí)行。在此期間又到達作業(yè)4,其開始截止時間仍是早于任務(wù)2的,故在任務(wù)3后,系統(tǒng)又調(diào)度任務(wù)4執(zhí)行,最后才調(diào)度任務(wù)2執(zhí)行。圖3-9 EDF算法用于非搶占調(diào)度的調(diào)度方式17什么是最低松弛度優(yōu)先調(diào)度算法?舉例說明之。答:該算法是根據(jù)任務(wù)緊急(或松弛)的程度,來確定任務(wù)的優(yōu)先級。任務(wù)的緊急程度愈高,為該任務(wù)所賦予的優(yōu)先級就愈高,以使之優(yōu)先執(zhí)

49、行。例如,一個任務(wù)在200 ms 時必成,而它本身所需的運行時間就有100 ms,因此,調(diào)度程序必須在100 ms 之前調(diào)度執(zhí)行,該任務(wù)的緊急程度(松弛程度)為100 ms。又如,另一任務(wù)在400 ms 時必成,它本身需要運行 150 ms,則其松弛程度為 250 ms。18何謂死鎖?產(chǎn)生死鎖的和必要條件是什么?答:死鎖是指多個進運行過程中因爭奪而造成的一種僵局,當進程處于這種僵持狀態(tài)時,若無外力作用,它們都將無法再向前推進。產(chǎn)生死鎖的為競爭和進程間推進順序。其必要條件是:互斥條件、請求和保持條件、不條件、環(huán)路等待條件。19在解決死鎖問題的幾個方法中,哪種方法最易于實現(xiàn)?哪種方法使利用率最高?

50、答:解決死鎖的四種方法即預防、避免、檢測和解除死鎖中,預防死鎖最容易實現(xiàn);避免死鎖使的利用率最高。20請詳細說明可通過哪些途徑預防死鎖。答:(1)擯棄“請求和保持”條件,就是如果系統(tǒng)有足夠,便把進程需要的所23有分配給它;(2)擯棄“不”條件,就是已經(jīng)擁有的進程,當它提出新請求而不能立即滿足時,必須它已保持的所有,待以后需要重新申請;(3)擯棄“環(huán)路等待”條件,就是將所有按類型排序標號,所有進程對的請求必須嚴格按序號遞增的次序提出。21在家算法的例子中,如果P0發(fā)出請求由Request(0,2,0)改為Request(0,1,0),問系統(tǒng)可否將分配給它?(此有點問題,需重新考慮)答:(1)可以

51、。家算法各種數(shù)量分別為10、5、7,在T0時刻的分配:(2)具體分析如下: Requst0(0,1,0)<=Need0(7,4,3); Requst0(0,1,0)<=Available(2,3,0);系統(tǒng)先假定可為P0分配,并修改Available0,Allocation0和Need0,由此形成的變化情況如下圖所示:(3)P0請求:P0發(fā)出請求Requst0(0,1,0),系統(tǒng)按家算法進行檢查: Requst0(0,1,0)<=Need0(7,4,3);24 Requst0(0,1,0)<=Available(2,3,0); 系統(tǒng)暫假定可為P0分配,并修改有關(guān)數(shù)據(jù),如

52、下圖所示綜上所述系統(tǒng)可以將分配給它。22家算法中出現(xiàn)以下分配,試問(1)該狀態(tài)是否安全?(2)若進程P2提出Request(1,2,2,2)后,系統(tǒng)能否將分配給它?試問: (1)該狀態(tài)是否安全?(2)若進程P2提出請求Request(1,2,2,2)后,系統(tǒng)能否將分配給它?(參考有錯)答: (1)安全,因為安全序列P0,P3,P4,P1,P2(2)系統(tǒng)能分配,分析如下。Request(1,2,2,2) <= Need2(2,3,5,6);Request(1,2,2,2) <= Available2(1,3,5,4)改成Available2(1,6,2,2);系統(tǒng)先假定可為P2分配,并修改Available2,A

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論