鄭州輕工業(yè)學(xué)院教材答案計算機(jī)操作系統(tǒng)第三版課后習(xí)題答案湯小丹梁紅兵
《鄭州輕工業(yè)學(xué)院教材答案計算機(jī)操作系統(tǒng)第三版課后習(xí)題答案湯小丹梁紅兵》由會員分享,可在線閱讀,更多相關(guān)《鄭州輕工業(yè)學(xué)院教材答案計算機(jī)操作系統(tǒng)第三版課后習(xí)題答案湯小丹梁紅兵(53頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第一章 1.設(shè)計現(xiàn)代OS的重要目的是什么? 答:(1)有效性 (2)以便性 (3)可擴(kuò)大性 (4)開放性 2.OS的作用可表目前哪幾種方面? 答:(1)OS作為顧客與計算機(jī)硬件系統(tǒng)之間的接口 (2)OS作為計算機(jī)系統(tǒng)資源的管理者 (3)OS實現(xiàn)了對計算機(jī)資源的抽象 3.為什么說OS實現(xiàn)了對計算機(jī)資源的抽象? 答:OS一方面在裸機(jī)上覆蓋一層I/O設(shè)備管理軟件,實現(xiàn)了對計算機(jī)硬件操作的第一層次抽 象;在第一層軟件上再覆蓋文獻(xiàn)管理軟件,實現(xiàn)了對硬件資源操作的第二層次抽象。OS 通過在計算機(jī)硬件上安裝多層系統(tǒng)軟件,增強(qiáng)了系統(tǒng)功能,隱藏了對硬件操作的細(xì)節(jié),由它們共同實
2、現(xiàn)了對計算機(jī)資源的抽象。 4.試闡明推勱多道批解決系統(tǒng)形成和収展的重要勱力是什么? 答:重要動力來源于四個方面的社會需求與技術(shù)發(fā)展: (1)不斷提高計算機(jī)資源的運(yùn)用率; (2)以便顧客; (3)器件的不斷更新?lián)Q代; (4)計算機(jī)體系構(gòu)造的不斷發(fā)展。 5.何謂脫機(jī)I/O和聯(lián)機(jī)I/O? 答:脫機(jī)I/O 是指事先將裝有顧客程序和數(shù)據(jù)的紙帶或卡片裝入紙帶輸入機(jī)或卡片機(jī),在外圍機(jī)的控制下,把紙帶或卡片上的數(shù)據(jù)或程序輸入到磁帶上。該方式下的輸入輸出由外圍 機(jī)控制完畢,是在脫離主機(jī)的狀況下進(jìn)行的。 而聯(lián)機(jī)I/O方式是指程序和數(shù)據(jù)的輸入輸出都是在主機(jī)的直接控制下進(jìn)行的。
3、 6.試闡明推勱分時系統(tǒng)形成和収展的重要勱力是什么? 答:推動分時系統(tǒng)形成和發(fā)展的重要動力是更好地滿足顧客的需要。重要表目前:CPU 的分時使用縮短了作業(yè)的平均周轉(zhuǎn)時間;人機(jī)交互能力使顧客能直接控制自己的作業(yè);主機(jī)的共享使多顧客能同步使用同一臺計算機(jī),獨(dú)立地解決自己的作業(yè)。 7.實現(xiàn)分時系統(tǒng)的核心問題是什么?應(yīng)如何解決? 答:核心問題是當(dāng)顧客在自己的終端上鍵入命令時,系統(tǒng)應(yīng)能及時接受并及時解決該命令,在顧客能接受的時延內(nèi)將成果返回給顧客。解決措施:針對及時接受問題,可以在系統(tǒng)中設(shè)臵多路卡,使主機(jī)能同步接受顧客從各個終端上輸入的數(shù)據(jù);為每個終端配臵緩沖區(qū),暫存顧客鍵入的命令或數(shù)據(jù)
4、。針對及時解決問題,應(yīng)使所有的顧客作業(yè)都直接進(jìn)入內(nèi)存,并且為每個作業(yè)分派一種時間片,容許作業(yè)只在自己的時間片內(nèi)運(yùn)營,這樣在不長的時間內(nèi),能使每個作業(yè)都運(yùn)營一次。 8.為什么要引入實時OS? 答:實時操作系統(tǒng)是指系統(tǒng)能及時響應(yīng)外部事件的祈求,在規(guī)定的時間內(nèi)完畢對該事件的解決,并控制所有實時任務(wù)協(xié)調(diào)一致地運(yùn)營。引入實時OS 是為了滿足應(yīng)用的需求,更好地滿足實時控制領(lǐng)域和實時信息解決領(lǐng)域的需要。 9.什么是硬實時仸務(wù)和軟實時仸務(wù)?試丼例闡明。 答:硬實時任務(wù)是指系統(tǒng)必須滿足任務(wù)對截止時間的規(guī)定,否則也許浮現(xiàn)難以預(yù)測的成果。舉例來說,運(yùn)載火箭的控制等。軟實時任務(wù)是指它的截止時間并不嚴(yán)
5、格,偶爾錯過了任務(wù)的截止時間,對系統(tǒng)產(chǎn)生的影響不大。舉例:網(wǎng)頁內(nèi)容的更新、火車售票系統(tǒng)。 10.在8位微機(jī)和16位微機(jī)中,占據(jù)了統(tǒng)治地位的是什么操作系統(tǒng)? 答:單顧客單任務(wù)操作系統(tǒng),其中最具代表性的是CP/M和MS-DOS. 11.試列出Windows OS 中五個重要版本,并闡明它們分別較之前一種版本有何改迚。 答: (1)Microsoft Windows 1.0是微軟公司在個人電腦上開發(fā)圖形界面的初次嘗試。 (2)Windows 95是混合的16位/32位系統(tǒng),第一種支持32位。帶來了更強(qiáng)大、更穩(wěn)定、更實用的桌面圖形顧客界面,結(jié)束了桌面操作系統(tǒng)間的競爭。 (
6、3)Windows 98是微軟公司的混合16位/32位Windows 操作系統(tǒng),改良了硬件原則的支持,革新了內(nèi)存管理,是多進(jìn)程操作系統(tǒng)。 (4)Windows XP是基于Windows 的產(chǎn)品,擁有新顧客圖形界面月神Luna。簡化了顧客安全特性,整合了防火墻。 (5)Windows Vista 涉及了上百種新功能;特別是新幅員形顧客界面和Windows Aero全新界面風(fēng)格、加強(qiáng)的搜尋功能(Windows Indexing Service)、新媒體創(chuàng)作工具以及重 新設(shè)計的網(wǎng)絡(luò)、音頻、輸出(打?。┖惋@示子系統(tǒng)。。 12.試從交互性、及時性以及可靠性方面,將分時系統(tǒng)不實時系統(tǒng)迚行比
7、較。 答:(1)及時性:實時信息解決系統(tǒng)對實時性的規(guī)定與分時系統(tǒng)類似,都是以人所能接受的等待時間來擬定;而實時控制系統(tǒng)的及時性,是以控制對象所規(guī)定的開始截止時間或完畢截止時間來擬定的,一般為秒級到毫秒級,甚至有的要低于100微妙。 (2)交互性:實時信息解決系統(tǒng)具有交互性,但人與系統(tǒng)的交互僅限于訪問系統(tǒng)中某些特定的專用服務(wù)程序。不像分時系統(tǒng)那樣能向終端顧客提供數(shù)據(jù)和資源共享等服務(wù)。 (3)可靠性:分時系統(tǒng)也規(guī)定系統(tǒng)可靠,但相比之下,實時系統(tǒng)則規(guī)定系統(tǒng)具有高度的可靠性。由于任何差錯都也許帶來巨大的經(jīng)濟(jì)損失,甚至是劫難性后果,因此在實時系統(tǒng)中,往往都采用了多級容錯措施保障系統(tǒng)的安全性及
8、數(shù)據(jù)的安全性。 13.OS有哪幾大特性?其最基本的特性是什么? 答:并發(fā)性、共享性、虛擬性和異步性四個基本特性;最基本的特性是并發(fā)性。 14.解決機(jī)管理有哪些重要功能?它們的重要仸務(wù)是什么? 答:解決機(jī)管理的重要功能是:進(jìn)程管理、進(jìn)程同步、進(jìn)程通信和解決機(jī)調(diào)度; 進(jìn)程管理:為作業(yè)創(chuàng)立進(jìn)程,撤銷已結(jié)束進(jìn)程,控制進(jìn)程在運(yùn)營過程中的狀態(tài)轉(zhuǎn)換。進(jìn)程同步:為多種進(jìn)程(含線程)的運(yùn)營______________進(jìn)行協(xié)調(diào)。 通信:用來實目前互相合伙的進(jìn)程之間的信息互換。 解決機(jī)調(diào)度: (1)作業(yè)調(diào)度。從后備隊里按照一定的算法,選出若干個作業(yè),為她們分派運(yùn)營所需的資源(首選是分
9、派內(nèi)存)。 (2)進(jìn)程調(diào)度:從進(jìn)程的就緒隊列中,按照一定算法選出一種進(jìn)程,把解決機(jī)分派給它,并設(shè)臵運(yùn)營現(xiàn)場,使進(jìn)程投入執(zhí)行。 15.內(nèi)存管理有哪些重要功能?她們的重要仸務(wù)是什么? 答:內(nèi)存管理的重要功能有:內(nèi)存分派、內(nèi)存保護(hù)、地址映射和內(nèi)存擴(kuò)大。 內(nèi)存分派:為每道程序分派內(nèi)存。 內(nèi)存保護(hù):保證每道顧客程序都只在自己的內(nèi)存空間運(yùn)營,彼此互不干擾。 地址映射:將地址空間的邏輯地址轉(zhuǎn)換為內(nèi)存空間與相應(yīng)的物理地址。 內(nèi)存擴(kuò)大:用于實現(xiàn)祈求調(diào)用功能,臵換功能等。 16.設(shè)備管理有哪些重要功能?其重要仸務(wù)是什么? 答:重要功能有: 緩沖管理、設(shè)備分派和設(shè)備解決以及虛擬
10、設(shè)備等。 重要任務(wù): 完畢顧客提出的I/O 祈求,為顧客分派I/O 設(shè)備;提高CPU 和I/O 設(shè) 備的運(yùn)用率;提高I/O速度;以及以便顧客使用I/O設(shè)備. 17.文獻(xiàn)管理有哪些重要功能?其重要仸務(wù)是什么? 答:文獻(xiàn)管理重要功能:文獻(xiàn)存儲空間的管理、目錄管理、文獻(xiàn)的讀/寫管理和保護(hù)。 文獻(xiàn)管理的重要任務(wù):管理顧客文獻(xiàn)和系統(tǒng)文獻(xiàn),以便顧客使用,保證文獻(xiàn)安全性。 18.是什么因素使操作系統(tǒng)具有異步性特性? 答:操作系統(tǒng)的異步性體目前三個方面:一是進(jìn)程的異步性,進(jìn)程以人們不可預(yù)知的速度向 前推動,二是程序的不可再現(xiàn)性,即程序執(zhí)行的成果有時是不擬定的,三是程序執(zhí)行時間
11、的不可預(yù)知性,即每個程序何時執(zhí)行,執(zhí)行順序以及完畢時間是不擬定的。 19.模塊接口法存在哪些問題?可通過什么樣的途徑來解決? 答:(1)模塊接口法存在的問題:①在OS設(shè)計時,各模塊間的接口規(guī)定很難滿足在模塊完畢后對接口的實際需求。②在OS 設(shè)計階段,設(shè)計者必須做出一系列的決定,每一種決定必須建立在上一種決定的基本上。但模塊化構(gòu)造設(shè)計的各模塊設(shè)計齊頭并進(jìn),無法尋找可靠的順序,導(dǎo)致多種決定的無序性,使程序設(shè)計人員很難做到設(shè)計中的每一步?jīng)Q定都建立在可靠的基本上,因此模塊接口法被稱為“無序模塊法”。 (2)解決途徑:將模塊接口法的決定順序無序變有序,引入有序分層法。 20.在微內(nèi)核O
12、S中,為什么要采用客戶/服務(wù)器模式? 答:C/S 模式具有獨(dú)特的長處:⑴數(shù)據(jù)的分布解決和存儲。⑵便于集中管理。⑶靈活性和 可擴(kuò)大性。⑷易于改編應(yīng)用軟件。 21.試描述什么是微內(nèi)核OS。 答:1)足夠小的內(nèi)核 2)基于客戶/服務(wù)器模式 3)應(yīng)用機(jī)制與方略分離原理 4)采用面向?qū)ο蠹夹g(shù)。 22.在基亍微內(nèi)核構(gòu)造的OS中,應(yīng)用了哪些新技術(shù)? 答:在基于微內(nèi)核構(gòu)造的OS 中,采用面向?qū)ο蟮某绦蛟O(shè)汁技術(shù)。 23.何謂微內(nèi)核技術(shù)?在微內(nèi)核中一般提供了哪些功能? 答:把操作系統(tǒng)中更多的成分和功能放到更高的層次(即顧客模式)中去運(yùn)營,而留下一種盡量小的內(nèi)核,用它來完畢操
13、作系統(tǒng)最基本的核心功能,稱這種技術(shù)為微內(nèi)核技術(shù)。在微內(nèi)核中一般提供了進(jìn)程(線程)管理、低檔存儲器管理、中斷和陷入解決等功能。 24.微內(nèi)核操作系統(tǒng)具有哪些長處?它為什么能有這些長處? 答:1)提高了系統(tǒng)的可擴(kuò)展性 2)增強(qiáng)了系統(tǒng)的可靠性 3)可移植性 4)提供了對分布式系統(tǒng)的支持 5)融
14、入了面向?qū)ο蠹夹g(shù) 第二章 1. 什么是前趨圖?為什么要引入前趨圖? 答:前趨圖(Precedence Graph)是一種有向無循環(huán)圖,記為DAG(Directed Acyclic Graph),用于描述進(jìn)程之間執(zhí)行的前后關(guān)系。 2. 畫出下面四條詫句的前趨圖: S1=a:=x+y; S2=b:=z+1; S3=c:=a – b; S4=w:=c+1; 答:其前趨圖為: 3. 什么程序
15、并収執(zhí)行會產(chǎn)生間斷性特性? 答:程序在并發(fā)執(zhí)行時,由于它們共享系統(tǒng)資源,為完畢同一項任務(wù)需要互相合伙,致使這些并發(fā)執(zhí)行的進(jìn)程之間,形成了互相制約關(guān)系,從而使得進(jìn)程在執(zhí)行期間浮現(xiàn)間斷性。 4.程序并収執(zhí)行時為什么會失去封閉性和可再現(xiàn)性? 答:程序并發(fā)執(zhí)行時,多種程序共享系統(tǒng)中的多種資源,因而這些資源的狀態(tài)由多種程序變化,致使程序運(yùn)營失去了封閉性,也會導(dǎo)致其失去可再現(xiàn)性。 5.在操作系統(tǒng)中為什么要引入迚程概念?它會產(chǎn)生什么樣的影響? 答:為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并對并發(fā)執(zhí)行的程序加以控制和描述,在操作系統(tǒng)中引入了進(jìn)程概念。 影響: 使程序的并發(fā)執(zhí)行得以實行。
16、 6.試從勱態(tài)性,并収性和獨(dú)立性上比較迚程和程序? 答:(1)動態(tài)性是進(jìn)程最基本的特性,體現(xiàn)為由創(chuàng)立而產(chǎn)生,由調(diào)度而執(zhí)行,因得不到資源而暫停執(zhí)行,由撤銷而消滅。進(jìn)程有一定的生命期,而程序只是一組有序的指令集合,是靜態(tài)實體。 (2)并發(fā)性是進(jìn)程的重要特性,同步也是OS 的重要特性。引入進(jìn)程的目的正是為了使其程序能和其他進(jìn)程的程序并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的。 (3)獨(dú)立性是指進(jìn)程實體是一種能獨(dú)立運(yùn)營的基本單位,也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位。對于未建立任何進(jìn)程的程序,不能作為獨(dú)立單位參與運(yùn)營。 7.試闡明PCB 的作用,為什么說PCB 是迚程存在的惟一標(biāo)
17、志? 答:PCB 是進(jìn)程實體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)構(gòu)造。作用是使一種在多道程序環(huán)境下不能獨(dú)立運(yùn)營的程序,成為一種能獨(dú)立運(yùn)營的基本單位,成為能與其他進(jìn)程并發(fā)執(zhí)行的進(jìn)程。OS是根據(jù)PCB對并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的。 8.試闡明迚程在三個基本狀態(tài)之間轉(zhuǎn)換的典型因素。 答: (1)就緒狀態(tài)→執(zhí)行狀態(tài):進(jìn)程分派到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)有哪些性質(zhì)? 答:引入掛起狀態(tài)處在五種不同的需要: 終端顧客需要,父進(jìn)程需要
18、,操作系統(tǒng)需要,對換需要和負(fù)荷調(diào)節(jié)需要。處在掛起狀態(tài)的進(jìn)程不能接受解決機(jī)調(diào)度。 10.在迚行迚程切換時,所要保存的解決機(jī)狀態(tài)信息有哪些? 答:進(jìn)行進(jìn)程切換時,所要保存的解決機(jī)狀態(tài)信息有: (1)進(jìn)程目前暫存信息 (2)下一指令地址信息 (3)進(jìn)程狀態(tài)信息 (4)過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址信息。 11.試闡明引起迚程創(chuàng)立的重要事件。 答:引起進(jìn)程創(chuàng)立的重要事件有:顧客登錄、作業(yè)調(diào)度、提供服務(wù)、應(yīng)用祈求。 12.試闡明引起迚程被撤銷的重要事件。 答:引起進(jìn)程被撤銷的重要事件有:正常結(jié)束、異常結(jié)束(越界錯誤、保護(hù)錯、非法指令、特權(quán)指令錯、運(yùn)營超時、等待超時、
19、算術(shù)運(yùn)算錯、I/O 故障)、外界干預(yù)(操作員或操作系統(tǒng)干預(yù)、父進(jìn)程祈求、父進(jìn)程終結(jié))。 13.在創(chuàng)立一種迚程時所要完畢的重要工作是什么? 答: (1)OS 發(fā)現(xiàn)祈求創(chuàng)立新進(jìn)程事件后,調(diào)用進(jìn)程創(chuàng)立原語Creat(); (2)申請空白PCB; (3)為新進(jìn)程分派資源; (4)初始化進(jìn)程控制塊; (5)將新進(jìn)程插入就緒隊列. 14.在撤銷一種迚程時所要完畢的重要工作是什么? 答: (1)根據(jù)被終結(jié)進(jìn)程標(biāo)記符,從PCB 集中檢索出進(jìn)程PCB,讀出該進(jìn)程狀態(tài)。 (2)若被終結(jié)進(jìn)程處在執(zhí)行狀態(tài),立即終結(jié)該進(jìn)程的執(zhí)行,臵調(diào)度標(biāo)志真,批示該進(jìn)程被 終結(jié)后重
20、新調(diào)度。 (3)若該進(jìn)程尚有子進(jìn)程,應(yīng)將所有子孫進(jìn)程終結(jié),以防它們成為不可控進(jìn)程。 (4)將被終結(jié)進(jìn)程擁有的所有資源,歸還給父進(jìn)程,或歸還給系統(tǒng)。 (5)將被終結(jié)進(jìn)程PCB 從所在隊列或列表中移出,等待其他程序收集信息。 15.試闡明引起迚程阻塞戒被喚醒的重要事件是什么? 答:a. 祈求系統(tǒng)服務(wù);b. 啟動某種操作;c. 新數(shù)據(jù)尚未達(dá)到;d. 無新工作可做. 16.迚程在運(yùn)營時存在哪兩種形式的制約?并丼例闡明之。 答: (1)間接互相制約關(guān)系。舉例:有兩進(jìn)程A 和B,如果A 提出打印祈求,系統(tǒng)已把唯一的一臺打印機(jī)分派給了進(jìn)程B,則進(jìn)程A 只能阻塞
21、;一旦B 釋放打印機(jī),A 才由阻塞改為就 緒。 (2)直接互相制約關(guān)系。舉例:有輸入進(jìn)程A 通過單緩沖向進(jìn)程B 提供數(shù)據(jù)。當(dāng)緩沖空時,計算進(jìn)程因不能獲得所需數(shù)據(jù)而阻塞,當(dāng)進(jìn)程A 把數(shù)據(jù)輸入緩沖區(qū)后,便喚醒進(jìn)程B;反之,當(dāng)緩沖區(qū)已滿時,進(jìn)程A 因沒有緩沖區(qū)放數(shù)據(jù)而阻塞,進(jìn)程B 將緩沖區(qū)數(shù)據(jù)取走后便喚醒A。 17.為什么迚程在迚入臨界區(qū)之前應(yīng)先執(zhí)行“迚入?yún)^(qū)”代碼?而在退出前又要執(zhí)行“退出區(qū)”代碼? 答:為了實現(xiàn)多種進(jìn)程對臨界資源的互斥訪問,必須在臨界區(qū)前面增長一段用于檢查欲訪問的臨界資源與否正被訪問的代碼,如果未被訪問,該進(jìn)程便可進(jìn)入臨界區(qū)對資源進(jìn)行訪問,并設(shè)臵正被訪
22、問標(biāo)志,如果正被訪問,則本進(jìn)程不能進(jìn)入臨界區(qū),實現(xiàn)這一功能的代碼為" 在退出臨界區(qū)后,必須執(zhí)行"退出區(qū)"代碼,用于恢復(fù)未被訪問標(biāo)志,使其他進(jìn)程能再訪問此臨界資源。 18. 同步機(jī)構(gòu)應(yīng)遵循哪些基本準(zhǔn)則?為什么? 答:同步機(jī)構(gòu)應(yīng)遵循的基本準(zhǔn)則是:空閑讓進(jìn)、忙則等待、有限等待、讓權(quán)等待因素:為實現(xiàn)進(jìn)程互斥進(jìn)入自己的臨界區(qū)。 19. 試從物理概念上闡明記錄型信號量wait 和signal。 答:wait(S):當(dāng)S.value>0 時,表達(dá)目前系統(tǒng)中此類資源尚有可用的。執(zhí)行一次wait 操作,意味著進(jìn)程祈求一種單位的該類資源,使系統(tǒng)中可供分派的該類資源減少一種,因此描述為S
23、.value:=S.value-1;當(dāng)S.value<0時,表達(dá)該類資源已分派完畢,進(jìn)程應(yīng)調(diào)用block原語自我阻塞,放棄解決機(jī),并插入到信號量鏈表S.L中。 signal(S):執(zhí)行一次signal操作,意味著釋放一種單位的可用資源,使系統(tǒng)中可供分派的該類資源數(shù)增長一種,故執(zhí)行S.value:=S.value+1 操作。若加1 后S.value≤0,則表達(dá)在該信號量鏈表中,仍有等待該資源的進(jìn)程被阻塞,因此應(yīng)調(diào)用wakeup 原語,將S.L鏈表中的第一種等待進(jìn)程喚醒。 20.你覺得整型信號量機(jī)制與否完全遵循了同步機(jī)構(gòu)的四條準(zhǔn)則? 答:整型信號量機(jī)制不完全遵循同步機(jī)制的四條準(zhǔn)則
24、,它不滿足“讓權(quán)等待”準(zhǔn)則。 21.如何運(yùn)用信號量機(jī)制來實現(xiàn)多種迚程對臨界資源的互斥訪問?并丼例闡明之。 答:為使多種進(jìn)程互斥訪問某臨界資源,只需為該資源設(shè)臵一互斥信號量mutex,并設(shè)其 初值為1,然后將各進(jìn)程訪問該資源的臨界區(qū)CS臵于wait(mutex)和signal(mutex)操作 之間即可。這樣,每個欲訪問該臨界資源的進(jìn)程在進(jìn)入臨界區(qū)之前,都要先對mutex 執(zhí)行 wait 操作,若該資源此刻未被訪問,本次wait 操作必然成功,進(jìn)程便可進(jìn)入自己的臨界區(qū), 這時若再有其她進(jìn)程也欲進(jìn)入自己的臨界區(qū),此時由于對mutex 執(zhí)行wait操作定會失敗,
25、因而該進(jìn)程阻塞,從而保證了該臨界資源能被互斥訪問。當(dāng)訪問臨界資源的進(jìn)程退出臨界區(qū) 后,應(yīng)對mutex執(zhí)行signal 操作,釋放該臨界資源。運(yùn)用信號量實現(xiàn)進(jìn)程互斥的進(jìn)程描述 如下: Var mutex: semaphore:=1; begin parbegin process 1: begin repeat wait(mutex); critical section signal(mutex); remainder seetion until false; end process 2: begin repeat wait(mut
26、ex); critical section signal(mutex); remainder section until false; end parend 22.試寫出相應(yīng)的程序來描述圖2-17所示的前驅(qū)圖。 答:(a)Var a, b, c, d, e, f, g, h; semaphore:= 0, 0, 0, 0, 0, 0, 0, 0; begin parbegin begin S1; signal(a); signal(b); end; begin wait(a); S2; signal(c); signal(d); end
27、; begin wait(b); S3; signal(e); end; begin wait(c); S4; signal(f); end; begin wait(d); S5; signal(g); end; begin wait(e); S6; signal(h); end; begin wait(f); wait(g); wait(h); S7; end; parend end (b)Var a, b, c, d, e, f, g, h,i,j; semaphore:= 0, 0, 0, 0, 0, 0, 0,0,0, 0; begin parb
28、egin begin S1; signal(a); signal(b); end; begin wait(a); S2; signal(c); signal(d); end; begin wait(b); S3; signal(e); signal(f); end; begin wait(c); S4; signal(g); end; begin wait(d); S5; signal(h); end; begin wait(e); S6; signal(i); end; begin wait(f); S7; signal(j); end; begin wait
29、(g);wait(h); wait(i); wait(j); S8; end; parend end 23.在生產(chǎn)者消費(fèi)者問題中,如果缺少了signal(full)戒signal(empty),對執(zhí)行成果有何影 響? 答:如果缺少signal(full),那么表白從第一種生產(chǎn)者進(jìn)程開始就沒有變化信號量full 值,雖然緩沖池產(chǎn)品已滿,但full 值還是0,這樣消費(fèi)者進(jìn)程執(zhí)行wait(full)時覺得緩沖池是空而取不到產(chǎn)品,消費(fèi)者進(jìn)程始終處在等待狀態(tài)。 如果缺少signal(empty),在生產(chǎn)者進(jìn)程向n個緩沖區(qū)投滿產(chǎn)品后消費(fèi)者進(jìn)程才開始從中取產(chǎn)品,這時empty=0,
30、full=n,那么每當(dāng)消費(fèi)者進(jìn)程取走一種產(chǎn)品empty 值并不變化,直到緩沖池取空了,empty 值也是0,雖然目前緩沖池有n 個空緩沖區(qū),生產(chǎn)者進(jìn)程要想 再往緩沖池中投放產(chǎn)品也會由于申請不到空緩沖區(qū)被阻塞。 24.在生產(chǎn)消費(fèi)者問題中,如果將兩個wait 操作卲wait(full)和wait(mutex)互換位置,戒者將signal(mutex)不signal(full)互換位置,成果如何? 答:將wait(full)和wait(mutex)互換位臵后,也許引起死鎖??紤]系統(tǒng)中緩沖區(qū)全滿時,若畢生產(chǎn)者進(jìn)程先執(zhí)行了wait(mutex)操作并獲得成功,則當(dāng)再執(zhí)行wait(empt
31、y)操作時,它將因失敗而進(jìn)入阻塞狀態(tài),它期待消費(fèi)者進(jìn)程執(zhí)行signal(empty)來喚醒自己,在此之前,它不也許執(zhí)行signal(mutex)操作,從而使試圖通過執(zhí)行wait(mutex)操作而進(jìn)入自己的臨界區(qū)的其她生產(chǎn)者和所有消費(fèi)者進(jìn)程所有進(jìn)入阻塞狀態(tài),這樣容易引起系統(tǒng)死鎖。若signal(mutex)和signal(full)互換位臵后只是影響進(jìn)程對臨界資源的釋放順序,而不會引起系統(tǒng)死鎖,因此可以互換位臵。 25.我們在為某一臨界資源設(shè)立一把鎖W,當(dāng)W=1時表達(dá)關(guān)鎖,當(dāng)W=0時表達(dá)鎖已打開。 試寫出開鎖和關(guān)鎖的原詫,并運(yùn)用她們實現(xiàn)互斥。 答:整型信號量:lock(W): wh
32、ile W=1 do no-op W:=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; begin repeat lock(W); critical section unlock(W); remainder section until false; end 26.試修改下面生產(chǎn)者-消
33、費(fèi)者問題解法中的錯諢: 答: producer: begin repeat … producer an item in nextp; wait(mutex); wait(full); /* 應(yīng)為wait(empty),并且還應(yīng)當(dāng)在wait(mutex)的前面 */ buffer(in):=nextp; /* 緩沖池數(shù)組游標(biāo)應(yīng)前移: in:=(in+1) mod n; */ signal(mutex); /* signal(full); */ until false; end consumer: begin repeat
34、 wait(mutex); wait(empty); /* 應(yīng)為wait(full),并且還應(yīng)當(dāng)在wait(mutex)的前面 */ nextc:=buffer(out); out:=out+1; /* 考慮循環(huán),應(yīng)改為: out:=(out+1) mod n; */ signal(mutex);/* signal(empty); */ consumer item in nextc; until false; end 27.試運(yùn)用記錄型信號量寫出一種丌會浮現(xiàn)死鎖的哲學(xué)家迚餐問題的算法. 答:Var chopstick:array[0,…,4] of s
35、emaphore; 所有信號量均被初始化為1,第i 位哲學(xué)家的活動可描述為: Repeat Wait(chopstick[i]); Wait(. chopstick[(i+1) mod 5]); … Ea.t ; … Signal(chopstick[i]); Signal(chopstick[(i+1) mod 5]) Ea.t ; … Think; 11 Until false; 28.在測量控制系統(tǒng)中的數(shù)據(jù)采集仸務(wù),把所采集的數(shù)據(jù)送一單緩沖區(qū);計算仸務(wù)從該單 緩沖中叏出數(shù)據(jù)迚行計算.試寫出運(yùn)用信號量機(jī)制實現(xiàn)
36、兩者共享單緩沖的同步算法。 答: a. Var mutex, empty, full: semaphore:=1, 1, 0; gather: begin repeat …… gather data in nextp; wait(empty); wait(mutex); buffer:=nextp; signal(mutex); signal(full); until false; end compute: begin repeat …… wait(full); wait(mutex); nextc:=buff
37、er; signal(mutex); signal(empty); compute data in nextc; until false; end b. Var empty, full: semaphore:=1, 0; gather: begin repeat …… gather data in nextp; wait(empty); buffer:=nextp; signal(full); until false; end compute: begin repeat …… wait(full); nex
38、tc:=buffer; signal(empty); compute data in nextc; until false; end 29.畫圖闡明管程由哪幾部分構(gòu)成,為什么要引入條件發(fā)量? 答:管程由四部分構(gòu)成:①管程的名稱;②局部于管程內(nèi)部的共享數(shù)據(jù)構(gòu)造闡明;③對該數(shù)據(jù)構(gòu)造進(jìn)行操作的一組過程;④對局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)臵初始值的語句; 當(dāng)一種進(jìn)程調(diào)用了管程,在管程中時被阻塞或掛起,直到阻塞或掛起的因素解除,而在此期間,如果該進(jìn)程不釋放管程,則其他進(jìn)程無法進(jìn)入管程,被迫長時間地等待。為理解決這個問題,引入了條件變量condition。 30.如何運(yùn)用管程來
39、解決生產(chǎn)者不消費(fèi)者問題? 答:一方面建立一種管程,命名為ProclucerConsumer,涉及兩個過程: (1)Put(item)過程。生產(chǎn)者運(yùn)用該過程將自己生產(chǎn)的產(chǎn)品放到緩沖池,用整型變 量count 表達(dá)在緩沖池中已有的產(chǎn)品數(shù)目,當(dāng)count≥n 時,表達(dá)緩沖池已滿,生產(chǎn)者須 等待。 (2)get(item)過程。消費(fèi)者運(yùn)用該過程從緩沖池中取出一種產(chǎn)品,當(dāng)count≤0 時,表達(dá)緩沖池中已無可取的產(chǎn)品,消費(fèi)者應(yīng)等待。 PC 管程可描述如下: type producer-consumer =monitor Var in,out,count:inte
40、ger; buffer:array[0,…,n-1]of item; notfull,notempty:condition; procedure entry dot(item) begin if count>=n then not full.wait; buffer(in):=nextp; in:=(in+1)mod n; count:=count+1; if notempty.queue then notempty.signal; end procedure entry get(item) begin if count<=0 then n
41、ot full.wait; nextc:=buffer(out); out:=(out+1)mod n; count:=count-1; if notfull.quene then notfull.signal; end begin in:=out:=0; count:=0 end 在運(yùn)用管程解決生產(chǎn)者一消費(fèi)者問題時,其中的生產(chǎn)者和消費(fèi)者可描述為: producer: begin pepeat produce an inem in nestp PC.put(item); until false; end consumer: beg
42、in repeat PC.get(item); consume the item in enxtc; until false; end 31.什么是AND信號量?試運(yùn)用AND信號量寫出生產(chǎn)者一消費(fèi)者問題的解法。 答:為解決并行帶來的死鎖問題,在wait 操作中引入AND 條件,其基本思想是將進(jìn) 程在整個運(yùn)營過程中所需要的所有臨界資源,一次性地所有分派給進(jìn)程,用完后一次性釋放。 解決生產(chǎn)者-消費(fèi)者問題可描述如下: var mutex,empty,full: semaphore:=1,n,0; buffer: array[0,...,n-1] of
43、item; in,out: integer:=0,0; begin parbegin 14 producer: begin repeat … produce an item in nextp; … wait(empty); wait(s1,s2,s3,...,sn); //s1,s2,...,sn為執(zhí)行生產(chǎn)者進(jìn)程除empty 外其他的條件 wait(mutex); buffer(in):=nextp; in:=(in+1) mod n; signal(mutex); signal(full); signal(s1,s2,
44、s3,...,sn); until false; end consumer: begin repeat wait(full); wait(k1,k2,k3,...,kn); //k1,k2,...,kn 為執(zhí)行消費(fèi)者進(jìn)程除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;
45、 end parend end 32.什么是信號量集?試運(yùn)用信號量集寫出讀者一寫者問題的解法。 答:對AND信號量加以擴(kuò)大,形成的信號量集合的讀寫機(jī)制。 解法:Var RN integer; L,mx: semaphore:=RN,1; begin parbegin reader:begin repeat Swait(L,1,1); Swait(mx,1,1); … perform read operation; … Ssignal(L,1); until false end writer:begin repe
46、at Swait(mx,1,1;L,RN,0); perform write operation; Ssignal(mx,1); until false end parend end 33.試比較迚程間的低檔不高檔通信工具。 答:顧客用低檔通信工具實現(xiàn)進(jìn)程通信很不以便,效率低,通信對顧客不透明,所有操作都 必須由程序員來實現(xiàn),而高檔通信工具彌補(bǔ)了這些缺陷,顧客直接運(yùn)用操作系統(tǒng)提供的一組通信命令,高效地傳送大量的數(shù)據(jù)。 34.目前有哪幾種高檔通信機(jī)制? 答:共享存儲器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng)。 35.消息隊列通信機(jī)制有哪幾方面的功能?
47、 答:(1)構(gòu)成消息(2)發(fā)送消息(3)接受梢息(4)互斥與同步。 36.為什么要在OS 中引入線程? 答:在操作系統(tǒng)中引入線程,則是為了減少程序在并發(fā)執(zhí)行時所付出的時空開銷,使OS具 有更好的并發(fā)性,提高CPU的運(yùn)用率。進(jìn)程是分派資源的基本單位,而線程則是系統(tǒng)調(diào)度的基本單位。 37.試闡明線程具有哪些屬性? 答:(1)輕型實體(2)獨(dú)立調(diào)度和分派的基本單位(3)可并發(fā)執(zhí)行(4)共享進(jìn)程資源。 38. 試從調(diào)度性,并収性,擁有資源及系統(tǒng)開銷方面對迚程和線程迚行比較。 答: (1)調(diào)度性。線程在OS 中作為調(diào)度和分派的基本單位,進(jìn)程只作為資源擁有的基本單位。
48、 (2)并發(fā)性。進(jìn)程可以并發(fā)執(zhí)行,一種進(jìn)程的多種線程也可并發(fā)執(zhí)行。 (3)擁有資源。進(jìn)程始終是擁有資源的基本單位,線程只擁有運(yùn)營時必不可少的資源,本 身基本不擁有系統(tǒng)資源,但可以訪問從屬進(jìn)程的資源。 (4)系統(tǒng)開銷。操作系統(tǒng)在創(chuàng)立、撤銷和切換進(jìn)程時付出的開銷明顯不小于線程。 39. 為了在多線程OS 中實現(xiàn)迚程之間的同步不通信,一般提供了哪幾種同步機(jī)制? 答:同步功能可以控制程序流并訪問共享數(shù)據(jù),從而并發(fā)執(zhí)行多種線程。共有四種同步模型: 互斥鎖、讀寫鎖、條件變量和信號。 40.用亍實現(xiàn)線程同步的私用信號量和公用信號量之間有何差別? 答: (1)私用信
49、號量。當(dāng)某線程需運(yùn)用信號量實現(xiàn)同一進(jìn)程中各線程之間的同步時,可調(diào)用創(chuàng) 建信號量的命令來創(chuàng)立一種私用信號量,其數(shù)據(jù)構(gòu)造寄存在應(yīng)用程序的地址空間中。 (2)公用信號量。公用信號量是為實現(xiàn)不同進(jìn)程間或不同進(jìn)程中各線程之間的同步而設(shè)臵 的。其數(shù)據(jù)構(gòu)造是寄存在受保護(hù)的系統(tǒng)存儲區(qū)中,由OS為它分派空間并進(jìn)行管理。 41.何謂顧客級線程和內(nèi)核支持線程? 答: (1)顧客級線程:僅存在于顧客空間中的線程,不必內(nèi)核支持。這種線程的創(chuàng)立、撤銷、 線程間的同步與通信等功能,都無需運(yùn)用系統(tǒng)調(diào)用實現(xiàn)。顧客級線程的切換一般發(fā)生在一種 應(yīng)用進(jìn)程的諸多線程之間,同樣無需內(nèi)核支持。 (2)內(nèi)
50、核支持線程:在內(nèi)核支持下運(yùn)營的線程。無論是顧客進(jìn)程中的線程,還是系統(tǒng)線程 中的線 程,其創(chuàng)立、撤銷和切換等都是依托內(nèi)核,在內(nèi)核空間中實現(xiàn)的。在內(nèi)核空間里還 為每個內(nèi)核支持線程設(shè)臵了線程控制塊,內(nèi)核根據(jù)該控制塊感知某線程的存在并實行控制。 42.試闡明顧客級線程的實現(xiàn)措施。 答:顧客級線程是在顧客空間中的實現(xiàn)的,運(yùn)營在“運(yùn)營時系統(tǒng)”與“內(nèi)核控制線程”的中 間系統(tǒng)上。運(yùn)營時系統(tǒng)用于管理和控制線程的函數(shù)的集合。內(nèi)核控制線程或輕型進(jìn)程LWP 可通過系統(tǒng)調(diào)用獲得內(nèi)核提供服務(wù),運(yùn)用LWP進(jìn)程作為中間系統(tǒng)。 43.試闡明內(nèi)核支持線程的實現(xiàn)措施。 答:系統(tǒng)在創(chuàng)立新進(jìn)程時,分派
51、一種任務(wù)數(shù)據(jù)區(qū)PTDA,其中涉及若干個線程控制塊TCB 空間。創(chuàng)立一種線程分派一種TCB,有關(guān)信息寫入TCB,為之分派必要的資源。當(dāng)PTDA 中的TCB 用完,而進(jìn)程又有新線程時,只要所創(chuàng)立的線程數(shù)目未超過系統(tǒng)容許值,系統(tǒng)可 在為之分派新的TCB;在撤銷一種線程時,也應(yīng)回收線程的所有資源和TCB。 第三章 1.高檔調(diào)度不低檔調(diào)度的重要仸務(wù)是什么?為什么要引入中級調(diào)度? 答:高檔調(diào)度的重要任務(wù)是根據(jù)某種算法,把外存上處在后備隊列中的那些作業(yè)調(diào)入內(nèi)存。低
52、檔調(diào)度是保存解決機(jī)的現(xiàn)場信息,按某種算法先取進(jìn)程,再把解決器分派給進(jìn)程。引入中級調(diào)度的重要目的是為了提高內(nèi)存運(yùn)用率和系統(tǒng)吞吐量。使那些臨時不能運(yùn)營的進(jìn)程 不再占用內(nèi)存資源,將它們調(diào)至外存等待,把進(jìn)程狀態(tài)改為就緒駐外存狀態(tài)或掛起狀態(tài)。 2.何謂作業(yè)、作業(yè)步和作業(yè)流? 答:作業(yè)涉及一般的程序和數(shù)據(jù),還配有作業(yè)闡明書。系統(tǒng)根據(jù)該闡明書對程序的運(yùn)營進(jìn)行控制。批解決系統(tǒng)中是以作業(yè)為基本單位從外存調(diào)入內(nèi)存。 作業(yè)步是指每個作業(yè)運(yùn)營期間都必須通過若干個相對獨(dú)立互相關(guān)聯(lián)的順序加工的環(huán)節(jié)。 作業(yè)流是指若干個作業(yè)進(jìn)入系統(tǒng)后依次寄存在外存上形成的輸入作業(yè)流;在操作系統(tǒng)的控制下,逐個作業(yè)進(jìn)程解決,于
53、是形成理解決作業(yè)流。 3.在什么情冴下需要使用作業(yè)控制塊JCB?其中涉及了哪些內(nèi)容? 答:每當(dāng)作業(yè)進(jìn)入系統(tǒng)時,系統(tǒng)便為每個作業(yè)建立一種作業(yè)控制塊JCB,根據(jù)作業(yè)類型將它插入到相應(yīng)的后備隊列中。 JCB 涉及的內(nèi)容一般有:1) 作業(yè)標(biāo)記2)顧客名稱3)顧客賬戶4)作業(yè)類型(CPU繁忙型、I/O芳名型、批量型、終端型)5)作業(yè)狀態(tài)6)調(diào)度信息(優(yōu)先級、作業(yè)已運(yùn)營)7)資源規(guī)定8)進(jìn)入系統(tǒng)時間9) 開始解決時間10) 作業(yè)完畢時間11) 作業(yè)退出時間12) 資源使用狀況等 4.在作業(yè)調(diào)度中應(yīng)如何擬定接納多少個作業(yè)和接納哪些作業(yè)? 答:作業(yè)調(diào)度每次接納進(jìn)入內(nèi)存的作業(yè)數(shù),
54、取決于多道程序度。應(yīng)將哪些作業(yè)從外存調(diào)入內(nèi)存,取決于采用的調(diào)度算法。最簡樸的是先來服務(wù)調(diào)度算法,較常用的是短作業(yè)優(yōu)先調(diào)度算法和基于作業(yè)優(yōu)先級的調(diào)度算法。 5.試闡明低檔調(diào)度的重要功能。 答:(1)保存解決機(jī)的現(xiàn)場信息(2)按某種算法選用進(jìn)程(3)把解決機(jī)分派給進(jìn)程。 6.在搶占調(diào)度方式中,搶占的原則是什么? 答:搶占的原則有:時間片原則、優(yōu)先權(quán)原則、短作業(yè)優(yōu)先權(quán)原則等。 7.在選擇調(diào)度方式和調(diào)度算法時,應(yīng)遵循的準(zhǔn)則是什么? 答: (1)面向顧客的準(zhǔn)則:周轉(zhuǎn)時間短、響應(yīng)時間快、截止時間的保證、優(yōu)先權(quán)準(zhǔn)則。 (2)面向系統(tǒng)的準(zhǔn)則:系統(tǒng)吞吐量高、解決機(jī)運(yùn)用率好、各類資
55、源的平衡運(yùn)用。 8.在批解決系統(tǒng)、分時系統(tǒng)和實時系統(tǒng)中,各采用哪幾種迚程(作業(yè))調(diào)度算法? 答:批解決系統(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算法。 9.何謂靜態(tài)和勱態(tài)優(yōu)先級?擬定靜態(tài)優(yōu)先級的根據(jù)是什么? 答:靜態(tài)優(yōu)先級是指在創(chuàng)立進(jìn)程時擬定且在進(jìn)程的整個運(yùn)營期間保持不變的優(yōu)先級。 動態(tài)優(yōu)先級是指在創(chuàng)立進(jìn)程時賦予的優(yōu)先權(quán),可以隨進(jìn)程推動或隨其等待時間增長而變化的優(yōu)先級,可以獲得更好的調(diào)度性能。 擬定進(jìn)程優(yōu)先級的根據(jù):進(jìn)程類型、進(jìn)
56、程對資源的需求和顧客規(guī)定。 10.試比較FCFS和SPF兩種迚程調(diào)度算法。 答:相似點(diǎn):兩種調(diào)度算法都可以用于作業(yè)調(diào)度和進(jìn)程調(diào)度。 不同點(diǎn):FCFS調(diào)度算法每次都從后備隊列中選擇一種或多種最先進(jìn)入該隊列的作業(yè),將它們調(diào)入內(nèi)存、分派資源、創(chuàng)立進(jìn)程、插入到就緒隊列。該算法有助于長作業(yè)/進(jìn)程,不利于短作業(yè)/進(jìn)程。SPF算法每次調(diào)度都從后備隊列中選擇一種或若干個估計運(yùn)營時間最短的作業(yè),調(diào)入內(nèi)存中運(yùn)營。該算法有助于短作業(yè)/進(jìn)程,不利于長作業(yè)/進(jìn)程。 11.在時間片輪轉(zhuǎn)法中,應(yīng)如何擬定期間片的大??? 答:時間片應(yīng)略不小于一次典型的交互需要的時間。一般應(yīng)考慮三個因素:系統(tǒng)對相應(yīng)時
57、間的規(guī)定、就緒隊列中進(jìn)程的數(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)度算法不能滿足實時系統(tǒng)的調(diào)度實時性規(guī)定而不合用。 13.為什么說多級反饋隊列調(diào)度算法能較好地滿足各方面顧客的需求? 15. 按調(diào)度方式可將實時調(diào)度算法分為哪幾種? 按調(diào)度方式不同,可分為非搶占調(diào)度算法和搶占調(diào)度算法兩種。 18. 何謂死鎖?產(chǎn)生死鎖的因素和必要條件是什么? a.死鎖是指多種進(jìn)程因競爭資源而導(dǎo)致的一
58、種僵局,若無外力作用,這些進(jìn)程都將永遠(yuǎn)不能再向前推動; b.產(chǎn)生死鎖的因素有二,一是競爭資源,二是進(jìn)程推動順序非法; c.必要條件是: 互斥條件,祈求和保持條件,不剝奪條件和環(huán)路等待條件。 19.在解決死鎖問題的幾種措施中,哪種措施最易于實現(xiàn)?哪種措施是資源運(yùn)用率最高? 解決/解決死鎖的措施有避免死鎖、避免死鎖、檢測和解除死鎖,其中避免死鎖措施最容易實現(xiàn),但由于所施加的限制條件過于嚴(yán)格,會導(dǎo)致系統(tǒng)資源運(yùn)用率和系統(tǒng)吞吐量減少;而檢測和解除死鎖措施可是系統(tǒng)獲得較好的資源運(yùn)用率和系統(tǒng)吞吐量。 20. 請具體闡明可通過哪些途徑避免死鎖? a.摒棄"祈求和保持"條件:系統(tǒng)規(guī)定所有進(jìn)程
59、開始運(yùn)營之前,都必須一次性地申請其在整個運(yùn)營過程所需的所有資源,但在分派資源時,只要有一種資源不能滿足某進(jìn)程的規(guī)定,雖然其他所需的各資源都空閑,也不分派給該進(jìn)程,而讓該進(jìn)程等待; b.摒棄"不剝奪"條件:系統(tǒng)規(guī)定,進(jìn)程是逐個地提出對資源的規(guī)定的。當(dāng)一種已經(jīng)保持了某些資源的進(jìn)程,再提出新的資源祈求而不能立即得到滿足時,必須釋放它已經(jīng)保持了的所有資源,待后來需要時再重新申請; c.摒棄"環(huán)路等待"條件:系統(tǒng)將所有資源按類型進(jìn)行線性排序,并賦予不同的序號,且所有進(jìn)程對資源的祈求必須嚴(yán)格按序號遞增的順序提出,這樣,在所形成的資源分派圖中,不也許再浮現(xiàn)環(huán)路,因而摒棄了"環(huán)路等待"條件。 22. 在
60、銀行家算法中,若浮現(xiàn)下述資源分派情: Process Allocation Need Available P0 0032 0012 1622 P1 1000 1750 P2 1354 2356 P3 0332 0652 P4 0014 0656 試問: ⑴ 該狀態(tài)與否安全? ⑵ 若進(jìn)程P2提出祈求Request(1,2,2,2)后,系統(tǒng)能否將資源分派給它? ⑴該狀態(tài)是安全的,由于存在一種安全序列< P0P3P4P1P2>。下表為該時刻的安全序列表。 資源狀況 進(jìn)程 Work Need Allocation Work+Allocatio
61、n Finish P0 P3 P4 P1 P2 1 6 2 2 1 6 5 4 1 9 8 7 1 9 9 11 2 9 9 11 0 0 1 2 0 6 5 2 0 6 5 6 1 7 5 0 2 3 5 6 0 0 3 2 0 3 3 3 0 0 1 4 1 0 0 0 1 3 5 4 1 6 5 4 1 9 8 7 1 9 9 11 2 9 9 11 3 12 14 17 true true true true true ⑵若進(jìn)程P2提出祈求Request(1,2,2,2)后,系統(tǒng)不能將資源分派給它,若分派給進(jìn)程P2,
62、系統(tǒng)還剩的資源狀況為(0,4,0,0),此時系統(tǒng)中的資源將無法滿足任何一種進(jìn)程的資源祈求,從而導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),容易引起死鎖的發(fā)生。 第四章 存儲器管理 1. 為什么要配備層次式存儲器? 這是由于: a.設(shè)立多種存儲器可以使存儲器兩端的硬件能并行工作。 b.采用多級存儲系統(tǒng),特別是Cache技術(shù),這是一種減輕存儲器帶寬對系統(tǒng)性能影響的最佳構(gòu)造方案。 c.在微解決機(jī)內(nèi)部設(shè)立多種緩沖存儲器,以減輕對存儲器存取的壓力。增長CPU中寄存器的數(shù)量,也可大大緩和對存儲器的壓力。 2. 可采用哪幾種方式將程序裝入內(nèi)存?它們分別合用于何種場合? 將程序裝入內(nèi)存可采用的方式有:絕對裝
63、入方式、重定位裝入方式、動態(tài)運(yùn)營時裝入方式;絕對裝入方式合用于單道程序環(huán)境中,重定位裝入方式和動態(tài)運(yùn)營時裝入方式合用于多道程序環(huán)境中。 3. 何為靜態(tài)鏈接?何謂裝入時動態(tài)鏈接和運(yùn)營時動態(tài)鏈接? a.靜態(tài)鏈接是指在程序運(yùn)營之前,先將各自目的模塊及它們所需的庫函數(shù),鏈接成一種完整的裝配模塊,后來不再拆開的鏈接方式。 b.裝入時動態(tài)鏈接是指將顧客源程序編譯后所得到的一組目的模塊,在裝入內(nèi)存時,采用邊裝入邊鏈接的一種鏈接方式,即在裝入一種目的模塊時,若發(fā)生一種外部模塊調(diào)用事件,將引起裝入程序去找相應(yīng)的外部目的模塊,把它裝入內(nèi)存中,并修改目的模塊中的相對地址。 c.運(yùn)營時動態(tài)鏈接是將對某些模塊的
64、鏈接推遲到程序執(zhí)行時才進(jìn)行鏈接,也就是,在執(zhí)行過程中,當(dāng)發(fā)現(xiàn)一種被調(diào)用模塊尚未裝入內(nèi)存時,立即由OS去找到該模塊并將之裝入內(nèi)存,把它鏈接到調(diào)用者模塊上。 4. 在進(jìn)行程序鏈接時,應(yīng)完畢哪些工作? a.對相對地址進(jìn)行修改 b.變換外部調(diào)用符號 6. 為什么要引入動態(tài)重定位?如何實現(xiàn)? a.程序在運(yùn)營過程中常常要在內(nèi)存中移動位置,為了保證這些被移動了的程序還能正常執(zhí)行,必須對程序和數(shù)據(jù)的地址加以修改,即重定位。引入重定位的目的就是為了滿足程序的這種需要。 b.要在不影響指令執(zhí)行速度的同步實現(xiàn)地址變換,必須有硬件地址變換機(jī)構(gòu)的支持,即須在系統(tǒng)中增設(shè)一種重定位寄存器,用它來寄存程序在內(nèi)存中
65、的起始地址。程序在執(zhí)行時,真正訪問的內(nèi)存地址是相對地址與重定位寄存器中的地址相加而形成的。 9. 分區(qū)存儲管理中常采用哪些分派方略?比較它們的優(yōu)缺陷。 分區(qū)存儲管理中常采用的分派方略有:初次適應(yīng)算法、循環(huán)初次適應(yīng)算法、最佳適應(yīng)算法、最壞適應(yīng)算法。 a.初次適應(yīng)算法的優(yōu)缺陷:保存了高址部分的大空閑區(qū),有助于后到來的大型作業(yè)的分派;低址部分不斷被劃分,留下許多難以運(yùn)用的、小的空閑區(qū),且每次分辨別配查找時都是從低址部分開始,會增長查找時的系統(tǒng)開銷。 b.循環(huán)初次適應(yīng)算法的優(yōu)缺陷:使內(nèi)存中的空閑分辨別布得更為均勻,減少了查找時的系統(tǒng)開銷;缺少大的空閑分區(qū),從而導(dǎo)致不能裝入大型作業(yè)。 c.最佳
66、適應(yīng)算法的優(yōu)缺陷:每次分派給文獻(xiàn)的都是最適合該文獻(xiàn)大小的分區(qū);內(nèi)存中留下許多難以運(yùn)用的小的空閑區(qū)。 d.最壞適應(yīng)算法的優(yōu)缺陷:給文獻(xiàn)分派分區(qū)后剩余的的空閑區(qū)不至于太小,產(chǎn)生碎片的幾率最小,對中小型文獻(xiàn)分派分區(qū)操作有利;使存儲器中缺少大的空閑區(qū),對大型文獻(xiàn)的分辨別配不利。 10. 在系統(tǒng)中引入對換后可帶來哪些好處? 能將內(nèi)存中臨時不運(yùn)營的進(jìn)程或臨時不用的程序和數(shù)據(jù),換到外存上,以騰出足夠的內(nèi)存空間,把已具有運(yùn)營條件的進(jìn)程或進(jìn)程所需的程序和數(shù)據(jù)換入內(nèi)存,從而大大地提高了內(nèi)存的運(yùn)用率。 12. 在以進(jìn)程為單位進(jìn)行對換時,每次與否將整個進(jìn)程換出?為什么? 在以進(jìn)程為單位進(jìn)行對換時,并非每次將整個進(jìn)程換出。這是由于: a.從構(gòu)造上講,進(jìn)程是由程序段、數(shù)據(jù)段和進(jìn)程控制塊構(gòu)成的,其中進(jìn)程控制塊總有部分或所有常駐內(nèi)存,不被換出。 b.程序段和數(shù)據(jù)段也許正被若干進(jìn)程共享,此時它們也不能被換出。 13. 為實現(xiàn)分頁存儲管理,需要哪些硬件支持? 需要有頁表機(jī)制、地址變換機(jī)構(gòu)的硬件支持。 16. 為什么說分段系統(tǒng)較之分頁系統(tǒng)更易于實現(xiàn)信息共享和保護(hù)? a.對于分頁系統(tǒng),每個頁面是分散存儲
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中生物對照實驗專題復(fù)習(xí)課件
- 初中物理資源九年級第十五單元課件串并聯(lián)識別
- 咯血與嘔血課件
- What's_your_number_課件
- 外研版七下Module3Unit1(教育精品)
- 浙美版三年級上冊美術(shù)第15課-剪雪花教學(xué)ppt課件
- 蘇教版六年級下冊數(shù)學(xué)正比例和反比例的意義課件
- 蘇教版五下《單式折線統(tǒng)計圖》教研課件
- 固態(tài)相變概論
- 三角形全等的判定復(fù)習(xí)-課件2
- 太陽能發(fā)展趨勢課件
- 道路工程監(jiān)理最新規(guī)劃范本課件
- SPC及CPK教程(理論篇)課件
- Travel-Plan旅行計劃-PPT
- 新冠肺炎疫情期間醫(yī)務(wù)人員防護(hù)技術(shù)指南