操作系統(tǒng)概念第七版習題答案_第1頁
操作系統(tǒng)概念第七版習題答案_第2頁
操作系統(tǒng)概念第七版習題答案_第3頁
操作系統(tǒng)概念第七版習題答案_第4頁
操作系統(tǒng)概念第七版習題答案_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

操作系統(tǒng)概念第七版習題答案完整版

1.1在多道程序和分時環(huán)境中,多個用戶同時共

享一個系統(tǒng),這種情況導致多種安全問題。a,列

出此類的問題b.在一個分時機器中,能否確保

像在專用機器上

一樣的安全度?并解釋之。

Answer:a.竊取或者復制某用戶的程序或數(shù)據(jù);沒有合理的預算來使用資

源(CPU內(nèi)存,磁盤空間,外圍設備)b.應該不行,因為人類設計的任何保

護機制都會不可避免的被另外的人所破譯,而且很自信的認為程序本身的

實現(xiàn)

是正確的是一件困難的事。

1.2資源的利用問題在各種各樣的操作系統(tǒng)中出現(xiàn)。試例舉在下列的

環(huán)境中哪種資源必須被嚴格的管理。(a)大型電腦或迷你電腦系統(tǒng)

(b)與服務器相聯(lián)的工作站(c)手持電腦

Answer:(a)大型電腦或迷你電腦系統(tǒng):內(nèi)存和CPU資源,外存,網(wǎng)絡帶寬

(b)與服務器相聯(lián)的工作站:內(nèi)存和CPU資源(c)手持電腦:功率消耗,內(nèi)

存資源

1.3在什么情況下一個用戶使用一個分時系統(tǒng)比使用一臺個人計算機或單

用戶工作站更好?

Answer:當另外使用分時系統(tǒng)的用戶較少時,任務十分巨大,硬件速

度很快,分時系統(tǒng)有意義。充分利用該系統(tǒng)可以對用戶的問題產(chǎn)生影響。比

起個人電腦,問題可以被更快的解決。還有一種可能發(fā)生的情況是在同一時

間有許多另外的用戶在同一時間使用資源。當作業(yè)足夠小,且能在個人計算

機上合理的運行時,以及當個人計算機的性能能夠充分的運行程序來達到用

戶的滿意時,個人計算機是最好的,。

1.4在下面舉出的三個功能中,哪個功能在下列兩種環(huán)境下,(a)手持裝

置(b)實時系統(tǒng)需要操作系統(tǒng)的支持?(a)批處理程序(b)虛擬存儲器(c)分

Answer:對于實時系統(tǒng)來說,操作系統(tǒng)需要以一種公平的方式支持虛

擬存儲器和分時系統(tǒng)。對于手持系統(tǒng),操作系統(tǒng)需要提供虛擬存儲器,但是

操作系統(tǒng)概念第七版習題答案完整版

不需要提供分時系統(tǒng)。批處理程序在兩種環(huán)境中都是非必需的。

1.5描述對稱多處理(SMP)和非對稱多處理之間的區(qū)別。多處理系統(tǒng)的三個

優(yōu)點和一個缺點?

Answer:SMP意味著所以處理器都對等,而且I/O可以在任何處理器上運行。

非對稱多處理有一個主處理器控制系統(tǒng),與剩下的處理器是隨從關系。主處

理器為從處理器安排工作,而且I/O也只在主處理器上運行。多處理器系

統(tǒng)能比單處理器系統(tǒng)節(jié)省資金,這是因為他們能共享外設,大容量存儲和電

源供給。它們可以更快速的運行程序和增加可靠性。多處理器系統(tǒng)能比單處

理器系統(tǒng)在軟、硬件上也更第雜(增加計算量、規(guī)模經(jīng)濟、增加可靠性)

1.6集群系統(tǒng)與多道程序系統(tǒng)的區(qū)別是什么?兩臺機器屬于一個集群來協(xié)

作提供一個高可靠性的服務器的要求是什么?

Answer:集群系統(tǒng)是由多個計算機耦合成單一系統(tǒng)并分布于整個集群來完成

計算任務。另一方面,多道程序系統(tǒng)可以被看做是一個有多個CPU組成的單

一的物理實體。集群系統(tǒng)的耦合度比多道程序系統(tǒng)的要低。集群系統(tǒng)通過消

息進行通信,而多道程序系統(tǒng)是通過共享的存儲空間。為了兩臺處理器提供

較高的可靠性服務,兩臺機器上的狀態(tài)必須被復制,并且要持續(xù)的更新。當

一臺處理器出現(xiàn)故障時,另一臺處理器能夠接管故障處理的功能。

1.7試區(qū)分分布式系統(tǒng)(distributesystem)的客戶機-服務器

(client-server)模型與對等系統(tǒng)(peer-to-peer)模型

Answer:客戶機-服務器(client-server)模型可以由客戶機和服務器的角

色被區(qū)分。在這種模型下,客戶機向服務器發(fā)出請求,然后服務器滿足這種

請求。對等系統(tǒng)(peer-t。-peer)模型沒有這種嚴格的區(qū)分角色,。實際上,

在系統(tǒng)中的所有結點被看做是對等的,而且這些結點既可以是客戶機也可以

是服務器,或者兩這都是。也許一個結點從另一個對等結點上請求一個服務,

或者,這個結點滿足在系統(tǒng)中的另一個結點的請求。比如,一個系統(tǒng)中的結

點共享烹飪方法。在客戶機-服務器(client-server)模型下,所有方法

都被存儲在服務器上。如果一個客戶機想要獲得烹飪方法,它必須向那臺服

務器發(fā)出請求。在對等系統(tǒng)(peer-to-peer)模型下,一個結點可以向另外

的結點請求指定的烹飪方法。存儲了這種烹飪方法的那個結點(或幾個結點)

可以把烹飪的方法提供給發(fā)出請求的結點。注意每個對等結點既可以扮演客

戶機(發(fā)出請求),也可以扮演服務器(提供請求)。

1.8如果一個由兩個結點組成的集群系統(tǒng)正在運行一個數(shù)據(jù)庫,試描述集群

操作系統(tǒng)概念第七版習題答案完整版

軟件

可以用哪兩種方法管理存取磁盤的數(shù)據(jù),并說明每種方法的優(yōu)點和缺點。

Answer:兩種方法:非對稱集群系統(tǒng)(asymmetricclustering)和并行集群系

統(tǒng)(parallelclustering).對于非對稱集群系統(tǒng),一個主機運行這個數(shù)據(jù)

庫,而其它主機只是監(jiān)測這個數(shù)據(jù)庫。如果服務器出現(xiàn)故障,進行監(jiān)測的主

機就會轉變成運行這個數(shù)據(jù)庫的主機。這是提供適當?shù)娜哂?。然而,它沒有

利用具有潛在處理能力的主機。對于并行集群系統(tǒng),數(shù)據(jù)庫可以在兩個并行

的主機上運行。在并行集群系統(tǒng)上實現(xiàn)的困難是提供一些分布式鎖機制給共

享磁盤上的文件。

1.9網(wǎng)絡計算機是怎樣不同與傳統(tǒng)的個人計算機的?試取出一些使用網(wǎng)絡

計算機的好處的方案。

Answer:網(wǎng)絡計算機是基于一臺核心的計算機作為其服務器。同時,它也具

有一個最小化的操作系統(tǒng)來管理這些資源。另一方面,個人計算機必須在不

依賴于核心計算機的基礎上,能夠獨立提供所有被請求的功能。在行政花費

太高以及共享導致更高效的使用資源的情景下是精確的,在這些環(huán)境中網(wǎng)絡

