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

下載本文檔

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

文檔簡介

1、操作系統(tǒng)第一章 操作系統(tǒng)引論1. 設(shè)計現(xiàn)代OS的主要目標是什么?方便性(使計算機系統(tǒng)容易使用),有效性(資源有效利用),可擴充性(適應(yīng)發(fā)展要求),開放性(可移植)。2. OS的作用可表現(xiàn)為哪幾個方面?a. OS作為用戶與計算機硬件系統(tǒng)之間的接口;(用戶通過命令方式,系統(tǒng)調(diào)用方式使用計算機)b. OS作為計算機系統(tǒng)資源的管理者;(資源包括處理器,存儲器,I/O設(shè)備,數(shù)據(jù)和程序)c. OS用作擴充機器.(覆蓋了軟件的機器稱為擴充機器)3. 試說明推動多道批處理系統(tǒng)形成和發(fā)展的主要動力是什么?不斷提高計算機資源利用率和系統(tǒng)吞吐量的需要4. 何謂脫機I/O和聯(lián)機I/O? a. 脫機輸入輸出方式(Off

2、-Line I/O)是為了解決人機矛盾及CPU和I/O設(shè)備之間速度不匹配而提出的.它減少了CPU的空閑等待時間,提高了I/O速度.具體內(nèi)容是將用戶程序和數(shù)據(jù)在一臺外圍機的控制下,預(yù)先從低速輸入設(shè)備輸入到磁帶上,當CPU需要這些程序和數(shù)據(jù)時,在直接從磁帶機高速輸入到內(nèi)存,從而大大加快了程序的輸入過程,減少了CPU等待輸入的時間,這就是脫機輸入技術(shù);當程序運行完畢或告一段落,CPU需要輸出時,無需直接把計算結(jié)果送至低速輸出設(shè)備,而是高速把結(jié)果輸出到磁帶上,然后在外圍機的控制下,把磁帶上的計算結(jié)果由相應(yīng)的輸出設(shè)備輸出,這就是脫機輸出技術(shù).b. 若這種輸入輸出操作在主機控制下進行則稱之為聯(lián)機輸入輸出方

3、式.5. 試說明推動分時系統(tǒng)形成和發(fā)展的主要動力是什么? 用戶的需要.即對用戶來說,更好的滿足了人-機交互,共享主機以及便于用戶上機的需求.6. 試說明實時任務(wù)的類型和實時系統(tǒng)的類型?.a. 實時任務(wù)的類型按任務(wù)執(zhí)行時是否呈現(xiàn)周期性來劃分,分為周期性實時任務(wù)和非周期性實時任務(wù);根據(jù)對截止時間的要求來劃分,分為硬實時任務(wù)和軟實時任務(wù);b. 通常把要求進行實時控制的系統(tǒng)統(tǒng)稱為實時控制系統(tǒng),把要求對信息進行實時處理的系統(tǒng)成為實時信息處理系統(tǒng).7. 實現(xiàn)多道程序應(yīng)解決哪些問題?a. 處理機管理問題;b. 內(nèi)存管理問題;c. I/O設(shè)備管理問題;d. 文件管理問題;e. 作業(yè)管理問題.8. 試比較單道與

4、多道批處理系統(tǒng)的特點及優(yōu)缺點?a. 單道批處理系統(tǒng)是最早出現(xiàn)的一種OS,它具有自動性,順序性和單道性的特點;-多道批處理系統(tǒng)則具有調(diào)度性,無序性和多道性的特點;b. 單道批處理系統(tǒng)是在解決人機矛盾及CPU和I/O設(shè)備之間速度不匹配的矛盾中形成的,旨在提高系統(tǒng)資源利用率和系統(tǒng)吞吐量,但是仍然不能很好的利用系統(tǒng)資源;-多道批處理系統(tǒng)是對單道批處理系統(tǒng)的改進,其主要優(yōu)點是資源利用率高,系統(tǒng)吞吐量大;缺點是平均周轉(zhuǎn)時間長,無交互能力.作業(yè)的周轉(zhuǎn)時間:從作業(yè)進入系統(tǒng)開始,直至完成并推出系統(tǒng)為止所經(jīng)歷的時間。9. 實現(xiàn)分時系統(tǒng)的關(guān)鍵問題是什么?應(yīng)如何解決? a. 關(guān)鍵問題:及時接收,及時處理;b. 對于及

