操作系統(tǒng)原理與實(shí)踐教程(第二版)習(xí)習(xí)題答案_第1頁(yè)
操作系統(tǒng)原理與實(shí)踐教程(第二版)習(xí)習(xí)題答案_第2頁(yè)
操作系統(tǒng)原理與實(shí)踐教程(第二版)習(xí)習(xí)題答案_第3頁(yè)
操作系統(tǒng)原理與實(shí)踐教程(第二版)習(xí)習(xí)題答案_第4頁(yè)
操作系統(tǒng)原理與實(shí)踐教程(第二版)習(xí)習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第1章 操作系統(tǒng)概論(1) 試說(shuō)明什么是操作系統(tǒng),它具有什么特征其最基本特征是什么解:操作系統(tǒng)就是一組管理與控制計(jì)算機(jī)軟硬件資源并對(duì)各項(xiàng)任務(wù)進(jìn)行合理化調(diào)度,且附加了各種便于用戶操作的工具的軟件層次?,F(xiàn)代操作系統(tǒng)都具有并發(fā)、共享、虛擬和異步特性,其中并發(fā)性是操作系統(tǒng)的最基本特征,也是最重要的特征,其它三個(gè)特性均基于并發(fā)性而存在。(2) 設(shè)計(jì)現(xiàn)代操作系統(tǒng)的主要目標(biāo)是什么解:現(xiàn)代操作系統(tǒng)的設(shè)計(jì)目標(biāo)是有效性、方便性、開放性、可擴(kuò)展性等特性。其中有效性指的是OS應(yīng)能有效地提高系統(tǒng)資源利用率和系統(tǒng)吞吐量。方便性指的是配置了OS后的計(jì)算機(jī)應(yīng)該更容易使用。這兩個(gè)性質(zhì)是操作系統(tǒng)最重要的設(shè)計(jì)目標(biāo)。開放性指的是OS

2、應(yīng)遵循世界標(biāo)準(zhǔn)規(guī)范,如開放系統(tǒng)互連OSI國(guó)際標(biāo)準(zhǔn)。可擴(kuò)展性指的是OS應(yīng)提供良好的系統(tǒng)結(jié)構(gòu),使得新設(shè)備、新功能和新模塊能方便地加載到當(dāng)前系統(tǒng)中,同時(shí)也要提供修改老模塊的可能,這種對(duì)系統(tǒng)軟硬件組成以及功能的擴(kuò)充保證稱為可擴(kuò)展性。(3) 操作系統(tǒng)的作用體現(xiàn)在哪些方面解:現(xiàn)代操作系統(tǒng)的主要任務(wù)就是維護(hù)一個(gè)優(yōu)良的運(yùn)行環(huán)境,以便多道程序能夠有序地、高效地獲得執(zhí)行,而在運(yùn)行的同時(shí),還要盡可能地提高資源利用率和系統(tǒng)響應(yīng)速度,并保證用戶操作的方便性。因此操作系統(tǒng)的基本功能應(yīng)包括處理器管理、存儲(chǔ)器管理、設(shè)備管理和文件管理。此外,為了給用戶提供一個(gè)統(tǒng)一、方便、有效的使用系統(tǒng)能力的手段,現(xiàn)代操作系統(tǒng)還需要提供一個(gè)友好

3、的人機(jī)接口。在互聯(lián)網(wǎng)不斷發(fā)展的今天,操作系統(tǒng)中通常還具備基本的網(wǎng)絡(luò)服務(wù)功能和信息安全防護(hù)等方面的支持。(4) 試說(shuō)明實(shí)時(shí)操作系統(tǒng)和分時(shí)操作系統(tǒng)在交互性、及時(shí)性和可靠性方面的異同。解:l 交互性:分時(shí)系統(tǒng)能夠使用戶和系統(tǒng)進(jìn)行人-機(jī)對(duì)話。實(shí)時(shí)系統(tǒng)也具有交互性,但人與系統(tǒng)的交互僅限于訪問(wèn)系統(tǒng)中某些特定的專用服務(wù)程序。l 及時(shí)性:分時(shí)系統(tǒng)的響應(yīng)時(shí)間是以人能夠接受的等待時(shí)間為標(biāo)準(zhǔn),而實(shí)時(shí)控制系統(tǒng)對(duì)響應(yīng)時(shí)間要求比較嚴(yán)格,它是以控制過(guò)程或信息處理中所能接受的延遲為標(biāo)準(zhǔn)。l 可靠性:實(shí)時(shí)系統(tǒng)要求系統(tǒng)可靠性要比分時(shí)系統(tǒng)高。在實(shí)時(shí)系統(tǒng)中往往采用多級(jí)容錯(cuò)措施來(lái)保證系統(tǒng)的安全及數(shù)據(jù)的安全。(5) 試比較分布式操作系統(tǒng)

4、和網(wǎng)絡(luò)操作系統(tǒng)的異同。解:它們的區(qū)別在于:分布式操作系統(tǒng)的設(shè)計(jì)思想和網(wǎng)絡(luò)操作系統(tǒng)是不同的,這決定了它們?cè)诮Y(jié)構(gòu)、工作方式和功能上也不同。網(wǎng)絡(luò)操作系統(tǒng)要求網(wǎng)絡(luò)用戶在使用網(wǎng)絡(luò)資源時(shí)首先必須了解網(wǎng)絡(luò)資源,網(wǎng)絡(luò)用戶必須知道網(wǎng)絡(luò)中各個(gè)計(jì)算機(jī)的功能與配置、軟件資源、網(wǎng)絡(luò)文件結(jié)構(gòu)等情況,在網(wǎng)絡(luò)中如果用戶要讀一個(gè)共享文件時(shí),用戶必須知道這個(gè)文件放在哪一臺(tái)計(jì)算機(jī)的哪一個(gè)目錄下;分布式操作系統(tǒng)是以全局方式管理系統(tǒng)資源的,它可以為用戶任意調(diào)度網(wǎng)絡(luò)資源,并且調(diào)度過(guò)程是“透明”的。(6) 什么是操作系統(tǒng)虛擬機(jī)結(jié)構(gòu)它有什么好處解:虛擬機(jī)結(jié)構(gòu)OS最初是為了滿足用戶對(duì)分時(shí)系統(tǒng)的需求而出現(xiàn)的。VM/370的核心程序?yàn)樘摂M機(jī)監(jiān)控器

5、(virtual machine monitor),它運(yùn)行于裸機(jī)之上并提供多道程序功能。該系統(tǒng)向上層提供多個(gè)對(duì)裸機(jī)硬件精確復(fù)制的虛擬機(jī),這些復(fù)制品均包含核心態(tài)、用戶態(tài)、I/O處理、中斷以及其它真實(shí)機(jī)器所應(yīng)該具有的全部功能。這樣做的好處是凡是能在一臺(tái)物理裸機(jī)上運(yùn)行的操作系統(tǒng)均可以出現(xiàn)在一個(gè)特定虛擬機(jī)上,分配給各用戶的不同虛擬機(jī)上可以隨用戶的個(gè)人愛(ài)好和操作習(xí)慣不同而采用不同的操作系統(tǒng)。在用戶看來(lái)就是直接在自己獨(dú)享的一臺(tái)裸機(jī)上工作。(7) 試說(shuō)明客戶機(jī)/服務(wù)器結(jié)構(gòu)的操作系統(tǒng)為什么獲得廣泛應(yīng)用。解:客戶機(jī)/服務(wù)器結(jié)構(gòu)的操作系統(tǒng)具有不同于傳統(tǒng)集中式OS的一系列獨(dú)特優(yōu)點(diǎn),使得其在網(wǎng)絡(luò)時(shí)代大為流行。主要原因