計算機是理想的。

1.10xx(interupt)的目的是什么?陷阱(trap)與xx的區(qū)別是

什么?陷阱可以被用戶程序(userprogram)有意地的產(chǎn)生嗎?如果可以,

那目的是什么?Answer:xx是一種在系統(tǒng)內(nèi)硬件產(chǎn)生的流量變化。xx操

作裝置是用來處理xx請求;然后返回控制xx的上下文和指令。陷阱是軟

件產(chǎn)生的xxoxx可以被用來標志I/O的完

成,從而排除設備投票站(devicepolling)的需要。陷阱可以被用來調(diào)用

操作系統(tǒng)的程序或者捕捉到算術錯誤。

1.11內(nèi)存存儲是被用于高速的I/O設備,其目的是為了避免增加

CPU的過度運行。

(a)設備的CPU接口是怎樣與轉換器(transfer)協(xié)作的?

(b)當內(nèi)存操作完全時,CPU是怎么知道的?

(c)當DMA控制器正在轉換數(shù)據(jù)時,CPU是被允許運行其它程序的。

這種進程與用戶程序的運行沖突嗎?如果沖突的話,試描述可能引起哪種沖

本?

Answer:CPU可以通過寫數(shù)據(jù)到可以被設備獨立存儲的寄存器中來啟動

操作系統(tǒng)概念第七版習題答案完整版

Answer:在單道程序系統(tǒng)(Single-processorsystems)中,當一個進程發(fā)布

更新給快速緩沖貯存區(qū)的數(shù)據(jù)時,內(nèi)存需要被更新。這些更新一種快速的或

緩慢的方式執(zhí)行。在多道程序系統(tǒng)(Mulitiprocessorsystems)中,不同的

進程或許在它的本地存儲上存儲相同的內(nèi)存位置。當更新發(fā)生時,其它存儲

的位置需耍使其無效或更新。在分布式系統(tǒng)(Distributesystems)中,快

速存儲區(qū)數(shù)據(jù)的協(xié)調(diào)不是問題,然而,當客戶機存儲文件數(shù)據(jù)時,協(xié)調(diào)問題

就會被提及。

1.15試描述一個機器裝置為了阻止一個程序避免修改與其它程序有聯(lián)系的

內(nèi)存而執(zhí)行內(nèi)存保護。

Answer:處理器可以追蹤哪個位置是與每個進程相聯(lián)系的以及限制進

入一個程序的范圍的外面位置。信息與一個程序的內(nèi)存范圍有關,它可以通

過使用庫,限制寄存器和對每個進入內(nèi)存的信息執(zhí)行檢查來維持其本身。

1.16哪種網(wǎng)絡結構最適合下列環(huán)境:(a)一個寢室樓層(b)一個大學校園⑹

一個州(d)一個國家。

Answer:

(a)一個寢室樓層:ALAN

(b)一個大學校園:ALAN,possiblyaWANforaverylargecampuses.

(c)一個州:AWAN

(d)一個國家:AWAN

1.17列出下列操作系統(tǒng)的基本特點:

a.批處理b.交互式c.分時d.實時e.網(wǎng)絡f.并行式g.分布式h.集

群式i.手持式Answer:a.批處理:具有相似需求的作業(yè)被成批的集合起

來,并把它們作為一個整體通過一個操作員或自動作業(yè)程序裝置運行通過計

算機。通過緩沖區(qū),線下操作,后臺和多道程序,運用嘗試保持CPU和I/O

一直繁忙,從而使得性能被提

高。批處理系統(tǒng)對于運行那些需要較少互動的大型作業(yè)十分適用。它們可以

被更

遲地提交或獲得。

b.交互式:這種系統(tǒng)由許多短期交易構成,并且下一個交易的結果是無法

操作系統(tǒng)概念第七版習題答案完整版

預知的。

從用戶提交到等待結果的響應時間應該是比較短的,通常為1秒左

C.分時:這種系統(tǒng)使用CPU調(diào)度和多道程序來經(jīng)濟的提供一個系統(tǒng)的人機

通信功能。CPU從一個用戶快速切換到另一個用戶。以每個程序從xx中讀

取它的下一個控制卡,并且把輸出的信息正確快速的輸出到顯示器上來替代

用soopledcardimages定義的作業(yè)。

d.實時:經(jīng)常用于專門的用途。這個系統(tǒng)從感應器上讀取數(shù)據(jù),而且必須

在嚴格的時間內(nèi)做出響應以保證正確的性能。

e.網(wǎng)絡:提供給操作系統(tǒng)一個特征,使得其進入網(wǎng)絡,比如;文件共

f.并行式:每一個處理器都運行同一個操作系統(tǒng)的拷貝。這些拷貝通過系統(tǒng)

總線進行通信。

g.分布式:這種系統(tǒng)在幾個物理處理器中分布式計算,處理器不共享內(nèi)存

或時鐘。每個處理器都有它各自的本地存儲器。它們通過各種通信線路在進

行通信,比如:一條高速的總線或一個本地的網(wǎng)絡。

h.集群式:集群系統(tǒng)是由多個計算機耦合成單一系統(tǒng)并分布于整個集群來

完成計算任務。

i.手持式:一種可以完成像記事本,email和網(wǎng)頁瀏覽等簡單任務的小型

計算機系統(tǒng)。手持系統(tǒng)與傳統(tǒng)的臺式機的區(qū)別是更小的內(nèi)存和屏幕以及更慢

的處理能力。

1.18手持計算機中固芍的折中屬性有哪些?

Answer:手提電腦比傳統(tǒng)的臺式PC機要小的多。這是由于手提電腦比臺式PC

機具有更小的內(nèi)存,更小的屏幕,更慢的處理能力的結果。因為這些限制,

大多數(shù)現(xiàn)在的手提只能完成基本的任務,比如:記事本,email和簡單的

文字處理。然而,由于它們較小的外形,而十分便于攜帶,而且當它們具備

無線上網(wǎng)時,就可以提供遠程的email通信和上網(wǎng)功能。

2.1操作系統(tǒng)提供的服務和功能可以分為兩個類別。簡單的描述一下這兩個

類別并討論他們的不同點。

Answcr:第一種操作系統(tǒng)提供的服務是用來保護在系統(tǒng)中同時運行的不

操作系統(tǒng)概念第七版習題答案完整版

同進程。進程只被允許獲得與它們地址空間有聯(lián)系的內(nèi)存位置。同樣,

進程不允許破壞和其他用戶有關的文件。一個進程同樣不允許在沒有操

作系統(tǒng)的干預下直諼進入設備。第二種服務由操作系統(tǒng)提供的服務是提

供一種新的功能,而這種功能并不直接被底層的硬件支持。虛擬存儲器

和文件系統(tǒng)就是由操作系統(tǒng)提供的這種新服務的實例。

2.2列出操作系統(tǒng)提供的五項服務。說明每項服務如何給用戶提供便利。

說明在哪些情況下用戶級程序不能夠提夠這些服務。

Answer:a.文件執(zhí)行.操作系統(tǒng)一個文件的目錄(或章節(jié))裝入到內(nèi)

存并運行。一個用戶程序不能被信任,妥善分配CPU時間。

b.I/O操作.磁盤,磁帶,串行線,和其他裝置必須在一個非常低的

水平下進行通信。用戶只需要指定裝置和操作執(zhí)行要求,然后

該系統(tǒng)的要求轉換成裝置或控制器的具體命令.用戶級程序不能被信任只

在他們應該獲得時獲得裝置和只使用那些未被使用的裝置。

c.文件系統(tǒng)操作,在文件創(chuàng)建、刪除、分配和命名時有許多細節(jié)是用