5、時接收,只需在系統(tǒng)中設(shè)置一多路卡,多路卡作用是使主機能同時接收用戶從各個終端上輸入的數(shù)據(jù);-對于及時處理,應(yīng)使所有的用戶作業(yè)都直接進入內(nèi)存,在不長的時間內(nèi),能使每個作業(yè)都運行一次.10. 為什么要引入實時操作系統(tǒng)?更好地滿足實時控制領(lǐng)域和實時信息處理領(lǐng)域的需要.11. OS具有哪幾大特征?它的最基本特征是什么?a. 并發(fā)(Concurrence),(宏觀上在一段時間內(nèi),多道程序在同時運行)共享(Sharing),(系統(tǒng)中的資源可供內(nèi)存中多個并發(fā)執(zhí)行的進程共同使用。分為互斥共享,同時訪問兩方式。虛擬(Virtual),(操作系統(tǒng)通過分時使用實現(xiàn)虛擬,n個虛擬邏輯設(shè)備的速度是其對應(yīng)物理設(shè)備的1/n

6、.)異步性(Asynchronism).(多道程序環(huán)境下,受資源等的限制,進程是以異步方式運行的)b. 其中最基本特征是并發(fā)和共享.12 內(nèi)存管理有哪些主要功能?它們的主要任務(wù)是什么?a. 主要功能: 內(nèi)存分配(為每道程序分配內(nèi)存空間,分為靜態(tài)分配方式,動態(tài)分配方式)內(nèi)存保護(確保每道用戶程序在自己的內(nèi)存空間運行,簡單的實現(xiàn)機制是設(shè)置兩個界限寄存器,存放正在執(zhí)行程序的上界和下界)地址映射(提供地址空間的邏輯地址和內(nèi)存空間的物理地址之間的映射)內(nèi)存擴充(借助于虛擬存儲技術(shù),從邏輯上擴充內(nèi)存容量)靜態(tài)分配:作業(yè)的內(nèi)存空間是在作業(yè)裝入時確定的,裝入后整個運行期間不允許在申請內(nèi)存。 動態(tài)分配:作業(yè)要求

7、的基本內(nèi)存空間在裝入時確定,允許作業(yè)運行過程中申請新的附加內(nèi)存空間。b. 內(nèi)存分配的主要任務(wù)是為每道程序分配內(nèi)存空間,提高存儲器利用率,以減少不可用的內(nèi)存空間,允許正在運行的程序申請附加的內(nèi)存空間,以適應(yīng)程序和數(shù)據(jù)動態(tài)增長的需要.-內(nèi)存保護的主要任務(wù)是確保每道用戶程序都在自己的內(nèi)存空間中運行,互不干擾.-地址映射的主要任務(wù)是將地址空間中的邏輯地址轉(zhuǎn)換為內(nèi)存空間中與之對應(yīng)的物理地址.-內(nèi)存擴充的主要任務(wù)是借助虛擬存儲技術(shù),從邏輯上去擴充內(nèi)存容量.13 處理機管理具有哪些功能?它們的主要任務(wù)是什么?a. 進程控制,進程同步,進程通信和調(diào)度.b. 進程控制的主要任務(wù)是為作業(yè)創(chuàng)建進程,撤銷已結(jié)束的進程

8、,以及控制進程在運行過程中的狀態(tài)轉(zhuǎn)換.-進程同步的主要任務(wù)是對諸進程的運行進行調(diào)節(jié).-進程通信的任務(wù)是實現(xiàn)在相互合作進程之間的信息交換.-調(diào)度分為作業(yè)調(diào)度和進程調(diào)度.作業(yè)調(diào)度的基本任務(wù)是從后備隊列中按照一定的算法,選擇出若干個作業(yè),為它們分配必要的資源;而進程調(diào)度的任務(wù)是從進程的就緒隊列中,按照一定的算法選出一新進程,把處理機分配給它,并為它設(shè)置運行現(xiàn)場,使進程投入運行.14 設(shè)備管理有哪些主要功能?其主要任務(wù)是什么?a. 主要功能: 緩沖管理,設(shè)備分配和設(shè)備處理,以及虛擬設(shè)備等.b. 主要任務(wù): 完成用戶提出的I/O請求,為用戶分配I/O設(shè)備;提高CPU和I/O設(shè)備的利用率;提高I/O速度;

9、以及方便用戶使用I/O設(shè)備.15 文件管理有哪些主要功能?其主要任務(wù)是什么?a. 主要功能: 對文件存儲空間的管理,目錄管理,文件的讀,寫管理以及文件的共享和保護.b. 主要任務(wù): 對用戶文件和系統(tǒng)文件進行管理,以方便用戶使用,并保證文件的安全性.16 試在交互性,及時性和可靠性方面,將分時系統(tǒng)與實時系統(tǒng)進行比較.a. 分時系統(tǒng)是一種通用系統(tǒng),主要用于運行終端用戶程序,因而它具有較強的交互能力;而實時系統(tǒng)雖然也有交互能力,但其交互能力不及前者.b. 實時信息系統(tǒng)對實用性的要求與分時系統(tǒng)類似,都是以人所能接收的等待時間來確定;而實時控制系統(tǒng)的及時性則是以控制對象所要求的開始截止時間和完成截止時間

10、來確定的.c. 實時系統(tǒng)對系統(tǒng)的可靠性要求要比分時系統(tǒng)對系統(tǒng)的可靠性要求高.17 是什么原因使操作系統(tǒng)具有異步性特征?a. 程序執(zhí)行結(jié)果是不確定的,即程序是不可再現(xiàn)的.b. 每個程序在何時執(zhí)行,多個程序間的執(zhí)行順序以及完成每道程序所需的時間都是不確定的,即不可預(yù)知性.18 試說明在MS-DOS 3.X以前的版本中,其局限性表現(xiàn)在哪幾個方面 a. 在尋址范圍上,DOS只有1MB,遠遠不能滿足用戶需要.b. DOS是單用戶單任務(wù)操作系統(tǒng),不支持多任務(wù)并發(fā)執(zhí)行,與實際應(yīng)用相矛盾.20 為什么Microsoft在開發(fā)OS/2時,選中了80286芯片?設(shè)計OS/2的主要目標之一是既能充分發(fā)揮80286處

11、理器的能力,又能運行在8086處理器環(huán)境下開發(fā)的程序.因為在80286內(nèi)部提供了兩種工作方式: 實方式和保護方式,使得Intel 80286處理器不僅提供了多任務(wù)并發(fā)執(zhí)行的硬件支持,而且還能運行所有在8086下編寫的程序。21 OS/2的主要功能是什么?a. 多任務(wù).b. 進程管理.c. 存儲器管理.d. 文件管理.e. 應(yīng)用程序接口API. f. 表示管理.22 多處理機OS有哪幾種模式 各有何優(yōu)缺點?a. 2種模式: 非對稱多處理模式(Asymmetric Multiprocessing Model)和對稱多處理模式(Symmetric Multiprocesing Model).b. 前

12、者易于實現(xiàn),但資源利用率低.-后者優(yōu)點是允許多個進程同時運行,缺點是必須小心控制I/O,以保證能將數(shù)據(jù)送至適當?shù)奶幚砥鳎瑫r還必須注意使各CPU的負載平衡.非對稱多處理模式:將處理機分為主處理機和從處理機 對稱多處理模式:所有處理機都是相同的,運行一個相同的OS拷貝23 試說明網(wǎng)絡(luò)OS的主要功能.a. 網(wǎng)絡(luò)通信;b. 資源管理;c. 網(wǎng)絡(luò)服務(wù);d. 網(wǎng)絡(luò)管理;e. 互操作能力.b.24 試比較網(wǎng)絡(luò)OS和分布式OS.a. 網(wǎng)絡(luò)OS是基于由一些互聯(lián)的自主計算機系統(tǒng)組成的計算機網(wǎng)絡(luò),以計算機技術(shù)和通信技術(shù)高度發(fā)展為基礎(chǔ),能實現(xiàn)相互通信和相互合作功能的系統(tǒng).分布式OS是指多個分散的處理單元,經(jīng)互聯(lián)網(wǎng)絡(luò)