6、有以下幾點(diǎn):1. 該系統(tǒng)的數(shù)據(jù)可以進(jìn)行分布式處理和存儲(chǔ)??蛻魴C(jī)本身均具有一定的處理能力,部分?jǐn)?shù)據(jù)處理和存儲(chǔ)工作可由本地客戶機(jī)完成,減少了服務(wù)器機(jī)的任務(wù)量。2. 對(duì)于重要數(shù)據(jù),可以將其放在受到嚴(yán)密保護(hù)的服務(wù)器所在的局域網(wǎng)內(nèi)集中管理,以便保證數(shù)據(jù)安全。3. C/S結(jié)構(gòu)有較好的靈活性和可擴(kuò)充性,客戶機(jī)/服務(wù)器機(jī)類型可選范圍很大。4. 易于修改用戶程序。對(duì)客戶機(jī)的修改和增刪很方便,甚至可以由用戶自行進(jìn)行。(8) 處理機(jī)管理有哪些主要功能請(qǐng)簡(jiǎn)要描述。解:處理機(jī)的管理功能主要體現(xiàn)在創(chuàng)建、撤銷進(jìn)程,并按照一定的算法為其分配所需資源,同時(shí)還要管理和控制各用戶的多個(gè)進(jìn)程協(xié)調(diào)運(yùn)行,確保各個(gè)進(jìn)程可以正確的通信。在多

7、道程序OS中,這些管理功能最終通過(guò)對(duì)進(jìn)程的控制和管理來(lái)實(shí)現(xiàn),而在具有線程機(jī)制的OS中,這些功能的實(shí)現(xiàn)還依賴于對(duì)線程的管理和控制。(9) 存儲(chǔ)器管理有哪些主要功能請(qǐng)簡(jiǎn)要描述。解:操作系統(tǒng)所管理的存儲(chǔ)器包括內(nèi)存、外存等,因此存儲(chǔ)器管理的主要任務(wù)就是將各種存儲(chǔ)器件統(tǒng)一管理,保證多道程序的良好運(yùn)行環(huán)境,同時(shí)還要兼顧內(nèi)存利用率、邏輯上擴(kuò)充內(nèi)存的需求以及用戶的感受,提供優(yōu)良的控制、存取功能,為用戶提供操控存儲(chǔ)器的手段。為實(shí)現(xiàn)上述要求,存儲(chǔ)器管理應(yīng)具有內(nèi)存分配、內(nèi)存回收、內(nèi)存保護(hù)、地址映射和虛擬內(nèi)存等功能。(10) 文件管理有哪些主要功能請(qǐng)簡(jiǎn)要描述。解:其主要功能就是管理外存上的靜態(tài)文件,提供存取、共享和保

8、護(hù)文件的手段,以方便用戶使用,同時(shí)禁止無(wú)權(quán)限用戶對(duì)他人資源的誤訪問(wèn)或有權(quán)限用戶對(duì)資源的誤操作。文件管理機(jī)制還要能有效管理外存空閑區(qū)域,根據(jù)文件的大小為其分配和回收空閑區(qū)。為了滿足用戶對(duì)響應(yīng)時(shí)間的要求,文件管理機(jī)制還應(yīng)實(shí)現(xiàn)目錄管理,以便快速地定位文件。文件管理機(jī)制能有效保護(hù)文件安全,提高資源利用率,為用戶提供快速檢索和使用文件的手段,是OS不可或缺的組成部分。(11) 設(shè)備管理有哪些主要功能請(qǐng)簡(jiǎn)要描述。解:設(shè)備管理的主要作用是使用統(tǒng)一的方式控制、管理和訪問(wèn)種類繁多的外圍設(shè)備。設(shè)備管理功能主要體現(xiàn)在:接收、分析和處理用戶提出的I/O請(qǐng)求,為用戶分配所需I/O設(shè)備,同時(shí)還要做到盡量提高CPU和I/O

9、設(shè)備利用率、I/O處理效率,為用戶提供操控I/O設(shè)備的便捷界面和手段。根據(jù)設(shè)備管理模塊的功能要求,可以將其功能分為設(shè)備分配、緩沖管理、設(shè)備處理、虛擬設(shè)備等。第2章 操作系統(tǒng)的界面(1) 請(qǐng)說(shuō)明系統(tǒng)生成和系統(tǒng)引導(dǎo)的過(guò)程。解:系統(tǒng)的生成過(guò)程:當(dāng)裸機(jī)啟動(dòng)后,會(huì)運(yùn)行一個(gè)特殊的程序來(lái)自動(dòng)進(jìn)行系統(tǒng)的生成(安裝),生成系統(tǒng)之前需要先對(duì)硬件平臺(tái)狀況進(jìn)行檢查,或者從指定文件處讀取硬件系統(tǒng)的配置信息,以便根據(jù)硬件選擇合適的操作系統(tǒng)模塊組,比較重要的信息通常有:CPU類型、內(nèi)存大小、當(dāng)前關(guān)聯(lián)設(shè)備的類型和數(shù)量以及操作系統(tǒng)的重要功能選項(xiàng)和參數(shù)。按照這些信息的指示,系統(tǒng)生成程序就可以正確地生成所需的操作系統(tǒng)。系統(tǒng)引導(dǎo)的過(guò)

10、程:系統(tǒng)引導(dǎo)指的是將操作系統(tǒng)內(nèi)核裝入內(nèi)存并啟動(dòng)系統(tǒng)的過(guò)程。主要包括初始引導(dǎo)、內(nèi)核初始化、全系統(tǒng)初始化。初始引導(dǎo)工作由BIOS完成,主要完成上電自檢,初始化基本輸入輸出設(shè)備,載入操作系統(tǒng)內(nèi)核代碼等工作。內(nèi)核被載入內(nèi)存后,引導(dǎo)程序?qū)PU控制權(quán)交給內(nèi)核,內(nèi)核將首先完成初始化功能,包括對(duì)硬件、電路邏輯等的初始化,以及對(duì)內(nèi)核數(shù)據(jù)結(jié)構(gòu)的初始化,如頁(yè)表(段表)等。全系統(tǒng)初始化階段要做的就是啟動(dòng)用戶接口程序,對(duì)系統(tǒng)進(jìn)行必要的初始化,使系統(tǒng)處于等待命令輸入狀態(tài)。(2) 操作系統(tǒng)具有哪些接口這些接口的作用是什么解:操作系統(tǒng)為用戶提供的接口有圖形接口、命令接口和程序接口幾種形式。操作系統(tǒng)包括三種類型的用戶接口:命

11、令接口(具體又可分為聯(lián)機(jī)命令接口與脫機(jī)命令接口)、程序接口及圖形化用戶接口。其中,命令接口和圖形化用戶接口支持用戶直接通過(guò)終端來(lái)使用計(jì)算機(jī)系統(tǒng),而程序接口則提供給用戶在編制程序時(shí)使用。(3) 請(qǐng)說(shuō)明操作系統(tǒng)具有的共性服務(wù)有哪些不同類別,這些類別分別用于完成什么功能解:所有的操作系統(tǒng)都通過(guò)一些基本服務(wù)來(lái)幫助用戶簡(jiǎn)單便捷地使用計(jì)算機(jī)各類資源,它們包括以下幾個(gè)類別:1. 控制程序運(yùn)行:系統(tǒng)通過(guò)服務(wù)將用戶程序裝入內(nèi)存并運(yùn)行該程序,并且要控制程序在規(guī)定時(shí)間內(nèi)結(jié)束。2. 進(jìn)行I/O操作:用戶是不能直接控制設(shè)備的,只能通過(guò)操作系統(tǒng)與外部設(shè)備進(jìn)行交互,由系統(tǒng)調(diào)用將結(jié)果顯示在屏幕上或交給用戶。3. 操作文件系統(tǒng)