戶不能執(zhí)行的。磁盤空間塊被文件所使用并被跟蹤。刪除一個文件需要清

除這個文件的信息和釋放被分派給這個文件的空間。用戶程序不僅不能夠

保證保護方法的有效實施,也不能夠被信任只會分配空閑的空間和在刪除

文件是清空空間。

d.通信.信息在系統(tǒng)間交換要求信息轉換成信息包,送到網(wǎng)絡控制器中,

通過通信媒介進行傳播,并由目的地系統(tǒng)重新組裝。信息包調(diào)整和數(shù)據(jù)修

改是一定會發(fā)生的。此外,用戶程序也許不能夠協(xié)調(diào)網(wǎng)絡裝置的取得,或

者接收完全不同的其他進程的信息包。

e.錯誤檢測.錯誤檢測在硬件和軟件水平下都會發(fā)生。在硬件水平下,

所有數(shù)據(jù)轉移都必須仔細檢查以確保數(shù)據(jù)在運送中不會被破壞。在媒介中

的所有數(shù)據(jù)都必須被檢查以確保他們在寫入媒介時沒有被改變。在軟件水

平下,為了數(shù)據(jù),媒介不需不間斷的被檢查。例如,確保信息存儲中被分

配和還未被分配的空間塊的數(shù)量和裝置中所有塊的數(shù)量的一致。進程獨立

經(jīng)常有錯誤(例如,磁盤中數(shù)據(jù)的破壞),所以必須有一個統(tǒng)籌的程序(操

作系統(tǒng))來處理各種錯誤。同樣,錯誤經(jīng)過操作系統(tǒng)的處理,在一個系統(tǒng)

中程序不再需要包含匹配和改正所遇可能錯誤的代碼。

2.3討論向操作系統(tǒng)傳遞參數(shù)的三個主要的方法。

操作系統(tǒng)概念第七版習題答案完整版

Answer:

1.通過寄存器來傳遞參數(shù)

2.寄存器傳遞參數(shù)塊的首地址

3.參數(shù)通過程序存放或壓進堆棧中,并通過操作系統(tǒng)彈出堆棧。

2.4描述你怎樣能夠統(tǒng)計到一個程序運行其不同部分代碼時,它的時間花

費數(shù)量的數(shù)據(jù)圖表,并說明它的重要性。

Answer:一個能夠發(fā)布定期計時器打斷和監(jiān)控正在運行的命令或代

碼段當xx被進行時。一個滿意的配置文件,其中的代碼塊都應積極

覆著被程序在代碼的不同的部分花費時間。一旦這個配置文件被獲

得,程序員可以盡可能的優(yōu)化那些消耗大量CPU資源的代碼段。

2.5操作系統(tǒng)關于文件管理的五個主要活動是什么?

Answer:

1.創(chuàng)建和刪除文件

2.創(chuàng)建和刪除目錄

3.提供操作文件和目錄的原語的支持

4.將文件映射到二級存儲器上

5.在穩(wěn)定(非易失的)的存儲媒介上備份文件。

2.6在設備和文件操作上用相同的系統(tǒng)調(diào)用接口的好處與不足是什么?

Answer:每一個設備都可以被得到只要它是一個在文件系統(tǒng)的文件。因

此大多數(shù)內(nèi)核通過文件接口處理設備,這樣相對容易,加一個新的設備

通過執(zhí)行硬件確定代碼來支持這種抽象的文件接口。因此,這種方式不

僅有利于用戶程序代碼的發(fā)展,用戶程序代碼可以被寫入設備和文件用

相同的方式,還有利于設備驅(qū)動程序代碼,設備驅(qū)動程序代碼可以書面

支持規(guī)范定義的API.使用相同接口的缺點是很難獲得某些設備檔案存

取的API范圍內(nèi)的功能,因此,結果或者是丟失功能或者是丟失性能。

但有些能夠被克服通過使用ioctl操作,這個操作為了進程在設各上援

引操作提供一個通用接口。

2.7命令解釋器的用途是什么?為什么它經(jīng)常與內(nèi)核是分開的?用戶有可

操作系統(tǒng)概念第七版習題答案完整版

能通過使用由操作系統(tǒng)提供的系統(tǒng)調(diào)用接口發(fā)展一個新的命令解釋器?

Answer:命令解釋器從用戶或文件中讀取命令并執(zhí)行,一般而言把他們

轉化成系統(tǒng)調(diào)用。它通常是不屬于內(nèi)核,因為命令解釋會有所變動。用

戶能夠利用由操作系統(tǒng)提供的系統(tǒng)調(diào)用接口開發(fā)新的命令解釋器。這命

令解釋器允許用戶創(chuàng)建、管理進程和確定它們通信的方法(例如通過管

道和文件)。所有的功能都被用戶程序

通過系統(tǒng)調(diào)用來使用,這個也可能有用戶開發(fā)一個新的命令行解釋。

2.8通信的兩種模式是什么?這兩種模式的優(yōu)點和缺點是什么?

Answer:通信的兩種模式是1)共享內(nèi)存,2)消息傳遞。這兩種模式的

最基本的不同是在它們的性能上。一個內(nèi)存共享塊是通過系統(tǒng)調(diào)用創(chuàng)建

的。然而,一旦內(nèi)存共享塊在兩個或更多的進程間建立,這些進程可以

借助內(nèi)存共享塊來通信,不再需要內(nèi)核的協(xié)助。另一方面,當send。和

receive()操作被調(diào)用時,信息傳遞通常包含系統(tǒng)調(diào)用。因此,因為內(nèi)

核是直接的包含在進程間通信的,一般而言,它的影響比內(nèi)存共享小。

然而,消息傳遞可以用作同步機制來處理通信進程間的行動。也就是說,

sendO和receiveO段可以用來協(xié)調(diào)兩個通信進程的動作。另一方面,

內(nèi)存共享沒有提供這種同步機制的進程。

2.9為什么要把機制和策略區(qū)分開來?

Answer:機制和策略必須區(qū)分開來,來保證系統(tǒng)能夠被很容易的修改。

沒有兩個系統(tǒng)的裝置是完全相同的,所以每一個裝置都想要把操作系統(tǒng)

改為適合自己的。當機制和政策分開時,政策可以隨意的改變但機制還

是不能改變。這種安排提供了一個更靈活的制度

2.10為什么Java提供了從Java程序調(diào)用由C或C++編寫的本地方法的能力?

舉出一個本地方法有用的例子。

Answer:Java程序的開發(fā)是用來作為I/O獨立的平臺。因此,這種語

言沒有提供途徑給許多特殊的系統(tǒng)資源,例如從I/O設備讀取。為了運行

一個系統(tǒng)特定的I/O操作,你必須用一種支持這些特性的語言(例如C或

C++)寫。記住一個Java程序調(diào)用由另外一種語言編寫的本地方法寫將不再

結構中立。

2.11有時獲得一個分層方法是有困難的如果操作系統(tǒng)的兩個部件相互依

存。識別一個方案,在這個方案中并不非常清楚如何為兩個作用緊密相連

操作系統(tǒng)概念第七版習題答案完整版

的系統(tǒng)部件分層。

Answer:虛擬內(nèi)存子系統(tǒng)和存儲子系統(tǒng)通常是緊密耦合,并由于以下的相

互作用需要精心設計的層次系統(tǒng)。許多系統(tǒng)允許文件被映射到一個執(zhí)行進

程的虛擬內(nèi)存空間。另一方面,虛擬內(nèi)存子系統(tǒng)通常使用存儲系統(tǒng)來提供