13、連接而形成的系統(tǒng).b. 在分布性上,兩者都具有分布處理功能,但網(wǎng)絡(luò)OS的控制功能大多集中在某個(些)主機或網(wǎng)絡(luò)服務(wù)器中,即集中式,而分布式OS則是較均勻地分布在系統(tǒng)的各個站點上,是完全分布式的.在并行性上,分布式OS的任務(wù)分配程序可將多個任務(wù)分配到多個處理單元上而實現(xiàn)并行,網(wǎng)絡(luò)OS中通常無任務(wù)分配功能,每個用戶的任務(wù)通常在自己(本地)的計算機上處理.在透明性上,兩者都具透明性,但網(wǎng)絡(luò)OS指在操作實現(xiàn)上的透明性,而分布式OS則在系統(tǒng)內(nèi)部的細節(jié)上實現(xiàn)了很好的隱藏,即具有物理上的透明性.在共享性上,分布式OS是比較完全的實現(xiàn)共享,而網(wǎng)絡(luò)OS共享的資源大多是在主機或網(wǎng)絡(luò)服務(wù)器中.在健壯性上,分布式系統(tǒng)

14、由于處理和控制功能是分布的,還擁有容錯技術(shù)實現(xiàn)系統(tǒng)重構(gòu),因而具有很強的健壯性;而網(wǎng)絡(luò)OS的控制功能大多集中在主機或服務(wù)器中,是系統(tǒng)具有潛在的不可靠性,健壯性差.第二章 進程的描述與控制1. 試畫出下面條語句的前趨圖:S1: a=5-x; S2: b=a*x; S3: c=4*x; S4: d=b+c; S5: e=d+3.前趨圖:有向無循環(huán)圖,即圖中不存在循環(huán)。初始結(jié)點無前趨,終止結(jié)點無后繼。2. 試利用Bernstein條件證明上題中的S2和S3語句是可以并發(fā)執(zhí)行的,而S3和S4語句是不能并發(fā)執(zhí)行的證明: R(S2)=x,a, W(S2)=b, R(S3)=x, W(S3)=c;可見,S2與

15、S3的讀集與寫集兩兩不相交,S2與S3的寫集之間也不相交,因而,他們滿足Bernstein條件,S2與S3語句是可以并發(fā)執(zhí)行的.同理可證S3和S4不能滿足Bernstein條件,是不能并發(fā)執(zhí)行的.Bernstein條件:R(p1)W(p2)R(p2)W(p1)W(p1) W(p2)=3. 程序并發(fā)執(zhí)行為什么會產(chǎn)生間斷性?因為程序在并發(fā)執(zhí)行過程中存在相互制約性.4. 程序并發(fā)執(zhí)行為何會失去封閉性和可再現(xiàn)性?因為程序并發(fā)執(zhí)行時,多個程序共享系統(tǒng)中的各種資源,資源狀態(tài)需要多個程序來改變,即存在資源共享性使程序失去封閉性;而失去了封閉性導致程序失去可再現(xiàn)性.5. 在操作系統(tǒng)中為什么要引入進程概念?它會

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

17、單位.而對于未建立任何進程的程序,都不能作為一個獨立的單位參加運行.7. 試說明PCB的作用?為什么說PCB是進程存在的唯一標志?a. PCB是進程實體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu).PCB中記錄了操作系統(tǒng)所需的用于描述進程情況及控制進程運行所需的全部信息.因而它的作用是使一個在多道程序環(huán)境下不能獨立運行的程序(含數(shù)據(jù)),成為一個能獨立運行的基本單位,一個能和其它進程并發(fā)執(zhí)行的進程.b. 在進程的整個生命周期中,系統(tǒng)總是通過其PCB對進程進行控制,系統(tǒng)是根據(jù)進程的PCB而不是任何別的什么而感知到該進程的存在的,所以說,PCB是進程存在的唯一標志.8. 試說明進程在三個基本狀態(tài)之間

18、轉(zhuǎn)換的典型原因.a. 處于就緒狀態(tài)的進程,當進程調(diào)度程序為之分配了處理機后,該進程便由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài).b. 當前進程因發(fā)生某事件而無法執(zhí)行,如訪問已被占用的臨界資源,就會使進程由執(zhí)行狀態(tài)變?yōu)樽枞麪顟B(tài).c. 當前進程因時間片用完而被暫停執(zhí)行,該進程便由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài).9. 為什么要引入掛起狀態(tài)?該狀態(tài)具有哪些性質(zhì)?a. 引入掛起狀態(tài)基于5種需要: 終端用戶的需要,父進程的需要,操作系統(tǒng)的需要,對換的需要和負荷調(diào)節(jié)的需要.b. 處于掛起狀態(tài)的進程不能接收處理機調(diào)度.10 在進行進程切換時,所要保存的處理機狀態(tài)信息主要有哪些?a. 進程當前暫存信息;b. 下一條指令地址信息;c. 進程