12、:為了保證實(shí)現(xiàn)“按名存取”,文件系統(tǒng)應(yīng)該為用戶提供根據(jù)文件名來(lái)創(chuàng)建、訪問(wèn)、修改、刪除文件的方法,以確保文件數(shù)據(jù)的安全可靠以及正確存取。4. 實(shí)現(xiàn)通信:操作系統(tǒng)需要提供多個(gè)程序之間進(jìn)行通訊的機(jī)制,來(lái)控制程序的執(zhí)行順序。5. 錯(cuò)誤處理:操作系統(tǒng)通過(guò)錯(cuò)誤處理機(jī)制,以便及時(shí)發(fā)現(xiàn)錯(cuò)誤并采取正確的處理步驟,避免損害系統(tǒng)的正確性和統(tǒng)一性。(4) 系統(tǒng)調(diào)用的用途是什么解:通常,在操作系統(tǒng)內(nèi)核設(shè)置有一組用于實(shí)現(xiàn)各種系統(tǒng)功能的子程序(過(guò)程),并將它們提供給用戶程序調(diào)用。每當(dāng)用戶在程序中需要操作系統(tǒng)提供某種服務(wù)時(shí),便可利用一條系統(tǒng)調(diào)用命令,去調(diào)用所需的系統(tǒng)過(guò)程。這即所謂的系統(tǒng)調(diào)用。系統(tǒng)調(diào)用的主要類型包括:1. 進(jìn)程

13、控制類,主要用于進(jìn)程的創(chuàng)建和終止、對(duì)子進(jìn)程結(jié)束的等待、進(jìn)程映像的替換、進(jìn)程數(shù)據(jù)段大小的改變以及關(guān)于進(jìn)程標(biāo)識(shí)符或指定進(jìn)程屬性的獲得等;2. 文件操縱類,主要用于文件的創(chuàng)建、打開、關(guān)閉、讀/寫及文件讀寫指針的移動(dòng)和文件屬性的修改,目錄的創(chuàng)建及關(guān)于目錄、特別文件或普通文件的索引結(jié)點(diǎn)的建立等;3. 進(jìn)程通信類,用于實(shí)現(xiàn)各種類型的通信機(jī)制如消息傳遞、共享存儲(chǔ)區(qū)及信息量集機(jī)制等;4. 信息維護(hù)類,用于實(shí)現(xiàn)關(guān)于日期和時(shí)間及其它系統(tǒng)相關(guān)信息的設(shè)置和獲得。(5) 命令解釋程序有什么作用解:命令解釋程序的主要作用是:在屏幕上產(chǎn)生提示符,請(qǐng)用戶輸入命令,然后讀入命令、識(shí)別命令,并轉(zhuǎn)至相應(yīng)的命令處理程序入口地址,把控

14、制權(quán)交給該處理程序去執(zhí)行,最后將有關(guān)處理結(jié)果(包括出錯(cuò)信息)送屏幕顯示。第3章 處理器管理(1) 為什么程序并發(fā)執(zhí)行會(huì)產(chǎn)生間斷性特征,并失去封閉性和可再現(xiàn)性解:之所以產(chǎn)生間斷性特征是因?yàn)槎鄠€(gè)程序在并發(fā)執(zhí)行時(shí),需要為了完成同一項(xiàng)任務(wù)而相互合作,并發(fā)執(zhí)行的程序間的這種相互制約導(dǎo)致了“暫停執(zhí)行暫?!钡拈g斷性運(yùn)行規(guī)律。失去封閉性是因?yàn)槌绦蛟诓l(fā)執(zhí)行時(shí),多個(gè)程序需要共享系統(tǒng)中的多種資源。所以,這些資源的狀態(tài)是由多個(gè)程序改變的,從而使程序的運(yùn)行失去了封閉性。失去可再現(xiàn)性是因?yàn)槌绦蛟诓l(fā)執(zhí)行時(shí),由于失去了封閉性,從而導(dǎo)致其失去可再現(xiàn)性。(2) 什么是進(jìn)程為什么要在操作系統(tǒng)中引入進(jìn)程解:進(jìn)程是可并發(fā)執(zhí)行且具有

15、獨(dú)立功能的程序在一個(gè)數(shù)據(jù)集合上的運(yùn)行過(guò)程,它是操作系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位?!斑M(jìn)程”概念是人們?yōu)榱耸钩绦蚰軌虿l(fā)執(zhí)行,并且能對(duì)并發(fā)的程序加以描述和控制而引入的。(3) 試從并發(fā)性、獨(dú)立性、動(dòng)態(tài)性上比較程序和進(jìn)程的不同。解:l 并發(fā)性是進(jìn)程的重要特征,同時(shí)也是OS 的重要特征。引入進(jìn)程的目的正是為了使其程序能和其它進(jìn)程的程序并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的。l 獨(dú)立性是指進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位。而對(duì)于未建立任何進(jìn)程的程序,都不能作為一個(gè)獨(dú)立的單位參加運(yùn)行。l 動(dòng)態(tài)性是進(jìn)程最基本的特性,可表現(xiàn)為由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,因得不到

16、資源而暫停執(zhí)行,以及由撤銷而消亡,因而進(jìn)程有一定的生命期;而程序只是一組有序指令的集合,是靜態(tài)實(shí)體。 (4) 什么是PCB它具有什么作用為什么說(shuō)PCB是進(jìn)程存在的唯一標(biāo)識(shí)解:進(jìn)程控制塊(Process Control Block,PCB)是操作系統(tǒng)為了管理進(jìn)程而設(shè)置的一個(gè)專門的數(shù)據(jù)結(jié)構(gòu),用它來(lái)記錄進(jìn)程的外部特征,描述進(jìn)程的運(yùn)動(dòng)變化過(guò)程。它的作用是使一個(gè)在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序(含數(shù)據(jù)),成為一個(gè)能獨(dú)立運(yùn)行的基本單位,一個(gè)能和其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程.因?yàn)橄到y(tǒng)利用PCB來(lái)控制和管理進(jìn)程,所以PCB是系統(tǒng)感知進(jìn)程存在的唯一標(biāo)志。進(jìn)程與PCB是一一對(duì)應(yīng)的。(5) 進(jìn)程有哪些基本狀態(tài)這些狀態(tài)具

17、有什么特征解:進(jìn)程的三種基本狀態(tài)分別是:就緒狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)。l 就緒狀態(tài):進(jìn)程已獲取到除CPU之外的所有必要資源,只要再得到CPU,就可以馬上投入運(yùn)行。l 運(yùn)行狀態(tài):處于就緒狀態(tài)的進(jìn)程被調(diào)度程序選中后將得到CPU控制權(quán),此時(shí)該進(jìn)程就可以使用處理器進(jìn)行數(shù)據(jù)運(yùn)算和處理。l 阻塞狀態(tài):當(dāng)一個(gè)進(jìn)程正在等待某個(gè)事件的發(fā)生(如等待I/O的完成)而暫停執(zhí)行,這時(shí),即使分配有CPU時(shí)間,它也無(wú)法執(zhí)行。(6) 為什么要引入掛起狀態(tài)該狀態(tài)有什么特性解:引入掛起狀態(tài)時(shí)為了滿足四種需要:調(diào)節(jié)系統(tǒng)負(fù)荷的需要、用戶的需要、父進(jìn)程的需要、系統(tǒng)的需要。掛起狀態(tài)的特點(diǎn):交換到磁盤上的進(jìn)程,不讓其參與進(jìn)程調(diào)度,以達(dá)到平

18、衡系統(tǒng)負(fù)荷的目的。(7) 說(shuō)明進(jìn)程基本狀態(tài)的轉(zhuǎn)換關(guān)系及引起這些狀態(tài)間轉(zhuǎn)換的典型原因。解:處于就緒狀態(tài)的進(jìn)程,在調(diào)度程序?yàn)橹峙淞颂幚砥髦?,就可以投入運(yùn)行。同時(shí),進(jìn)程的狀態(tài)也由就緒狀態(tài)轉(zhuǎn)變?yōu)檫\(yùn)行狀態(tài);在采用時(shí)間片機(jī)制的操作系統(tǒng)中,分配給當(dāng)前進(jìn)程的時(shí)間片用完之后,它會(huì)暫停執(zhí)行,其狀態(tài)也由運(yùn)行狀態(tài)轉(zhuǎn)換到就緒狀態(tài);如果由于某事件發(fā)生(比如進(jìn)程需要訪問(wèn)某I/O設(shè)備,而該設(shè)備正在被別的進(jìn)程訪問(wèn))而使進(jìn)程運(yùn)行受阻,不能再繼續(xù)向下執(zhí)行時(shí),它的狀態(tài)會(huì)由運(yùn)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài);當(dāng)進(jìn)程期望的某事件發(fā)生時(shí)(比如需要訪問(wèn)的I/O設(shè)備已可用),進(jìn)程將從阻塞狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)(8) 說(shuō)明在加入了掛起狀態(tài)的操作系統(tǒng)中,進(jìn)程