當前不在內(nèi)存中的頁。此外,在刷新磁盤之前,更新的文件有時會緩沖到物

理內(nèi)存,從而需要認真協(xié)調(diào)使用的內(nèi)存之間的虛擬內(nèi)存子系統(tǒng)和文件系統(tǒng)。

2.12米用微內(nèi)核方法來設計系統(tǒng)的主要優(yōu)點是什么?在微內(nèi)核中如何使客

戶程

序和系統(tǒng)服務相互作用?微內(nèi)核方法的缺點是什么?

Answer:優(yōu)點主要包括以下幾點:

a)增加一個新的服務不需要修改內(nèi)核

b)在用戶模式中比在內(nèi)核模式中更安全、更易操作c)一個簡

單的內(nèi)核設計和功能一般導致一個更可靠的操作系統(tǒng)用戶程序

和系統(tǒng)服務通過使用進程件的通信機制在微內(nèi)核中相互作用,

例如發(fā)送消息。這些消息由操作系統(tǒng)運送。微內(nèi)核最主要的缺點是與進

程間通信的過度聯(lián)系和為了保證用戶程序和系統(tǒng)服務相互作用而頻繁使

用操作系統(tǒng)的消息傳遞功能。

2.13模塊化內(nèi)核方法的什么方式與分層方法相似?什么方式與分層方法不

同?

Answer:模塊化內(nèi)核方法要求子系統(tǒng)通過創(chuàng)建的一般而言狹隘(從

功能方面來說是揭露外部模塊)的接口來相互作用。分層內(nèi)核方法在細

節(jié)上與分層方法相似。但是,分層內(nèi)核必須要是有嚴格排序的子系統(tǒng),

這樣的子系統(tǒng)在較低層次中不允許援引業(yè)務相應的上層子系統(tǒng)。在模塊

化內(nèi)核方法中沒有太多的限制,模式在哪方而是隨意援引彼此的是沒有

任何約束的.

2.14操作系統(tǒng)設計員采用虛擬機結構的主要優(yōu)點是什么?對用戶來說主要

什么好處?

Answer:系統(tǒng)是容易被調(diào)試的,此外,安全問題也是容易解決的。虛擬

機同樣為運作體系提供了一個很好的平臺,因為許多不同的操作系統(tǒng)只可

操作系統(tǒng)概念第七版習題答案完整版

以在一個物理系統(tǒng)中運行。

2.15為什么說一個JIT編譯器對執(zhí)行一個Java程序是有用的?

Answer:Java是一種解釋語言。這就意味著Java虛擬機一次解釋一個字

節(jié)代碼。一般來說,絕大多數(shù)解釋環(huán)境是比運行本地二進制慢,因為解

釋進程要求把每一個命令轉化為本地機器代碼。一個JIT編譯器把字節(jié)

代碼轉換成本地機器代碼,第一次這種方法是偶然碰到的。這就意味著

Java程序作為一個本地用途(當然,JIT的這種轉換過程是要花費時間

的,但并沒有像字節(jié)代碼花費的這么多)是非常重要的一種運行方式。

此外,JIT存儲器編譯代碼以便能夠在下一次需要時使用。一個是被JIT

運行的而不是傳統(tǒng)的一般的解釋運行的Java程序是非常快的。

2.16在一個系統(tǒng)(例如VWware中,來賓作業(yè)系統(tǒng)和主機操作系統(tǒng)的關系是

什么?在選擇主機操作系統(tǒng)時哪些因素需要考慮?

Answer:一個來賓作業(yè)系統(tǒng)提供它的服務通過映射到有主機操作系統(tǒng)提

供的功能上。一個主要的事情需要被考慮,為了能夠支持與來賓作業(yè)系

統(tǒng)相聯(lián)系的功能,選擇的主機操作系統(tǒng),從系統(tǒng)調(diào)用接口而言,是否足

夠一般。

2.17實驗性的綜合操作系統(tǒng)在內(nèi)核里有一個匯編器。為了優(yōu)化系統(tǒng)調(diào)用的

性能,內(nèi)核通過在內(nèi)核空間內(nèi)匯編程序來縮短系統(tǒng)調(diào)用在內(nèi)核必須經(jīng)過

的途徑。這是一種與分層設計相對立的方法,經(jīng)過內(nèi)核的途徑在這種設

計中被延伸了,使操作系統(tǒng)的構造更加容易。分別從支持和反對的角度

來綜合設計方式對討論這種內(nèi)核設計和系統(tǒng)性能優(yōu)化的影響。

Answer:綜合是令人欽佩的由于這種性能通過即時復雜化取得了成功。

不幸的是,由于代碼的流動很難在內(nèi)核中調(diào)試問題。這種復雜化是系統(tǒng)

的詳細的表現(xiàn),讓綜合很難port(一個新的編譯器必須寫入每一種架構)。

3.1論述短期,中期和長期調(diào)度之間的區(qū)別.

Answers.短期調(diào)度:在內(nèi)存作業(yè)中選擇就緒執(zhí)行的作業(yè),并為他們分配

CPUo

b.中期調(diào)度:作為一種中等程度的調(diào)度程序,尤其被用于分時系統(tǒng),一個

交換方案的實施,將部分運行程序移出內(nèi)存,之后,從xx處繼續(xù)執(zhí)行。

c.長期調(diào)度(作業(yè)調(diào)度程序):確定哪些作業(yè)調(diào)入內(nèi)存以執(zhí)行.

操作系統(tǒng)概念第七版習題答案完整版

它們主要的不同之處是它們的執(zhí)行的頻率。短期調(diào)度必須經(jīng)常調(diào)用一個

新進程,由于在系統(tǒng)中,長期調(diào)度處理移動的作業(yè)時,并不頻繁被調(diào)用,

可能在進程離開系統(tǒng)時才被喚起。

3.2問:描述一下內(nèi)核在兩個進程間進行上下文功換的動作.

Answer:總的來說,操作系統(tǒng)必須保存正在運行的進程的狀態(tài),恢復進程的

狀態(tài)。保存進程的狀態(tài)主要包括S7器存器的值以及內(nèi)存分配,上下文切

換還必須執(zhí)行一些確切體系結構的操作,包存刷新數(shù)據(jù)和指令緩存。

(書中答案)進程XX是由進程的PCB來表示的,它包括CPU寄存器的值和

內(nèi)存管理信息等。當發(fā)生上下文切換時,內(nèi)核會將舊進程的XX狀態(tài)保存

在其

PCBxx然后裝入經(jīng)調(diào)度要執(zhí)行的新進程的已保存的xx狀態(tài)。

3.3考慮1^(:機制??紤]的RPC機制。描述不可取的情況下可能出現(xiàn)或者不

執(zhí)行的“最多一次“或“到底一旦“語義。說明在沒有這些保障的情況

下,可能使用的一種機制。

Answer:如果一個RPC機制無法支持無論是“最多一次”或“至少一次”的

語義,那么RPC服務器不能保證遠端程序不會引起多個事件的發(fā)生。試想,

如果一個遠端程序在一個不支持這些語義的系統(tǒng)上從銀行賬戶中撤回投資

的資金。很可能一個單一調(diào)用的遠程過程會導致多種服務器的撤回。

如果一個系統(tǒng)不能支持這兩種語義,那么這樣一個系統(tǒng)只能安全提供

遠程程序,這些遠程程序沒有改變數(shù)據(jù),沒有提供時間敏感的結果,用我

們的銀行賬戶做例,我們當然需要“最多一次”或“至少一次”的語義

執(zhí)行撤銷(或存款)。然而,賬戶余額成其它賬戶信息的查詢,如姓名,

地址等,不需要這些語義。

3.4圖表3.24里顯示的程序,說明A行將會輸出什么?

Answer:當控制回到父進程時,它的值會保持在5,而子進程將更新并拷貝

這個值。

3.5問:下面設計的好處和壞處分別是什么。系統(tǒng)層次和用戶層次都要考

慮到.

A,對稱和非對稱通信

B,自動和顯式緩沖

操作系統(tǒng)概念第七版習題答案完整版

C,復制發(fā)送和引用發(fā)送

D,固定大小和可變大小消息

Answer:A.對稱和非對稱通信:對稱通信的影響是它允許發(fā)送者和接收者之

間有一個集合點。缺點是阻塞發(fā)送時,不需要集合點,而消息不能異步傳

遞。因此,消息傳遞系統(tǒng),往往提供兩種形式的同步。

B.自動和顯式緩沖;自動緩沖提供了一個無限xx的隊列,從而

保證了發(fā)送者在復制消息時不會遇到阻塞,如何提供自動緩存的規(guī)范,一

個方案也許能保存足夠大的內(nèi)存,但許多內(nèi)存被浪費緩存明確指定緩沖區(qū)

的大小。在這種狀況下,發(fā)送者不能在等待可用空間隊列中被阻塞。然而,

緩沖明確的內(nèi)存不太可能被浪費。

C.復制發(fā)送和引用發(fā)送:復制發(fā)送不允許接收者改變參數(shù)的狀態(tài),引用

發(fā)送是允許的。引用發(fā)送允許的優(yōu)點之一是它允許程序員寫一個分布式版

本的一個集中的應用程序。Java'sRMI公司提供兩種發(fā)送,但引用傳遞

一個參數(shù)需要聲明這個參數(shù)是一個遠程對象。

D.固定大小和可變大小消息、:涉及的太多是有關緩沖問題,帶有定長信

息,一個擁有具體規(guī)模的緩沖課xx已知數(shù)量的信息緩沖能xx的可變信息

數(shù)量是未知的??紤]Windows2000如何處理這種情況。帶有定長信息

