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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

課后習題答案-計算機操作系統(tǒng)第三版第一章1.設計現(xiàn)代OS的主要目標是什么?答:(1)有效性(2)方便性(3)可擴充性(4)開放性2.OS的作用可表現(xiàn)在哪幾個方面?答:(1)OS作為用戶與計算機硬件系統(tǒng)之間的接口(2)OS作為計算機系統(tǒng)資源的管理者(3)OS實現(xiàn)了對計算機資源的抽象3.為什么說OS實現(xiàn)了對計算機資源的抽象?(3)器件的不斷更新?lián)Q代;(4)計算機體系結構的不斷發(fā)展。5.何謂脫機I/O和聯(lián)機I/O?答:脫機I/O是指事先將裝有用戶程序和數(shù)據(jù)的紙帶或卡片裝入紙帶輸入機或卡片機,在外圍機的控制下,把紙帶或卡片上的數(shù)據(jù)或程序輸入到磁帶上。該方式下的輸入輸出由外圍機控制完成,是在脫離主機的情況下進行的。而聯(lián)機I/O方式是指程序和數(shù)據(jù)的輸入輸出都是在主機的直接控制下進行的。6.試說明推勱分時系統(tǒng)形成和収展的主要勱力是什么?答:推動分時系統(tǒng)形成和發(fā)展的主要動力是更好地滿足用戶的需要。主要表現(xiàn)在:CPU的分時使用縮短了作業(yè)的平均周轉時間;人機交互能力使用戶能直接控制自己的作業(yè);主機的共享使多用戶能同時使用同一臺計算機,獨立地處理自己的作業(yè)。7.實現(xiàn)分時系統(tǒng)的關鍵問題是什么?應如何解決?答:關鍵問題是當用戶在自己的終端上鍵入命令時,系統(tǒng)應能及時接收并及時處理該命令,在用戶能接受的時延內將結果返回給用戶。解決方法:針對及時接收問題,可以在系統(tǒng)中設臵多路卡,使主機能同時接收用戶從各個終端上輸入的數(shù)據(jù);為每個終端配臵緩沖區(qū),暫存用戶鍵入的命令或數(shù)據(jù)。針對及時處理問題,應使所有的用戶作業(yè)都直接進入內存,并且為每個作業(yè)分配一個時間片,允許作業(yè)只在自己的時間片內運行,這樣在不長的時間內,能使每個作業(yè)都運行一次。8.為什么要引入實時OS?答:實時操作系統(tǒng)是指系統(tǒng)能及時響應外部事件的請求,在規(guī)定的時間內完成對該事件的處理,并控制所有實時任務協(xié)調一致地運行。引入實時OS是為了滿足應用的需求,更好地滿足實時控制領域和實時信息處理領域的需要。9.什么是硬實時仸務和軟實時仸務?試丼例說明。答:硬實時任務是指系統(tǒng)必須滿足任務對截止時間的要求,否則可能出現(xiàn)難以預測的結果。舉例來說,運載火箭的控制等。軟實時任務是指它的截止時間并不嚴格,偶爾錯過了任務的截止時間,對系統(tǒng)產生的影響不大。舉例:網(wǎng)頁內容的更新、火車售票系統(tǒng)。10.在8位微機和16位微機中,占據(jù)了統(tǒng)治地位的是什么操作系統(tǒng)?答:單用戶單任務操作系統(tǒng),其中最具代表性的是CP/M和MS-DOS.11.試列出WindowOS中五個主要版本,并說明它們分別較之前一個版本有何改迚。答:(1)MicrooftWindow1.0是微軟公司在個人電腦上開發(fā)圖形界面的首次嘗試。(2)Window95是混合的16位/32位系統(tǒng),第一個支持32位。帶來了更強大、更穩(wěn)定、更實用的桌面圖形用戶界面,結束了桌面操作系統(tǒng)間的競爭。(3)Window98是微軟公司的混合16位/32位Window操作系統(tǒng),改良了硬件標準的支持,革新了內存管理,是多進程操作系統(tǒng)。(4)Window某P是基于Window2000的產品,擁有新用戶圖形界面月神Luna。簡化了用戶安全特性,整合了防火墻。(5)WindowVita包含了上百種新功能;特別是新版圖形用戶界面和WindowAero全新界面風格、加強的搜尋功能(WindowInde某ingService)、新媒體創(chuàng)作工具以及重新設計的網(wǎng)絡、音頻、輸出(打?。┖惋@示子系統(tǒng)。。12.試從交互性、及時性以及可靠性方面,將分時系統(tǒng)不實時系統(tǒng)迚行比較。答:(1)及時性:實時信息處理系統(tǒng)對實時性的要求與分時系統(tǒng)類似,都是以人所能接受的等待時間來確定;而實時控制系統(tǒng)的及時性,是以控制對象所要求的開始截止時間或完成截止時間來確定的,一般為秒級到毫秒級,甚至有的要低于100微妙。(2)交互性:實時信息處理系統(tǒng)具有交互性,但人與系統(tǒng)的交互僅限于訪問系統(tǒng)中某些特定的專用服務程序。不像分時系統(tǒng)那樣能向終端用戶提供數(shù)據(jù)和資源共享等服務。(3)可靠性:分時系統(tǒng)也要求系統(tǒng)可靠,但相比之下,實時系統(tǒng)則要求系統(tǒng)具有高度的可靠性。因為任何差錯都可能帶來巨大的經濟損失,甚至是災難性后果,所以在實時系統(tǒng)中,往往都采取了多級容錯措施保障系統(tǒng)的安全性及數(shù)據(jù)的安全性。13.OS有哪幾大特征?其最基本的特征是什么?答:并發(fā)性、共享性、虛擬性和異步性四個基本特征;最基本的特征是并發(fā)性。14.處理機管理有哪些主要功能?它們的主要仸務是什么?答:處理機管理的主要功能是:進程管理、進程同步、進程通信和處理機調度;進程管理:為作業(yè)創(chuàng)建進程,撤銷已結束進程,控制進程在運行過程中的狀態(tài)轉換。進程同步:為多個進程(含線程)的運行______________進行協(xié)調。通信:用來實現(xiàn)在相互合作的進程之間的信息交換。處理機調度:(1)作業(yè)調度。從后備隊里按照一定的算法,選出若干個作業(yè),為他們分配運行所需的資源(首選是分配內存)。(2)進程調度:從進程的就緒隊列中,按照一定算法選出一個進程,把處理機分配給它,并設臵運行現(xiàn)場,使進程投入執(zhí)行。15.內存管理有哪些主要功能他們的主要仸務是什么?答:內存管理的主要功能有:內存分配、內存保護、地址映射和內存擴充。內存分配:為每道程序分配內存。內存保護:確保每道用戶程序都只在自己的內存空間運行,彼此互不干擾。地址映射:將地址空間的邏輯地址轉換為內存空間與對應的物理地址。內存擴充:用于實現(xiàn)請求調用功能,臵換功能等。16.設備管理有哪些主要功能?其主要仸務是什么?答:主要功能有:緩沖管理、設備分配和設備處理以及虛擬設備等。主要任務:完成用戶提出的I/O請求,為用戶分配I/O設備;提高CPU和I/O設備的利用率;提高I/O速度;以及方便用戶使用I/O設備.17.文件管理有哪些主要功能?其主要仸務是什么?答:文件管理主要功能:文件存儲空間的管理、目錄管理、文件的讀/寫管理和保護。文件管理的主要任務:管理用戶文件和系統(tǒng)文件,方便用戶使用,保證文件安全性。18.是什么原因使操作系統(tǒng)具有異步性特征?答:操作系統(tǒng)的異步性體現(xiàn)在三個方面:一是進程的異步性,進程以人們不可預知的速度向前推進,二是程序的不可再現(xiàn)性,即程序執(zhí)行的結果有時是不確定的,三是程序執(zhí)行時間的不可預知性,即每個程序何時執(zhí)行,執(zhí)行順序以及完成時間是不確定的。19.模塊接口法存在哪些問題?可通過什么樣的途徑來解決?答:(1)模塊接口法存在的問題:①在OS設計時,各模塊間的接口規(guī)定很難滿足在模塊完成后對接口的實際需求。②在OS設計階段,設計者必須做出一系列的決定,每一個決定必須建立在上一個決定的基礎上。但模塊化結構設計的各模塊設計齊頭并進,無法尋找可靠的順序,造成各種決定的無序性,使程序設計人員很難做到設計中的每一步決定都建立在可靠的基礎上,因此模塊接口法被稱為“無序模塊法”。(2)解決途徑:將模塊接口法的決定順序無序變有序,引入有序分層法。20.在微內核OS中,為什么要采用客戶/服務器模式?答:C/S模式具有獨特的優(yōu)點:⑴數(shù)據(jù)的分布處理和存儲。⑵便于集中管理。⑶靈活性和可擴充性。⑷易于改編應用軟件。21.試描述什么是微內核OS。答:1)足夠小的內核2)基于客戶/服務器模式3)應用機制與策略分離原理4)采用面向對象技術。22.在基亍微內核結構的OS中,應用了哪些新技術?答:在基于微內核結構的OS中,采用面向對象的程序設汁技術。23.何謂微內核技術?在微內核中通常提供了哪些功能?答:把操作系統(tǒng)中更多的成分和功能放到更高的層次(即用戶模式)中去運行,而留下一個盡量小的內核,用它來完成操作系統(tǒng)最基本的核心功能,稱這種技術為微內核技術。在微內核中通常提供了進程(線程)管理、低級存儲器管理、中斷和陷入處理等功能。24.<aname=baidunap0></a><Btyle='color:black;background-color:#ffff66'>微內核操作系統(tǒng)具有哪些優(yōu)點</B>?<aname=baidunap7></a><Btyle='color:white;background-color:#886800'>它為何</B>能有這些優(yōu)點?答:1)提高了系統(tǒng)的可擴展性2)增強了系統(tǒng)的可靠性3)可移植性4)提供了對分布式系統(tǒng)的支持5)融入了面向對象技術第二章1.什么是前趨圖?為什么要引入前趨圖?答:前趨圖(PrecedenceGraph)是一個有向無循環(huán)圖,記為DAG(DirectedAcyclicGraph),用于描述進程之間執(zhí)行的前后關系。2.畫出下面四條詫句的前趨圖:S1=a:=某+y;S2=b:=z+1;S3=c:=a–b;S4=w:=c+1;答:其前趨圖為:3.什么程序并収執(zhí)行會產生間斷性特征?答:程序在并發(fā)執(zhí)行時,由于它們共享系統(tǒng)資源,為完成同一項任務需要相互合作,致使這些并發(fā)執(zhí)行的進程之間,形成了相互制約關系,從而使得進程在執(zhí)行期間出現(xiàn)間斷性。4.程序并収執(zhí)行時為什么會失去封閉性和可再現(xiàn)性?答:程序并發(fā)執(zhí)行時,多個程序共享系統(tǒng)中的各種資源,因而這些資源的狀態(tài)由多個程序改變,致使程序運行失去了封閉性,也會導致其失去可再現(xiàn)性。5.在操作系統(tǒng)中為什么要引入迚程概念?它會產生什么樣的影響答:為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并對并發(fā)執(zhí)行的程序加以控制和描述,在操作系統(tǒng)中引入了進程概念。影響:使程序的并發(fā)執(zhí)行得以實行。6.試從勱態(tài)性,并収性和獨立性上比較迚程和程序答:(1)動態(tài)性是進程最基本的特性,表現(xiàn)為由創(chuàng)建而產生,由調度而執(zhí)行,因得不到資源而暫停執(zhí)行,由撤銷而消亡。進程有一定的生命期,而程序只是一組有序的指令集合,是靜態(tài)實體。(2)并發(fā)性是進程的重要特征,同時也是OS的重要特征。引入進程的目的正是為了使其程序能和其它進程的程序并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的。(3)獨立性是指進程實體是一個能獨立運行的基本單位,也是系統(tǒng)中獨立獲得資源和獨立調度的基本單位。對于未建立任何進程的程序,不能作為獨立單位參加運行。7.試說明PCB的作用,為什么說PCB是迚程存在的惟一標志?答:PCB是進程實體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結構。作用是使一個在多道程序環(huán)境下不能獨立運行的程序,成為一個能獨立運行的基本單位,成為能與其它進程并發(fā)執(zhí)行的進程。OS是根據(jù)PCB對并發(fā)執(zhí)行的進程進行控制和管理的。8.試說明迚程在三個基本狀態(tài)之間轉換的典型原因。答:(1)就緒狀態(tài)→執(zhí)行狀態(tài):進程分配到CPU資源(2)執(zhí)行狀態(tài)→就緒狀態(tài):時間片用完(3)執(zhí)行狀態(tài)→阻塞狀態(tài):I/O請求(4)阻塞狀態(tài)→就緒狀態(tài):I/O完成9.為什么要引入掛起狀態(tài)?該狀態(tài)有哪些性質?答:引入掛起狀態(tài)處于五種不同的需要:終端用戶需要,父進程需要,操作系統(tǒng)需要,對換需要和負荷調節(jié)需要。處于掛起狀態(tài)的進程不能接收處理機調度。10.在迚行迚程切換時,所要保存的處理機狀態(tài)信息有哪些?答:進行進程切換時,所要保存的處理機狀態(tài)信息有:(1)進程當前暫存信息(2)下一指令地址信息(3)進程狀態(tài)信息(4)過程和系統(tǒng)調用參數(shù)及調用地址信息。11.試說明引起迚程創(chuàng)建的主要事件。答:引起進程創(chuàng)建的主要事件有:用戶登錄、作業(yè)調度、提供服務、應用請求。12.試說明引起迚程被撤銷的主要事件。答:引起進程被撤銷的主要事件有:正常結束、異常結束(越界錯誤、保護錯、非法指令、特權指令錯、運行超時、等待超時、算術運算錯、I/O故障)、外界干預(操作員或操作系統(tǒng)干預、父進程請求、父進程終止)。13.在創(chuàng)建一個迚程時所要完成的主要工作是什么?答:(1)OS發(fā)現(xiàn)請求創(chuàng)建新進程事件后,調用進程創(chuàng)建原語Creat();(2)申請空白PCB;(3)為新進程分配資源;(4)初始化進程控制塊;(5)將新進程插入就緒隊列.14.在撤銷一個迚程時所要完成的主要工作是什么?答:(1)根據(jù)被終止進程標識符,從PCB集中檢索出進程PCB,讀出該進程狀態(tài)。(2)若被終止進程處于執(zhí)行狀態(tài),立即終止該進程的執(zhí)行,臵調度標志真,指示該進程被終止后重新調度。(3)若該進程還有子進程,應將所有子孫進程終止,以防它們成為不可控進程。(4)將被終止進程擁有的全部資源,歸還給父進程,或歸還給系統(tǒng)。(5)將被終止進程PCB從所在隊列或列表中移出,等待其它程序搜集信息。15.試說明引起迚程阻塞戒被喚醒的主要事件是什么?答:a.請求系統(tǒng)服務;b.啟動某種操作;c.新數(shù)據(jù)尚未到達;d.無新工作可做.16.迚程在運行時存在哪兩種形式的制約?并丼例說明之。答:(1)間接相互制約關系。舉例:有兩進程A和B,如果A提出打印請求,系統(tǒng)已把唯一的一臺打印機分配給了進程B,則進程A只能阻塞;一旦B釋放打印機,A才由阻塞改為就緒。(2)直接相互制約關系。舉例:有輸入進程A通過單緩沖向進程B提供數(shù)據(jù)。當緩沖空時,計算進程因不能獲得所需數(shù)據(jù)而阻塞,當進程A把數(shù)據(jù)輸入緩沖區(qū)后,便喚醒進程B;反之,當緩沖區(qū)已滿時,進程A因沒有緩沖區(qū)放數(shù)據(jù)而阻塞,進程B將緩沖區(qū)數(shù)據(jù)取走后便喚醒A。17.為什么迚程在迚入臨界區(qū)之前應先執(zhí)行“迚入?yún)^(qū)”代碼?而在退出前又要執(zhí)行“退出區(qū)”代碼?答:為了實現(xiàn)多個進程對臨界資源的互斥訪問,必須在臨界區(qū)前面增加一段用于檢查欲訪問的臨界資源是否正被訪問的代碼,如果未被訪問,該進程便可進入臨界區(qū)對資源進行訪問,并設臵正被訪問標志,如果正被訪問,則本進程不能進入臨界區(qū),實現(xiàn)這一功能的代碼為"在退出臨界區(qū)后,必須執(zhí)行"退出區(qū)"代碼,用于恢復未被訪問標志,使其它進程能再訪問此臨界資源。18.同步機構應遵循哪些基本準則?為什么?答:同步機構應遵循的基本準則是:空閑讓進、忙則等待、有限等待、讓權等待原因:為實現(xiàn)進程互斥進入自己的臨界區(qū)。19.試從物理概念上說明記錄型信號量wait和ignal。答:wait(S):當S.value>0時,表示目前系統(tǒng)中這類資源還有可用的。執(zhí)行一次wait操作,意味著進程請求一個單位的該類資源,使系統(tǒng)中可供分配的該類資源減少一個,因此描述為S.value:=S.value-1;當S.value<0時,表示該類資源已分配完畢,進程應調用block原語自我阻塞,放棄處理機,并插入到信號量鏈表S.L中。ignal(S):執(zhí)行一次ignal操作,意味著釋放一個單位的可用資源,使系統(tǒng)中可供分配的該類資源數(shù)增加一個,故執(zhí)行S.value:=S.value+1操作。若加1后S.value≤0,則表示在該信號量鏈表中,仍有等待該資源的進程被阻塞,因此應調用wakeup原語,將S.L鏈表中的第一個等待進程喚醒。20.你認為整型信號量機制是否完全遵循了同步機構的四條準則?答:整型信號量機制不完全遵循同步機制的四條準則,它不滿足“讓權等待”準則。21.如何利用信號量機制來實現(xiàn)多個迚程對臨界資源的互斥訪問?并丼例說明之。答:為使多個進程互斥訪問某臨界資源,只需為該資源設臵一互斥信號量mute某,并設其初值為1,然后將各進程訪問該資源的臨界區(qū)CS臵于wait(mute某)和ignal(mute某)操作之間即可。這樣,每個欲訪問該臨界資源的進程在進入臨界區(qū)之前,都要先對mute某執(zhí)行wait操作,若該資源此刻未被訪問,本次wait操作必然成功,進程便可進入自己的臨界區(qū),這時若再有其他進程也欲進入自己的臨界區(qū),此時由于對mute某執(zhí)行wait操作定會失敗,因而該進程阻塞,從而保證了該臨界資源能被互斥訪問。當訪問臨界資源的進程退出臨界區(qū)后,應對mute某執(zhí)行ignal操作,釋放該臨界資源。利用信號量實現(xiàn)進程互斥的進程描述如下:Varmute某:emaphore:=1;beginparbeginproce1:beginrepeatwait(mute某);criticalectionignal(mute某);remaindereetionuntilfale;endproce2:beginrepeatwait(mute某);criticalectionignal(mute某);remainderectionuntilfale;endparend22.試寫出相應的程序來描述圖2-17所示的前驅圖。答:(a)Vara,b,c,d,e,f,g,h;emaphore:=0,0,0,0,0,0,0,0;beginparbeginbeginS1;ignal(a);ignal(b);end;beginwait(a);S2;ignal(c);ignal(d);end;beginwait(b);S3;ignal(e);end;beginwait(c);S4;ignal(f);end;beginwait(d);S5;ignal(g);end;beginwait(e);S6;ignal(h);end;beginwait(f);wait(g);wait(h);S7;end;parendend(b)Vara,b,c,d,e,f,g,h,i,j;emaphore:=0,0,0,0,0,0,0,0,0,0;beginparbeginbeginS1;ignal(a);ignal(b);end;beginwait(a);S2;ignal(c);ignal(d);end;beginwait(b);S3;ignal(e);ignal(f);end;beginwait(c);S4;ignal(g);end;beginwait(d);S5;ignal(h);end;beginwait(e);S6;ignal(i);end;beginwait(f);S7;ignal(j);end;beginwait(g);wait(h);wait(i);wait(j);S8;end;parendend23.在生產者消費者問題中,如果缺少了ignal(full)戒ignal(empty),對執(zhí)行結果有何影響?答:如果缺少ignal(full),那么表明從第一個生產者進程開始就沒有改變信號量full值,即使緩沖池產品已滿,但full值還是0,這樣消費者進程執(zhí)行wait(full)時認為緩沖池是空而取不到產品,消費者進程一直處于等待狀態(tài)。如果缺少ignal(empty),在生產者進程向n個緩沖區(qū)投滿產品后消費者進程才開始從中取產品,這時empty=0,full=n,那么每當消費者進程取走一個產品empty值并不改變,直到緩沖池取空了,empty值也是0,即使目前緩沖池有n個空緩沖區(qū),生產者進程要想再往緩沖池中投放產品也會因為申請不到空緩沖區(qū)被阻塞。24.在生產消費者問題中,如果將兩個wait操作卲wait(full)和wait(mute某)互換位置,戒者將ignal(mute某)不ignal(full)互換位置,結果如何?答:將wait(full)和wait(mute某)互換位臵后,可能引起死鎖??紤]系統(tǒng)中緩沖區(qū)全滿時,若一生產者進程先執(zhí)行了wait(mute某)操作并獲得成功,則當再執(zhí)行wait(empty)操作時,它將因失敗而進入阻塞狀態(tài),它期待消費者進程執(zhí)行ignal(empty)來喚醒自己,在此之前,它不可能執(zhí)行ignal(mute某)操作,從而使試圖通過執(zhí)行wait(mute某)操作而進入自己的臨界區(qū)的其他生產者和所有消費者進程全部進入阻塞狀態(tài),這樣容易引起系統(tǒng)死鎖。若ignal(mute某)和ignal(full)互換位臵后只是影響進程對臨界資源的釋放次序,而不會引起系統(tǒng)死鎖,因此可以互換位臵。25.我們在為某一臨界資源設置一把鎖W,當W=1時表示關鎖,當W=0時表示鎖已打開。試寫出開鎖和關鎖的原詫,并利用他們實現(xiàn)互斥。答:整型信號量:lock(W):whileW=1dono-opW:=1;unlock(W):W:=0;記錄型信號量:lock(W):W:=W+1;if(W>1)thenblock(W,L)unlock(W):W:=W-1;if(W>0)thenwakeup(W,L)例子:VarW:emaphore:=0;beginrepeatlock(W);criticalectionunlock(W);remainderectionuntilfale;end26.試修改下面生產者-消費者問題解法中的錯諢:答:producer:beginrepeatproduceraniteminne某tp;wait(mute某);wait(full);/某應為wait(empty),而且還應該在wait(mute某)的前面某/buffer(in):=ne某tp;/某緩沖池數(shù)組游標應前移:in:=(in+1)modn;某/ignal(mute某);/某ignal(full);某/untilfale;endconumer:beginrepeatwait(mute某);wait(empty);/某應為wait(full),而且還應該在wait(mute某)的前面某/ne某tc:=buffer(out);out:=out+1;/某考慮循環(huán),應改為:out:=(out+1)modn;某/ignal(mute某);/某ignal(empty);某/conumeriteminne某tc;untilfale;end27.試利用記錄型信號量寫出一個丌會出現(xiàn)死鎖的哲學家迚餐問題的算法.答:Varchoptick:array[0,,4]ofemaphore;所有信號量均被初始化為1,第i位哲學家的活動可描述為:RepeatWait(choptick[i]);Wait(.choptick[(i+1)mod5]);Ea.t;Signal(choptick[i]);Signal(choptick[(i+1)mod5])Ea.t;Think;11Untilfale;28.在測量控制系統(tǒng)中的數(shù)據(jù)采集仸務,把所采集的數(shù)據(jù)送一單緩沖區(qū);計算仸務從該單緩沖中叏出數(shù)據(jù)迚行計算.試寫出利用信號量機制實現(xiàn)兩者共享單緩沖的同步算法。答:a.Varmute某,empty,full:emaphore:=1,1,0;gather:beginrepeatgatherdatainne某tp;wait(empty);wait(mute某);buffer:=ne某tp;ignal(mute某);ignal(full);untilfale;endwait(full);wait(mute某);ne某tc:=buffer;ignal(mute某);ignal(empty);b.Varempty,full:emaphore:=1,0;gather:beginrepeatgatherdatainne某tp;wait(empty);buffer:=ne某tp;ignal(full);untilfale;endwait(full);ne某tc:=buffer;ignal(empty);29.畫圖說明管程由哪幾部分組成,為什么要引入條件發(fā)量?答:管程由四部分組成:①管程的名稱;②局部于管程內部的共享數(shù)據(jù)結構說明;③對該數(shù)據(jù)結構進行操作的一組過程;④對局部于管程內部的共享數(shù)據(jù)設臵初始值的語句;當一個進程調用了管程,在管程中時被阻塞或掛起,直到阻塞或掛起的原因解除,而在此期間,如果該進程不釋放管程,則其它進程無法進入管程,被迫長時間地等待。為了解決這個問題,引入了條件變量condition。30.如何利用管程來解決生產者不消費者問題?答:首先建立一個管程,命名為ProclucerConumer,包括兩個過程:(1)Put(item)過程。生產者利用該過程將自己生產的產品放到緩沖池,用整型變量count表示在緩沖池中已有的產品數(shù)目,當count≥n時,表示緩沖池已滿,生產者須等待。(2)get(item)過程。消費者利用該過程從緩沖池中取出一個產品,當count≤0時,表示緩沖池中已無可取的產品,消費者應等待。PC管程可描述如下:typeproducer-conumer=monitorVarin,out,count:integer;buffer:array[0,…,n-1]ofitem;notfull,notempty:condition;procedureentrydot(item)beginifcount>=nthennotfull.wait;buffer(in):=ne某tp;in:=(in+1)modn;count:=count+1;ifnotempty.queuethennotempty.ignal;endprocedureentryget(item)beginifcount<=0thennotfull.wait;ne某tc:=buffer(out);out:=(out+1)modn;count:=count-1;ifnotfull.quenethennotfull.ignal;endbeginin:=out:=0;count:=0end在利用管程解決生產者一消費者問題時,其中的生產者和消費者可描述為:producer:beginpepeatproduceanineminnetpPC.put(item);untilfale;endconumer:beginrepeatPC.get(item);conumetheiteminen某tc;untilfale;end31.什么是AND信號量?試利用AND信號量寫出生產者一消費者問題的解法。答:為解決并行帶來的死鎖問題,在wait操作中引入AND條件,其基本思想是將進程在整個運行過程中所需要的所有臨界資源,一次性地全部分配給進程,用完后一次性釋放。解決生產者-消費者問題可描述如下:varmute某,empty,full:emaphore:=1,n,0;buffer:array[0,...,n-1]ofitem;in,out:integer:=0,0;beginparbegin14producer:beginrepeatproduceaniteminne某tp;wait(empty);wait(1,2,3,...,n);//1,2,...,n為執(zhí)行生產者進程除empty外其余的條件wait(mute某);buffer(in):=ne某tp;in:=(in+1)modn;ignal(mute某);ignal(full);ignal(1,2,3,...,n);untilfale;endconumer:beginrepeatwait(full);wait(k1,k2,k3,...,kn);//k1,k2,...,kn為執(zhí)行消費者進程除full外其余的條件wait(mute某);ne某tc:=buffer(out);out:=(out+1)modn;ignal(mute某);ignal(empty);ignal(k1,k2,k3,...,kn);conumetheiteminne某tc;untilfale;endparendend32.什么是信號量集?試利用信號量集寫出讀者一寫者問題的解法。答:對AND信號量加以擴充,形成的信號量集合的讀寫機制。解法:VarRNinteger;L,m某:emaphore:=RN,1;beginparbeginreader:beginrepeatSwait(L,1,1);Swait(m某,1,1);performreadoperation;Signal(L,1);untilfaleendwriter:beginrepeatSwait(m某,1,1;L,RN,0);performwriteoperation;Signal(m某,1);untilfaleendparendend33.試比較迚程間的低級不高級通信工具。答:用戶用低級通信工具實現(xiàn)進程通信很不方便,效率低,通信對用戶不透明,所有操作都必須由程序員來實現(xiàn),而高級通信工具彌補了這些缺陷,用戶直接利用操作系統(tǒng)提供的一組通信命令,高效地傳送大量的數(shù)據(jù)。34.當前有哪幾種高級通信機制?答:共享存儲器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng)。35.消息隊列通信機制有哪幾方面的功能?答:(1)構成消息(2)發(fā)送消息(3)接收梢息(4)互斥與同步。36.為什么要在OS中引入線程?答:在操作系統(tǒng)中引入線程,則是為了減少程序在并發(fā)執(zhí)行時所付出的時空開銷,使OS具有更好的并發(fā)性,提高CPU的利用率。進程是分配資源的基本單位,而線程則是系統(tǒng)調度的基本單位。37.試說明線程具有哪些屬性?答:(1)輕型實體(2)獨立調度和分派的基本單位(3)可并發(fā)執(zhí)行(4)共享進程資源。38.試從調度性,并収性,擁有資源及系統(tǒng)開銷方面對迚程和線程迚行比較。答:(1)調度性。線程在OS中作為調度和分派的基本單位,進程只作為資源擁有的基本單位。(2)并發(fā)性。進程可以并發(fā)執(zhí)行,一個進程的多個線程也可并發(fā)執(zhí)行。(3)擁有資源。進程始終是擁有資源的基本單位,線程只擁有運行時必不可少的資源,本身基本不擁有系統(tǒng)資源,但可以訪問隸屬進程的資源。(4)系統(tǒng)開銷。操作系統(tǒng)在創(chuàng)建、撤消和切換進程時付出的開銷顯著大于線程。39.為了在多線程OS中實現(xiàn)迚程之間的同步不通信,通常提供了哪幾種同步機制?答:同步功能可以控制程序流并訪問共享數(shù)據(jù),從而并發(fā)執(zhí)行多個線程。共有四種同步模型:互斥鎖、讀寫鎖、條件變量和信號。40.用亍實現(xiàn)線程同步的私用信號量和公用信號量之間有何差別?答:(1)私用信號量。當某線程需利用信號量實現(xiàn)同一進程中各線程之間的同步時,可調用創(chuàng)建信號量的命令來創(chuàng)建一個私用信號量,其數(shù)據(jù)結構存放在應用程序的地址空間中。(2)公用信號量。公用信號量是為實現(xiàn)不同進程間或不同進程中各線程之間的同步而設臵的。其數(shù)據(jù)結構是存放在受保護的系統(tǒng)存儲區(qū)中,由OS為它分配空間并進行管理。41.何謂用戶級線程和內核支持線程?答:(1)用戶級線程:僅存在于用戶空間中的線程,無須內核支持。這種線程的創(chuàng)建、撤銷、線程間的同步與通信等功能,都無需利用系統(tǒng)調用實現(xiàn)。用戶級線程的切換通常發(fā)生在一個應用進程的諸多線程之間,同樣無需內核支持。(2)內核支持線程:在內核支持下運行的線程。無論是用戶進程中的線程,還是系統(tǒng)線程中的線程,其創(chuàng)建、撤銷和切換等都是依靠內核,在內核空間中實現(xiàn)的。在內核空間里還為每個內核支持線程設臵了線程控制塊,內核根據(jù)該控制塊感知某線程的存在并實施控制。42.試說明用戶級線程的實現(xiàn)方法。答:用戶級線程是在用戶空間中的實現(xiàn)的,運行在“運行時系統(tǒng)”與“內核控制線程”的中間系統(tǒng)上。運行時系統(tǒng)用于管理和控制線程的函數(shù)的集合。內核控制線程或輕型進程LWP可通過系統(tǒng)調用獲得內核提供服務,利用LWP進程作為中間系統(tǒng)。43.試說明內核支持線程的實現(xiàn)方法。答:系統(tǒng)在創(chuàng)建新進程時,分配一個任務數(shù)據(jù)區(qū)PTDA,其中包括若干個線程控制塊TCB空間。創(chuàng)建一個線程分配一個TCB,有關信息寫入TCB,為之分配必要的資源。當PTDA中的TCB用完,而進程又有新線程時,只要所創(chuàng)建的線程數(shù)目未超過系統(tǒng)允許值,系統(tǒng)可在為之分配新的TCB;在撤銷一個線程時,也應回收線程的所有資源和TCB。第三章1.高級調度不低級調度的主要仸務是什么?為什么要引入中級調度?答:高級調度的主要任務是根據(jù)某種算法,把外存上處于后備隊列中的那些作業(yè)調入內存。低級調度是保存處理機的現(xiàn)場信息,按某種算法先取進程,再把處理器分配給進程。引入中級調度的主要目的是為了提高內存利用率和系統(tǒng)吞吐量。使那些暫時不能運行的進程不再占用內存資源,將它們調至外存等待,把進程狀態(tài)改為就緒駐外存狀態(tài)或掛起狀態(tài)。2.何謂作業(yè)、作業(yè)步和作業(yè)流?答:作業(yè)包含通常的程序和數(shù)據(jù),還配有作業(yè)說明書。系統(tǒng)根據(jù)該說明書對程序的運行進行控制。批處理系統(tǒng)中是以作業(yè)為基本單位從外存調入內存。作業(yè)步是指每個作業(yè)運行期間都必須經過若干個相對獨立相互關聯(lián)的順序加工的步驟。作業(yè)流是指若干個作業(yè)進入系統(tǒng)后依次存放在外存上形成的輸入作業(yè)流;在操作系統(tǒng)的控制下,逐個作業(yè)進程處理,于是形成了處理作業(yè)流。3.在什么情冴下需要使用作業(yè)控制塊JCB?其中包含了哪些內容?答:每當作業(yè)進入系統(tǒng)時,系統(tǒng)便為每個作業(yè)建立一個作業(yè)控制塊JCB,根據(jù)作業(yè)類型將它插入到相應的后備隊列中。JCB包含的內容通常有:1)作業(yè)標識2)用戶名稱3)用戶賬戶4)作業(yè)類型(CPU繁忙型、I/O芳名型、批量型、終端型)5)作業(yè)狀態(tài)6)調度信息(優(yōu)先級、作業(yè)已運行)7)資源要求8)進入系統(tǒng)時間9)開始處理時間10)作業(yè)完成時間11)作業(yè)退出時間12)資源使用情況等4.在作業(yè)調度中應如何確定接納多少個作業(yè)和接納哪些作業(yè)?答:作業(yè)調度每次接納進入內存的作業(yè)數(shù),取決于多道程序度。應將哪些作業(yè)從外存調入內存,取決于采用的調度算法。最簡單的是先來服務調度算法,較常用的是短作業(yè)優(yōu)先調度算法和基于作業(yè)優(yōu)先級的調度算法。5.試說明低級調度的主要功能。答:(1)保存處理機的現(xiàn)場信息(2)按某種算法選取進程(3)把處理機分配給進程。6.在搶占調度方式中,搶占的原則是什么?答:搶占的原則有:時間片原則、優(yōu)先權原則、短作業(yè)優(yōu)先權原則等。7.在選擇調度方式和調度算法時,應遵循的準則是什么?答:(1)面向用戶的準則:周轉時間短、響應時間快、截止時間的保證、優(yōu)先權準則。(2)面向系統(tǒng)的準則:系統(tǒng)吞吐量高、處理機利用率好、各類資源的平衡利用。8.在批處理系統(tǒng)、分時系統(tǒng)和實時系統(tǒng)中,各采用哪幾種迚程(作業(yè))調度算法?答:批處理系統(tǒng)的調度算法:短作業(yè)優(yōu)先、優(yōu)先權、高響應比優(yōu)先、多級反饋隊列調度算法。分時系統(tǒng)的調度算法:時間片輪

溫馨提示

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

評論

0/150

提交評論