19、狀態(tài)間的轉(zhuǎn)換關(guān)系及引發(fā)轉(zhuǎn)換的典型原因。解:在引入掛起狀態(tài)的操作系統(tǒng)中,又增加了靜止就緒和靜止阻塞兩個(gè)新的進(jìn)程狀態(tài)。調(diào)用掛起原語(yǔ)把處于活動(dòng)就緒狀態(tài)的進(jìn)程掛起后,該進(jìn)程就會(huì)由活動(dòng)就緒狀態(tài)轉(zhuǎn)變?yōu)殪o止就緒狀態(tài)。調(diào)用掛起原語(yǔ)把處于活動(dòng)阻塞的進(jìn)程掛起后,它的狀態(tài)就轉(zhuǎn)換為靜止阻塞。調(diào)用激活原語(yǔ)激活后又可以轉(zhuǎn)換到活動(dòng)阻塞狀態(tài)。(9) 試說(shuō)明引起進(jìn)程創(chuàng)建的典型事件。解:引起進(jìn)程創(chuàng)建的典型事件有:用戶登錄、作業(yè)調(diào)度、提供服務(wù)、應(yīng)用請(qǐng)求。(10) 試說(shuō)明引起進(jìn)程撤銷的典型事件。解:引起進(jìn)程撤銷的典型事件有:正常結(jié)束、異常結(jié)束、外界干預(yù)。(11) 試說(shuō)明引起進(jìn)程阻塞和喚醒的典型事件。解:引起進(jìn)程阻塞和喚醒的典型事件有

20、:請(qǐng)求系統(tǒng)服務(wù)、啟動(dòng)某種操作、新數(shù)據(jù)尚未到達(dá)、無(wú)新工作可做。.(12) 試說(shuō)明進(jìn)程創(chuàng)建的過(guò)程。解:創(chuàng)建進(jìn)程的操作必須調(diào)用創(chuàng)建原語(yǔ)來(lái)實(shí)現(xiàn)。創(chuàng)建原語(yǔ)首先為新進(jìn)程申請(qǐng)獲得惟一的數(shù)字標(biāo)示符,并從PCB集合中獲取一個(gè)空白PCB;為新進(jìn)程的程序和數(shù)據(jù)以及用戶棧分配必要的內(nèi)存空間;然后對(duì)PCB進(jìn)程初始化;最后將新進(jìn)程插入就緒隊(duì)列中,等待被調(diào)度執(zhí)行。(13) 試說(shuō)明進(jìn)程撤銷的過(guò)程。解:系統(tǒng)調(diào)用進(jìn)程終止原語(yǔ)來(lái)終止進(jìn)程。首先根據(jù)被終止進(jìn)程的標(biāo)示符,從PCB集合中查找到該進(jìn)程的PCB,從中讀出該進(jìn)程的狀態(tài),終止該進(jìn)程的執(zhí)行,如果該進(jìn)程還有子孫進(jìn)程,應(yīng)該將它的所有子孫進(jìn)程終止,防止它們成為不可控進(jìn)程;然后回收進(jìn)程所擁

21、有的資源;最后將被終止進(jìn)程(它的PCB)從所在隊(duì)列(或鏈表)中移出,等待其它程序來(lái)搜集信息。(14) 什么是線程請(qǐng)比較它與進(jìn)程的異同。解:線程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立分配和調(diào)度的基本單位。線程基本上不擁有資源,只需要一些必不可少的資源(如程序計(jì)數(shù)器、一組寄存器和棧)。進(jìn)程和線程的差異:1. 在傳統(tǒng)的OS中,進(jìn)程是擁有資源和獨(dú)立調(diào)度分派的基本單位,在加入線程的OS中,線程是代替進(jìn)程成為獨(dú)立調(diào)度和分派的基本單位,進(jìn)程則仍是擁有資源的基本單位。2. 并發(fā)粒度不同。除了不同進(jìn)程的線程之外,同一個(gè)進(jìn)程里的不同線程之間也可以并發(fā)執(zhí)行,所以線程擁有更好的并發(fā)性。3. 擁有資源數(shù)量不同。進(jìn)程是擁有資源

22、的基本單位,線程除了一些在運(yùn)行過(guò)程中必不可少的資源外,基本上不擁有系統(tǒng)資源,它可以訪問(wèn)自己所在的進(jìn)程的資源。4. 管理開銷不同。創(chuàng)建、撤銷進(jìn)程時(shí)系統(tǒng)都要為之分配和回收資源,所以進(jìn)程切換用的時(shí)間開銷相對(duì)要多于線程。進(jìn)程間通信很麻煩,而同一進(jìn)程的線程則通過(guò)共享進(jìn)程的資源很方便地通信和同步,同步開銷小得多。進(jìn)程和線程有著很多相似的地方:都可以并發(fā)執(zhí)行;都有就緒、執(zhí)行、阻塞這些基本狀態(tài),也都可以在這些基本狀態(tài)之間轉(zhuǎn)換狀態(tài);從創(chuàng)建到撤銷都有一定的生命周期;都需要同步工具。(15) 處理器調(diào)度的層次有哪些各層次的主要工作是什么解:處理器調(diào)度的層次分為三級(jí)調(diào)度:高級(jí)調(diào)度、中級(jí)調(diào)度和低級(jí)調(diào)度。l 高級(jí)調(diào)度:它

23、需要做出兩個(gè)決定,一個(gè)是要從駐留在外存后備隊(duì)列中調(diào)入多少個(gè)作業(yè),二是要調(diào)入哪幾個(gè)作業(yè);然后為被選中的作業(yè)創(chuàng)建進(jìn)程,并分配必要的系統(tǒng)資源,如內(nèi)存、外設(shè)等,然后把新創(chuàng)建的進(jìn)程放入就緒隊(duì)列中,等待被調(diào)度執(zhí)行。l 中級(jí)調(diào)度:中級(jí)調(diào)度主要涉及進(jìn)程在內(nèi)存和外存之間的交換。當(dāng)系統(tǒng)中的內(nèi)存使用情況緊張時(shí),中級(jí)調(diào)度把內(nèi)存中暫時(shí)不能運(yùn)行的進(jìn)程調(diào)到外存中等待,等內(nèi)存有足夠的空閑空間時(shí),再由中級(jí)調(diào)度決定將外存上的某些具備了運(yùn)行條件的就緒進(jìn)程調(diào)入內(nèi)存,把其狀態(tài)修改為就緒狀態(tài)并掛在就緒隊(duì)列中,等待進(jìn)程調(diào)度。l 低級(jí)調(diào)度:按照一定的算法從就緒隊(duì)列中選擇一個(gè)進(jìn)程,然后將處理器分配給它。執(zhí)行低級(jí)調(diào)度功能的程序稱作進(jìn)程調(diào)度程序,

24、由它實(shí)現(xiàn)處理器在進(jìn)程間的切換。(16) 搶占式調(diào)度的原則是什么請(qǐng)簡(jiǎn)要說(shuō)明。解:系統(tǒng)使用搶占方式進(jìn)行進(jìn)程調(diào)度時(shí)需要遵循一定的原則,主要有以下幾個(gè)方面:1. 時(shí)間片原則。各進(jìn)程按系統(tǒng)分配給的一個(gè)時(shí)間片運(yùn)行,當(dāng)該時(shí)間片用完或由于該進(jìn)程等待某事件發(fā)生而被阻塞時(shí),系統(tǒng)就停止該進(jìn)程的執(zhí)行而重新進(jìn)行調(diào)度。2. 優(yōu)先級(jí)原則。每個(gè)進(jìn)程均被賦于一個(gè)調(diào)度優(yōu)先級(jí),通常一些重要和緊急的進(jìn)程被賦于較高的優(yōu)先級(jí)。當(dāng)一個(gè)新的緊迫進(jìn)程到達(dá)時(shí),或者一個(gè)優(yōu)先級(jí)高的進(jìn)程從阻塞狀態(tài)變成就緒狀態(tài)時(shí),如果該進(jìn)程的優(yōu)先級(jí)比當(dāng)前進(jìn)程的優(yōu)先級(jí)高,OS就停止當(dāng)前進(jìn)程的執(zhí)行,將處理器分配給該優(yōu)先級(jí)高的進(jìn)程,使之執(zhí)行。3. 短進(jìn)程優(yōu)先原則。當(dāng)新到達(dá)的