(<256bytes),信息從發(fā)送者的地址空間被復制至接受進程的地址空間。

更大的信息、(如變長信息)使用共享內(nèi)存?zhèn)鬟f信息。

第四章線程

4.1舉兩個多線程程序設計的例子來說明多線程不比單線程方案提高性能

答:1)任何形式的順序程序?qū)€程來說都不是一個好的形式。例如一

個計算個人報酬的程序。

2)另外一個例子是一個“空殼”程序,如C-shell和kornshell。這種

程序

必須密切檢測其本身的工作空間。如打開的文件、環(huán)境變量和當前工作

目錄。

4.2描述一下線程庫采取行動進行用戶級線程上下文切換的過程答:用戶線

程之間的上下文切換和內(nèi)核線程之間的相互轉爽是非常相似的。但它依賴于

操作系統(tǒng)概念第七版習題答案完整版

線程庫和怎樣把用戶線程指給內(nèi)核程序。一般來說,用戶線程之間的上下文

切換涉及到用一個用戶程序的輕量級進程(LWP和用另外一個線程來代替。

這種行為通常涉及到寄存器的節(jié)約和釋放。

4.3在哪些情況下使用多內(nèi)核線程的多線程方案比單處理器系統(tǒng)的單個線程

方案提供更好的性能。

答:當一個內(nèi)核線程的頁面發(fā)生錯誤時,另外的內(nèi)核線程會用一種有效

的方法被轉換成使用交錯時間。另一方面,當頁面發(fā)生錯誤時,一個

單一線程進程將不能夠發(fā)揮有效性能。因此,在一個程序可能有頻繁

的頁面錯誤或不得不等待其他系統(tǒng)的事件的情況下,多線程方案會有

比單處理器系統(tǒng)更好的性能。

4.4以下程序中的哪些組成部分在多線程程序中是被線程共享的?

a.寄存值

b.堆內(nèi)存

c.全局變量

d.棧內(nèi)存

答:一個線程程序的線程共享堆內(nèi)存和全局變量,但每個線程都有屬于

自己的一組寄存值和棧內(nèi)存。

4.5一個采用多用戶線程的多線程方案在多進程系統(tǒng)中能夠取得比在單處理

器系統(tǒng)中更好的性能嗎?答:一個包括多用戶線程的多線程系統(tǒng)無法在

多處理系統(tǒng)上同時使用不同的處理器。操作系統(tǒng)只能看到一個單一的進

程且不會調(diào)度在不同處理器上的不同進程的線程。因此,多處理器系統(tǒng)

執(zhí)行多個用戶線程是沒有性能優(yōu)勢的。

4.6就如4.5.2章節(jié)描述的那樣,Linux沒有區(qū)分進程和線程的能力。且

Linux線程都是用相同的方法:允許一個任務與一組傳遞給clone。系

統(tǒng)調(diào)用的標志的進程或線程。但許多操作系統(tǒng),例如windowsXP和

Solaris,對進程和線程都是一視同仁?;旧希@種使用notation的

系統(tǒng),一個進程的數(shù)據(jù)結構包括一個指向?qū)儆谶M程的不同線程的指針。

區(qū)別建模過程和在內(nèi)核中線程的兩種方法。

操作系統(tǒng)概念第七版習題答案完整版

答:一方面,進程和線程被視為相似實體的系統(tǒng)中,有些系統(tǒng)代碼可以

簡化。例如,一個調(diào)度器可以在平等的基礎上考慮不同的進程和線程,

且不需要特殊的代碼,在調(diào)度中審查有關線程的進程。另一方面,這

種統(tǒng)一會使進程資源限制更加困難。相反,一些額外的復雜性被需要,

用來確定哪個線程與哪個進程一致和執(zhí)行重復的計數(shù)任務。

4.7由4.11給出的程序使用了Pthread的應用程序編程接口

(API),在程序的第c行和第p行分別會輸出什么?

答:c行會輸出5,p行會輸出0.

4.8考慮一個多處理器系統(tǒng)和用多線程對多線程模式編寫的多線程程序。讓

程序中的用戶線程數(shù)量多于系統(tǒng)中的處理器的數(shù)量,討論下列情況下的性能

意義:a.由程序分配的內(nèi)核線程的數(shù)量比處理器少

b.由程序分配的內(nèi)核線程的數(shù)量與處理器相同

c.由程序分配的內(nèi)核線程的數(shù)量大于處理器數(shù)量但少于用戶線程的數(shù)量

答:當內(nèi)核線程的數(shù)量少于處理器時,一些處理器將仍然處于空閑狀態(tài)。

因為,調(diào)度圖中只有內(nèi)核線程的處理器,而不是用戶線程的處理器。

當程序分配的內(nèi)核線程的數(shù)量與處理器相同時,那么有可能所有處理

器將同時使用。然而,當一個內(nèi)核塊內(nèi)的內(nèi)核(因頁面錯誤或同時援

引系統(tǒng)調(diào)用)相應的處理器將閑置。當由程序分配的內(nèi)核線程的數(shù)量

大于處理器數(shù)量時,xx一個內(nèi)核線程并調(diào)出,換入另一個準備執(zhí)行

的內(nèi)核線程。因此,增加多處理器系統(tǒng)的利用率。

第五章CPU調(diào)度

5.1為什么對調(diào)度來說,區(qū)分I/O限制的程序和CPU限制的程序是重要的?

答:I/O限制的程序有在運行I/O操作前只運行很少數(shù)量的計算機操作

的性質(zhì)。這種程序一般來說不會使用很多的CPU另一

操作系統(tǒng)概念第七版習題答案完整版