19、狀態(tài)信息;d. 過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址信息.11 試說明引起進程創(chuàng)建的主要事件?a. 用戶登陸;b. 作業(yè)調(diào)度;c. 提供服務(wù);d. 應(yīng)用請求.12 試說明引起進程撤消的主要事件?a. 正常結(jié)束;b. 異常結(jié)束;c. 外界干預(yù);13 在創(chuàng)建一個進程時,需完成的主要工作是什么?a. 操作系統(tǒng)發(fā)現(xiàn)請求創(chuàng)建新進程事件后,調(diào)用進程創(chuàng)建原語Creat();b. 申請空白PCB;c. 為新進程分配資源;d. 初始化進程控制塊;e. 將新進程插入就緒隊列.14 在撤消一個進程時,需完成的主要工作是什么?a. OS調(diào)用進程終止原語;b. 根據(jù)被終止進程的標志符,從PCB集合中檢索出該進程的PCB,從中讀

20、出該進程的狀態(tài);c. 若被終止進程正處于執(zhí)行狀態(tài),應(yīng)立即中止該進程的執(zhí)行,并設(shè)置調(diào)度標志為真;d. 若該進程還有子孫進程,還應(yīng)將其所有子孫進程予以終止;e. 將該進程所擁有的全部資源,或者歸還給其父進程,或者歸還給系統(tǒng);f. 將被終止進程(它的PCB)從所在隊列(或鏈表)中移出,等待其它程序來搜集信息.15 試說明引起進程阻塞或被喚醒的主要事件是什么?a. 請求系統(tǒng)服務(wù);b. 啟動某種操作;c. 新數(shù)據(jù)尚未到達;d. 無新工作可做.16 試從調(diào)度性,并發(fā)性,擁有資源及系統(tǒng)開銷幾個方面,對進程和線程進行比較.a. 在引入線程的OS中,把線程作為調(diào)度和分派的基本單位,而把進程作為資源擁有的基本單位

21、;b. 在引入線程的OS中,不僅進程之間可以并發(fā)執(zhí)行,而且在一個進程中的多個線程之間,亦可并發(fā)執(zhí)行,因而使OS具有更好的并發(fā)性;c. 進程始終是擁有資源的一個獨立單位,線程自己不擁有系統(tǒng)資源,但它可以訪問其隸屬進程的資源;d. 在創(chuàng)建,撤消和切換進程方面,進程的開銷遠遠大于線程的開銷.17 什么是用戶級線程和內(nèi)核級線程?并對它們進行比較.a. 內(nèi)核級線程是依賴于內(nèi)核的,它存在于用戶進程和系統(tǒng)進程中,它們的創(chuàng)建,撤消和切換都由內(nèi)核實現(xiàn);-用戶級線程僅存在于用戶級中,它們的創(chuàng)建,撤消和切換不利用系統(tǒng)調(diào)用來實現(xiàn),因而與內(nèi)核無關(guān),內(nèi)核并不知道用戶級線程的存在.b. 內(nèi)核級線程的調(diào)度和切換與進程十分相似

22、,調(diào)度方式采用搶占式和非搶占式,調(diào)度算法采用時間片輪轉(zhuǎn)法和優(yōu)先權(quán)算法等,當由線程調(diào)度選中一個線程后,再將處理器分配給它;而用戶級線程通常發(fā)生在一個應(yīng)用程序的諸線程之間,無需終端進入OS內(nèi)核,切換規(guī)則也較簡單,因而,用戶級線程的切換速度較快.-用戶級線程調(diào)用系統(tǒng)調(diào)用和調(diào)度另一個進程執(zhí)行時,內(nèi)核把它們看作是整個進程的行為,內(nèi)核級線程調(diào)用是以線程為單位,內(nèi)核把系統(tǒng)調(diào)用看作是該線程的行為.-對于用戶級線程調(diào)用,進程的執(zhí)行速度隨著所含線程數(shù)目的增加而降低,對于內(nèi)核級線程則相反.18 在Solaris OS中,設(shè)置了哪幾種線程?輕型進程的作用是什么?a. 用戶級線程,內(nèi)核級線程和輕型進程;輕型進程:LWP

23、,一個進程中至少有一個LWP。b. 作用: 由LWP實現(xiàn)了在內(nèi)核與用戶級線程之間的隔離,從而使用戶級線程與內(nèi)核無關(guān).19 在Solaris OS中,用戶級線程是通過什么方式來訪問內(nèi)核的?通過LWP來訪問內(nèi)核. 內(nèi)核能識別LWP,但不能識別用戶級線程,通過建立用戶級線程與LWP之間的連接,可以實現(xiàn)用戶級線程與內(nèi)核的通信.第三章 進程的同步與通信1. 什么是臨界資源和臨界區(qū)?a. 一次僅允許一個進程使用的資源成為臨界資源.b. 在每個進程中,訪問臨界資源的那段程序稱為臨界區(qū).2. 為什么進程在進入臨界區(qū)之前,應(yīng)先執(zhí)行進入?yún)^(qū)代碼,在退出臨界區(qū)后又執(zhí)行退出區(qū)代碼?為了實現(xiàn)多個進程對臨界資源的互斥訪問,

24、必須在臨界區(qū)前面增加一段用于檢查欲訪問的臨界資源是否正被訪問的代碼,如果未被訪問,該進程便可進入臨界區(qū)對資源進行訪問,并設(shè)置正被訪問標志,如果正被訪問,則本進程不能進入臨界區(qū),實現(xiàn)這一功能的代碼成為進入?yún)^(qū)代碼;在退出臨界區(qū)后,必須執(zhí)行退出區(qū)代碼,用于恢復(fù)未被訪問標志.3. 同步機構(gòu)應(yīng)遵循哪些基本準則?為什么?a. 空閑讓進.(有效利用臨界資源)b. 忙則等待.(保證諸進程互斥的訪問臨界資源)c. 有限等待.(避免進程陷入“死等”狀態(tài))d. 讓權(quán)等待.(避免進程陷入“忙等”狀態(tài))4. 試從物理概念上來說明記錄型信號量和wait和signal操作 (有待討論).記錄型信號量:采用記錄型數(shù)據(jù)結(jié)構(gòu)的信