25、作業(yè)對(duì)應(yīng)的進(jìn)程比正在執(zhí)行的作業(yè)對(duì)應(yīng)進(jìn)程的運(yùn)行時(shí)間明顯短時(shí),系統(tǒng)剝奪當(dāng)前進(jìn)程的執(zhí)行,而將處理器分配給新的短進(jìn)程,使之優(yōu)先執(zhí)行。(17) 在批處理系統(tǒng)、分時(shí)系統(tǒng)、實(shí)時(shí)系統(tǒng)中,應(yīng)分別采用哪種作業(yè)(進(jìn)程)調(diào)度算法 解:批處理系統(tǒng)采用先來(lái)先服務(wù)調(diào)度算法;分時(shí)系統(tǒng)采用時(shí)間片輪轉(zhuǎn)法;實(shí)時(shí)系統(tǒng)采用高響應(yīng)比優(yōu)先調(diào)度算法。(18) 說(shuō)明時(shí)間片輪轉(zhuǎn)調(diào)度算法的基本思路。解:在采用時(shí)間片輪轉(zhuǎn)調(diào)度算法的系統(tǒng)中,將系統(tǒng)中所有的就緒進(jìn)程按照FCFS原則,排成一個(gè)隊(duì)列。每次調(diào)度時(shí)將CPU分派給隊(duì)首進(jìn)程,讓其執(zhí)行一個(gè)時(shí)間片。時(shí)間片的長(zhǎng)度從幾個(gè)ms到幾百ms。在一個(gè)時(shí)間片結(jié)束時(shí),發(fā)生時(shí)鐘中斷。調(diào)度程序暫停當(dāng)前進(jìn)程的執(zhí)行,將其送到就

26、緒隊(duì)列的末尾,并通過(guò)CPU現(xiàn)場(chǎng)切換執(zhí)行當(dāng)前的隊(duì)首進(jìn)程,當(dāng)然,進(jìn)程可以未使用完一個(gè)時(shí)間片,就讓出CPU(如阻塞)。這樣可以保證就緒隊(duì)列中的所有進(jìn)程都有機(jī)會(huì)獲得處理器而運(yùn)行的機(jī)會(huì),可以提高進(jìn)程并發(fā)性和響應(yīng)時(shí)間特性,從而提高資源利用率。(19) 試說(shuō)明多級(jí)反饋隊(duì)列調(diào)度算法思想。解:多級(jí)反饋隊(duì)列調(diào)度算法則不必事先知道各進(jìn)程的執(zhí)行時(shí)間,又可以滿足各種類型進(jìn)程的調(diào)度需要,它是一種目前公認(rèn)較好的進(jìn)程調(diào)度算法。它的算法思想如下(設(shè)采用搶占式調(diào)度):1. 需要設(shè)置多個(gè)就緒隊(duì)列,并且為它們分別賦予不同的優(yōu)先級(jí)。每隊(duì)列分配不同的時(shí)間片,規(guī)定優(yōu)先級(jí)越低則時(shí)間片越長(zhǎng)。2. 新進(jìn)程就緒后,先插入隊(duì)列1的末尾,按FCFS算

27、法調(diào)度。若一個(gè)時(shí)間片未能執(zhí)行完,則降低插入到隊(duì)列2的末尾;依此類推,降低到最后的隊(duì)列,則按“時(shí)間片輪轉(zhuǎn)”算法調(diào)度直到完成。3. 進(jìn)程由于等待事件而放棄CPU后, 進(jìn)入等待隊(duì)列, 一旦等待的事件發(fā)生, 則回到原來(lái)的就緒隊(duì)列。4. 只有當(dāng)較高優(yōu)先級(jí)的隊(duì)列為空時(shí),才調(diào)度較低優(yōu)先級(jí)隊(duì)列中的進(jìn)程執(zhí)行。如果進(jìn)程執(zhí)行時(shí)有新進(jìn)程進(jìn)入較高優(yōu)先級(jí)的隊(duì)列,則需要重新調(diào)度,搶先執(zhí)行新進(jìn)程,并把被搶先的進(jìn)程插入原隊(duì)列的末尾。(20) 什么是靜態(tài)和動(dòng)態(tài)優(yōu)先級(jí)如何確定靜態(tài)優(yōu)先級(jí)解:靜態(tài)優(yōu)先級(jí)是在系統(tǒng)創(chuàng)建時(shí)確定的,一經(jīng)確定之后在整個(gè)進(jìn)程運(yùn)行期間不再改變。動(dòng)態(tài)優(yōu)先級(jí)是在進(jìn)程運(yùn)行前先確定一個(gè)優(yōu)先級(jí),進(jìn)程運(yùn)行過(guò)程中根據(jù)進(jìn)程等待時(shí)間

28、的長(zhǎng)短、執(zhí)行時(shí)間的多少、輸入輸出信息量的大小等,通過(guò)計(jì)算得到新的優(yōu)先級(jí)。(21) 在一個(gè)單道批處理系統(tǒng)中,一組作業(yè)的到達(dá)時(shí)間和運(yùn)行時(shí)間如下表所示。試計(jì)算使用先來(lái)先服務(wù)、短作業(yè)優(yōu)先、高響應(yīng)比優(yōu)先算法時(shí)的平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間。作業(yè)到達(dá)時(shí)間運(yùn)行時(shí)間1234解:用T表示周轉(zhuǎn)時(shí)間,用W表示帶權(quán)周轉(zhuǎn)時(shí)間FCFS的作業(yè)調(diào)度情況如下:作業(yè)提交時(shí)間運(yùn)行時(shí)間開始時(shí)間結(jié)束時(shí)間周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間1234FCFS的T =(+)/ 4 = W =(+)/ 4 =SJF的作業(yè)調(diào)度情況如下:作業(yè)提交時(shí)間運(yùn)行時(shí)間開始時(shí)間結(jié)束時(shí)間周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間1234SJF的T=(+)/ 4 = W =(+)/ 4 = 高響應(yīng)

29、比優(yōu)先的作業(yè)調(diào)度情況如下:作業(yè)提交時(shí)間運(yùn)行時(shí)間開始時(shí)間結(jié)束時(shí)間周轉(zhuǎn)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間1234高響應(yīng)比算法的T=(+)/ 4 = W =(+)/ 4 = 第4章 進(jìn)程同步與死鎖(1) 什么是進(jìn)程同步什么是進(jìn)程互斥解:同步是進(jìn)程間的直接制約關(guān)系,這種制約主要源于進(jìn)程間的合作。進(jìn)程同步的主要任務(wù)就是使并發(fā)執(zhí)行的各進(jìn)程之間能有效地共享資源和相互合作,從而在執(zhí)行時(shí)間、次序上相互制約,按照一定的協(xié)議協(xié)調(diào)執(zhí)行,使程序的執(zhí)行具有可再現(xiàn)性。進(jìn)程互斥是進(jìn)程間的間接制約關(guān)系,當(dāng)多個(gè)進(jìn)程需要使用相同的資源,而此類資源在任一時(shí)刻卻只能供一個(gè)進(jìn)程使用,獲得資源的進(jìn)程可以繼續(xù)執(zhí)行,沒(méi)有獲得資源的進(jìn)程必須等待,進(jìn)程的運(yùn)行具有時(shí)