方面,CPU限制的程序利用整個的時間片,且不做任何阻礙I/O

操作的工作。因此,通過給I/O限制的程序優(yōu)先權和允許在CPU限制

的程序之前運行,可以很好的利用計算機資源。

5.2討論以下各對調(diào)度標準在某種背景下會有的沖突

a.CPU利用率和響應時間

b.平均xx時間和最大等待時間c.I/O設備利用

率和CPU利用率

答:a.CPU利用率和響應時間:當經(jīng)常性的上下文切換減少到最低時,CPU

利用率增加。通過減少使用上下文切換程序來降低經(jīng)常性的上下文切

換。但這樣可能會導致進程響應時間的增加。

操作系統(tǒng)概念第七版習題答案完整版

b.平均XX時間和最大等待時間:通過最先執(zhí)行最短任務可以使平均

XX時間最短。然而,這種調(diào)度策略可能會使長時間運行的任務永遠得

不到調(diào)度且會增加他們的等待時間。

C.1/0設備利用率和CPU利用率:CPU利用率的最大化可以通過長時間

運行CPU限制的任務和同時不實行上下文切換。I/O設備利用率的最

大化可以通過盡可能調(diào)度已經(jīng)準備好的I/O限制的任務。因此,導致

上下文切換。

5.3考慮指數(shù)平均公式來預測下一次CPU區(qū)間的xx,使用以下參數(shù)值會有什

么影響?

a.a=0和t=100毫秒

b.a=0.99和t=10毫秒

答:當a=0和t=lC0毫秒時,公式總是會預測下一次的CPLE間為100毫

秒。當"0.99和t=10毫秒時,進程最近的行為是給予更高的重量和

過去的就能成相比。因此,調(diào)度算法幾乎是無記憶的,且簡單預測未

來區(qū)間的xx為下一次的CPU執(zhí)行的時間片。

進程區(qū)間時間優(yōu)先級

Pi103

5.4考慮下列進程集,進程占用的CPU區(qū)間xx以毫秒來計算:

P21

P323

P114

P£52

假設在時刻0以進程PLP2,P3,P4,P5的順序到達。

a.畫出4個Gantt圖分別演示用FCFSSJF、非搶占優(yōu)先級

(數(shù)字小代表優(yōu)先級高)和

RR(時間片=1)算法調(diào)度時進程的執(zhí)行過程

b.在a里每個進程在每種調(diào)度算法下的xx時間是多少?

c.在a里每個進程在每種調(diào)度算法下的等待時間是多少?

操作系統(tǒng)概念第七版習題答案完整版

d.在a里哪一種調(diào)度算法的平均等待時間對所

有進程而言卡更小?答:a.xx略b.xx時間

FCFSRRSJF非搶占優(yōu)先級

P110191916

P211211

P3137418

P4144219

P51996

c.等待時間

FCFSRRSJF非搶占優(yōu)先級

P10996

P210100

P3115216

P4133118

P514942

d.SJF

5.5下面哪些算法會引起饑餓

a.先來先服務

b.最短工作優(yōu)先調(diào)度

c.輪換法調(diào)度d.優(yōu)先級調(diào)度

答:最短工作優(yōu)先調(diào)度和優(yōu)先級調(diào)度算法會引起饑餓

5.6考慮RR調(diào)度算法的一個變種,在這個算法里,就緒隊列里的項是指向

PCB的指針。

a.如果把兩個指針指向就緒隊列中的同一個進程,會有什么效果?

b.這個方案的主要優(yōu)點和缺點是什么?

c.如何修改基本的RR調(diào)度算法,從而不用兩個指針達到同樣的效果?

答a實際上,這個過程將會增加它的優(yōu)先權,因為通過經(jīng)常得到時間它

能夠優(yōu)先得以運行。

操作系統(tǒng)概念第七版習題答案完整版

b.優(yōu)點是越重要的工作可以得到更多的時間。也就是說,優(yōu)先級越

高越先運行。然而,結果將由短任務來承擔。

C.分配一個更長的時間給優(yōu)先級越高的程序。換句話說,可能有兩個或

多個時間片在RR調(diào)度中。

5.7考慮一個運行十個I/O限制任務和一個CPU艮制任務的系統(tǒng)。假設,I/O

限制任務一次分配給一個I/O操作1亳秒的CPU計算,但每個I/O操作的完

成需要10毫秒。同時,假設間接的上下文切換要

0.1毫秒,所有的進程都是長進程。對一個RR調(diào)度來說,以下情況時CPU的

利用率是多少:

a.時間片是1毫秒

b.時間片是10毫秒答:a.時間片是1毫秒:不論是哪個進程被調(diào)度,

這個調(diào)度都會為每一次的上卜.文切換花費一個o.1毫秒的上卜.文切換。CPU

的利用率是1/1.1*100二92%。

b.時間片是10毫秒:這I/O限制任務會在使用完1毫秒時間片后進行一

次上下文切換。這個時間片要求在所有的進程間都走一遍,因此,10*1.1+10.1

(因為每個I/0限定任務執(zhí)行為1毫秒,然后承擔上下文切換的任務,

而CPU限制任務的執(zhí)行10毫秒在承擔一個上下文切換之前)。因此,CPU勺

利用率是20、21.1*100=94%。

5.8考慮一個實施多層次的隊列調(diào)度系統(tǒng)。什么策略能夠使一個計算機用戶

使用由用戶進程分配的最大的CPU時間片。

答:這個程序可以使分配給它的沒有被完全利用的CPU寸間最大化。它可

以使用分配給它的時間片中的絕大部分,但在時間片結束前放棄CPU因此提

高了與進程有關的優(yōu)先級。

1.5.9考慮下面的基于動態(tài)改變優(yōu)先級的可搶占式優(yōu)先權調(diào)度算法。大的

優(yōu)先權數(shù)代表高優(yōu)先權。當一個進程在等待CPU時(在就緒隊列中,但未

執(zhí)行),優(yōu)先權以a速率改變;當它運行時,優(yōu)先