25、號量,包括代表資源數(shù)目的整型變量和鏈接所有等待進程的進程鏈表。P操作后,S.value0表示資源分配完畢,進程調(diào)用block原語進行自我阻塞,放棄處理機并插入到信號量鏈表S.L中。S操作后,S.value0表示信號量鏈表中仍有等待該資源的進程被阻塞,調(diào)用wakeup原語,將鏈表中第一個等待進程喚醒。整型信號量機制中的wait操作,只要是信號量S0,就會不斷測試,因此該機制并未遵循“讓權(quán)等待”的準則,而使該進程處于“忙等”狀態(tài)。5. 你認為整型信號量機制和記錄型信號量機制,是否完全遵循了同步機構(gòu)的四條準則?a. 在整型信號量機制中,未遵循讓權(quán)等待的準則.b. 記錄型信號量機制完全遵循了同步機構(gòu)的

26、空閑讓進,忙則等待,有限等待,讓權(quán)等待四條準則.6. 在生產(chǎn)者消費者問題中,如果缺少了signal(full)或signal(empty),對執(zhí)行結(jié)果會有何影響?生產(chǎn)者消費者問題可描述如下:var mutex,empty,full: semaphore:=1,n,0;buffer: array0,.,n-1 of item;in,out: integer:=0,0;beginparbeginproducer: ducer an item in nextp;.wait(empty);wait(mutex);buffer(in):=nextp;in:=(in+1) m

27、od n;signal(mutex);signal(full);until false;endconsumer: beginrepeatwait(full);wait(mutex);nextc:=buffer(out);out:=(out+1) mod n;signal(mutex);signal(empty);consume the item in nextc;until false;endparendendparendend可見,生產(chǎn)者可以不斷地往緩沖池送消息,如果緩沖池滿,就會覆蓋原有數(shù)據(jù),造成數(shù)據(jù)混亂.而消費者始終因wait(full)操作將消費進程直接送入進程鏈表進行等待,無法訪問緩

28、沖池,造成無限等待.7. 在生產(chǎn)者消費者問題中,如果將兩個wait操作即wait(full)和wait(mutex)互換位置;或者是將signal(mutex)與signal(full)互換位置結(jié)果會如何?a.wait(full)和wait(mutex)互換位置后,因為mutex在這兒是全局變量,執(zhí)行完wait(mutex),則mutex賦值為0,倘若full也為0,則該生產(chǎn)者進程就會轉(zhuǎn)入進程鏈表進行等待,而生產(chǎn)者進程會因全局變量mutex為0而進行等待,使full始終為0,這樣就形成了死鎖.b. 而signal(mutex)與signal(full)互換位置后,從邏輯上來說應(yīng)該是一樣的.8.

29、 我們?yōu)槟撑R界區(qū)設(shè)置一把鎖W,當W=1時,表示關(guān)鎖;W=0時,表示鎖已打開.試寫出開鎖原語和關(guān)鎖原語,并利用它們?nèi)崿F(xiàn)互斥.開鎖原語:unlock(W):W=0;關(guān)鎖原語:lock(W):if(W=1) do no_op;W=1;利用開關(guān)鎖原語實現(xiàn)互斥:var W: semaphore:=0;beginparbeginprocess : beginrepeatlock(W);critical sectionunlock(W);remainder sectionuntil false;endparendend9. 試修改下面生產(chǎn)者消費者問題解法中的錯誤.producer:beginrepeat.

30、producer an item in nextp;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操作: signal(full); */until false;endconsumer:beginrepeatwait(mutex);wait(empty); /* 應(yīng)為wait(full),而且還應(yīng)該在wait(mutex)的前面 */nextc:=buffe

31、r(out);out:=out+1; /* 考慮循環(huán),應(yīng)改為: out:=(out+1) mod n; */signal(mutex);/*缺少signal操作:signal(empty); */consumer item in nextc;until false;end10 試利用記錄型信號量寫出一個不會出現(xiàn)死鎖的哲學家進餐問題的算法.設(shè)初始值為1的信號量cI表示I號筷子被拿(I=1,2,3,4,.,2n),其中n為自然數(shù),I表示第I個哲學家send(I):beginif I mod 2=1 thenP(cI);P(cI-1 mod 5);Eat;V(cI-1 mod 5);V(cI);el

32、seP(cI-1 mod 5);P(cI);Eat;V(cI);V(cI-1 mod 5);end避免死鎖的方法:a.至多只允許四個科學家同時進餐,以保證至少有一個科學家能夠進餐。b.僅當兩只筷子都可用時才能進餐。c.奇數(shù)哲學家先拿左邊的筷子,偶數(shù)哲學家正相反。11 在測量控制系統(tǒng)中的數(shù)據(jù)采集任務(wù),把所采集的數(shù)據(jù)送一單緩沖區(qū);計算任務(wù)從該單緩沖中取出數(shù)據(jù)進行計算.試寫出利用信號量機制實現(xiàn)兩者共享單緩沖的同步算法.int mutex=1;int empty=n;int full=0;int in=0;int out=0;main()Cobeginsend();obtain();coendsend

33、()while(1).collect data in nextp;.wait(empty);wait(mutex);buffer(in)=nextp;in=(in+1) mod n;signal(mutex);signal(full);dobtain()while(1)wait(full);wait(mutex);nextc:=buffer(out);out:=(out+1) mod n;signal(mutex);signal(empty);culculate the data in nextc;12 畫圖說明管程由哪幾部分組成,為什么要引入條件變量?管程由三部分組成:(1)局部于管程的共享