30、間次序的特征,誰(shuí)先從系統(tǒng)獲得共享資源,誰(shuí)就先運(yùn)行,這種對(duì)共享資源的排它性使用所造成的進(jìn)程間的間接制約關(guān)系稱為進(jìn)程互斥?;コ馐且环N特殊的同步方式。(2) 進(jìn)程執(zhí)行時(shí)為什么要設(shè)置進(jìn)入?yún)^(qū)和退出區(qū)解:為了實(shí)現(xiàn)多個(gè)進(jìn)程對(duì)臨界資源的互斥訪問(wèn),必須在臨界區(qū)前面增加一段用于檢查欲訪問(wèn)的臨界資源是否正被訪問(wèn)的代碼,如果未被訪問(wèn),該進(jìn)程便可進(jìn)入臨界區(qū)對(duì)資源進(jìn)行訪問(wèn),并設(shè)置正被訪問(wèn)標(biāo)志,如果正被訪問(wèn),則本進(jìn)程不能進(jìn)入臨界區(qū),實(shí)現(xiàn)這一功能的代碼成為“進(jìn)入?yún)^(qū)”代碼;在退出臨界區(qū)后,必須執(zhí)行“退出區(qū)”代碼,用于恢復(fù)未被訪問(wèn)標(biāo)志。(3) 同步機(jī)構(gòu)需要遵循的基本準(zhǔn)則是什么請(qǐng)簡(jiǎn)要說(shuō)明。解:同步機(jī)制都應(yīng)遵循下面的4條準(zhǔn)則:1.

31、空閑讓進(jìn)。當(dāng)無(wú)進(jìn)程處于臨界區(qū)時(shí),允許進(jìn)程進(jìn)入臨界區(qū),并且只能在臨界區(qū)運(yùn)行有限的時(shí)間。2. 忙則等待。當(dāng)有一個(gè)進(jìn)程在臨界區(qū)時(shí),其它欲進(jìn)入臨界區(qū)的進(jìn)程必須等待,以保證進(jìn)程互斥地訪問(wèn)臨界資源。3. 有限等待。對(duì)要求訪問(wèn)臨界資源的進(jìn)程,應(yīng)保證進(jìn)程能在有限時(shí)間內(nèi)進(jìn)入臨界區(qū),以免陷入“饑餓”狀態(tài)。4. 讓權(quán)等待。當(dāng)進(jìn)程不能進(jìn)入臨界區(qū)時(shí),應(yīng)立即放棄占用CPU,以使其它進(jìn)程有機(jī)會(huì)得到CPU的使用權(quán),以免陷入“饑餓”狀態(tài)。(4) 整型信號(hào)量是否能完全遵循同步機(jī)構(gòu)的四條基本準(zhǔn)則為什么解:不能。在整型信號(hào)量機(jī)制中,未遵循“讓權(quán)等待”的準(zhǔn)則。(5) 在生產(chǎn)者-消費(fèi)者問(wèn)題中,若缺少了V(full)或V(empty),對(duì)

32、進(jìn)程的執(zhí)行有什么影響 解:如果缺少了V(full),那么表明從第一個(gè)生產(chǎn)者進(jìn)程開始就沒(méi)有對(duì)信號(hào)量full值改變,即使緩沖池存放的產(chǎn)品已滿了,但full的值還是0,這樣消費(fèi)者進(jìn)程在執(zhí)行P(full)時(shí)會(huì)認(rèn)為緩沖池是空的而取不到產(chǎn)品,那么消費(fèi)者進(jìn)程則會(huì)一直處于等待狀態(tài)。如果缺少了V(empty),例如在生產(chǎn)者進(jìn)程向n個(gè)緩沖區(qū)放滿產(chǎn)品后消費(fèi)者進(jìn)程才開始從中取產(chǎn)品,這時(shí)empty=0,full=n,那么每當(dāng)消費(fèi)者進(jìn)程取走一個(gè)產(chǎn)品時(shí)empty并沒(méi)有被改變,直到緩沖池中的產(chǎn)品都取走了,empty的值也一直是0,即使目前緩沖池有n個(gè)空緩沖區(qū),生產(chǎn)者進(jìn)程要想再往緩沖池中投放產(chǎn)品會(huì)因申請(qǐng)不到空緩沖區(qū)而被阻塞。(

33、6) 在生產(chǎn)者-消費(fèi)者問(wèn)題中,若將P(full)和P(empty)交換位置,或?qū)(full)或V(empty)交換位置,對(duì)進(jìn)程執(zhí)行有什么影響 解:對(duì)full和empty信號(hào)量的P、V操作應(yīng)分別出現(xiàn)在合作進(jìn)程中,這樣做的目的是能正確表征各進(jìn)程對(duì)臨界資源的使用情況,保證正確的進(jìn)程通信聯(lián)絡(luò)。 (7) 利用信號(hào)量寫出不會(huì)出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問(wèn)題的算法。解:對(duì)哲學(xué)家按順序從0到4編號(hào),哲學(xué)家i左邊的筷子的編號(hào)為i,哲學(xué)家右邊的筷子的編號(hào)為(i+1)%5。semaphore chopstick5=1; .,n-1 of item;in out: integer := 0, 0;beginparbegin

34、producer: duce an item in nextp;.Swait(empty, mutex); buffer(in) := nextp;in := (in+1) mod n;Ssignal(mutex, full);until false;endconsumer: beginrepeatSwait(full, mutex);nextc := buffer(out);out := (out+1) mod n;Ssignal(mutex, empty);consume the item in nextc;until false;endparendend 利

35、用管程機(jī)制解決生產(chǎn)者-消費(fèi)者問(wèn)題,首先需要建立一個(gè)管程ProducerConsumer,其中包含兩個(gè)過(guò)程insert(item)和consumer(item)。生產(chǎn)者-消費(fèi)者同步問(wèn)題可以用偽代碼描述如下:monitor ProducerConsumercondition full,empty;int count;void insert(int item)if (count=N) wait(full);insert(item);count=count+1;if (count=1) signal(empty);int remover()if (count=0) wait(empty);remove

36、=remove_item;count=count-1;if (count=N-1) signal(full);count=0;end monitorvoid producer() while (true) item=produce_item; (item); void consumer() while (true) item=; consume(item) (9) 進(jìn)程的高級(jí)通信機(jī)制有哪些請(qǐng)簡(jiǎn)要說(shuō)明。解:進(jìn)程的高級(jí)通信機(jī)制分為三大類:共享存儲(chǔ)系統(tǒng)、消息傳遞系統(tǒng)和管道通信系統(tǒng)。1. 共享存儲(chǔ)器系統(tǒng):在共享存儲(chǔ)器系統(tǒng)中,相互通信的進(jìn)程通過(guò)共享某些數(shù)據(jù)結(jié)構(gòu)或共享存儲(chǔ)區(qū)實(shí)現(xiàn)進(jìn)程之間的通信。該系統(tǒng)又可進(jìn)

37、一步細(xì)分為兩種方式:基于共享數(shù)據(jù)結(jié)構(gòu)的通信方式和基于共享存儲(chǔ)區(qū)的通信方式。2. 消息傳遞系統(tǒng):消息傳遞機(jī)制可以實(shí)現(xiàn)不同主機(jī)間多個(gè)CPU上進(jìn)程的通信。這種方式需要使用兩條原語(yǔ)send和receive來(lái)發(fā)送和接收格式化的消息(message)。 3. 管道通信系統(tǒng):管道通信是一種以文件系統(tǒng)為基礎(chǔ)實(shí)現(xiàn)的適用于在進(jìn)程之間實(shí)現(xiàn)大量數(shù)據(jù)傳送的通信方式。(10) 什么是死鎖產(chǎn)生死鎖的原因和必要條件是什么解:所謂死鎖是指在一個(gè)進(jìn)程集合中的所有進(jìn)程都在等待只能由該集合中的其它一個(gè)進(jìn)程才能引發(fā)的事件而無(wú)限期地僵持下去的局面。 產(chǎn)生死鎖的原因可以歸結(jié)為兩點(diǎn):1)競(jìng)爭(zhēng)資源, 2)各進(jìn)程之間的推進(jìn)順序不當(dāng)。 產(chǎn)生死鎖的

