《操作系統(tǒng)精髓與設(shè)計(jì)原理·第五版》復(fù)習(xí)題及答案
《《操作系統(tǒng)精髓與設(shè)計(jì)原理·第五版》復(fù)習(xí)題及答案》由會(huì)員分享,可在線閱讀,更多相關(guān)《《操作系統(tǒng)精髓與設(shè)計(jì)原理·第五版》復(fù)習(xí)題及答案(16頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第1章計(jì)算機(jī)系統(tǒng)概述 1.1列出并簡(jiǎn)要地定義計(jì)算機(jī)的四個(gè)主要組成部分。 主存儲(chǔ)器,存儲(chǔ)數(shù)據(jù)和程序;算術(shù)邏輯單元,能處理二進(jìn)制數(shù)據(jù);控制單元,解讀存儲(chǔ)器中的指令并且使他們得到執(zhí)行;輸入/輸出設(shè)備,由控制單元管理。 1.2定義處理器寄存器的兩種主要類(lèi)別。 用戶(hù)可見(jiàn)寄存器:優(yōu)先使用這些寄存器,可以使機(jī)器語(yǔ)言或者匯編語(yǔ)言的程序員減少對(duì)主存儲(chǔ)器的訪問(wèn)次數(shù)。對(duì)高級(jí)語(yǔ)言而言,由優(yōu)化編譯器負(fù)責(zé)決定把哪些變量應(yīng)該分配給主存儲(chǔ)器。一些高級(jí)語(yǔ)言,如C語(yǔ)言,允許程序言建議編譯器把哪些變量保存在寄存器中。 控制和狀態(tài)寄存器:用以控制處理器的操作,且主要被具有特權(quán)的操作系統(tǒng)例程使用,以控制程序的執(zhí)行。 1.3
2、一般而言,一條機(jī)器指令能指定的四種不同操作是什么? 處理器-寄存器:數(shù)據(jù)可以從處理器傳送到存儲(chǔ)器,或者從存儲(chǔ)器傳送到處理器。 處理器-I/O:通過(guò)處理器和I/O模塊間的數(shù)據(jù)傳送,數(shù)據(jù)可以輸出到外部設(shè)備,或者從外部設(shè)備輸入數(shù)據(jù)。 數(shù)據(jù)處理:處理器可以執(zhí)行很多關(guān)于數(shù)據(jù)的算術(shù)操作或邏輯操作。 控制:某些指令可以改變執(zhí)行順序。 1.4什么是中斷? 中斷:其他模塊(I/O,存儲(chǔ)器)中斷處理器正常處理過(guò)程的機(jī)制。 1.5多中斷的處理方式是什么? 處理多中斷有兩種方法。第一種方法是當(dāng)正在處理一個(gè)中斷時(shí),禁止再發(fā)生中斷。第二種方法是定義中斷優(yōu)先級(jí),允許高優(yōu)先級(jí)的中斷打斷低優(yōu)先級(jí)的中斷處理器的運(yùn)
3、行。 1.6內(nèi)存層次的各個(gè)元素間的特征是什么? 存儲(chǔ)器的三個(gè)重要特性是:價(jià)格,容量和訪問(wèn)時(shí)間。 1.7什么是高速緩沖存儲(chǔ)器? 高速緩沖存儲(chǔ)器是比主存小而快的存儲(chǔ)器,用以協(xié)調(diào)主存跟處理器,作為最近儲(chǔ)存地址的緩沖區(qū)。 1.8列出并簡(jiǎn)要地定義I/O操作的三種技術(shù)。 可編程I/O:當(dāng)處理器正在執(zhí)行程序并遇到與I/O相關(guān)的指令時(shí),它給相應(yīng)的I/O模塊發(fā)布命令(用以執(zhí)行這個(gè)指令);在進(jìn)一步的動(dòng)作之前,處理器處于繁忙的等待中,直到該操作已經(jīng)完成。 中斷驅(qū)動(dòng)I/O:當(dāng)處理器正在執(zhí)行程序并遇到與I/O相關(guān)的指令時(shí),它給相應(yīng)的I/O模塊發(fā)布命令,并繼續(xù)執(zhí)行后續(xù)指令,直到后者完成,它將被I/O模塊中斷
4、。如果它對(duì)于進(jìn)程等待I/O的完成來(lái)說(shuō)是不必要的,可能是由于后續(xù)指令處于相同的進(jìn)程中。否則,此進(jìn)程在中斷之前將被掛起,其他工作將被執(zhí)行。 直接存儲(chǔ)訪問(wèn):DMA模塊控制主存與I/O模塊間的數(shù)據(jù)交換。處理器向DMA模塊發(fā)送一個(gè)傳送數(shù)據(jù)塊的請(qǐng)求,(處理器)只有當(dāng)整個(gè)數(shù)據(jù)塊傳送完畢后才會(huì)被中斷。 1.9空間局部性和臨時(shí)局部性間的區(qū)別是什么? 空間局部性是指最近被訪問(wèn)的元素的周?chē)脑卦诓痪玫膶?lái)可能會(huì)被訪問(wèn)。臨時(shí)局部性(即時(shí)間局部性)是指最近被訪問(wèn)的元素在不久的將來(lái)可能會(huì)被再次訪問(wèn)。 1.10開(kāi)發(fā)空間局部性和時(shí)間局部性的策略是什么? 空間局部性的開(kāi)發(fā)是利用更大的緩沖塊并且在存儲(chǔ)器控制邏輯中加入
5、預(yù)處理機(jī)制。時(shí)間局部性的開(kāi)發(fā)是利用在高速緩沖存儲(chǔ)器中保留最近使用的指令及數(shù)據(jù),并且定義緩沖存儲(chǔ)的優(yōu)先級(jí)。 第2章 操作系統(tǒng)概述 2.1操作系統(tǒng)設(shè)計(jì)的三個(gè)目標(biāo)是什么? 方便:操作系統(tǒng)使計(jì)算機(jī)更易于使用。 有效:操作系統(tǒng)允許以更有效的方式使用計(jì)算機(jī)系統(tǒng)資源。 擴(kuò)展的能力:在構(gòu)造操作系統(tǒng)時(shí),應(yīng)該允許在不妨礙服務(wù)的前提下有效地開(kāi)發(fā)、測(cè)試和引進(jìn)新的系統(tǒng)功能。 2.2什么是操作系統(tǒng)的內(nèi)核? 內(nèi)核是操作系統(tǒng)最常使用的部分,它存在于主存中并在特權(quán)模式下運(yùn)行,響應(yīng)進(jìn)程調(diào)度和設(shè)備中斷。 2.3什么是多道程序設(shè)計(jì)? 多道程序設(shè)計(jì)是一種處理操作,它在兩個(gè)或多個(gè)程序間交錯(cuò)處理每個(gè)進(jìn)程。 2.4
6、什么是進(jìn)程? 進(jìn)程是一個(gè)正在執(zhí)行的程序,它被操作系統(tǒng)控制和選擇。 2.5操作系統(tǒng)是怎么使用進(jìn)程上下文的? 執(zhí)行上下文又稱(chēng)為進(jìn)程狀態(tài),是操作系統(tǒng)用來(lái)管理和控制所需的內(nèi)部數(shù)據(jù)。這種內(nèi)部信息和進(jìn)程是分開(kāi)的,因?yàn)椴僮飨到y(tǒng)信息不允許被進(jìn)程直接訪問(wèn)。上下文包括操作系統(tǒng)管理進(jìn)程以及處理器正確執(zhí)行進(jìn)程所需要的所有信息,包括各種處理器寄存器的內(nèi)容,如程序計(jì)數(shù)器和數(shù)據(jù)寄存器。它還包括操作系統(tǒng)使用的信息,如進(jìn)程優(yōu)先級(jí)以及進(jìn)程是否在等待特定I/O事件的完成。 2.6列出并簡(jiǎn)要介紹操作系統(tǒng)的五種典型存儲(chǔ)管理職責(zé)。 進(jìn)程隔離:操作系統(tǒng)必須保護(hù)獨(dú)立的進(jìn)程,防止互相干涉數(shù)據(jù)和存儲(chǔ)空間。 自動(dòng)分配和管理:程序應(yīng)該根
7、據(jù)需要在存儲(chǔ)層次間動(dòng)態(tài)的分配,分配對(duì)程序員是透明的。因此,程序員無(wú)需關(guān)心與存儲(chǔ)限制有關(guān)的問(wèn)題,操作系統(tǒng)有效的實(shí)現(xiàn)分配問(wèn)題,可以?xún)H在需要時(shí)才給作業(yè)分配存儲(chǔ)空間。 2.7解釋實(shí)地址和虛地址的區(qū)別。 虛地址指的是存在于虛擬內(nèi)存中的地址,它有時(shí)候在磁盤(pán)中有時(shí)候在主存中。 實(shí)地址指的是主存中的地址。 2.8描述輪循調(diào)度技術(shù)。 輪循調(diào)度是一種調(diào)度算法,所有的進(jìn)程存放在一個(gè)環(huán)形隊(duì)列中并按固定循序依次激活。因?yàn)榈却恍┦录ɡ纾旱却粋€(gè)子進(jìn)程或一個(gè)I/O操作)的發(fā)生而不能被處理的進(jìn)程將控制權(quán)交給調(diào)度器。 2.9解釋單體內(nèi)核和微內(nèi)核的區(qū)別。 單體內(nèi)核是一個(gè)提供操作系統(tǒng)應(yīng)該提供的功能的大內(nèi)核,包括
8、調(diào)度、文件系統(tǒng)、網(wǎng)絡(luò)、設(shè)備驅(qū)動(dòng)程序、存儲(chǔ)管理等。內(nèi)核的所有功能成分都能夠訪問(wèn)它的內(nèi)部數(shù)據(jù)結(jié)構(gòu)和程序。典型情況下,這個(gè)大內(nèi)核是作為一個(gè)進(jìn)程實(shí)現(xiàn)的,所有元素都共享相同的地址空間。 微內(nèi)核是一個(gè)小的有特權(quán)的操作系統(tǒng)內(nèi)核,只提供包括進(jìn)程調(diào)度、內(nèi)存管理、和進(jìn)程間通信等基本功能,要依靠其他進(jìn)程擔(dān)當(dāng)起和操作系統(tǒng)內(nèi)核聯(lián)系作用。 2.10什么是多線程? 多線程技術(shù)是指把執(zhí)行一個(gè)應(yīng)用程序的進(jìn)程劃分成可以同時(shí)運(yùn)行的多個(gè)線程。 第3章 進(jìn)程描述和控制 3.1 什么是指令跟蹤? 指令跟蹤是指為該進(jìn)程而執(zhí)行的指令序列。 3.2 通常那些事件會(huì)導(dǎo)致創(chuàng)建一個(gè)進(jìn)程? 新的批處理作業(yè);交互登錄;操作系統(tǒng)因?yàn)樘峁┮?/p>
9、項(xiàng)服務(wù)而創(chuàng)建;由現(xiàn)有的進(jìn)程派生。(表3.1) 3.3 對(duì)于圖3.6中的進(jìn)程模型,請(qǐng)簡(jiǎn)單定義每個(gè)狀態(tài)。 運(yùn)行態(tài):該進(jìn)程正在執(zhí)行。就緒態(tài):進(jìn)程做好了準(zhǔn)備,只要有機(jī)會(huì)就開(kāi)始執(zhí)行。 阻塞態(tài):進(jìn)程在某些事件發(fā)生前不能執(zhí)行,如I/O操作完成。 新建態(tài):剛剛創(chuàng)建的進(jìn)程,操作系統(tǒng)還沒(méi)有把它加入到可執(zhí)行進(jìn)程組中。 退出態(tài):操作系統(tǒng)從可執(zhí)行進(jìn)程組中釋放出的進(jìn)程,或者是因?yàn)樗陨硗V沽耍蛘呤且驗(yàn)槟撤N原因被取消。 3.4 搶占一個(gè)進(jìn)程是什么意思? 處理器為了執(zhí)行另外的進(jìn)程而終止當(dāng)前正在執(zhí)行的進(jìn)程,這就叫進(jìn)程搶占。 3.5 什么是交換,其目的是什么? 交換是指把主存中某個(gè)進(jìn)程的一部分或者全部?jī)?nèi)容轉(zhuǎn)移
10、到磁盤(pán)。當(dāng)主存中沒(méi)有處于就緒態(tài)的進(jìn)程時(shí),操作系統(tǒng)就把一個(gè)阻塞的進(jìn)程換出到磁盤(pán)中的掛起隊(duì)列,從而使另一個(gè)進(jìn)程可以進(jìn)入主存執(zhí)行。 3.6 為什么圖3.9(b)中有兩個(gè)阻塞態(tài)? 有兩個(gè)獨(dú)立的概念:進(jìn)程是否在等待一個(gè)事件(阻塞與否)以及進(jìn)程是否已經(jīng)被換出主存(掛起與否)。為適應(yīng)這種2*2的組合,需要兩個(gè)阻塞態(tài)和兩個(gè)掛起態(tài)。 3.7 列出掛起態(tài)進(jìn)程的4個(gè)特點(diǎn)。 1.進(jìn)程不能立即執(zhí)行。 2.進(jìn)程可能是或不是正在等待一個(gè)事件。如果是,阻塞條件不依賴(lài)于掛起條件,阻塞事件的發(fā)生不會(huì)使進(jìn)程立即被執(zhí)行。 3.為了阻止進(jìn)程執(zhí)行,可以通過(guò)代理把這個(gè)進(jìn)程置于掛起態(tài),代理可以是進(jìn)程自己,也可以是父進(jìn)程或操作系統(tǒng)
11、。 4.除非代理顯式地命令系統(tǒng)進(jìn)行狀態(tài)轉(zhuǎn)換,否則進(jìn)程無(wú)法從這個(gè)狀態(tài)中轉(zhuǎn)移。 3.8 對(duì)于哪類(lèi)實(shí)體,操作系統(tǒng)為了管理它而維護(hù)其信息表? 內(nèi)存、I/O、文件和進(jìn)程。 3.9 列出進(jìn)程控制塊中的三類(lèi)信息。 進(jìn)程標(biāo)識(shí),處理器狀態(tài)信息,進(jìn)程控制信息。 3.10 為什么需要兩種模式(用戶(hù)模式和內(nèi)核模式)? 用戶(hù)模式下可以執(zhí)行的指令和訪問(wèn)的內(nèi)存區(qū)域都受到限制。這是為了防止操作系統(tǒng)受到破壞或者修改。而在內(nèi)核模式下則沒(méi)有這些限制,從而使它能夠完成其功能。 3.11 操作系統(tǒng)創(chuàng)建一個(gè)新進(jìn)程所執(zhí)行的步驟是什么? 1.給新進(jìn)程分配一個(gè)唯一的進(jìn)程標(biāo)識(shí)號(hào)。2.給進(jìn)程分配空間。3.初始化進(jìn)程控制塊。4.設(shè)
12、置正確的連接。5.創(chuàng)建或擴(kuò)充其他的數(shù)據(jù)結(jié)構(gòu)。 3.12 中斷和陷阱有什么區(qū)別? 中斷與當(dāng)前正在運(yùn)行的進(jìn)程無(wú)關(guān)的某些類(lèi)型的外部事件相關(guān),如完成一次I/O操作。陷阱與當(dāng)前正在運(yùn)行的進(jìn)程所產(chǎn)生的錯(cuò)誤或異常條件相關(guān),如非法的文件訪問(wèn)。 3.13 舉出中斷的三個(gè)例子。 時(shí)鐘終端,I/O終端,內(nèi)存失效。 3.14 模式切換和進(jìn)程切換有什么區(qū)別? 發(fā)生模式切換可以不改變當(dāng)前正處于運(yùn)行態(tài)的進(jìn)程的狀態(tài)。發(fā)生進(jìn)程切換時(shí),一個(gè)正在執(zhí)行的進(jìn)程被中斷,操作系統(tǒng)指定另一個(gè)進(jìn)程為運(yùn)行態(tài)。進(jìn)程切換需要保存更多的狀態(tài)信息。 第4章 線程、對(duì)稱(chēng)多處理和微內(nèi)核 4.1 表3.5列出了在一個(gè)沒(méi)有線程的操作系統(tǒng)中進(jìn)程控
13、制塊的基本元素。對(duì)于多線程系統(tǒng),這些元素中那些可能屬于線程控制塊,那些可能屬于進(jìn)程控制塊? 這對(duì)于不同的系統(tǒng)來(lái)說(shuō)通常是不同的,但一般來(lái)說(shuō),進(jìn)程是資源的所有者,而每個(gè)線程都有它自己的執(zhí)行狀態(tài)。關(guān)于表3.5中的每一項(xiàng)的一些結(jié)論如下:進(jìn)程標(biāo)識(shí):進(jìn)程必須被標(biāo)識(shí),而進(jìn)程中的每一個(gè)線程也必須有自己的ID。處理器狀態(tài)信息:這些信息通常只與進(jìn)程有關(guān)。進(jìn)程控制信息:調(diào)度和狀態(tài)信息主要處于線程級(jí);數(shù)據(jù)結(jié)構(gòu)在兩級(jí)都可出現(xiàn);進(jìn)程間通信和線程間通信都可以得到支持;特權(quán)在兩級(jí)都可以存在;存儲(chǔ)管理通常在進(jìn)程級(jí);資源信息通常也在進(jìn)程級(jí)。 4.2 請(qǐng)列出線程間的模式切換比進(jìn)程間的模式切換開(kāi)銷(xiāo)更低的原因。 包含的狀態(tài)信息更
14、少。 4.3 在進(jìn)程概念中體現(xiàn)出的兩個(gè)獨(dú)立且無(wú)關(guān)的特點(diǎn)是什么? 資源所有權(quán)和調(diào)度/執(zhí)行。 4.4 給出在單用戶(hù)多處理系統(tǒng)中使用線程的四個(gè)例子。 前臺(tái)和后臺(tái)操作,異步處理,加速執(zhí)行和模塊化程序結(jié)構(gòu)。 4.5 哪些資源通常被一個(gè)進(jìn)程中的所有線程共享? 例如地址空間,文件資源,執(zhí)行特權(quán)等。 4.6 列出用戶(hù)級(jí)線程優(yōu)于內(nèi)核級(jí)線程的三個(gè)優(yōu)點(diǎn)。 1.由于所有線程管理數(shù)據(jù)結(jié)構(gòu)都在一個(gè)進(jìn)程的用戶(hù)地址空間中,線程切換不需要內(nèi)核模式的特權(quán),因此,進(jìn)程不需要為了線程管理而切換到內(nèi)核模式,這節(jié)省了在兩種模式間進(jìn)行切換(從用戶(hù)模式到內(nèi)核模式;從內(nèi)核模式返回用戶(hù)模式)的開(kāi)銷(xiāo)。 2.調(diào)用可以是應(yīng)用程序?qū)S?/p>
15、的。一個(gè)應(yīng)用程序可能傾向于簡(jiǎn)單的輪詢(xún)調(diào)度算法,而另一個(gè)應(yīng)用程序可能傾向于基于優(yōu)先級(jí)的調(diào)度算法。調(diào)度算法可以去適應(yīng)應(yīng)用程序,而不會(huì)擾亂底層的操作系統(tǒng)調(diào)度器。 3.用戶(hù)級(jí)線程可以在任何操作系統(tǒng)中運(yùn)行,不需要對(duì)底層內(nèi)核進(jìn)行修改以支持用戶(hù)級(jí)線程。線程庫(kù)是一組供所有應(yīng)用程序共享的應(yīng)用級(jí)軟件包。 4.7 列出用戶(hù)級(jí)線程相對(duì)于內(nèi)核級(jí)線程的兩個(gè)缺點(diǎn)。 1.在典型的操作系統(tǒng)中,許多系統(tǒng)調(diào)用都會(huì)引起阻塞。因此,當(dāng)用戶(hù)級(jí)線程執(zhí)行一個(gè)系統(tǒng)調(diào)用時(shí),不僅這個(gè)線程會(huì)被阻塞,進(jìn)程中的所有線程都會(huì)被阻塞。 2.在純粹的用戶(hù)級(jí)進(jìn)程策略中,一個(gè)多線程應(yīng)用程序不能利用多處理技術(shù)。內(nèi)核一次只把一個(gè)進(jìn)程分配給一個(gè)處理器,因此一次
16、進(jìn)程中只能有一個(gè)線程可以執(zhí)行。 4.8 定義jacketing。 Jacketing通過(guò)調(diào)用一個(gè)應(yīng)用級(jí)的I/O例程來(lái)檢查I/O設(shè)備的狀態(tài),從而將一個(gè)產(chǎn)生阻塞的系統(tǒng)調(diào)用轉(zhuǎn)化為一個(gè)不產(chǎn)生阻塞的系統(tǒng)調(diào)用。 4.9 簡(jiǎn)單定義圖4.8中列出的各種結(jié)構(gòu)。 SIMD:一個(gè)機(jī)器指令控制許多處理部件步伐一致地同時(shí)執(zhí)行。每個(gè)處理部件都有一個(gè)相關(guān)的數(shù)據(jù)存儲(chǔ)空間,因此,每條指令由不同的處理器在不同的數(shù)據(jù)集合上執(zhí)行。 MIMD:一組處理器同時(shí)在不同的數(shù)據(jù)集上執(zhí)行不同的指令序列。主/從:操作系統(tǒng)內(nèi)核總是在某個(gè)特定的處理器上運(yùn)行,其他處理器只用于執(zhí)行用戶(hù)程序,還可能執(zhí)行一些操作系統(tǒng)實(shí)用程序。 SMP:內(nèi)核可以在
17、任何處理器上執(zhí)行,并且通常是每個(gè)處理器從可用的進(jìn)程或線程池中進(jìn)行各自的調(diào)度工作。集群:每個(gè)處理器都有一個(gè)專(zhuān)用存儲(chǔ)器,而且每個(gè)處理部件都是一個(gè)獨(dú)立的計(jì)算機(jī)。 4.10列出SMP操作系統(tǒng)的主要設(shè)計(jì)問(wèn)題。 同時(shí)的并發(fā)進(jìn)程或線程,調(diào)度,同步,存儲(chǔ)器管理,可靠性和容錯(cuò)。 4.11 給出在典型的單體結(jié)構(gòu)操作系統(tǒng)中可以找到且可能是微內(nèi)核操作系統(tǒng)外部子系統(tǒng)中的服務(wù)和功能。 設(shè)備驅(qū)動(dòng)程序,文件系統(tǒng),虛存管理程序,窗口系統(tǒng)和安全服務(wù)。 4.12 列出并簡(jiǎn)單解釋微內(nèi)核設(shè)計(jì)相對(duì)于整體式設(shè)計(jì)的七個(gè)優(yōu)點(diǎn)。 一致接口:進(jìn)程不需要區(qū)分是內(nèi)核級(jí)服務(wù)還是用戶(hù)級(jí)服務(wù),因?yàn)樗蟹?wù)都是通過(guò)消息傳遞提供的。 可擴(kuò)展性:允
18、許增加新的服務(wù)以及在同一個(gè)功能區(qū)域中提供多個(gè)服務(wù)。 靈活性:不僅可以在操作系統(tǒng)中增加新功能,還可以刪減現(xiàn)有的功能,以產(chǎn)生一個(gè)更小、更有效的實(shí)現(xiàn)。 可移植性:所有或者至少大部分處理器專(zhuān)用代碼都在微內(nèi)核中。因此,當(dāng)把系統(tǒng)移植到一個(gè)處理器上時(shí)只需要很少的變化,而且易于進(jìn)行邏輯上的歸類(lèi)。 可靠性:小的微內(nèi)核可以被嚴(yán)格地測(cè)試,它使用少量的應(yīng)用程序編程接口(API),這就為內(nèi)核外部的操作系統(tǒng)服務(wù)產(chǎn)生高質(zhì)量的代碼提供了機(jī)會(huì)。 分布式系統(tǒng)支持:微內(nèi)核通信中消息的方向性決定了它對(duì)分布式系統(tǒng)的支持。 面向?qū)ο蟛僮飨到y(tǒng)環(huán)境:在微內(nèi)核設(shè)計(jì)和操作系統(tǒng)模塊化擴(kuò)展的開(kāi)發(fā)中都可以借助面向?qū)ο蠓椒ǖ脑怼? 4.13
19、解釋微內(nèi)核操作系統(tǒng)可能存在的性能缺點(diǎn)。 通過(guò)微內(nèi)核構(gòu)造和發(fā)送信息、接受應(yīng)答并解碼所花費(fèi)的時(shí)間比一次系統(tǒng)調(diào)用的時(shí)間要多。 4.14列出即使在最小的微內(nèi)核操作系統(tǒng)中也可以找到的三個(gè)功能。 低級(jí)存儲(chǔ)器管理,進(jìn)程間通信(IPC)以及I/O和中斷管理。 4.15在微內(nèi)核操作系統(tǒng)中,進(jìn)程或線程間通信的基本形式是什么? 消息。 第5章 并發(fā)性:互斥和同步 5.1列出與并發(fā)相關(guān)的四種設(shè)計(jì)問(wèn)題 進(jìn)程間的交互,共享資源之間的競(jìng)爭(zhēng),多個(gè)進(jìn)程的同步問(wèn)題,對(duì)進(jìn)程的處理器時(shí)間分配問(wèn)題 5.2列出并發(fā)的三種上下文 多個(gè)應(yīng)用程序,結(jié)構(gòu)化應(yīng)用程序,操作系統(tǒng)結(jié)構(gòu) 5.3執(zhí)行并發(fā)進(jìn)程的最基本要求是什么?
20、加強(qiáng)互斥的能力 5.4列出進(jìn)程間的三種互相知道的程度,并簡(jiǎn)單地給出各自的定義。 進(jìn)程間互相不知道對(duì)方:這是一些獨(dú)立的進(jìn)程,他們不會(huì)一起工作。 進(jìn)程間間接知道對(duì)方:這些進(jìn)程并不需要知道對(duì)方的進(jìn)程ID號(hào),但他們共享訪問(wèn)某些對(duì)象,如一個(gè)I/O緩沖區(qū)。 進(jìn)程間直接知道對(duì)方:這些進(jìn)程可以通過(guò)進(jìn)程ID號(hào)互相通信,用于合作完成某些活動(dòng)。 5.5競(jìng)爭(zhēng)進(jìn)程和合作進(jìn)程進(jìn)程間有什么區(qū)別。 競(jìng)爭(zhēng)進(jìn)程需要同時(shí)訪問(wèn)相同的資源,像磁盤(pán),文件或打印機(jī)。合作進(jìn)程要么共享訪問(wèn)一個(gè)共有的資源,像一個(gè)內(nèi)存訪問(wèn)區(qū),要么就與其他進(jìn)程相互通信,在一些應(yīng)用程序或活動(dòng)上進(jìn)行合作。 5.6列出與競(jìng)爭(zhēng)進(jìn)程相關(guān)的三種控制問(wèn)題,并簡(jiǎn)單地
21、給出各自的定義。 互斥:競(jìng)爭(zhēng)進(jìn)程僅可以訪問(wèn)一個(gè)臨界資源(一次僅有一個(gè)進(jìn)程可以訪問(wèn)臨界資源),并發(fā)機(jī)制必須滿足一次只有一個(gè)進(jìn)程可以訪問(wèn)臨界資源這個(gè)規(guī)則。 死鎖:如果競(jìng)爭(zhēng)進(jìn)程需要唯一的訪問(wèn)多于一個(gè)資源,并且當(dāng)一個(gè)進(jìn)程控制著一個(gè)進(jìn)程,且在等待另一個(gè)進(jìn)程,死鎖可能發(fā)生。 饑餓:一組進(jìn)程的一個(gè)可能會(huì)無(wú)限期地拒絕進(jìn)入到一個(gè)需要資源,因?yàn)槠渌? 成員組成壟斷這個(gè)資源。 5.7列出對(duì)互斥的要求。 1.必須強(qiáng)制實(shí)施互斥:在具有關(guān)于相同資源或共享對(duì)象的臨界區(qū)的所有進(jìn)程中,一次只允許一個(gè)進(jìn)程進(jìn)入臨界區(qū)。 2.一個(gè)在臨界區(qū)停止的進(jìn)程必須不干涉其他進(jìn)程。 3.絕不允許出現(xiàn)一個(gè)需要訪問(wèn)臨界區(qū)的進(jìn)程被無(wú)限延遲
22、的情況,即不會(huì)餓死或饑餓。 4.當(dāng)沒(méi)有進(jìn)程在臨界區(qū)中時(shí),任何需要進(jìn)入臨界區(qū)的進(jìn)程必須能夠立即進(jìn)入。 5.對(duì)相關(guān)進(jìn)程的速度和處理器的數(shù)目沒(méi)有任何要求和限制。 6.一個(gè)進(jìn)程駐留在臨界區(qū)中的時(shí)間是有限的。 5.8在信號(hào)量上可以執(zhí)行什么操作。 1.一個(gè)信號(hào)量可以初始化成非負(fù)數(shù)。 2.wait操作使信號(hào)量減1,如果值為負(fù)數(shù),那么進(jìn)程執(zhí)行wait就會(huì)受阻。3signal操作使信號(hào)量增加1,如果小于或等于0,則被wait操作阻塞的進(jìn)程被解除阻塞。 5.9二元信號(hào)量與一般信號(hào)量有什么區(qū)別。 二元信號(hào)量只能取0或1,而一般信號(hào)量可以取任何整數(shù)。 5.10強(qiáng)信號(hào)量與弱信號(hào)量有什么區(qū)別。 強(qiáng)信號(hào)
23、量要求在信號(hào)量上等待的進(jìn)程按照先進(jìn)先出的規(guī)則從隊(duì)列中移出。弱信號(hào)量沒(méi)有此規(guī)則。 5.11.什么是管程。 管程是由一個(gè)或多個(gè)過(guò)程,一個(gè)初始化序列和局部數(shù)據(jù)組成的軟件模塊。 5.12對(duì)于消息,有阻塞和無(wú)阻塞有什么區(qū)別? 發(fā)送者和接收者任一方阻塞則消息傳遞需要等待,都無(wú)阻塞則不需等待。 5.13通常與讀者-寫(xiě)者問(wèn)題相關(guān)聯(lián)的有哪些條件? 1.任意多的讀進(jìn)程可以同時(shí)讀這個(gè)文件 2.一次只有一個(gè)寫(xiě)進(jìn)程可以往文件中寫(xiě) 3.如果一個(gè)寫(xiě)進(jìn)程正在往文件中寫(xiě)時(shí),則禁止任何讀進(jìn)程讀文件。 第6章 并發(fā)性:死鎖和饑餓 6.1 給出可重用資源和可消費(fèi)資源的例子。 可重用資源:處理器,I/O通
24、道,主存和輔存,設(shè)備以及諸如文件,數(shù)據(jù)庫(kù)和信號(hào)量之類(lèi)的數(shù)據(jù)結(jié)構(gòu)。 可消費(fèi)資源:中斷,信號(hào),消息和I/O緩沖區(qū)中的信息。 6.2 可能發(fā)生死鎖所必須的三個(gè)條件是什么? 互斥,占有且等待,非搶占。 6.3 產(chǎn)生死鎖的第4個(gè)條件是什么? 循環(huán)等待。 6.4 如何防止占有且等待的條件? 可以要求進(jìn)程一次性地請(qǐng)求所有需要的資源,并且阻塞這個(gè)資源直到所有請(qǐng)求都同時(shí)滿足。 6.5 給出防止無(wú)搶占條件的兩種方法。 第一種,如果占有某些資源的一個(gè)進(jìn)程進(jìn)行進(jìn)一步資源請(qǐng)求被拒絕,則該進(jìn)程必須釋放它最初占用的資源,如果有必要,可再次請(qǐng)求這些資源和另外的資源。 第二種,如果一個(gè)進(jìn)程請(qǐng)求當(dāng)前被另一個(gè)進(jìn)
25、程占有的一個(gè)資源,則操作系統(tǒng)可以搶占另一個(gè)進(jìn)程,要求它釋放資源。 6.6 如何防止循環(huán)等待條件? 可以通過(guò)定義資源類(lèi)型的線性順序來(lái)預(yù)防。如果一個(gè)進(jìn)程已經(jīng)分配到了R類(lèi)型的資源,那么它接下來(lái)請(qǐng)求的資源只能是那些排在R類(lèi)型之后的資源類(lèi)型。 6.7 死鎖避免,檢測(cè)和預(yù)防之間的區(qū)別是什么? 死鎖預(yù)防是通過(guò)間接地限制三種死鎖必要條件的至少一個(gè)或是直接地限制循環(huán)等待的發(fā)生來(lái)避免死鎖的出現(xiàn)。死鎖避免允許可能出現(xiàn)的必要條件發(fā)生,但是采取措施確保不會(huì)出現(xiàn)死鎖的情況。而死鎖檢測(cè)允許資源的自由分配,采取周期性的措施來(lái)發(fā)現(xiàn)并處理可能存在的死鎖情況。 第7章 內(nèi)存管理 7.1 內(nèi)存管理需要滿足哪些需求? 重
26、定位、保護(hù)、共享、邏輯組織和物理組織。 7.2為什么需要重定位進(jìn)程的能力? 通常情況下,并不能事先知道在某個(gè)程序執(zhí)行期間會(huì)有哪個(gè)程序駐留在主存中。此外還希望通過(guò)提供一個(gè)巨大的就緒進(jìn)程池,能夠把活動(dòng)進(jìn)程換入和換出主存,以便使處理器的利用率最大化。在這兩種情況下,進(jìn)程在主存中的確切位置是不可預(yù)知的。 7.3為什么不可能在編譯時(shí)實(shí)施內(nèi)存保護(hù)? 由于程序在主存中的位置是不可預(yù)測(cè)的,因而在編譯時(shí)不可能檢查絕對(duì)地址來(lái)確保保護(hù)。并且,大多數(shù)程序設(shè)計(jì)語(yǔ)言允許在運(yùn)行時(shí)進(jìn)行地址的動(dòng)態(tài)計(jì)算(例如,通過(guò)計(jì)算數(shù)組下標(biāo)或數(shù)據(jù)結(jié)構(gòu)中的指針)。因此,必須在運(yùn)行時(shí)檢查進(jìn)程產(chǎn)生的所有存儲(chǔ)器訪問(wèn),以便確保它們只訪問(wèn)了分配給
27、該進(jìn)程的存儲(chǔ)空間。 7.4允許兩個(gè)或多個(gè)進(jìn)程訪問(wèn)進(jìn)程的某一特定區(qū)域的原因是什么? 如果許多進(jìn)程正在執(zhí)行同一程序,則允許每個(gè)進(jìn)程訪問(wèn)該程序的同一個(gè)副本要比讓每個(gè)進(jìn)程有自己?jiǎn)为?dú)的副本更有優(yōu)勢(shì)。同樣,合作完成同一任務(wù)的進(jìn)程可能需要共享訪問(wèn)同一個(gè)數(shù)據(jù)結(jié)構(gòu)。 7.5在固定分區(qū)方案中,使用大小不等的分區(qū)有什么好處? 通過(guò)使用大小不等的固定分區(qū):1.可以在提供很多分區(qū)的同時(shí)提供一到兩個(gè)非常大的分區(qū)。大的分區(qū)允許將很大的進(jìn)程全部載入主存中。2.由于小的進(jìn)程可以被放入小的分區(qū)中,從而減少了內(nèi)部碎片。 7.6內(nèi)部碎片和外部碎片有什么區(qū)別? 內(nèi)部碎片是指由于被裝入的數(shù)據(jù)塊小于分區(qū)大小而導(dǎo)致的分區(qū)內(nèi)部所浪
28、費(fèi)的空間。外部碎片是與動(dòng)態(tài)分區(qū)相關(guān)的一種現(xiàn)象,它是指在所有分區(qū)外的存儲(chǔ)空間會(huì)變成越來(lái)越多的碎片的。 7.7邏輯地址、相對(duì)地址和物理地址間有什么區(qū)別? 邏輯地址是指與當(dāng)前數(shù)據(jù)在內(nèi)存中的物理分配地址無(wú)關(guān)的訪問(wèn)地址,在執(zhí)行對(duì)內(nèi)存的訪問(wèn)之前必須把它轉(zhuǎn)化成物理地址。相對(duì)地址是邏輯地址的一個(gè)特例,是相對(duì)于某些已知點(diǎn)(通常是程序的開(kāi)始處)的存儲(chǔ)單元。物理地址或絕對(duì)地址是數(shù)據(jù)在主存中的實(shí)際位置。 7.8頁(yè)和幀之間有什么區(qū)別? 在分頁(yè)系統(tǒng)中,進(jìn)程和磁盤(pán)上存儲(chǔ)的數(shù)據(jù)被分成大小固定相等的小塊,叫做頁(yè)。而主存被分成了同樣大小的小塊,叫做幀。一頁(yè)恰好可以被裝入一幀中。 7.9頁(yè)和段之間有什么區(qū)別? 分段是細(xì)
29、分用戶(hù)程序的另一種可選方案。采用分段技術(shù),程序和相關(guān)的數(shù)據(jù)被劃分成一組段。盡管有一個(gè)最大段長(zhǎng)度,但并不需要所有的程序的所有段的長(zhǎng)度都相等。 第8章 虛擬內(nèi)存 8.1 簡(jiǎn)單分頁(yè)與虛擬分頁(yè)有什么區(qū)別? 簡(jiǎn)單分頁(yè):一個(gè)程序中的所有的頁(yè)都必須在主存儲(chǔ)器中程序才能正常運(yùn)行,除非使用覆蓋技術(shù)。 擬內(nèi)存分頁(yè):不是程序的每一頁(yè)都必須在主存儲(chǔ)器的幀中來(lái)使程序運(yùn)行,頁(yè)在需要的時(shí)候進(jìn)行讀取。 8.2 解釋什么是抖動(dòng)。 虛擬內(nèi)存結(jié)構(gòu)的震動(dòng)現(xiàn)象,在這個(gè)過(guò)程中處理器大部分的時(shí)間都用于交換塊,而不是執(zhí)行指令。 8.3 為什么在使用虛擬內(nèi)存時(shí),局部性原理是至關(guān)重要的? 可以根據(jù)局部性原理設(shè)計(jì)算法來(lái)避免抖
30、動(dòng)。總的來(lái)說(shuō),局部性原理允許算法預(yù)測(cè)哪一個(gè)當(dāng)前頁(yè)在最近的未來(lái)是最少可能被使用的,并由此就決定候選的替換出的頁(yè)。 8.4 哪些元素是頁(yè)表項(xiàng)中可以找到的元素?簡(jiǎn)單定義每個(gè)元素。 幀號(hào):用來(lái)表示主存中的頁(yè)來(lái)按順序排列的號(hào)碼。 存在位(P):表示這一頁(yè)是否當(dāng)前在主存中。 修改位(M):表示這一頁(yè)在放進(jìn)主存后是否被修改過(guò)。 8.5 轉(zhuǎn)移后備緩沖器的目的是什么? 轉(zhuǎn)移后備緩沖器(TLB)是一個(gè)包含最近經(jīng)常被使用過(guò)的頁(yè)表項(xiàng)的高速緩沖存儲(chǔ)器。它的目的是為了減少?gòu)拇疟P(pán)中恢復(fù)一個(gè)頁(yè)表項(xiàng)所需的時(shí)間。 8.6 簡(jiǎn)單定義兩種可供選擇的頁(yè)讀取策略。 在請(qǐng)求式分頁(yè)中,只有當(dāng)訪問(wèn)到某頁(yè)中的一個(gè)單元時(shí)才將該頁(yè)取
31、入主存。 在預(yù)約式分頁(yè)中,讀取的并不是頁(yè)錯(cuò)誤請(qǐng)求的頁(yè)。 8.7 駐留集管理和頁(yè)替換策略有什么區(qū)別? 駐留集管理主要關(guān)注以下兩個(gè)問(wèn)題:(1)給每個(gè)活動(dòng)進(jìn)程分配多少個(gè)頁(yè)幀。(2)被考慮替換的頁(yè)集是僅限在引起頁(yè)錯(cuò)誤的進(jìn)程的駐留集中選擇還是在主存中所有的頁(yè)幀中選擇。 頁(yè)替換策略關(guān)注的是以下問(wèn)題:在考慮的頁(yè)集中,哪一個(gè)特殊的頁(yè)應(yīng)該被選擇替換。 8.8 FIFO和Clock頁(yè)替換算法有什么區(qū)別? 時(shí)鐘算法與FIFO算法很接近,除了在時(shí)鐘算法中,任何一個(gè)使用位為一的頁(yè)被忽略。 8.9 頁(yè)緩沖實(shí)現(xiàn)的是什么? (1)被替換出駐留集的頁(yè)不久又被訪問(wèn)到時(shí),仍在主存中,減少了一次磁盤(pán)讀寫(xiě)。 (2)被
32、修改的頁(yè)以簇的方式被寫(xiě)回,而不是一次只寫(xiě)一個(gè),這就大大減少了I/O操作的數(shù)目,從而減少了磁盤(pán)訪問(wèn)的時(shí)間。 8.10 為什么不可能把全局替換策略和固定分配策略組合起來(lái)? 固定分配策略要求分配給一個(gè)進(jìn)程的幀的數(shù)目是確定的,當(dāng)一個(gè)進(jìn)程中取入一個(gè)新的頁(yè)時(shí),這個(gè)進(jìn)程駐留頁(yè)集中的一頁(yè)必須被替換出來(lái)(保持分配的幀的數(shù)目不變),這是一種局部替換策略。 8.11 駐留集和工作集有什么區(qū)別? 一個(gè)進(jìn)程的駐留集是指當(dāng)前在主存中的這個(gè)進(jìn)程的頁(yè)的個(gè)數(shù)。一個(gè)進(jìn)程的工作集是指這個(gè)進(jìn)程最近被使用過(guò)的頁(yè)的個(gè)數(shù)。 8.12 請(qǐng)求式清除和預(yù)約式清除有什么區(qū)別? 在請(qǐng)求式清除中,只有當(dāng)一頁(yè)被選擇用于替換時(shí)才被寫(xiě)回輔存;
33、 在預(yù)約式清除中,將這些被修改的多個(gè)頁(yè)在需要用到它們所占據(jù)的頁(yè)幀之前成批的寫(xiě)回輔存。 第9章 單處理器調(diào)度 9.1簡(jiǎn)要描述三種類(lèi)型的處理器調(diào)度。 長(zhǎng)程調(diào)度:決定加入到待執(zhí)行的進(jìn)程池中; 中程調(diào)度:決定加入到部分或全部在主存中的進(jìn)程集合中; 短程調(diào)度:決定哪一個(gè)可用進(jìn)程將被處理器執(zhí)行。 9.2在交互式操作系統(tǒng)中,通常最重要的性能要求是什么? 反應(yīng)時(shí)間 9.3周轉(zhuǎn)時(shí)間和響應(yīng)時(shí)間有什么區(qū)別? 周轉(zhuǎn)時(shí)間是一個(gè)要求花費(fèi)在系統(tǒng)上的包括等待時(shí)間和服務(wù)時(shí)間的總的時(shí)間。響應(yīng)時(shí)間對(duì)一個(gè)交互進(jìn)程,這是指從提交一個(gè)請(qǐng)求到開(kāi)始接受響應(yīng)之間的時(shí)間間隔。通常進(jìn)程在處理該請(qǐng)求的同時(shí),就開(kāi)始給用戶(hù)產(chǎn)生一
34、些輸出。 9.4對(duì)進(jìn)程調(diào)度,較小的優(yōu)先級(jí)值表示較低的優(yōu)先級(jí)還是較高的優(yōu)先級(jí)? 在UNIX和許多其他系統(tǒng)中,大的優(yōu)先級(jí)值表示低優(yōu)先級(jí)進(jìn)程。許多系統(tǒng),比如WINDOWS,剛好相反,大數(shù)值表示高優(yōu)先級(jí)。 9.5搶占式和非搶占式調(diào)度有什么區(qū)別? 非搶占:在這種情況下,一旦進(jìn)程處于運(yùn)行態(tài),他就不斷執(zhí)行直到終止,或者為等待I/O或請(qǐng)求某些操作系統(tǒng)服務(wù)而阻塞自己。 搶占:當(dāng)前正在運(yùn)行的進(jìn)程可能被操作系統(tǒng)中斷,并轉(zhuǎn)移到就緒態(tài)。關(guān)于搶占的決策可能是在一個(gè)新進(jìn)程到達(dá)時(shí),或者在一個(gè)中斷發(fā)生后把一個(gè)被阻塞的進(jìn)程置為就緒態(tài)時(shí),或者基于周期性的時(shí)間中斷。 9.6簡(jiǎn)單定義FCFS調(diào)度。 當(dāng)每個(gè)進(jìn)程就緒后,它加
35、入就緒隊(duì)列。當(dāng)當(dāng)前正在運(yùn)行的進(jìn)程停止執(zhí)行時(shí),選擇在就緒隊(duì)列中存在時(shí)間最長(zhǎng)的進(jìn)程運(yùn)行。 9.7簡(jiǎn)單定義輪轉(zhuǎn)調(diào)度 以一個(gè)周期性間隔產(chǎn)生時(shí)鐘中斷,當(dāng)中斷產(chǎn)生時(shí),當(dāng)前正在運(yùn)行的的進(jìn)程被置于就緒隊(duì)列中,然后基于FCFS策略選擇下一個(gè)就緒作業(yè)運(yùn)行。 9.8簡(jiǎn)單定義最短進(jìn)程優(yōu)先調(diào)度。 這是一個(gè)非搶占的策略,其原則是下一次選擇所需處理時(shí)間最短的進(jìn)程。 9.9簡(jiǎn)單定義最短剩余時(shí)間調(diào)度。 最短剩余時(shí)間是針對(duì)SPN增加了搶占機(jī)制的版本。在這種情況下,調(diào)度器總是選擇預(yù)期剩余時(shí)間最短的進(jìn)程。當(dāng)一個(gè)新進(jìn)程加入到就緒隊(duì)列時(shí),他可能比當(dāng)前運(yùn)行的進(jìn)程具有更短的剩余時(shí)間,因此,只有新進(jìn)程就緒,調(diào)度器就可能搶占當(dāng)前正在
36、運(yùn)行的進(jìn)程。 9.10簡(jiǎn)單定義最高響應(yīng)比優(yōu)先調(diào)度。 在當(dāng)前進(jìn)程完成或被阻塞時(shí),選擇R值最大的就緒進(jìn)程。R=(w+s)/s,w等待處理器的時(shí)間,s期待的服務(wù)時(shí)間。 9.11簡(jiǎn)單定義反饋調(diào)度。 調(diào)度基于搶占原則并且使用動(dòng)態(tài)優(yōu)先級(jí)機(jī)制。當(dāng)一個(gè)進(jìn)程第一次進(jìn)入系統(tǒng)時(shí),它被放置在RQ0。當(dāng)它第一次被搶占后并返回就緒狀態(tài)時(shí),它被防止在RQ1。在隨后的時(shí)間里,每當(dāng)它被搶占時(shí),它被降級(jí)到下一個(gè)低優(yōu)先級(jí)隊(duì)列中。一個(gè)短進(jìn)程很快會(huì)執(zhí)行完,不會(huì)在就緒隊(duì)列中降很多級(jí)。一個(gè)長(zhǎng)進(jìn)程會(huì)逐級(jí)下降。因此,新到的進(jìn)程和短進(jìn)程優(yōu)先于老進(jìn)程和長(zhǎng)進(jìn)程。在每個(gè)隊(duì)列中,除了在優(yōu)先級(jí)最低的隊(duì)列中,都使用簡(jiǎn)單的FCFS機(jī)制。一旦一個(gè)進(jìn)程處
37、于優(yōu)先級(jí)最低的隊(duì)列中,它就不可能再降低,但是會(huì)重復(fù)地返回該隊(duì)列,直到運(yùn)行結(jié)束。 第10章 多處理器和實(shí)時(shí)調(diào)度 10.1 列出并簡(jiǎn)單定義五種不同級(jí)別的同步粒度。 細(xì)粒度:?jiǎn)沃噶盍髦泄逃械牟⑿校? 中等粒度:在一個(gè)單獨(dú)應(yīng)用中的并行處理或多任務(wù)處理; 粗粒度:在多道程序環(huán)境中并發(fā)進(jìn)程的多處理; 非常粗粒度:在網(wǎng)絡(luò)節(jié)點(diǎn)上進(jìn)行分布處理,以形成一個(gè)計(jì)算環(huán)境; 無(wú)約束粒度:多個(gè)無(wú)關(guān)進(jìn)程。 10.2 列出并簡(jiǎn)單定義線程調(diào)度的四種技術(shù)。 加載共享:進(jìn)程不是分配到一個(gè)特定的處理器,而是維護(hù)一個(gè)就緒進(jìn)程的全局隊(duì)列,每個(gè)處理器只要空閑就從隊(duì)列中選擇一個(gè)線程。這里使用術(shù)語(yǔ)加載共享來(lái)區(qū)分這種策略和加
38、載平衡方案,加載平衡是基于一種比較永久的分配方案分配工作的。 組調(diào)度:一組相關(guān)的線程基于一對(duì)一的原則,同時(shí)調(diào)度到一組處理器上運(yùn)行。 專(zhuān)用處理器分配:在程序執(zhí)行過(guò)程中,每個(gè)程序被分配給一組處理器,處理器的數(shù)目與程序中的線程的數(shù)目相等。當(dāng)程序終止是,處理器返回到總的處理器池中,可供分配給另一個(gè)程序。 動(dòng)態(tài)調(diào)度:在執(zhí)行期間,進(jìn)程中線程的數(shù)目可以改變。 10.3 列出并簡(jiǎn)單定義三種版本的負(fù)載分配。 先來(lái)先服務(wù)(FCFS):當(dāng)一個(gè)作業(yè)到達(dá)時(shí),它的所有線程都被連續(xù)地放置在共享隊(duì)列末尾。當(dāng)一個(gè)處理器變得空閑時(shí),它選擇下一個(gè)就緒線程執(zhí)行,直到完成或阻塞。 最少線程數(shù)優(yōu)先:共享就緒隊(duì)列被組織成一個(gè)優(yōu)
39、先級(jí)隊(duì)列,如果一個(gè)作業(yè)包含的未調(diào)度線程數(shù)目最少,則給它指定最高的優(yōu)先級(jí)。具有同等優(yōu)先級(jí)的隊(duì)列按作業(yè)到達(dá)的順序排隊(duì)。和FCFS一樣,被調(diào)度的線程一直運(yùn)行到完成或阻塞。 可搶占的最少線程數(shù)優(yōu)先:最高的的優(yōu)先級(jí)給予包含的未被調(diào)度的線程數(shù)目最少的作業(yè)。剛到達(dá)的作業(yè)如果包含的線程數(shù)目少于正在執(zhí)行的作業(yè),它將搶占屬于這個(gè)被調(diào)度作業(yè)的線程。 10. 硬實(shí)時(shí)任務(wù)和軟實(shí)時(shí)任務(wù)有什么區(qū)別? 硬實(shí)時(shí)任務(wù)指必須滿足最后期限的限制,否則會(huì)給系統(tǒng)帶來(lái)不可接受的破壞或者致命的錯(cuò)誤。 軟實(shí)時(shí)任務(wù)也有一個(gè)與之相關(guān)聯(lián)的最后期限,并希望能滿足這個(gè)期限的要求,但是這并不是強(qiáng)制的,即使超過(guò)了最后期限,調(diào)度和完成這個(gè)任務(wù)仍然是有
40、意義的。 10.5 周期性實(shí)時(shí)任務(wù)和非周期性實(shí)時(shí)任務(wù)有什么區(qū)別? 非周期任務(wù)有一個(gè)必須結(jié)束或開(kāi)始的最后期限,或者有一個(gè)關(guān)于開(kāi)始時(shí)間和結(jié)束時(shí)間的約束。而對(duì)于周期任務(wù),這個(gè)要求描述成“每隔周期T一次”或“每隔T個(gè)單位”。 10.6 列出并簡(jiǎn)單定義對(duì)實(shí)時(shí)操作系統(tǒng)的五方面的要求。 可確定性:在某中程度上是指它可以按固定的、預(yù)先確定的時(shí)間或時(shí)間間隔執(zhí)行操作。 可響應(yīng)性:它關(guān)注的是在知道中斷之后操作系統(tǒng)未中斷提供服務(wù)的時(shí)間 用戶(hù)控制:用戶(hù)應(yīng)該能夠區(qū)分硬實(shí)時(shí)任務(wù)和軟實(shí)時(shí)任務(wù),并且在每一類(lèi)中確定相對(duì)優(yōu)先級(jí)。實(shí)時(shí)系統(tǒng)還允許用戶(hù)指定一些特性,例如使用分頁(yè)還是進(jìn)程交換、哪一個(gè)進(jìn)程必須常駐主存、使用何種磁
41、盤(pán)算法、不同的優(yōu)先級(jí)的進(jìn)程各有哪些權(quán)限等。 可靠性 :可靠性必須提供這樣一種方式,以繼續(xù)滿足實(shí)時(shí)最后期限。 故障弱化操作:故障弱化操作指系統(tǒng)在故障時(shí)盡可能多的保存其性能和數(shù)據(jù)的能力。 10.7列出并簡(jiǎn)單定義四類(lèi)實(shí)時(shí)調(diào)度算法。 靜態(tài)表驅(qū)動(dòng)法:執(zhí)行關(guān)于可行調(diào)度的靜態(tài)分析。分析的結(jié)果是一個(gè)調(diào)度,它用于確定在運(yùn)行時(shí)一個(gè)任務(wù)何時(shí)必須開(kāi)始執(zhí)行。 靜態(tài)優(yōu)先級(jí)驅(qū)動(dòng)搶占法:同樣,執(zhí)行一個(gè)靜態(tài)分析,但是沒(méi)有制定調(diào)度,而且用于給任務(wù)指定優(yōu)先級(jí),使得可以使用傳統(tǒng)的優(yōu)先級(jí)驅(qū)動(dòng)的搶占式調(diào)度器。 基于動(dòng)態(tài)規(guī)劃調(diào)度法:在運(yùn)行是動(dòng)態(tài)地確定可行性,而不是在開(kāi)始運(yùn)行前離線的確定(靜態(tài))。一個(gè)到達(dá)的任務(wù),只有當(dāng)能夠滿足它
42、的時(shí)間約束時(shí),才可以被接受執(zhí)行??尚行苑治龅慕Y(jié)果是一個(gè)調(diào)度或規(guī)劃,可用于確定何時(shí)分派這個(gè)任務(wù)。 動(dòng)態(tài)盡力調(diào)度法:不執(zhí)行可行性分析。系統(tǒng)試圖滿足所有的最后期限,并終止任何已經(jīng)開(kāi)始運(yùn)行但錯(cuò)過(guò)最后期限的進(jìn)程。 10.8關(guān)于一個(gè)任務(wù)的哪些信息在實(shí)時(shí)調(diào)度是非常有用? 就緒時(shí)間:任務(wù)開(kāi)始準(zhǔn)備執(zhí)行的時(shí)間。對(duì)于重復(fù)或周期性的任務(wù),這實(shí)際上是一個(gè)事先知道的時(shí)間序列。而對(duì)于非周期性的任務(wù),或者也事先知道這個(gè)時(shí)間,或者操作系統(tǒng)僅僅知道什么時(shí)候任務(wù)真正就緒。 啟動(dòng)最后期限:任務(wù)必須開(kāi)始的時(shí)間。 完成最后期限:任務(wù)必須完成的時(shí)間。典型的實(shí)時(shí)應(yīng)用程序或者有啟動(dòng)最后期限,或者有完成最后期限,但不會(huì)兩者都存在。
43、處理時(shí)間:從執(zhí)行任務(wù)直到完成任務(wù)所需的時(shí)間。在某些情況下,可以提供這個(gè)時(shí)間,而在另外一些情況下,操作系統(tǒng)度量指數(shù)平均值。其他調(diào)度系統(tǒng)沒(méi)有使用這個(gè)信息。 資源需求:任務(wù)在執(zhí)行過(guò)程中所需的資源集合(處理器以外的資源)。 優(yōu)先級(jí):度量任務(wù)的相對(duì)重要性。硬實(shí)時(shí)任務(wù)可能具有絕對(duì)的優(yōu)先級(jí),因?yàn)槿绻e(cuò)過(guò)最后期限則會(huì)導(dǎo)致系統(tǒng)失敗。如果系統(tǒng)無(wú)論如何也要繼續(xù)運(yùn)行,則硬實(shí)時(shí)任務(wù)和軟實(shí)時(shí)任務(wù)可以被指定相關(guān)的優(yōu)先級(jí),以指導(dǎo)調(diào)度器。 子任務(wù)結(jié)構(gòu):一個(gè)任務(wù)可以分解成一個(gè)必須執(zhí)行的子任務(wù)和一個(gè)可選的子任務(wù)。只有必須執(zhí)行的子任務(wù)擁有硬最后期限。 第11章 I/O管理和磁盤(pán)調(diào)度 11.1列出并簡(jiǎn)單定義執(zhí)行I/O的三
44、種技術(shù)。 可編程I/O:處理器代表進(jìn)程給I/O模塊發(fā)送給一個(gè)I/O命令,該進(jìn)程進(jìn)入忙等待,等待操作的完成,然后才可以繼續(xù)執(zhí)行。 中斷驅(qū)動(dòng)I/O:處理器代表進(jìn)程向I/O模塊發(fā)送一個(gè)I/O命令,然后繼續(xù)執(zhí)行后續(xù)指令,當(dāng)I/O模塊完成工作后,處理器被該模塊中斷。如果該進(jìn)程不需要等待I/O完成,則后續(xù)指令可以仍是該進(jìn)程中的指令,否則,該進(jìn)程在這個(gè)中斷上被掛起,處理器執(zhí)行其他工作。 直接存儲(chǔ)器訪問(wèn)(DMA):一個(gè)DMA模塊控制主存和I/O模塊之間的數(shù)據(jù)交換。為傳送一塊數(shù)據(jù),處理器給DMA模塊發(fā)送請(qǐng)求,只有當(dāng)整個(gè)數(shù)據(jù)塊傳送完成后,處理器才被中斷。 11.2邏輯I/O和設(shè)備I/O有什么區(qū)別? 邏輯
45、I/O:邏輯I/O模塊把設(shè)備當(dāng)作一個(gè)邏輯資源來(lái)處理,它并不關(guān)心實(shí)際控制設(shè)備的細(xì)節(jié)。邏輯I/O模塊代表用戶(hù)進(jìn)程管理的一般I/O功能,允許它們根據(jù)設(shè)備標(biāo)識(shí)符以及諸如打開(kāi)、關(guān)閉、讀、寫(xiě)之類(lèi)的簡(jiǎn)單命令與設(shè)備打交道。 設(shè)備I/O:請(qǐng)求的操作和數(shù)據(jù)(緩沖的數(shù)據(jù)、記錄等)被轉(zhuǎn)換成適當(dāng)?shù)腎/O指令序列、通道命令和控制器命令??梢允褂镁彌_技術(shù),以提高使用率。 11.3面向塊的設(shè)備和面向流的設(shè)備有什么區(qū)別?請(qǐng)舉例說(shuō)明。 面向塊的設(shè)備將信息保存在塊中,塊的大小通常是固定的,傳輸過(guò)程中一次傳送一塊。通常可以通過(guò)塊號(hào)訪問(wèn)數(shù)據(jù)。磁盤(pán)和磁帶都是面向塊的設(shè)備。 面向流的設(shè)備以字節(jié)流的方式輸入輸出數(shù)據(jù),其末使用塊結(jié)構(gòu)。
46、終端、打印機(jī)通信端口、鼠標(biāo)和其他指示設(shè)備以及大多數(shù)非輔存的其他設(shè)備,都屬于面向流的設(shè)備。 11.4為什么希望用雙緩沖區(qū)而不是單緩沖區(qū)來(lái)提高I/O的性能? 雙緩沖允許兩個(gè)操作并行處理,而不是依次處理。典型的,在一個(gè)進(jìn)程往一個(gè)緩沖區(qū)中傳送數(shù)據(jù)(從這個(gè)緩沖區(qū)中取數(shù)據(jù))的同時(shí),操作系統(tǒng)正在清空(或者填充)另一個(gè)緩沖區(qū)。 11.5在磁盤(pán)讀或?qū)憰r(shí)有哪些延遲因素? 尋道時(shí)間,旋轉(zhuǎn)延遲,傳送時(shí)間 11.6簡(jiǎn)單定義圖11.7中描述的磁盤(pán)調(diào)度策略。 FIFO:按照先來(lái)先服務(wù)的順序處理隊(duì)列中的項(xiàng)目。 SSTF:選擇使磁頭臂從當(dāng)前位置開(kāi)始移動(dòng)最少的磁盤(pán)I/O請(qǐng)求。 SCAN:磁頭臂僅僅沿一個(gè)方向移動(dòng),
47、并在途中滿足所有未完成的請(qǐng)求,直到它到達(dá)這個(gè)方向上最后一個(gè)磁道,或者在這個(gè)方向上沒(méi)有其他請(qǐng)求為止。接著反轉(zhuǎn)服務(wù)方向,沿相反方向掃描,同樣按順序完成所有請(qǐng)求。 C-SCAN:類(lèi)似于SCAN, 11.7簡(jiǎn)單定義圖7層RAID。 0:非冗余 1:被鏡像;每個(gè)磁盤(pán)都有一個(gè)包含相同數(shù)據(jù)的鏡像磁盤(pán)。 2:通過(guò)漢明碼實(shí)現(xiàn)冗余;對(duì)每個(gè)數(shù)據(jù)磁盤(pán)中的相應(yīng)都計(jì)算一個(gè)錯(cuò)誤校正碼,并且這個(gè)碼位保存在多個(gè)奇偶校驗(yàn)磁盤(pán)中相應(yīng)的文件。 3:交錯(cuò)位奇偶校驗(yàn);類(lèi)似于第二層,不同之處在于RAID3為所有數(shù)據(jù)磁盤(pán)中同一位置的位的集合計(jì)算一個(gè)簡(jiǎn)單的奇偶校驗(yàn)位,而不是錯(cuò)誤校正碼。 4:交錯(cuò)塊分布奇偶校驗(yàn);對(duì)每個(gè)數(shù)據(jù)磁盤(pán)中相
48、應(yīng)的條帶計(jì)算一個(gè)逐位奇偶。 5:交錯(cuò)塊分布奇偶校驗(yàn);類(lèi)似于第四層,但把奇偶校驗(yàn)條帶分布在所有磁盤(pán)中。 6:交錯(cuò)塊雙重分布奇偶校驗(yàn);兩種不同的奇偶校驗(yàn)計(jì)算保存在不同磁盤(pán)的不同塊中。 11.8典型的磁盤(pán)扇區(qū)大小是多少? 512比特 第12章 文件管理 12.1域和記錄有什么不同? 域(field)是基本數(shù)據(jù)單位。一個(gè)域包含一個(gè)值。 記錄(record)是一組相關(guān)的域的集合 ,它可以看做是應(yīng)用程序的一個(gè)單元。 12.2文件和數(shù)據(jù)庫(kù)有什么不同? 文件(file)是一組相似記錄的集合,它被用戶(hù)和應(yīng)用程序看做是一個(gè)實(shí)體,并可以通過(guò)名字訪問(wèn)。 數(shù)據(jù)庫(kù)(database)是一組相關(guān)的數(shù)據(jù)
49、集合,它的本質(zhì)特征是數(shù)據(jù)元素間存在著明確的關(guān)系,并且可供不同的應(yīng)用程序使用。 12.3什么是文件管理系統(tǒng)? 文件管理系統(tǒng)是一組系統(tǒng)軟件,為使用文件的用戶(hù)和應(yīng)用程序提供服務(wù)。 12.4選擇文件組織時(shí)的重要原則是什么? 訪問(wèn)快速,易于修改,節(jié)約存儲(chǔ)空間,維護(hù)簡(jiǎn)單,可靠性。 12.5列出并簡(jiǎn)單定義五種文件組織。 堆是最簡(jiǎn)單的文件組織形式。數(shù)據(jù)按它們到達(dá)的順序被采集,每個(gè)記錄由一串?dāng)?shù)據(jù)組成。 順序文件是最常用的文件組織形式。在這類(lèi)文件中,每個(gè)記錄都使用一種固定的格式。所有記錄都具有相同的長(zhǎng)度,并且由相同數(shù)目、長(zhǎng)度固定的域按特定的順序組成。由于每個(gè)域的長(zhǎng)度和位置已知,因此只需要保存各個(gè)域的
50、值,每個(gè)域的域名和長(zhǎng)度是該文件結(jié)構(gòu)的屬性。 索引順序文件保留了順序文件的關(guān)鍵特征:記錄按照關(guān)鍵域的順序組織起來(lái)。但它還增加了兩個(gè)特征:用于支持隨機(jī)訪問(wèn)的文件索引和溢出文件。索引提供了快速接近目標(biāo)記錄的查找能力。溢出文件類(lèi)似于順序文件中使用的日志文件,但是溢出文件中的記錄可以根據(jù)它前面記錄的指針進(jìn)行定位。 索引文件:只能通過(guò)索引來(lái)訪問(wèn)記錄。其結(jié)果是對(duì)記錄的放置位置不再有限制,只要至少有一個(gè)索引的指針指向這條記錄即可。此外,還可以使用長(zhǎng)度可變的記錄。 直接文件或散列文件:直接文件使用基于關(guān)鍵字的散列。 12.6為什么在索引順序文件中查找一個(gè)記錄的平均搜索時(shí)間小于在順序文件中的平均搜索時(shí)間?
51、 在順序文件中,查找一個(gè)記錄是按順序檢測(cè)每一個(gè)記錄直到有一個(gè)包含符合條件的關(guān)鍵域值的記錄被找到。索引順序文件提供一個(gè)執(zhí)行最小窮舉搜索的索引結(jié)構(gòu)。 12.7對(duì)目錄執(zhí)行的典型操作有哪些? 搜索,創(chuàng)建文件,刪除文件,顯示目錄,修改目錄。 12.8路徑名和工作目錄有什么關(guān)系? 路徑名是由一系列從根目錄或主目錄向下到各個(gè)分支,最后直到該文件的路徑中的目錄名和最后到達(dá)的文件名組成。工作目錄是一個(gè)這樣的目錄,它是含有用戶(hù)正在使用的當(dāng)前目錄的樹(shù)形結(jié)構(gòu)。 12.9可以授予或拒絕的某個(gè)特定用戶(hù)對(duì)某個(gè)特定文件的訪問(wèn)權(quán)限通常有哪些? 無(wú)(none),知道(knowledge),執(zhí)行(execution)
52、,讀(reading),追加(appending),更新(updating),改變保護(hù)(changing protection),刪除(deletion)。 12.10列出并簡(jiǎn)單定義三種組塊方式。 固定組塊(fixed blocking):使用固定長(zhǎng)度的記錄,并且若干條完整的記錄被保存在一個(gè)塊中。在每個(gè)塊的末尾可能會(huì)有一些未使用的空間,稱(chēng)為內(nèi)部碎片。 可變長(zhǎng)度跨越式組塊(variable-length spanned blocking):使用長(zhǎng)度可變的記錄,并且緊縮到塊中,使得塊中沒(méi)有未使用空間。因此,某些記錄可能會(huì)跨越兩個(gè)塊,通過(guò)一個(gè)指向后繼塊的指針連接。 可變長(zhǎng)度非跨越式組塊(va
53、riable-length unspanned blocking):使用可變長(zhǎng)度的記錄,但并不采用跨越的方式。如果下一條記錄比塊中剩余的未使用空間大,則無(wú)法使用這一部分,因此在大多數(shù)塊中都會(huì)有未使用的空間。 12.11列出并簡(jiǎn)單定義三種文件分配方法。 連續(xù)分配是指在創(chuàng)建文件時(shí),給文件分配一組連續(xù)的塊。鏈?zhǔn)椒峙浠趩蝹€(gè)的塊,鏈中的每一塊都包含指向下一塊的指針。索引分配:每個(gè)文件在文件分配表中有一個(gè)一級(jí)索引,分配給該文件的每個(gè)分區(qū)在索引中都有一個(gè)表項(xiàng)。 第13章 網(wǎng) 絡(luò) 13.1網(wǎng)絡(luò)訪問(wèn)層的主要功能是什么? 網(wǎng)絡(luò)層主要關(guān)注在兩個(gè)端系統(tǒng)(服務(wù)器、工作站)之間的數(shù)據(jù)交換,以及端系統(tǒng)間的物理網(wǎng)
54、絡(luò)。 13.2傳輸層的任務(wù)是什么? 傳輸層關(guān)注的是數(shù)據(jù)的可靠性和保證數(shù)據(jù)能正確到達(dá)接收端應(yīng)用程序。 13.3什么是協(xié)議? 協(xié)議是定義了用來(lái)管理兩個(gè)單元間進(jìn)行數(shù)據(jù)交換的一系列規(guī)則的集合。 13.4什么是協(xié)議體系結(jié)構(gòu)? 這是一種實(shí)現(xiàn)通信功能的軟件結(jié)構(gòu)。典型地,協(xié)議結(jié)構(gòu)包含了一個(gè)分層化的協(xié)議集,并且每個(gè)層中有一個(gè)或多個(gè)協(xié)議。 13.5什么是TCP/IP? 傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)是兩個(gè)最初為網(wǎng)際互連提供低層支持而設(shè)計(jì)的協(xié)議。TCP/IP協(xié)也被廣泛應(yīng)用于涉及由美國(guó)防衛(wèi)部門(mén)和因特爾團(tuán)體發(fā)展的比較廣泛的協(xié)議集。 13.6使用套接字接口的目的是什么? 套接字接口是一個(gè)能夠
55、編寫(xiě)程序的API,從而利用TCP/IP 協(xié)議程序建立一個(gè)用戶(hù)端和服務(wù)器之間的通信。 第14章 分布式處理、客戶(hù)/服務(wù)器和集群 14.1什么是客戶(hù)/服務(wù)器計(jì)算? 客戶(hù)/服務(wù)器計(jì)算是一個(gè)網(wǎng)絡(luò)環(huán)境,在這個(gè)網(wǎng)絡(luò)環(huán)境中包含著客戶(hù)機(jī)和服務(wù)器,并由服務(wù)器來(lái)響應(yīng)客戶(hù)機(jī)的請(qǐng)求。 14.2客戶(hù)/服務(wù)器計(jì)算與任何其他形式的分布式數(shù)據(jù)處理的區(qū)別是什么? 1、在用戶(hù)的本地系統(tǒng)上為該用戶(hù)提供界面友好的應(yīng)用程序,這樣做可使系統(tǒng)具有更高的可靠性。這使得用戶(hù)可以在很大程度上控制對(duì)計(jì)算機(jī)的使用方式和時(shí)間,并使得部門(mén)級(jí)管理者具有響應(yīng)本地需求的能力。 2、盡管應(yīng)用是分散開(kāi)的,但仍然強(qiáng)調(diào)公司數(shù)據(jù)庫(kù)的集中以及很多網(wǎng)絡(luò)管理
56、和使用功能的集中。這使公司的管理者能夠?qū)τ?jì)算信息系統(tǒng)的投資總額進(jìn)行總體控制,并提供互操作,以使多系統(tǒng)能夠配合起來(lái)。同時(shí),減少了各部門(mén)和單位在維護(hù)這些復(fù)雜的計(jì)算機(jī)設(shè)施時(shí)的開(kāi)銷(xiāo),使他們能夠選擇他們需要的各種類(lèi)型的機(jī)器和接口來(lái)訪問(wèn)那些數(shù)據(jù)和信息。 3、對(duì)于用戶(hù)組織和廠商來(lái)說(shuō),他們有一個(gè)共同的承諾事項(xiàng),即使系統(tǒng)開(kāi)放和模塊化。這意味著用戶(hù)在選擇產(chǎn)品和混和使用來(lái)自眾多廠商的設(shè)備時(shí)具有很多選擇。 4、網(wǎng)絡(luò)互聯(lián)是操作的基礎(chǔ),網(wǎng)絡(luò)管理和網(wǎng)絡(luò)安全在組織和操作信息系統(tǒng)中具有很高的優(yōu)先權(quán)。 14.3像TCP/IP這樣的通信結(jié)構(gòu)在客戶(hù)/服務(wù)器計(jì)算環(huán)境中的作用是什么? 它是使客戶(hù)端和服務(wù)器能夠協(xié)同工作的通信軟件。
57、 14.4討論將應(yīng)用程序定位在客戶(hù)上、服務(wù)器上或分開(kāi)定位在客戶(hù)和服務(wù)器上的基本原理。 基于服務(wù)器的處理:這種配置的基本原理是用戶(hù)工作站最適宜于提供良好的用戶(hù)界面,并且數(shù)據(jù)庫(kù)和應(yīng)用程序很容易在中心系統(tǒng)上維護(hù)。盡管用戶(hù)獲得了良好界面的好處,但是,這種配置類(lèi)型并不總能有效提高處理效率或系統(tǒng)支持的實(shí)際商業(yè)功能上有本質(zhì)的改變。基于客戶(hù)的處理:它使用戶(hù)能夠使用適應(yīng)本地需要的應(yīng)用。合作處理:這種配置類(lèi)型可以比其他客戶(hù)/服務(wù)器方式為用戶(hù)提供更高的生產(chǎn)效率和更高的網(wǎng)絡(luò)效率。 14.5什么是胖客戶(hù)和瘦客戶(hù),兩種方法在基本原理上的差別是什么? 胖客戶(hù):這是基于客戶(hù)的處理,而大部分的軟件都集中在客戶(hù)端。胖客戶(hù)
58、模型的主要優(yōu)點(diǎn)是它充分利用了桌面功能,分擔(dān)了服務(wù)器上的應(yīng)用處理并使它們更加有效,不容易產(chǎn)生瓶頸。 瘦客戶(hù):這是基于服務(wù)器的處理,而大部分的軟件都集中在服務(wù)器。這種方式更近似地模擬了傳統(tǒng)的以主機(jī)為中心的方式,常常是使將公司范圍的應(yīng)用程序從大型機(jī)環(huán)境遷移到分布式環(huán)境的途徑。 14.6給出將pros和cons用于胖客戶(hù)和瘦客戶(hù)策略的建議。 胖客戶(hù):胖客戶(hù)模型的主要優(yōu)點(diǎn)是它充分利用了桌面功能,分擔(dān)了服務(wù)器上的應(yīng)用處理并使它們更加有效,不容易產(chǎn)生瓶頸。新增加的功能很快就超出了桌面機(jī)器的處理能力,迫使公司進(jìn)行升級(jí)。如果模型擴(kuò)充超出了部門(mén)的界限,合并了很多用戶(hù),則公司必須安裝高容量局域網(wǎng)來(lái)支持在瘦服務(wù)
59、器和胖客戶(hù)之間進(jìn)行大量的傳輸。最后,維護(hù)、升級(jí)或替換分布于數(shù)十臺(tái)或數(shù)百臺(tái)桌面機(jī)的應(yīng)用程序?qū)⒆兊梅浅@щy。瘦客戶(hù):這種方式更近似地模擬了傳統(tǒng)的以主機(jī)為中心的方式,常常是使將公司范圍的應(yīng)用程序從大型機(jī)環(huán)境遷移到分布式環(huán)境的途徑。但是它不能提供和胖客戶(hù)策略一樣的靈活性。 14.7解釋三層客戶(hù)/服務(wù)器體系結(jié)構(gòu)的基本原理。 中間層機(jī)器基本上是位于用戶(hù)客戶(hù)和很多后端數(shù)據(jù)庫(kù)服務(wù)器之間的網(wǎng)關(guān)。中間層機(jī)器能夠轉(zhuǎn)換協(xié)議,將對(duì)一種類(lèi)型的數(shù)據(jù)庫(kù)查詢(xún)映像為另一種類(lèi)型數(shù)據(jù)庫(kù)的查詢(xún)。另外,中間層機(jī)器能夠融合來(lái)自不同數(shù)據(jù)源的結(jié)果。最后,中間層機(jī)器因介于兩個(gè)層次之間而可以充當(dāng)桌面應(yīng)用程序和后端應(yīng)用程序之間的網(wǎng)關(guān)。 14.
60、8什么是中間件? 中間件是在上層應(yīng)用程序和下層通信軟件和操作系統(tǒng)之間使用標(biāo)準(zhǔn)的編程接口和協(xié)議。它提供統(tǒng)一的方式和方法來(lái)跨越各種平臺(tái)訪問(wèn)系統(tǒng)資源。 14.9既然具有像TCP/IP這樣的標(biāo)準(zhǔn),為什么還需要中間件? TCP/IP不提供API和中間層協(xié)定來(lái)支持應(yīng)用于不同的硬件和操作系統(tǒng)的多種應(yīng)用程序平臺(tái)。 14.10列出消息傳遞的阻塞原語(yǔ)和無(wú)阻塞原語(yǔ)的優(yōu)缺點(diǎn)。 無(wú)阻塞原語(yǔ)為進(jìn)程提供了對(duì)消息傳遞機(jī)制高效而靈活的使用,這種方法的缺點(diǎn)是難于測(cè)試和調(diào)試使用這些原語(yǔ)的程序。問(wèn)題的不可再現(xiàn)性與時(shí)間順序相關(guān)性往往導(dǎo)致產(chǎn)生很多奇怪而麻煩的問(wèn)題。阻塞原語(yǔ)有與無(wú)阻塞原語(yǔ)相反的優(yōu)缺點(diǎn)。 14.11列出遠(yuǎn)程過(guò)程調(diào)
61、用的非永久性和永久性綁定的優(yōu)缺點(diǎn)。 非永久綁定:因?yàn)檫B接需要維持兩端的狀態(tài)信息,因此需要消耗資源,非永久綁定類(lèi)型用于保存這些資源。另一方面,建立連接所帶來(lái)的開(kāi)銷(xiāo)使非永久綁定對(duì)同一個(gè)調(diào)用者頻繁調(diào)用遠(yuǎn)程過(guò)程的情況不太適用。 永久綁定:對(duì)于對(duì)遠(yuǎn)程過(guò)程進(jìn)行多次重復(fù)調(diào)用的應(yīng)用程序,永久綁定保持著邏輯連接,并支持使用同一連接進(jìn)行一系列的調(diào)用和返回。 14.12列出同步遠(yuǎn)程過(guò)程調(diào)用和異步遠(yuǎn)程過(guò)程調(diào)用的優(yōu)缺點(diǎn)。 同步遠(yuǎn)程過(guò)程調(diào)用易于理解和編程,因?yàn)樗男袨槭强梢灶A(yù)期的。然而,它未能發(fā)揮分布式應(yīng)用中固有的全部并行性。這就限制了分布式應(yīng)用所能具有的交互性,降低了性能。為了提供更大的靈活性,各種異步遠(yuǎn)程過(guò)程
62、調(diào)用機(jī)制已經(jīng)得到實(shí)現(xiàn),以獲得更大程度的并行性而同時(shí)又保留了遠(yuǎn)程過(guò)程調(diào)用的通俗性和簡(jiǎn)易性。異步遠(yuǎn)程過(guò)程調(diào)用并不阻塞調(diào)用者,應(yīng)答也可以在需要它們時(shí)接收到,這使客戶(hù)在本地的執(zhí)行可以與對(duì)服務(wù)器的調(diào)用并行進(jìn)行。 14.13列出并簡(jiǎn)短定義四種不同的構(gòu)建集群的方法。 被動(dòng)等待:當(dāng)主服務(wù)器出現(xiàn)故障時(shí),由從服務(wù)器來(lái)接管。 分離服務(wù)器:各服務(wù)器具有獨(dú)自的磁盤(pán),數(shù)據(jù)可連續(xù)地從主服務(wù)器復(fù)制至從服務(wù)器。 各服務(wù)器連接到磁盤(pán):所有服務(wù)器都連接到同一磁盤(pán),但每臺(tái)服務(wù)器仍擁有自己的磁盤(pán),一旦某臺(tái)服務(wù)器發(fā)生故障,則其磁盤(pán)被其他服務(wù)器接管。 共享磁盤(pán):多臺(tái)服務(wù)器同時(shí)共享對(duì)磁盤(pán)的訪問(wèn)。 第15章 分布式進(jìn)程管理
63、15.1討論實(shí)現(xiàn)進(jìn)程遷移的原因。 負(fù)載共享:通過(guò)將進(jìn)程從負(fù)載較重的系統(tǒng)遷移到負(fù)載較輕的系統(tǒng),負(fù)載就會(huì)得到平衡,從而提高整體性能。通信性能:可以將交互密集的多個(gè)進(jìn)程移動(dòng)到同一節(jié)點(diǎn)上,以減少因?yàn)樗鼈冎g的交互而帶來(lái)的通信開(kāi)銷(xiāo)。同樣,當(dāng)一個(gè)進(jìn)程在某些文件或某組文件上執(zhí)行數(shù)據(jù)分析,且文件的大小比進(jìn)程要大很多時(shí),將該進(jìn)程移動(dòng)到數(shù)據(jù)端也許是更有利的??捎眯裕盒枰L(zhǎng)時(shí)間運(yùn)行的進(jìn)程,在得到錯(cuò)誤的預(yù)先通知時(shí),或者在預(yù)定的關(guān)機(jī)時(shí)間之前,為了能夠存活下來(lái),可能需要遷移到其他機(jī)器中。如果操作系統(tǒng)提供了這樣的通知,則那些需要繼續(xù)運(yùn)行的進(jìn)程可以遷移到另一個(gè)系統(tǒng)上,或者保證在稍后的某個(gè)時(shí)間在當(dāng)前系統(tǒng)上能重新啟動(dòng)。特殊功能
64、的使用:進(jìn)程的遷移可以充分利用特定節(jié)點(diǎn)上獨(dú)特的硬件或軟件功能。 15.2在進(jìn)程遷移過(guò)程中,進(jìn)程地址空間是如何處理的? 下列策略可能被采用:Eager(all):在遷移時(shí)轉(zhuǎn)移整個(gè)地址空間。 預(yù)先復(fù)制(precopy):進(jìn)程繼續(xù)在源節(jié)點(diǎn)上執(zhí)行,而地址空間已經(jīng)復(fù)制到了目標(biāo)節(jié)點(diǎn)上。在預(yù)先復(fù)制的過(guò)程中,源節(jié)點(diǎn)上的某些頁(yè)有可能又被修改,這些頁(yè)必須被復(fù)制第二次。 Eager(dirty):僅僅轉(zhuǎn)移那些位于主存中且已被修改了的地址空間的頁(yè)。虛地址空間的所有其他塊將在需要時(shí)才轉(zhuǎn)移。 基于引用的復(fù)制(copy-on-reference):這是Eager(dirty)的變體,只有在引用某頁(yè)時(shí),該頁(yè)才被取入
65、。 刷新(flushing):通過(guò)把臟頁(yè)寫(xiě)回磁盤(pán),該進(jìn)程的頁(yè)可以從源機(jī)器的主存中清除。這樣,在需要時(shí)可以從磁盤(pán)訪問(wèn)到頁(yè),而不是從源節(jié)點(diǎn)的存儲(chǔ)器中訪問(wèn)。 15.3搶占式和非搶占式進(jìn)程遷移的動(dòng)機(jī)是什么? 非搶占式進(jìn)程遷移對(duì)于負(fù)載平衡是很有用的,它的優(yōu)點(diǎn)是能夠避免全面性進(jìn)程遷移的開(kāi)銷(xiāo),缺點(diǎn)是該方法對(duì)于負(fù)載分布的突然變化反應(yīng)不佳。 15.4為什么不可能確定真正的全局狀態(tài)? 因?yàn)橄到y(tǒng)之間的通信延遲,不可能在系統(tǒng)范圍內(nèi)維護(hù)一個(gè)所有系統(tǒng)都隨時(shí)可用的時(shí)鐘。而且,維護(hù)一個(gè)中央時(shí)鐘并讓所有本地時(shí)鐘與之保持精確同步,這在技術(shù)上也是不現(xiàn)實(shí)的,因?yàn)榻?jīng)過(guò)一段時(shí)間后,在各個(gè)本地時(shí)鐘之間就會(huì)產(chǎn)生一些偏差,這將導(dǎo)致同
66、步的丟失。 15.5集中式算法和分布式算法所實(shí)行的分布式互斥有何區(qū)別? 在完全集中式算法中,一個(gè)節(jié)點(diǎn)被指定為控制節(jié)點(diǎn),它控制對(duì)所有共享對(duì)象的訪問(wèn)。當(dāng)任何進(jìn)程請(qǐng)求對(duì)一個(gè)臨界資源進(jìn)行訪問(wèn)時(shí),就向本地資源控制進(jìn)程發(fā)送一個(gè)請(qǐng)求,這個(gè)進(jìn)程接著向控制節(jié)點(diǎn)發(fā)送一條請(qǐng)求消息,當(dāng)共享對(duì)象可用時(shí),將返回一條許可消息。當(dāng)進(jìn)程結(jié)束使用資源后,向控制節(jié)點(diǎn)發(fā)送一條釋放消息。 在分布式算法中,互斥算法涉及到每個(gè)離散的實(shí)體之間的同步合作。 15.6定義兩種類(lèi)型的分布式死鎖。 在資源分配中產(chǎn)生的死鎖以及由于消息通信而產(chǎn)生的死鎖。 第16章 安全 16.1計(jì)算機(jī)安全的基礎(chǔ)要求是什么? 機(jī)密性,完整性,可用性,可靠性。 16.2主動(dòng)安全攻擊和被動(dòng)安全攻擊有什么不同? 被動(dòng)攻擊在本質(zhì)上是對(duì)傳輸進(jìn)行竊聽(tīng)或監(jiān)視。對(duì)方的目標(biāo)是獲取正在傳輸?shù)男畔?。主?dòng)攻擊包括對(duì)數(shù)據(jù)或數(shù)據(jù)流的更改或者生成錯(cuò)誤的數(shù)據(jù)或數(shù)據(jù)流。 16.3列出并簡(jiǎn)單定義主動(dòng)安全攻擊和被動(dòng)安全攻擊的分類(lèi)。 被動(dòng)攻擊:①釋放消息內(nèi)容:未被授權(quán)的人或程序了解了文件或消息的內(nèi)容;②通信分析:通過(guò)分析數(shù)據(jù)傳輸模式來(lái)獲取信息。 主動(dòng)攻擊:①偽裝:一個(gè)實(shí)體假裝
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 火力發(fā)電廠各設(shè)備的主要作用大全
- 3.高壓電工考試判斷練習(xí)題含答案
- 企業(yè)電氣防爆知識(shí)
- 13 低壓電工電工作業(yè)模擬考試題庫(kù)試卷含答案
- 電氣設(shè)備維修的十項(xiàng)原則
- 2.電氣電纜與直流模擬考試復(fù)習(xí)題含答案
- 電氣節(jié)能措施總結(jié)
- 2.電氣電機(jī)(一)模擬考試復(fù)習(xí)題含答案
- 接地電阻測(cè)量原理與測(cè)量方法
- 3.高壓電工作業(yè)模擬考試題庫(kù)試卷含答案
- 礦山維修電工安全技術(shù)操作規(guī)程
- 電工基礎(chǔ)口訣總結(jié)
- 3.某電廠值長(zhǎng)面試題含答案解析
- 電工基礎(chǔ)知識(shí)順口溜
- 配電系統(tǒng)詳解