34、變量說明;(2)對該數(shù)據(jù)結(jié)構(gòu)進行操作的一組過程;(3)對局部于管程的數(shù)據(jù)設(shè)置初始值的語句. 因為調(diào)用wait原語后,使進程等待的原因有多種,為了區(qū)別它們,引入了條件變量.管程:當共享資源用數(shù)據(jù)結(jié)構(gòu)表示時,資源管理程序可用對該數(shù)據(jù)結(jié)構(gòu)進行操作的一組過程來表示,這樣一組相關(guān)的數(shù)據(jù)結(jié)構(gòu)和過程一并稱為管程。 13 如何利用管程來解決生產(chǎn)者消費者問題 PC管程描述如下:typeproducer-consumer=monitorvar in,out,count:integer;buffer:array0,n-1 of item;notfull,notempty:condition;procedure en

35、try put(item)beginif countn then notfull.wait;buffer(in) := nextp;in := (in+1) mod n;count := count + 1;if notempty.queue then notempty.signal;endprocedure entry get(item)beginif count0 then notempty.waitnextc := buffer(out);out := (out+1) mod n;count := count-1;if notfull.queue then notfull.signal;

36、endbegin in := out := 0; count :=0; end生產(chǎn)者:producer: beginrepeatproduce an item in nextp;PC.put(item);until false;End消費者:consumer:beginrepeatPC.get(item);consume the item in nextc;until false;end14 什么是AND信號量?試利用AND信號量寫出生產(chǎn)者消費者問題的解法.為解決并行所帶來的死鎖問題,在wait操作中引入AND條件,其基本思想是將進程在整個運行過程中所需要的所有臨界資源,一次性地全部分配給進程