38、必要條件有四個(gè):1)互斥條件, 2)不剝奪條件, 3)請(qǐng)求和保持條件, 4)環(huán)路條件。(11) 死鎖的預(yù)防策略有哪些請(qǐng)簡(jiǎn)要說(shuō)明。解:死鎖的預(yù)防策略有三,說(shuō)明如下:1. 摒棄請(qǐng)求和保持條件:為摒棄請(qǐng)求和保持條件,系統(tǒng)中需要使用靜態(tài)資源分配法,該方法規(guī)定每一個(gè)進(jìn)程在開始運(yùn)行前都必須一次性地申請(qǐng)其在整個(gè)運(yùn)行過(guò)程中所需的全部資源。此時(shí),若系統(tǒng)有足夠的資源,就把進(jìn)程需要的全部資源一次性地分配給它;若不能全部滿足進(jìn)程的資源請(qǐng)求,則一個(gè)資源也不分給它,即使有部分資源處于空閑狀態(tài)也不分配給該進(jìn)程。這樣,當(dāng)一個(gè)進(jìn)程申請(qǐng)某個(gè)資源時(shí),它不能占有其它任何資源,在進(jìn)程運(yùn)行過(guò)程中也不會(huì)再提出資源請(qǐng)求。這種方法破壞了請(qǐng)求和

39、保持條件,從而避免死鎖的發(fā)生。2. 摒棄不剝奪條件:要摒棄“不剝奪條件”,可以使用如下策略:進(jìn)程在需要資源時(shí)才提出請(qǐng)求,并且進(jìn)程是逐個(gè)地申請(qǐng)所需資源,如果一個(gè)進(jìn)程已經(jīng)擁有了部分資源,然后又申請(qǐng)另一個(gè)資源而不可得時(shí),其現(xiàn)有資源必須全部釋放。在這種方法中,進(jìn)程只能在獲得其原有資源和所申請(qǐng)的新資源時(shí)才能繼續(xù)執(zhí)行。3. 摒棄環(huán)路等待條件:為確保環(huán)路等待條件不成立,可以在系統(tǒng)中實(shí)行資源有序分配策略,即系統(tǒng)中的所有資源按類型被賦予一個(gè)唯一的編號(hào),每個(gè)進(jìn)程只能按編號(hào)的升序申請(qǐng)資源。(12) 某系統(tǒng)中有A、B、C、D四類資源,且其總數(shù)量都是8個(gè)。某時(shí)刻系統(tǒng)中有5個(gè)進(jìn)程,判斷下列資源狀態(tài)是否安全若進(jìn)程P2申請(qǐng)資

40、源(1,1,1,1),能否為其分配進(jìn)程N(yùn)eedA B C DAllocationA B C DP00 0 4 30 0 2 2P12 6 3 01 1 0 0P23 2 1 52 1 0 3P34 0 2 02 0 0 0P40 5 5 40 2 2 2解:現(xiàn)在對(duì)該時(shí)刻的狀態(tài)進(jìn)行安全分析: 由于Available向量為(3,4,4,1),所以Work向量初始化為(3,4,4,1)此時(shí)的Work小于任意的Needi向量,所以系統(tǒng)處于不安全狀態(tài) 由于Request2(1,1,1,1)<Available(3,4,4,1)且Request2(1,1,1,1)<Need2(1,1,1,2)

41、 所以先試著把P2所申請(qǐng)的資源分配給它,Available變?yōu)椋?,3,3,0)得到系統(tǒng)狀態(tài)如下表所示:AllocationNeedAvailableABCDABCDABCDP0002200432330P111002630P232142104P320004020P402220554然后進(jìn)行安全性檢測(cè):此時(shí)Available向量為(2,3,3,0),所以Work向量初始化為(2,3,3,0),此時(shí)的Work小于任意的Needi向量,所以系統(tǒng)處于不安全狀態(tài),所以不可以為P2分配資源(13) 三個(gè)進(jìn)程P1、P2、P3都需要5個(gè)同類資源才能正常執(zhí)行直到終止,且這些進(jìn)程只有在需要設(shè)備時(shí)才申請(qǐng),則該系統(tǒng)中

42、不會(huì)發(fā)生死鎖的最小資源數(shù)量是多少請(qǐng)說(shuō)明理由。解:系統(tǒng)中不會(huì)發(fā)生死鎖的最小資源數(shù)量是13,這樣可以保證當(dāng)每一個(gè)進(jìn)程都占有4個(gè)資源的時(shí)候,有一個(gè)進(jìn)程可以獲得最后一個(gè)資源后被運(yùn)行,運(yùn)行完畢后釋放資源,于是其余進(jìn)程也能順利運(yùn)行完,所以不會(huì)死鎖。(14) 在解決死鎖問(wèn)題的幾個(gè)方法中,哪種方法最易于實(shí)現(xiàn),哪種方法使資源的利用率最高 解:預(yù)防死鎖這個(gè)方法實(shí)現(xiàn)簡(jiǎn)單,效果突出;避免死鎖這種方法系統(tǒng)吞吐量和資源利用率較高。 (15) 考慮由n個(gè)進(jìn)程共享的具有m個(gè)同類資源的系統(tǒng),如果對(duì)于i=1,2,3,n,有Needi>0并且所有進(jìn)程的最大需求量之和小于m+n,試證明系統(tǒng)不會(huì)產(chǎn)生死鎖。解:本題中只有一種資源,

43、不妨設(shè)Maxi為第i個(gè)進(jìn)程的資源總共需要量,Needi為第i個(gè)進(jìn)程還需要的資源數(shù)量,Allocationi表示第i個(gè)進(jìn)程已經(jīng)分配到的資源數(shù)量,Available為系統(tǒng)剩余的資源數(shù),其中i=1,2,3,n。假設(shè)此系統(tǒng)可以發(fā)生死鎖。系統(tǒng)剩余的資源數(shù)量為Available(Available>=0),由假設(shè),因?yàn)橄到y(tǒng)處于死鎖狀態(tài),所以Available個(gè)資源無(wú)法分配出去,所以每個(gè)進(jìn)程的Needi都大于Available,即 Needi>=Available+1所以 Needi>=n*(Available+1)=n*Available+n, 因?yàn)槭O碌馁Y源數(shù)是Available,所以

44、已經(jīng)分配出去的資源數(shù)為m Available;即 Allocationi=m Available 由式和式可以得到:Needi + Allocationi>=n*Available+n+ m Available=(n-1)*Available+m+n 又因?yàn)閚>=1,所以(n-1)>=0,又因?yàn)锳vailable>=0,所以(n-1)*Available>=0 由式和式可以得到Needi + Allocationi>=0+m+n=m+n 根據(jù)題意知: Maxi<m+n 又因?yàn)椋篗axi=Needi+Allocationi,所以Maxi= Needi +

45、 Allocationi 由式和式得:Needi + Allocationi<m+n 由假設(shè)推出的式和由題意推出的式相矛盾,所以假設(shè)是錯(cuò)誤的,即系統(tǒng)不會(huì)產(chǎn)生死鎖。 (16) 某車站售票廳,在任何時(shí)刻最多可以容納 20 名購(gòu)票者進(jìn)入,當(dāng)售票廳中少于20名購(gòu)票者時(shí),廳外的購(gòu)票者可立即進(jìn)入,否則需要在外面等待。若把一個(gè)購(gòu)票者看作一個(gè)進(jìn)程,請(qǐng)回答以下問(wèn)題: 用信號(hào)量管理這些并發(fā)進(jìn)程時(shí),應(yīng)該怎樣定義信號(hào)量,寫出信號(hào)量的初值以及信號(hào)量的各取值的含義。 根據(jù)所定義的信號(hào)量,寫出相應(yīng)的程序來(lái)保證進(jìn)程能夠正確地并發(fā)執(zhí)行。 如果購(gòu)票者最多為n個(gè)人,試寫出信號(hào)量取值的可能變化范圍(最大值和最小值)。解:定義信