權以速率(3改變。所有的進程在進入就緒隊列時被給定優(yōu)先權為0。參數(shù)a

和B可以設定給許多不同的調(diào)度算法。

操作系統(tǒng)概念第七版習題答案完整版

a.3>a>0時所得的是什

么算法?b.a<3<0時

所得的是什么算法?

答:a.FCFSb.LIFO

5.10解釋下面調(diào)度算法對短進程編程度上的區(qū)別:

a.FCFS

b.RR

c.多級反饋隊列

答:a.FCFS一區(qū)別短任務是因為任何在xx任務后到達的短任務都將會有很xx

的等待時間。

b.RR對所有的任務都是能夠相同的(給它們相同的CPU時間

區(qū)間),所以,短任務可以很快的離開系統(tǒng),只要它們可以先完成。

c.多級反饋隊列和RR調(diào)度算法相似一一它們不會先選擇短任務。

5.11用WindowXP的調(diào)度算法,下列什么是數(shù)字優(yōu)先的線程。

a.相對優(yōu)先級的值為REALTIME_PRIORITY_CLA的屬于實體優(yōu)先類型的線程

b.相對優(yōu)先級的值為NORMALPRIORITYCLAS屬于NORMA類型的線程

c.相對優(yōu)先級的值為HIGH_PRIORITY_CLASS屬于ABOVE_NORMAL類型的線程

答:a.26

b.8

c.14

5.12考慮在Solaris操作系統(tǒng)中的為分時線程的調(diào)度算法:

a:一個優(yōu)先權是10的線程的時間片是多少?優(yōu)先權是55的呢?

b:假設優(yōu)先權是35的一個線程用它所有的時間片在沒有任何阻止的情

操作系統(tǒng)概念第七版習題答案完整版

況下,這調(diào)度算法將會分配給這個線程什么樣新的優(yōu)先權?

C:假設一個優(yōu)先權是35的線程在時間片結束前阻止I/O操作。這調(diào)

度算法將會分配給這個線程什么樣新的優(yōu)先權?

答:a:160和40

b:35

C:54

5.13傳統(tǒng)UNIX調(diào)度在優(yōu)先數(shù)和優(yōu)先級間成反比關系:數(shù)字越高,優(yōu)先權越

低。該調(diào)度進程利用下面的方程重新計算進程的優(yōu)先權一次一秒:

優(yōu)先權二(最近CPU使用率/2)+基本數(shù)

這里的基本數(shù)二60,最近的CPU使用率是指一個表明優(yōu)先權從上一次重新計

算后開始進程被CPU使用的情況。

假設最近進程P1的CPU使用率是40個,p2是18,p3是10。當優(yōu)先權重新

計算后這三個進程的新的優(yōu)先權是什么?在此信息的基礎上,傳統(tǒng)UNIX的

調(diào)度會不會提高或降低CPU艮制的進程的相對優(yōu)先權?

答:分配給這些進程的優(yōu)先權分別是80,69和65.這調(diào)度降低了CPU艮制

的進程的相對優(yōu)先權。

第六章管程

6.1第一個著名的正確解決了兩個進程的臨界區(qū)問題的軟件方法是Dekker設

計的。兩個進程P0和P1共享以下變量:

booleanflag[2];Ainitiallyfalse*/

intturn;

進程Pi(i=0或1)和另一個進程Pj(j==0或1)的結構見圖7.27。

證明這個算法滿足臨界區(qū)問題的所有三個要求。

操作系統(tǒng)概念第七版習題答案完整版

do(

flag[i]=turc;

while(flag[jl){if(tjrn==j){flag[i]=false;while(turn==j);flag[i]=true;

}

)

臨界區(qū)

turn=j;

flag[i]=false;

剩余區(qū)

}while(l);

圖7.27Dekker算法中的進程Pi結構答:該算法滿足三個相互排斥條

件。(1)相互排斥是為了確保使用的變量和標志是可變的。如果所有進程

都把他們的變量設置為真,只有一個會成功,那就是哪個進程輪到的問題了。

等待中的進程只能夠進入它的重要部分當其他進程在更新變量值時。

6.1這兩個進程的臨界區(qū)域問題的最初的正確的軟件解決方案是由Dekker

提出的。PO、P1兩個進程,具有以下共同的變量:booleanflag[2];/*

initiallyfalse*/intturn;

進程Pi(i==0orl)的結構在6.25中已經(jīng)出現(xiàn)過;其他進程為Pj(j==1

or0)o證明這個算法滿足關鍵問題的三個要求。

答:這個算法滿足臨界區(qū)域的三個條件:

(1)在標記和返回變量的使用中,互斥條件是保證的。如果兩個進程將

它們的標識設為真,那么只有一個進程會成功進行,即輪到的那個進程。當

另一個進程更新它的返回變量時,等待的那個進程只能進入它的臨界區(qū)域。

操作系統(tǒng)概念第七版習題答案完整版

(2)就緒的進程,通過標志,返回變量。這個算法沒有提供嚴格的交替。

如果一個進程想要進入它們的臨界區(qū)域,它可以將它的標識設為真,然后進

入它們的臨界區(qū)域。當退出它的臨界區(qū)域,它可以設置轉向其他進程的值。

如果這個進程想要在其他進程之前再次進入它的臨界區(qū)域,它會重復這樣的

進程:進入它的臨界區(qū)域,在退出時轉向另一個進程。

(3)在雙T返回變量的使用過程中,界等待受阻。假設兩個進程想要進

入它們的責任所在的臨界區(qū)域。它們都將它們的標志的值設為真;而只有輪

到的那個線程可以執(zhí)行;其他的線程處于等待狀態(tài)。如果界等待沒有受阻,

當?shù)谝粋€進程重復“進入-退出”它的臨界區(qū)域

這一過程。Dekker算法在一個進程中設置一個轉向另一個進程的值,從而

保證另一個進程接下來進入它的臨界區(qū)域。

6.2針對有n個進程在帶有較低時間限制的等待n1個的輪次這樣一個臨

界區(qū)域最早的解決

該問題的正確方法是由xxxx和xx提出的。這些進程有以下的共同的

變量:枚舉pstate{idle,wantin,incs};pstateflag[n];

intturn;

所有的枚舉標志被初始為空,輪次的最初值是無關緊要的(在0和n-1之間)o

進程p的結構在6.26中有說明。證明這個算法滿足臨界區(qū)域問題的三項

要求。

答:a.互斥:注意到一個進程只有在下列條件滿足時才能進入臨界區(qū)域:沒

有其他進程在CS中有設置的標識變量。這是由于進程在CS中設置自身的

標識變量之前要先檢查其他進程的狀態(tài)。我們保證沒有兩個進程將同時進入

臨界區(qū)域。

b.有空讓進:考慮以下情況,當多進程同時在CS中設置它們的標識

變量,然后檢查是否有其他進程在cs中設置標識變量。當這種情況發(fā)生時,

所有的進程意識到這里存在進程競爭,在外層while(l)的循環(huán)下進入下一

次迭代,重置它們的標識變量到want中。現(xiàn)在只有唯一的進程將設置它的

輪次變量到cs中,這個唯一的進程就是其序號是最接近輪次的。從這個角

操作系統(tǒng)概念第七版習題答案完整版

度來說,對于哪些序號次接近輪次的新的進程就能決定進入臨界區(qū)域,而且

能同時在CS中設置它們的標識。隨后這些進程意識到這里存在競爭的進程,

于是重新啟動進入臨界區(qū)域的進程。在每次迭代中,進程在CS中設置的

序號值將變得更加接近輪次,最后我們得出以下結論:只有進程k在cs中

設置它的標識,而其他哪些序號在輪次和k之間不能在cs中設置它們的

標識。這個進程僅能進入臨界區(qū)域。

c.有限等待:有限等待需要滿足以下事實:當進程k在打算進入臨界

區(qū)域時,它的標識不再置為空閑。任何序號不在輪次和k之間

的進程不能進入臨界區(qū)域。與此同時,所有序號落在輪次和k之間

且又想要進入臨界區(qū)域的進程能夠進入臨界區(qū)域(這是基于系統(tǒng)一直在進步

的事實),這個輪次值變得越來越接近ko最后,要么輪次變?yōu)閗,要么

沒有哪些序號在輪次和k之間的進程,這樣進程k就進入臨界區(qū)域了。

6.3忙等待的含義是什么?在操作系統(tǒng)中還有哪些其他形式的等待?忙等

待能完全避免嗎?給出你的答案。

答:忙等待意味著一個進程正在等待滿足一個沒有閑置處理器的嚴格循環(huán)的

條件?;蛘?,一個進程通過放棄處理器來等待,在這種情況下的塊等待在將

來某個適當?shù)臅r間被喚醒。忙等待能夠避免,但是承擔這種開銷與讓一個進

程處于沉唾狀態(tài),當相應程序的狀態(tài)達到的時候進程乂被喚醒有關。

6.4解釋為什么自旋鎖不適合在單處理器系統(tǒng),而經(jīng)常在多處理器系統(tǒng)下使

用?答:自旋鎖不適合在單處理器系統(tǒng)是因為從自旋鎖中打破一個進程的條

件只有在執(zhí)行一個不同的進程時才能獲得。如果這個進程沒有閑置處理器,