37、,用完后一次性釋放.解決生產(chǎn)者消費者問題可描述如下:生產(chǎn)者:用Swait(empty,mutex)代替wait(empty),wait(mutex)用Ssignal(mutex,full)代替signal(mutex),signal(full同理可得消費者15 在單處理機環(huán)境下,進程間有哪幾種通信方式?a. 共享存儲器系統(tǒng)通信方式;b. 消息傳遞系統(tǒng)通信方式;c. 管道通信方式.16 試比較進程間的低級通信工具與高級通信工具.用戶用低級通信工具實現(xiàn)進程通信很不方便,因為其效率低,通信對用戶不透明,所有的操作都必須由程序員來實現(xiàn). 而高級通信工具則可彌補這些缺陷,用戶可直接利用操作系統(tǒng)所提供的一

38、組通信命令,高效地傳送大量的數(shù)據(jù).低級通信:進程的互斥和同步歸結(jié)為低級通信 高級通信:用戶直接利用操作系統(tǒng)所提供的一組通信命令,高效地傳送大量的數(shù)據(jù)的一種通信方式17 消息隊列通信機制應(yīng)有哪幾方面功能a. 通信鏈路 建立用于發(fā)送進程和接收進程之間進行通信的通信鏈路b. 消息的格式 消息傳遞系統(tǒng)中消息采用一定的格式c. 進程同步方式 1.發(fā)送進程阻塞,接收進程阻塞2.發(fā)送進程不阻塞,接收進程阻塞(最常用)3發(fā)送接收進程均不阻塞.18 試比較消息隊列與管道通信機制.a. 所謂管道,是指用于連接一個讀進程和一個寫進程,以實現(xiàn)它們之間通信的共享文件,又稱pipe文件.管道通信是屬于共享存儲器系統(tǒng)的.b

39、. 消息隊列通信機制屬于消息傳遞系統(tǒng)通信機制,存在通信鏈路,有消息的格式,有若干緩沖隊列,采用獨特的發(fā)送原語和接收原語. (詳見P8990)19 讀者-寫著問題描述Var rmutex,wmutex:semaphore:=1,1;readcount: integer :=0;beginparbeginreader:beginrepeatwait(rmutex);if readcount := 0 then wait(wmutex)readcount := readcount+1;signal(rmutex);Perform read operation;Wait(rmutex);readcou

40、nt := readcount -1;if readcount := 0 then signal(wmutex);signal(rmutex);until false;endwriter:beginrepeatwait(wmutex);perform write operation;signal(wmutex);until false;endparendend第四章 調(diào)度與死鎖1. 高級調(diào)度與低級調(diào)度的主要任務(wù)是什么?為什么要引入中級調(diào)度?a. 作業(yè)調(diào)度又稱宏觀調(diào)度或高級調(diào)度,其主要任務(wù)是按一定的原則對外存上處于后備狀態(tài)的作業(yè)進行選擇,給選中的作業(yè)分配內(nèi)存,輸入輸出設(shè)備等必要的資源,并建立相應(yīng)

41、的進程,以使該作業(yè)的進程獲得競爭處理機的權(quán)利.b. 進程調(diào)度又稱微觀調(diào)度或低級調(diào)度,其主要任務(wù)是按照某種策略和方法選取一個處于就緒狀態(tài)的進程,將處理機分配給它.c. 為了提高內(nèi)存利用率和系統(tǒng)吞吐量,引入了中級調(diào)度.中級調(diào)度:將暫時不能運行的進程調(diào)至外存上等待(掛起),將外存上重又具備運行條件的就緒進程重新調(diào)入內(nèi)存。中級調(diào)度實際上是存儲器管理中的對換功能。2. 在作業(yè)調(diào)度中需做出哪兩個決定?a. 接納多少個作業(yè);b. 接納哪些作業(yè).3. 在剝奪調(diào)度方式中,有哪些剝奪原則?a. 時間片原則;b. 優(yōu)先權(quán)原則;c. 短作業(yè)(進程)優(yōu)先原則.4. 在OS中引起進程調(diào)度的主要因素有哪些 (有待討論)a.

42、進程(作業(yè))完成或發(fā)生某時間而被阻塞.b.時間片到.c.優(yōu)先權(quán)高的進程(作業(yè))到來.d.比當前明顯短的進程(作業(yè))到來。5. 選擇調(diào)度方式和調(diào)度算法時,應(yīng)遵循的準則是什么?a. 面向用戶的準則有周轉(zhuǎn)時間短,響應(yīng)時間快,截止時間的保證,以及優(yōu)先權(quán)準則.b. 面向系統(tǒng)的準則有系統(tǒng)吞吐量高,處理機利用率好,各類資源的平衡利用.6. 在批處理系統(tǒng),分時系統(tǒng)和實時系統(tǒng)中,各采用哪幾種進程(作業(yè))調(diào)度算法 (有待討論) 7. 為什么說多級反饋隊列能較好地滿足各種用戶的需要 a. 對于終端型作業(yè)用戶,由于終端型作業(yè)用戶所提交的作業(yè),大都屬于交互型作業(yè),系統(tǒng)只要能使這些作業(yè)(進程)在第一隊列所規(guī)定的時間片內(nèi)完

43、成,便可使終端型作業(yè)用戶都感到滿意.b. 對于短批處理作業(yè)用戶,很短的批處理型作業(yè)如果僅在第一隊列中執(zhí)行一個時間片即可完成,便可獲得與終端型作業(yè)一樣的相應(yīng)時間.對于稍長的作業(yè),通常也只需在第二隊列和第三隊列中各執(zhí)行一個時間片即可完成,其周轉(zhuǎn)時間仍然很短.c. 對于長批處理作業(yè)用戶,用戶也不必擔心其作業(yè)長期得不到處理.多級反饋隊列:設(shè)置多個就緒隊列,各隊列具有不同的優(yōu)先權(quán)。作業(yè)在隊列中按FCFS調(diào)度算法執(zhí)行固定的時間片,未完整則轉(zhuǎn)入下一隊列。最后一個隊列中的作業(yè)采用時間片輪轉(zhuǎn)法調(diào)度。8. 在按時間片輪轉(zhuǎn)調(diào)度算法中,在確定時間片的大小時,應(yīng)考慮哪些因素a. 系統(tǒng)對響應(yīng)時間的要求;b. 就緒隊列中進

44、程的數(shù)目;c. 系統(tǒng)的處理能力.9. 為實現(xiàn)實時調(diào)度,對實時系統(tǒng)提出了哪些要求?a. 要提供必要的調(diào)度信息;b. 在調(diào)度方式上要具體情況具體分析;c. 要具有快速響應(yīng)外部中斷的能力;d. 快速任務(wù)分派.10 目前常用的調(diào)度方式和算法,能否應(yīng)用到實時系統(tǒng)中?a. 對于時間片輪轉(zhuǎn)調(diào)度算法,是一種常用于分時系統(tǒng)的調(diào)度算法;b. 對于非搶占式優(yōu)先權(quán)調(diào)度算法,可用于要求不太嚴格的實時控制系統(tǒng)中;c. 對于基于時鐘中斷搶占的優(yōu)先權(quán)調(diào)度算法,有很好的響應(yīng)效果,可用于大多數(shù)的實時系統(tǒng)中;d. 對于立即搶占(Immediate Preemption)的優(yōu)先權(quán)調(diào)度,要求操作系統(tǒng)具有快速響應(yīng)外部時間的能力.11 在

45、多處理機系統(tǒng)中,比較有代表性的線程調(diào)度方式有哪幾種 a. 自調(diào)度方式;(所有處理在空閑時都可以自己從公共的進程或線程隊列中取出一個進程或線程b. 成組調(diào)度;(將一組相關(guān)的進程或線程同時分配到一組處理機上運行,進程或線程與處理機一一對應(yīng)c. 專用處理機分配調(diào)度方式.(將同屬與一個應(yīng)用程序一組線程分配到一組處理機上,應(yīng)用程序未結(jié)束前,處理機專用于這組線程。12 試比較自調(diào)度和成組調(diào)度a. 自調(diào)度方式是系統(tǒng)中有一個公共的線程或進程的就緒隊列,所有的處理機在空閑時,都可自己從該隊列中取出一個進程或線程運行;b. 成組調(diào)度是由系統(tǒng)將一組相關(guān)的進程或線程,同時分配到一組處理機上運行,進程或線程與處理機一一

46、對應(yīng);c. 在一般情況下,成組調(diào)度的性能優(yōu)于自調(diào)度,因為自調(diào)度存在瓶頸,低效,線程切換頻繁等問題,而成組調(diào)度可減少線程的切換和調(diào)度的開銷,因而目前得到了廣泛的認可. 13 在OS/2中采用哪種調(diào)度方式和調(diào)度算法?在OS/2中采用的是搶占式調(diào)度方式,多優(yōu)先級的搶占式調(diào)度算法. 14 何謂死鎖?產(chǎn)生死鎖的原因和必要條件是什么?a. 死鎖是指多個進程因競爭資源而造成的一種僵局,若無外力作用,這些進程都將永遠不能再向前推進;b. 產(chǎn)生死鎖的原因有二,一是競爭資源,二是進程推進順序非法;c. 必要條件是: 互斥條件,請求和保持條件,不剝奪條件和環(huán)路等待條件.15 在解決死鎖問題的幾個方法中,哪種方法最容

47、易實現(xiàn)?哪種方法使資源的利用率最高?a. 解決死鎖可歸納為四種方法: 預(yù)防死鎖,避免死鎖,檢測死鎖和解除死鎖;b. 其中,預(yù)防死鎖是最容易實現(xiàn)的;c. 避免死鎖使資源的利用率最高.16 請詳細說明可通過哪些途徑預(yù)防死鎖a. 擯棄請求和保持條件,就是如果系統(tǒng)有足夠的資源,便一次性地把進程所需的所有資源分配給它;b. 擯棄不剝奪條件,就是已經(jīng)保持了資源的進程,當它提出新的資源請求而不能立即得到滿足時,必須釋放它已經(jīng)保持的所有資源,待以后需要時再重新申請;c. 擯棄環(huán)路等待條件,就是將所有資源按類型排序標號,所有進程對資源的請求必須嚴格按序號遞增的次序提出.17 在銀行家算法的例子中,如果P0發(fā)出的

48、請求向量由Request0(0,2,0)改為Request0(0,1,0),問系統(tǒng)可否將資源分配給它?可以.首先,Request0(0,1,0)=Need0(7,4,3), Request0(0,1,0)=Available(2,3,0);分配后可修改得一資源數(shù)據(jù)表(表略),進行安全性檢查,可以找到一個安全序列P1,P4,P3,P2,P0,或P1,P4,P3,P0,P2,因此,系統(tǒng)是安全的,可以立即將資源分配給P0.18 銀行家算法a.數(shù)據(jù)結(jié)構(gòu)Available:可利用資源向量,定義可利用的資源數(shù)目,初始值為全部資源數(shù),隨分配和回收而動態(tài)變化Max:最大需求矩陣,定義對資源的最大需求Alloc

49、ation:分配矩陣,定義當前已分配的資源數(shù)Need:需求矩陣,定義尚需的資源數(shù)Request:資源請求向量Needi,j=Maxi,j-Allocationi,jb.算法描述1. 如果RequestiNeedi,則轉(zhuǎn)向步驟2否則認為出錯2. 如果RequestiAvailable,則轉(zhuǎn)向步驟3否則表示系統(tǒng)中尚無足夠資源,Pi必須等待3. 系統(tǒng)試探把資源分給Pi并修改數(shù)據(jù)結(jié)構(gòu)Available := Available-RequestiAllocationi := Allocationi+ RequestiNeedi= Needi - Requesti4. 執(zhí)行安全性算法Work:系統(tǒng)當前可提

50、供給進程的資源數(shù) 執(zhí)行算法開始時Work:=AvailableFinish:系統(tǒng)是否有足夠資源分配給進程 初始值 Finish:=falsea.從集合中找出滿足下列條件的進程Finishi:=false;NeediWorkb.進程順利執(zhí)行直至完成,執(zhí)行下列操作Work:=work+AllocationiFinishi:=true;go to setp2 c.實例A:=10,B:=5,C:=7T0時刻資源分配表MaxAllocationNeedAvailable進程ABCABCABCABCp0753010743332p1322200122p2902302600p3222211011p443300

51、2431T0時刻一個安全序列(p1,p3,p4,p0,p0)WorkNeedAllocationWo+Allo進程ABCABCABCABCFinishp1332122200532TRUEp3532011211743TRUEp4743431002745TRUEp27456003021047TRUEp010477430101057TRUE19 周轉(zhuǎn)時間從昨夜提交給系統(tǒng)開始,到作業(yè)完成為止的這段時間間隔稱為作業(yè)周轉(zhuǎn)時間。作業(yè)周轉(zhuǎn)時間包括:a. 作業(yè)在外存后備隊列上等待(作業(yè))調(diào)度的時間。b. 進程在就緒隊列上等待進程調(diào)度的時間。c. 進程在CPU上執(zhí)行的時間。d. 等待I/O操作完成的時間。平均周轉(zhuǎn)

52、時間:T=1/nTi i=1n帶權(quán)周轉(zhuǎn)時間:W=Ti/TsiTsi:系統(tǒng)提供的實際服務(wù)時間平均帶權(quán)周轉(zhuǎn)時間:W=1/nTi/Tsi i=1n第五章 存儲器管理1. 可采用哪幾種方式將程序裝入內(nèi)存?它們分別適用于何種場合?a. 首先由編譯程序?qū)⒂脩粼创a編譯成若干目標模塊,再由鏈接程序?qū)⒕幾g后形成的目標模塊和所需的庫函數(shù)鏈接在一起,組成一個裝入模塊,再由裝入程序?qū)⒀b入模塊裝入內(nèi)存;b. 裝入模塊的方式有: 絕對裝入方式,可重定位方式和動態(tài)運行時裝入方式;c. 絕對裝入方式適用于單道程序環(huán)境下;d. 可重定位方式適用于多道程序環(huán)境下;(不允許程序在運行中在內(nèi)存中移動位置)e. 動態(tài)運行時裝入方式也

53、適用于多道程序環(huán)境下. (裝入到內(nèi)存中的地址仍是相對地址,程序真正執(zhí)行時才進行地址轉(zhuǎn)換,需要特殊的硬件支持)2. 何謂靜態(tài)鏈接及裝入時動態(tài)鏈接和運行時的動態(tài)鏈接 a. 靜態(tài)鏈接是指事先進行鏈接形成一個完整的裝入模塊,以后不再拆開的鏈接方式;b. 裝入時動態(tài)鏈接是指目標模塊在裝入內(nèi)存時,邊裝入邊鏈接的鏈接方式;c. 運行時的動態(tài)鏈接是將某些目標模塊的鏈接推遲到執(zhí)行時才進行.3. 在進行程序鏈接時,應(yīng)完成哪些工作?a. 對相對地址進行修改;b. 變換外部調(diào)用符號. 4. 在動態(tài)分區(qū)分配方式中,可利用哪些分區(qū)分配算?a. 首次適應(yīng)算法;b. 循環(huán)首次適應(yīng)算法;c. 最佳適應(yīng)算法.5. 在動態(tài)分區(qū)分配方式中,應(yīng)如何將各空閑分區(qū)鏈接成空閑分區(qū)鏈?應(yīng)在每個分區(qū)的起始地址部分,設(shè)置一些用于控制分區(qū)分配的信息,以及用于鏈接各分區(qū)的前向指針;在分區(qū)尾部則設(shè)置一后向指針,通

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論