46、號(hào)量S,初值為20,當(dāng)s > 0時(shí),它表示可以繼續(xù)進(jìn)入購(gòu)票廳的人數(shù),當(dāng)s = 0時(shí)表示廳內(nèi)已有20人正在購(gòu)票,當(dāng)s < 0時(shí)| s |表示正等待進(jìn)入的人數(shù)。semaphore S=20;beginparbeginprocedure:beginrepeatwait(s); Enter and buy ticket; signal(s); until false;end parend end 最大值為20,最小值為20-n(17) 在測(cè)量控制系統(tǒng)中的數(shù)據(jù)采集任務(wù)時(shí),把所采集的數(shù)據(jù)送往一單緩沖區(qū);計(jì)算任務(wù)從該單緩沖區(qū)中取出數(shù)據(jù)進(jìn)行計(jì)算。試寫出利用信號(hào)量機(jī)制實(shí)現(xiàn)兩個(gè)任務(wù)共享單緩沖區(qū)的同步算

47、法。解:semaphore mutex = 1;semaphore full = 0;semaphore empty = 1;begin parbegincollect:begin repeat collect data in nextp; wait(empty); wait(mutex);buffer:=nextp;signal(mutex);signal(full);until false; endcompute:begin repeat wait(full); wait(mutex);nextc:=buffer;signal(mutex);signal(empty); compute d

48、ata in nextc;until false; end parend end(18) 桌上有一空盤,允許存放一只水果。爸爸可以向盤中放蘋果,也可以向盤中放桔子,兒子專等著吃盤中的桔子,女兒專等著吃盤中的蘋果。規(guī)定當(dāng)盤空時(shí)一次只能放一只水果供吃者用,請(qǐng)用信號(hào)量實(shí)現(xiàn)爸爸、兒子和女兒3個(gè)并發(fā)進(jìn)程的同步。解:本題中應(yīng)設(shè)置三個(gè)信號(hào)量S、So、Sa,信號(hào)量S表示盤中是否為空,其初值為1;So表示盤中是否有桔子,其初值為0;Sa表示盤中是否有蘋果,其初值為0。同步描述如下:爸爸: P(S); 兒子:P(So); 女兒:P(Sa); 將水果放入盤中 從盤子中取出桔子 從盤子中取出蘋果 if (放入的是桔子

49、) v(So); V(S); V(S); else v(Sa); 吃桔子 吃蘋果;(19) 設(shè)某系統(tǒng)中有3個(gè)進(jìn)程Get、Process和Put,共用兩個(gè)緩沖區(qū)buffer1和buffer2。假設(shè)buffer1中最多可以放11個(gè)信息,現(xiàn)在已經(jīng)放入了兩個(gè)信息;buffer2最多可以放5個(gè)信息。Get進(jìn)程負(fù)責(zé)不斷地將輸入信息送入buffer1中,Process進(jìn)程負(fù)責(zé)從buffer1中取出信息進(jìn)行處理,并將處理結(jié)果送到buffer2中,Put進(jìn)程負(fù)責(zé)從buffer2中讀取結(jié)果并輸出。試用信號(hào)量機(jī)制實(shí)現(xiàn)它們的同步與互斥。解:semaphore empty1=9; 存儲(chǔ)空間的分配和回收。 2. 地址轉(zhuǎn)換

50、,實(shí)現(xiàn)邏輯地址到物理地址的映射。 3. 主存空間的共享。 4. 主存空間的保護(hù)。 5. 主存儲(chǔ)空間的擴(kuò)充。 6. 對(duì)換,對(duì)換的主要任務(wù)是實(shí)現(xiàn)在內(nèi)存和外存之間的全部或部分進(jìn)程的對(duì)換,即將內(nèi)存中處于阻塞狀態(tài)的進(jìn)程調(diào)換到外存上,而將外存上處于就緒狀態(tài)的進(jìn)程換入內(nèi)存。對(duì)換的目的主要是為了提高內(nèi)存利用率,提高系統(tǒng)的吞吐量。(2) 為什么要配置層次式存儲(chǔ)器 解:為了解決CPU和存儲(chǔ)器之間速度上的不匹配,在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,存儲(chǔ)系統(tǒng)通常采用層次結(jié)構(gòu),存儲(chǔ)層次可粗略分為三級(jí):最高層為CPU寄存器,中間為主存,最底層是輔存。根據(jù)具體功能還可以細(xì)分為寄存器、高速緩存、主存儲(chǔ)器、磁盤緩存、輔存儲(chǔ)設(shè)備(固定磁盤、可移

51、動(dòng)存儲(chǔ)介質(zhì))5層。一個(gè)文件的數(shù)據(jù)可能出現(xiàn)在存儲(chǔ)系統(tǒng)的不同層次中,例如,一個(gè)文件數(shù)據(jù)通常被存儲(chǔ)在輔存中(如硬盤),當(dāng)其需要運(yùn)行或被訪問(wèn)時(shí),就必須調(diào)入主存,也可以暫時(shí)存放在主存的磁盤高速緩存中。大容量的輔存常常使用磁盤,磁盤數(shù)據(jù)經(jīng)常備份在可移動(dòng)磁盤或者光盤上,以防止硬盤故障時(shí)丟失數(shù)據(jù)。(3) 什么是邏輯地址什么是物理地址為什么要進(jìn)行二者的轉(zhuǎn)換工作 解:邏輯地址是應(yīng)用程序中使用的訪存地址,有時(shí)也稱為相對(duì)地址,由邏輯地址構(gòu)成的地址空間稱為邏輯空間。每個(gè)應(yīng)用程序的邏輯地址空間都是從零號(hào)地址碼開始的。 物理地址是內(nèi)存儲(chǔ)器的實(shí)際存儲(chǔ)單元地址,有時(shí)也稱為絕對(duì)地址,由物理地址構(gòu)成的地址空間稱為物理空間。物理地址

52、空間也是從零號(hào)地址碼開始的。 在多道程序環(huán)境下,程序邏輯地址空間和內(nèi)存物理地址空間是不一致的。用戶程序的邏輯地址可以是一維線性或多維線性,而內(nèi)存中的每一個(gè)存儲(chǔ)單元都有相應(yīng)的內(nèi)存地址相對(duì)應(yīng),屬于一維線性地址。在將用戶程序部分或全部地裝入內(nèi)存空間時(shí),要實(shí)現(xiàn)邏輯地址到物理地址的映射。(4) 地址重定位,靜態(tài)地址重定位和動(dòng)態(tài)地址重定位有什么區(qū)別解:地址重定位指從邏輯地址到物理地址的映射過(guò)程,也稱為地址映射。 靜態(tài)地址重定位是指在用戶程序執(zhí)行之前完成地址映射工作,即把程序的邏輯地址都轉(zhuǎn)換為實(shí)際的內(nèi)存物理地址。靜態(tài)地址重定位的地址變換只是在裝入時(shí)一次完成,而在程序運(yùn)行期間不再變化。 動(dòng)態(tài)地址重定位是指在程序執(zhí)行過(guò)程中,CPU在訪問(wèn)內(nèi)存之前,將要訪問(wèn)的程序或數(shù)據(jù)地址轉(zhuǎn)換為內(nèi)存地址。(5) 什么是內(nèi)部碎片和外部碎片。解:在一個(gè)分區(qū)內(nèi)部出現(xiàn)的碎片(即被浪費(fèi)的空間)稱作內(nèi)部碎片,如固定分區(qū)法就會(huì)產(chǎn)生內(nèi)部碎片; 在所有分區(qū)之外新增的碎片稱作外部碎片,如在動(dòng)態(tài)分區(qū)法實(shí)施過(guò)程中出現(xiàn)的越來(lái)越多的小空閑塊就是外部碎片,由于它們太小,無(wú)法裝入一個(gè)進(jìn)程,因而被浪費(fèi)掉。(6) 什么是分頁(yè)和分段存儲(chǔ)技術(shù),兩者有何區(qū)別解:在分頁(yè)系統(tǒng)中,系統(tǒng)會(huì)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論