其他進程不能夠得到這個機會去設定一個第一個進程進展需要的程序條件。

在一個多處理器系統(tǒng)中,其他進程在其他處理器上執(zhí)行,從而為了讓第一個

進程從自旋鎖中釋放修改程序狀態(tài)。

6.5如果一個同步元是在一個用戶級程序中使用的,解釋在一個單處理器系

統(tǒng)中為什么通過停止xx去實現(xiàn)這個同步元是不適合的?答:如果一個用戶

級程序具有停止xx的能力,那么它能夠停止計時器XX,防止上下文切換的

發(fā)生,從而允許它使用處理器而不讓其他進程執(zhí)行。

6.6解釋為什么在一個多處理器系統(tǒng)中XX不適合同步元?答:由于只有在

防止其他進程在一個XX不能實現(xiàn)的處理器上執(zhí)行來停止XX,XX在多處理

操作系統(tǒng)概念第七版習題答案完整版

器系統(tǒng)中是不夠的。在對于進程能在其他處理器上執(zhí)行是沒有心智的,所以

進程停止XX不能保證互斥進入程序狀態(tài)。

6.7

6.8服務器能夠設計成限制打開連接的數(shù)量。比如,一臺服務器可以在任何

時候有n個插座連接。這n個連接一形成,服務器就不能接收再有進來的

連接直到一個現(xiàn)有的連線釋放。解釋為什么信號量能夠通過服務器限制當前

連線的數(shù)量而被使用。

答:信號量初始化為允許開放式的插座連接的數(shù)量。當一個連接被接受,收

購方法調(diào)用。當連接釋放時,釋放方法調(diào)用。如果系統(tǒng)道道了允許開放式的

插座連接的數(shù)量,相繼調(diào)用收購方法將受阻直到一個現(xiàn)有的連線終止,釋放

方法調(diào)用。

6.9證明如果獲得和釋放的信號量操作沒有動態(tài)地執(zhí)行,那么互斥會受干擾。

答:收購操作自動遞減和信號量有關的值。如果兩個收購操作在信號量的值

為1的信號量上執(zhí)行,而且這兩種操作不是自動執(zhí)行的,那么這兩個操作

在進展中會遞減信號量的值,從而干擾互斥。

6.10(程序,不用翻)(6.13)

6.12證明管程和信號量是相當于它們能在執(zhí)行相同類型的同步問題時使用

答:在用下列方法使用信號量時,管程可以實施。每個條件變量是由一個隊

列中的線程等待條件組成的。每個線程有一個和它的隊列進入有關的信號量。

當線程表現(xiàn)出等待操作時,它創(chuàng)造一個心得信號量(初始化為0),附加

信號量到和條件變量有關的隊列中,在新創(chuàng)造的信號量上執(zhí)行阻塞信號遞減

操作。

6.15討論在讀者-作者問題中的公平和吞吐量的xx問題。提出一種解決

讀者-作者問題而不引起饑餓的方法答:在讀者-作者問題中吞吐量是由

利益多的讀者增加的,而不是讓一個作家獨占式地獲得共同的價值觀。另一

個方面,有利于讀者可能會導致饑餓的作者。在讀者-作者問題中的借能夠

通過保持和等待進程有關的時間戳來避免。當作者完成他的任務,那么喚醒

那些已經(jīng)等了最長期限的進程。當讀者到

操作系統(tǒng)概念第七版習題答案完整版

達和注意到另一個讀者正在訪問數(shù)據(jù)庫,那么它只有在沒有等待的作者時才

能進入臨界區(qū)域。這些限制保證公平。

6.16

管程的signal操作和信號量的signal操作有什么不同?

管程的signal操作在以下情況下是不能繼續(xù)進行的:當執(zhí)行signal操作并

且無等待線程時,那么系統(tǒng)會忽略signal操作,認為signal操作沒有發(fā)生

過。如果隨后執(zhí)行wait操作,那么相關的線程就會被阻塞。然后在信號量

中,即使沒有等待線程,每個signal操作都會是相應的信號量值增加。接

下來的等待操作因為之前的信號量值的增加而馬上成功進行。

6.17

假設signal語句只能作為一個管程中的最后一條語句出現(xiàn),可以怎樣簡化

6.7節(jié)所描述的實現(xiàn)?

如果signal語句作為最后一條語句出現(xiàn),那么鎖會使發(fā)出信號的進程轉化

成接受信號的進程。否則,發(fā)出信號的進程將解鎖,并且接受信號的進程則

需要和其他進程共同操作獲得鎖從而使操作繼續(xù)下去。

6.21

假設將管程中的wait和signal操作替換成一個單一的構件await

(B),這里B是一個普通的xx表達式,進程執(zhí)行直到B變成真

a.用這種方法寫一個管程實現(xiàn)讀者一作者問題。

b.解釋為什么一般來說這種結構實現(xiàn)的效率不高。

c.要使這種實現(xiàn)達到高效率需要對await語句加上哪些限制?(提示,限制

B的一般性,參見Kessels[1977].)

a.讀者一作者問題可以進行以下修改,修改中產(chǎn)生了await聲明:讀者可

以執(zhí)行

await(activewriters==0&&waitingwriters==0)”來確

保在進入臨界區(qū)域時沒有就緒的作者和等待的作者。作者可以執(zhí)行

uawait(activewriters==0&&activereaders==0)”來確

操作系統(tǒng)概念第七版習題答案完整版

?;コ?。

b.在signal操作后,系統(tǒng)檢查滿足等待條件滿足的等待線程,檢查其中被

喚醒的等待線程。這個要求相當復雜,并且可能需要用到交互的編譯器

來評估在不同時間點下的條件??梢酝ㄟ^限制xx條件,使XX變量和其

他部分分開作為獨立的程序變量(僅僅用來檢查是否相等的一個靜態(tài)值)。

在這種情況下,xx條件可以傳達給運行時系統(tǒng),該系統(tǒng)可以執(zhí)行檢查

每一個它所需要的時間,以確定哪些線程被喚醒。

6.23

為什么Solaris.Linux和Windows2000都使用自旋鎖作為多處理器系統(tǒng)的同

步機制而不作為單處理器系統(tǒng)的同步機制?

Solaris,Linux和Windows2000xx只有在多處理器系統(tǒng)才能使用自

旋鎖作為一個同步機制。自旋鎖不適合單處理器的系統(tǒng),因為打破了這一進

程的自旋鎖只有通過執(zhí)行不同的進程才可以得到。如果這一進程不會放棄此

處理器,其他進程就無法設置第一個進程所要求的程序條件,從而不能繼續(xù)

操作。在一個多處理器系統(tǒng),其他進程執(zhí)行其他處理器,從而修改程序狀態(tài)

從自旋鎖xx釋放第一個進程。

6.24

在基于xx的系統(tǒng)中可以給事務提供支持,在相應xx記錄寫到穩(wěn)定存儲之

前不能允許真正地更新數(shù)據(jù)項。為什么這個限制是必需的?

如果事務需要放棄,那么更新的數(shù)據(jù)項的值應該要恢復到原來的值。這就需

要原來值的數(shù)據(jù)在進行操作之前完成更新。

6.25

證明兩段鎖協(xié)議能確保沖突的串行執(zhí)行調(diào)度是指一個或多個事務的執(zhí)行順序。

一個串行調(diào)度是指每個事務執(zhí)行的原子調(diào)度。如果一個調(diào)度由兩個不同的事

務組成,通過連續(xù)的操作從這兩個事務中獲得相同的數(shù)據(jù),并至少有一個

write操作,然后

溫馨提示

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

評論

0/150

提交評論