分布式系統(tǒng)復習題與答案_第1頁
分布式系統(tǒng)復習題與答案_第2頁
分布式系統(tǒng)復習題與答案_第3頁
分布式系統(tǒng)復習題與答案_第4頁
分布式系統(tǒng)復習題與答案_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

關于分布式系統(tǒng)復習題與參考答案填空題(每小題n分,答錯個扣分,全錯全扣,共計m分)1.訪問透明性是指對不一樣數(shù)據(jù)表示形式以及資源訪問方式隱藏。而位置透明是用戶無法判別資源在系統(tǒng)中物理位置。2.遷移透明性是指分布式系統(tǒng)中資源移動不會影響該資源訪問方式。而復制透明是指對同一個資源存在多個副本隱藏。3.一個開放分布式系統(tǒng)就是依照一系列準則來提供服務,這些準則描述了所提供服務語法和語義。4.集群計算系統(tǒng)一個突出特征是它同構性;它提供了最大程度分布式透明性??捎糜趩蝹€程序在多臺計算機上并行地運行。5.網(wǎng)格計算系統(tǒng)具備高度異構性:其硬件、操作系統(tǒng)、網(wǎng)絡、管理域和安全策略等都不盡相同。6.網(wǎng)格計算系統(tǒng)一個關鍵問題是怎樣把來自不一樣計算機組織資源集中起來,使一組人或機構進行協(xié)調(diào)工作。7.分布式事務處理四個特征是:原子性、一致性、獨立性和持久性。8.分布式普適系統(tǒng)應用程序需求歸納為三種,它們是:接收上下文改變、促使自主合成、認可共享為默認行為。9.分布式系統(tǒng)體系結構樣式很多,其最主要有:分層體系結構;基于對象體系結構、以數(shù)據(jù)為中心體系結構以及基于事件體系結構等四類。10.客戶/服務器結構應用程序通常劃分為三層,它們是:用戶接口層、處理層和數(shù)據(jù)層。11.在結構化點對點體系結構中覆蓋網(wǎng)絡是用一個確定性過程來組成,這個使用最多進程是經(jīng)過一個分布式哈希表來組織進程。12.超級對等體通常是維護一個索引或充當一個代理程序結點。13.分布式軟件體系結構主要分集中式、非集中式和各種混合形式三大類。其非集中式體系結構又分為結構化點對點、非結構化點對點、超級對等體三種。14.實現(xiàn)軟件自適應基本技術分為關鍵點分離、計算映像和基于組件設計三種類型。15.分布式自主系統(tǒng)指是自我管理、自我恢復、自我配置和自我優(yōu)化等各種自適應性。16.一個線程獨立地執(zhí)行它自己程序代碼。線程系統(tǒng)通常只維護用來讓多個線程共享CPU所必需最少許信息。17.有兩種實現(xiàn)線程線程包基本方法:一是能夠結構一個完全在用戶模式下執(zhí)行線程;二是由內(nèi)核來掌管線程并進行調(diào)度。18.分布式系統(tǒng)中多線程通常有:多線程用戶和多線程服務器兩大類型。而以分發(fā)器/工作者模型組織起來多線程服務器是最為流行一個。19.虛擬化可采取兩種方法,一是構建一個運行時系統(tǒng),提供一套抽象指令集來執(zhí)行程序。二是提供虛擬機監(jiān)視器。20.在服務器組織結構中,迭代服務器是自己處理請求,將響應返回給客戶;而并發(fā)服務器將請求傳遞給某個獨立線程或其余進程來處理。21.服務器集群在邏輯上由三層組成,第一層是邏輯交換機;第二層是應用/計算服務;第三層是文件/數(shù)據(jù)庫系統(tǒng)。22.在代碼遷移框架結構中,進程包含三個段,它們是代碼段、資源段和執(zhí)行段三個段。23.進程對資源綁定有三種類型:一是按標識符綁定;二是按值綁定;三是按類型綁定。而三種類型資源對機器綁定是未連接資源、附著連接資源和緊固連接資源。24.中間件是一個應用程序,它在邏輯上位于應用層中,但在其中包含有多個通用協(xié)議,這些協(xié)議代表各自所在層,獨立于其余愈加尤其應用。25.在RPC操作中,客戶存根功效是將得到參數(shù)打包成消息,然后將消息發(fā)送給服務器存根。26.全部DCE底層編程模型都是客戶-服務器模型。而DCE本身一部分是由分布式文件服務、目錄服務、安全服務以及分布式時間服務等組成。27.IDL編譯器輸出包含三個文件,它們是頭文件、客戶存根和服務器存根。28.在面向消息通信中,通常分為面向消息瞬時通信和持久通信兩種機制。29.在面向消息瞬時通信中,通常采取套接字接口和消息傳遞接口。30.在面向持久通信中,消息隊列系統(tǒng)為持久異步通信提供多個支持。它提供消息中介存放能力。31.在消息隊列系統(tǒng)中,隊列由隊列管理器來管理,它與發(fā)送或接收消息應用程序直接交互。32.在消息隊列系統(tǒng)中,轉換是由隊列網(wǎng)絡中特定結點完成,這些結點稱為消息轉換器。33.在面向流通信中,數(shù)據(jù)流傳輸模式有異步傳輸模式、同時傳輸模式和等時傳輸模式等三種。34.在流與服務質量(QOS)描述中,服務質量特征指是數(shù)據(jù)傳輸所要求比特率、創(chuàng)建會話最大延時、端到端最大延時、最大延時抖動以及最大往返延時等。35.流同時有兩種類型,一個是在離散數(shù)據(jù)流與連續(xù)數(shù)據(jù)流之間保持同時;另一個是連續(xù)數(shù)據(jù)流之間同時。36.在流同時機制中,需要研究兩個問題是:一個是兩個流同時基本機制;二是在網(wǎng)絡環(huán)境下這些機制分布式版本。37.應用層多播基本思想是結點組織成一個覆蓋網(wǎng)絡,然后用它來傳輸信息給其組員。一個主要原因是網(wǎng)絡路由器不在組組員中。38.在覆蓋網(wǎng)絡構建時,主要有兩種方法,一個是結點本身直接組織成樹;另一個是結點組織成一個網(wǎng)狀網(wǎng)絡。39.應用層多播樹質量通常以三種不一樣尺度來度量,一是鏈接樹;二是相對延時賠償;三是樹成本。40.在基于gossip數(shù)據(jù)通信中,通常采取感染協(xié)議傳輸信息。一個流行傳輸模型是anti-entropy。41.分布式系統(tǒng)中,有三種不一樣命名系統(tǒng),它分別是無層次命名;結構化命名和基于屬性命名。42.在無層次命名中,通常有廣播和多播、轉發(fā)指針、基于宿主位置、分布式散列表、分層結構等方法實現(xiàn)實體定位。43.基于屬性命名系統(tǒng)實現(xiàn)方式有兩種。一個是分層實現(xiàn),使得目錄項集合形成了分層目錄信息樹。而另一個是非集中式實現(xiàn),它是采取映射到分布式散列表方式。44.GPS使用了29顆衛(wèi)星,每個衛(wèi)星使用4個原子時鐘,這些時鐘由地面上特定基站進行校準。45.一次將全部消息以相同次序傳送給每個接收多播操作稱為全序多播。Lamport時間戳能夠用于以完全分布式方式實現(xiàn)。46.向量時鐘能捕捉因果關系。創(chuàng)建向量時鐘是讓每個進程Pi維護一個向量VCi來完成。47.互斥集中式算法優(yōu)點是易于實現(xiàn)、很公平、確保了次序一致性。而缺點是協(xié)作者是單個故障點,假如它瓦解了,整個系統(tǒng)可能癱瘓。48.分布式互斥算法優(yōu)點是不會發(fā)生死鎖與餓死現(xiàn)象,也不存在單個故障點。其缺點是單個故障點被n個故障點所代替,所以故障率高;要求更多網(wǎng)絡流量。49.分布式系統(tǒng)中互斥算法有四種類型,一是集中式算法、二是非集中式算法、三是分布式算法、四是令牌環(huán)算法。50.分布式系統(tǒng)中,傳統(tǒng)選舉算法有兩種,一是欺負選舉算法;二是環(huán)選舉算法。51.網(wǎng)絡協(xié)議有三要素組成,時序是對事件實現(xiàn)次序詳細說明;語義是指需要發(fā)出何種控制信息以及要完成動作與作出響應;語法是指用戶數(shù)據(jù)與控制信息結構與格式。52.高速緩存相關性協(xié)議設計與實現(xiàn)是基于兩種策略:一是相關性檢測策略;二是相關性實施策略。53.令牌環(huán)算法每次進/出需要消息數(shù)是1~∞;進入前延遲是0~n-1;但存在令牌丟失和進程瓦解問題。54.在開發(fā)持久一致性協(xié)議中,有三種限定偏差:它們是限定復制數(shù)字偏差、限定復制新舊程度偏差和限定次序偏差。55.軟件自適應基本技術有3種,一是關鍵點分離、二是計算映像、三是基于組件設計。56.TCP/IP體系結構傳輸層上定義兩個傳輸協(xié)議為傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報協(xié)議(UDP)。57.慣用進程調(diào)度算法有先來先服務、優(yōu)先數(shù)法和輪轉法58.進程三個基本狀態(tài)是就緒、執(zhí)行、等候(阻塞)。59.進程是程序

在一個數(shù)據(jù)集合上

運行過程

,是系統(tǒng)進行資源分配和調(diào)度一個

獨立單位

60.進程通常四個特征是動態(tài)性,并發(fā)性,獨立性,異步性。61.處理死鎖基本方法包含預防死鎖,防止死鎖,死鎖檢測,死鎖恢復。62.在引進線程操作系統(tǒng)中,調(diào)度和分配基本單位是線程,擁有資源單位是進程。63.在分布式系統(tǒng)中,掛載外部名稱空間最少需要信息是:訪問協(xié)議名稱、服務器名稱和外部名稱空間中掛載點名稱。64.在名稱空間實現(xiàn)中,為了有效實現(xiàn)名稱空間,通常把它劃分為邏輯上三層,其三層指是全局層、行政層和管理層。65.在名稱解析實現(xiàn)中,通常采取兩種方法,一是迭代名稱解析;二是遞歸名稱解析。66.在邏輯時鐘算法中,Lamport定義了一個稱作“先發(fā)生”關系,表示式ab表示a在b之前發(fā)生。先發(fā)生關系是一個傳遞關系。67.在以數(shù)據(jù)為中心一致性模型中,次序一致性是指“任何執(zhí)行結果都是相同,全部進程對數(shù)據(jù)存放讀/寫操作是按某種序列次序執(zhí)行,而且每個進程操作按照程序所制訂次序出現(xiàn)在這個序列中”。68.在因果一致性中,全部進程必須以相同次序看到具備潛在因果關系寫操作。不一樣機器能夠以不一樣次序看到并發(fā)寫操作。69.以客戶為中心一致性模型中,滿足最終一致性數(shù)據(jù)存放具備以下屬性:沒有更新操作時,全部副本逐步成為相互完全相同拷貝。70.以客戶為中心一致性模型中,一個寫操作總是在同一進程執(zhí)行后續(xù)讀操作之前完成,而不論這個后續(xù)讀操作發(fā)生在什么位置。71.在一致性協(xié)議中,基于主備份協(xié)議比較盛行,它包含遠程寫協(xié)議和當?shù)貙憛f(xié)議兩種。72.在一致性協(xié)議中,復制寫協(xié)議包含主動復制和基于多數(shù)表決一致性協(xié)議兩種。73.在容錯性中,故障通常被分為暫時性故障、間歇性故障和持久性故障三大類型。74.假如系統(tǒng)是容錯,使用冗余掩蓋故障方法有信息冗余、時間冗余和物理冗余三種。75.在可靠客戶-服務器通信中,失敗時RPC系統(tǒng)中發(fā)生客戶不能定位服務器、請求消息丟失、服務器瓦解、應答消息丟失和客護端瓦解等5種形式。76.在原子多播里,消息排序通常有4種不一樣排序方法,它們分別是:不排序多播、FIFO次序多播、按因果關系排序多播和全序多播。77.容錯性基本要求是從錯誤中恢復,本質上有兩種形式錯誤恢復,一是回退恢復;另一個是前向恢復。78.在分布式安全性中,通??紤]計算機系統(tǒng)受到安全威脅有竊聽、中止、修改和偽造等四種。79.安全策略準確地描述系統(tǒng)中實體能夠采取行為以及禁止采取行為。80.安全機制包含加密、身份認證、授權和審計等四個部分。81.分布式加密系統(tǒng)通常有三種類型,一是對稱加密系統(tǒng)(DES);二是公鑰加密系統(tǒng)(RSA)、三是散列函數(shù)(MDS)系統(tǒng)。82.身份認證是一個會話密鑰,慣用身份認證有基于共享密鑰身份認證、使用密鑰分發(fā)中心身份認證、使用公鑰加密身份認證三種類型。83.消息完整性是指保護消息免受修改;其機密性確保竊聽者不能截獲和讀取消息。84.在安全通道中,為了使消息完整性和機密性。通常采取數(shù)字署名和會話密鑰加密算法實現(xiàn)安全通道數(shù)據(jù)交換。85.在安全組通信中,要確保機密性,機密組通信使用公鑰加密系統(tǒng)能夠處理;而安全復制服務器組中共享一個保密署名方法。86.在訪問控制中,要建立主體對對象訪問權限,其普通方法是結構一個訪問控制矩陣,而訪問控制列表(ACL)和權能列表來實現(xiàn)。87.防火墻通常分為兩種不一樣類型,一個是數(shù)據(jù)包過濾網(wǎng)關;另一個是應用層網(wǎng)關。88.在分布式系統(tǒng)安全管理中,主要分密鑰管理、安全組管理以及授權管理三大內(nèi)容。89.在容錯性中,人們定義了一些不一樣類型故障,主要有瓦解性故障、遺漏性故障、定時性故障、響應性故障以及隨意性故障等五大類。90.在容錯性中,消息日志基本思想是:假如消息傳輸能夠重放,那就能夠抵達一個全局一致狀態(tài)而不需要從穩(wěn)定存放中恢復該狀態(tài)。1.下面特征分別屬于計算機網(wǎng)絡和分布式計算機系統(tǒng),請加以區(qū)分:分布式計算機是指系統(tǒng)內(nèi)部對用戶是完全透明;系統(tǒng)中計算機即合作又自治;系統(tǒng)能夠利用多個物理和邏輯資源,能夠動態(tài)地給它們分配任務。計算機網(wǎng)絡是指互連計算機是分布在不一樣地理位置多臺獨立“自治計算機”。2.點到點通信子網(wǎng)拓撲結構主要有以下幾個:星型、環(huán)型、樹型、網(wǎng)狀型,請依照其特征填寫對應結構。網(wǎng)狀型:結點之間連接是任意,沒有規(guī)律。環(huán)型:節(jié)點經(jīng)過點到點通信線路連接成閉合環(huán)路。星型:節(jié)點經(jīng)過點到點通信線路與中心結點相連;樹型:結點按層次進行連接。3.分布式計算系統(tǒng)能夠分為兩個子組,它們是集群計算系統(tǒng)和網(wǎng)格計算系統(tǒng)。4.分布式事務處理具備4個特征,原子性:對外部來說,事務處理是不可見;一致性:事務處理不會違反系統(tǒng)不變性;獨立性:并發(fā)事務處理不會相互干擾;持久性:事務處理一旦提交,所發(fā)生改變是永久性。5.網(wǎng)絡協(xié)議有三要素組成,時序是對事件實現(xiàn)次序詳細說明;語義是指需要發(fā)出何種控制信息,以及要完成動作與作出響應;語法是指用戶數(shù)據(jù)與控制信息結構與格式6.依照組件和連接器不一樣,分布式系統(tǒng)體系結構最主要有4種,它們是:分層體系結構、基于對象體系結構、以數(shù)據(jù)為中心體系結構、基于事件體系結構7.在客戶-服務器體系結構中,應用分層通常分為3層,用戶接口層、處理層和數(shù)據(jù)層。8.有兩種類型分布式操作系統(tǒng),多處理器操作系統(tǒng)和多計算機操作系統(tǒng)。9.軟件自適應基本技術有3種,一是關鍵點分離、二是計算映像、三是基于組件設計。10.DCE本身是由多個服務組成,慣用有分布式文件系統(tǒng)、目錄服務、安全服務以及分布式時間服務等。11.TCP/IP體系結構傳輸層上定義兩個傳輸協(xié)議為傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報協(xié)議(UDP)。12.WindowsNT結構借用了層次模型和客戶/服務器兩種模型。13.慣用進程調(diào)度算法有先來先服務、優(yōu)先數(shù)法和輪轉法14.進程三個基本狀態(tài)是就緒、執(zhí)行、等候(阻塞)。15.進程是程序

在一個數(shù)據(jù)集合上

運行過程

,是系統(tǒng)進行資源分配和調(diào)度一個

獨立單位

16.進程四個特征是動態(tài)性,并發(fā)性,獨立性,異步性。17.操作系統(tǒng)通常能夠分為以下幾個類型:批處理系統(tǒng)、分時系統(tǒng)、實時系統(tǒng)、網(wǎng)絡操作系統(tǒng)和分布式操作系統(tǒng)。18.處理死鎖基本方法包含預防死鎖,防止死鎖,死鎖檢測,死鎖恢復。19.在引進線程操作系統(tǒng)中,調(diào)度和分配基本單位是線程,擁有資源單位是進程。20.在面向流通信中,為連續(xù)提供支持數(shù)據(jù)流模式有異步傳輸模式、同時傳輸模式和等時傳輸模式三種。21.在流同時機制,通常有在數(shù)據(jù)單元層次上進行顯式同時和經(jīng)過高級接口支持同時兩種。22.在分布式系統(tǒng)中,掛載外部名稱空間最少需要信息是:訪問協(xié)議名稱、服務器名稱和外部名稱空間中掛載點名稱。23.在名稱空間實現(xiàn)中,為了有效實現(xiàn)名稱空間,通常把它劃分為邏輯上三層,其三層指是全局層、行政層和管理層。24.在名稱解析實現(xiàn)中,通常采取兩種方法,一是迭代名稱解析;二是遞歸名稱解析。25.在邏輯時鐘算法中,Lamport定義了一個稱作“先發(fā)生”關系,表示式ab表示a在b之前發(fā)生。先發(fā)生關系是一個傳遞關系。26.分布式系統(tǒng)中,通常有4種互斥算法,一是集中式、二是非集中式、三是分布式、四是令牌環(huán)。27.分布式系統(tǒng)中選舉算法有兩種,一是欺負選舉算法;二是環(huán)選舉算法。28.在以數(shù)據(jù)為中心一致性模型中,次序一致性是指“任何執(zhí)行結果都是相同,全部進程對數(shù)據(jù)存放讀/寫操作是按某種序列次序執(zhí)行,而且每個進程操作按照程序所制訂次序出現(xiàn)在這個序列中”。29.在因果一致性中,全部進程必須以相同次序看到具備潛在因果關系寫操作。不一樣機器能夠以不一樣次序看到并發(fā)寫操作。30.以客戶為中心一致性模型中,滿足最終一致性數(shù)據(jù)存放具備以下屬性:沒有更新操作時,全部副本逐步成為相互完全相同拷貝。31.以客戶為中心一致性模型中,一個寫操作總是在同一進程執(zhí)行后續(xù)讀操作之前完成,而不論這個后續(xù)讀操作發(fā)生在什么位置。32.在一致性協(xié)議中,基于主備份協(xié)議比較盛行,它包含遠程寫協(xié)議和當?shù)貙憛f(xié)議兩種。33.在一致性協(xié)議中,復制寫協(xié)議包含主動復制和基于多數(shù)表決一致性協(xié)議兩種。34.在容錯性中,故障通常被分為暫時性故障、間歇性故障和持久性故障三大類型。35.假如系統(tǒng)是容錯,使用冗余掩蓋故障方法有信息冗余、時間冗余和物理冗余三種。36.在可靠客戶-服務器通信中,失敗時RPC系統(tǒng)中發(fā)生客戶不能定位服務器、請求消息丟失、服務器瓦解、應答消息丟失和客護端瓦解等5種形式。37.在原子多播里,消息排序通常有4種不一樣排序方法,它們分別是:不排序多播、FIFO次序多播、按因果關系排序多播和全序多播。38.容錯性基本要求是從錯誤中恢復,本質上有兩種形式錯誤恢復,一是回退恢復;另一個是前向恢復。39.在分布式安全性中,通常考慮計算機系統(tǒng)受到安全威脅有竊聽、中止、修改和偽造等四種。40.安全策略準確地描述系統(tǒng)中實體能夠采取行為以及禁止采取行為。41.安全機制包含加密、身份認證、授權和審計等四個部分。42.分布式加密系統(tǒng)通常有三種類型,一是對稱加密系統(tǒng)(DES);二是公鑰加密系統(tǒng)(RSA)、三是散列函數(shù)(MDS)系統(tǒng)。43.身份認證是一個會話密鑰,慣用身份認證有基于共享密鑰身份認證、使用密鑰分發(fā)中心身份認證、使用公鑰加密身份認證三種類型。44.消息完整性是指保護消息免受修改;其機密性確保竊聽者不能截獲和讀取消息。45.在安全通道中,為了使消息完整性和機密性。通常采取數(shù)字署名和會話密鑰加密算法實現(xiàn)安全通道數(shù)據(jù)交換。46.在安全組通信中,要確保機密性,機密組通信使用公鑰加密系統(tǒng)能夠處理;而安全復制服務器組中共享一個保密署名方法。47.在訪問控制中,要建立主體對對象訪問權限,其普通方法是結構一個訪問控制矩陣,而訪問控制列表(ACL)和權能列表來實現(xiàn)。48.防火墻通常分為兩種不一樣類型,一個是數(shù)據(jù)包過濾網(wǎng)關;另一個是應用層網(wǎng)關。49.在分布式系統(tǒng)安全管理中,主要分密鑰管理、安全組管理以及授權管理三大內(nèi)容。50.在容錯性中,人們定義了一些不一樣類型故障,主要有瓦解性故障、遺漏性故障、定時性故障、響應性故障以及隨意性故障等五大類。二、選擇題(每小題n分,共m個題,共計x分)1.分布式系統(tǒng)中擴展技術通常有:(AB)。A.隱藏通信等候時間B.復制技術C.互操作性D.可移植性2.下面屬于分布式混合體系結構是:(CD)A.點對點體系結構B.超級對等體C.邊界服務器系統(tǒng)D.協(xié)作分布式系統(tǒng)3.下面形成份布式反饋控制循環(huán)元素是:(ACD)A.尺度預測組件B.循環(huán)體C.反饋分析組件D.調(diào)整方法組件4.在分布式虛擬機體系結構中,虛擬化通常采取方式是:(CD)。A.系統(tǒng)調(diào)用B.系統(tǒng)移植C.構建進程虛擬機D.虛擬機監(jiān)視器5.進行代碼遷移理由是:(AB)。A.提升系統(tǒng)整體性能B.提升靈活性C.提升安全性D.提升存放能力6.在遷移與當?shù)刭Y源關系中,進程對資源綁定有:(BCD)。A.緊固連接綁定B.按標識符綁定C.按值綁定D.按類型綁定7.在遷移與當?shù)刭Y源關系中,資源對機器綁定有:(ABC)。A.未連接資源B.附著連接資源C.緊固連接資源D.按類型資源8.在DEC中,IDL中頭文件包含(ACD)。A.唯一標識符B.調(diào)用語義C.類型定義D.常量定義與函數(shù)原型9.在面向消息持久通信中,消息隊列系統(tǒng)中基本接口有:(AB)。A.putB.getC.M_bsendD.socket10.在流同時中,同時機制需要搞清楚問題是:(CD)。A.控制接口B.MPEG流C.兩個流同時基本機制D.在網(wǎng)絡下機制版本11.網(wǎng)絡體系結構能夠定義為:(C)A、一個計算機網(wǎng)絡實現(xiàn)B、執(zhí)行計算機數(shù)據(jù)處理軟件結構C、建立和使用通信硬件和軟件一套規(guī)則和規(guī)范D、由ISO制訂一個標準12.在OSI參考模型中,數(shù)據(jù)鏈路層數(shù)據(jù)服務單元是:(C)A、分組B、報文C、幀D、比特序列13.下面屬于分布式計算系統(tǒng)是(BC)A、資源管理B、集群計算C、網(wǎng)格計算D、運行應用程序14.現(xiàn)在分布式信息系統(tǒng)按集成可分為(AB)A、事務處理系統(tǒng)B、企業(yè)應用集成C、網(wǎng)絡管理D、資源分配系統(tǒng)15.現(xiàn)在已認可分布式系統(tǒng)軟件體系結構樣式有(ABCD)A、分層體系結構B、基于對象體系結構C、以數(shù)據(jù)為中心體系結構D、基于事件體系結構16.兩個旅行社甲和乙為旅客到某航空企業(yè)訂飛機票,形成互斥資源是(A)。A.飛機票B.旅行社C.航空企業(yè)D.旅行社和航空企業(yè)17.DNS屬于(A)層協(xié)議。A.應用層 B.傳輸層 C.互聯(lián)網(wǎng)層 D.網(wǎng)絡接口層18.活動目錄是一個(AB)結構目錄服務。A.層次式 B.分布式 C.對等式 D.主次式19.對于域名:,DNS服務器查找次序是(B)。A.先查找test主機,再查找.com域 B.先查找.com域,再查找test主機 C.隨機查找 D.以上答案皆是 20.SMTP協(xié)議是關于(A)協(xié)議。A.郵件傳輸 B.文件傳輸 C.超文本傳輸 D.網(wǎng)絡新聞組傳輸21.POP3協(xié)議是關于(C)協(xié)議。A.超文本傳輸 B.郵件傳輸 C.接收郵件 D.網(wǎng)絡新聞組傳輸22.遠程客戶端登錄終端服務器必須提供一定信息,以下有(AC)屬于這種必要信息。A.用戶名 B.域 C.服務器IP地址 D.連接名稱23.在多播通信中,應用層多播樹質量通常以(ABC)不一樣尺度來度量。A.鏈接樹B.相對延時賠償C.樹成本D.樹結構24.以多播流方式傳遞內(nèi)容時只能采取(B)類型公布點。A.單播公布點 B.廣播公布點C.單播公布點或廣播公布 D.既不是單播公布點也非廣播公布點25.DNS名稱空間是分層組織一棵有根樹,標識符是有(C)。A.字母組成B.數(shù)字組成C.字母和數(shù)字組成D.漢字組成26.IDL編譯器輸出包含文件是(ABD)。A.文件頭B.客戶存根C.守護程序D.服務器存根27.以下屬于流同時是(CD)。A.位同時B.字同時C.離散數(shù)據(jù)流與連續(xù)數(shù)據(jù)流之間同時D.口型同時28.實現(xiàn)線程包基本方法有(AC)。A.結構一個完全在用戶模式下執(zhí)行線程庫B.由進程間通信實現(xiàn)C.由內(nèi)核來管理線程并進行調(diào)度D.由用戶程序來實現(xiàn)29.下面是多線程服務器可行設計方法是(ACD)A.多線程文件服務器B.Web服務C.單線稱文件服務器D.作為有限狀態(tài)機30.與迭代名稱解析比較,遞歸名稱解析優(yōu)點是(BC)。A.要求服務器性能高B.緩存結果更為有效C.能降低通信開銷D.算法簡單31.名稱用來表示實體,下面屬于實體名稱是(BCD)A.實體圖B.標識符C.易于了解名稱D.實體地址32.下面用于定位移動實體方法是(ABCD)A.使用廣播與多播B.使用轉發(fā)指針C.給實體指定一個起始位置D.創(chuàng)建一棵分層搜索樹33.分布式系統(tǒng)全局狀態(tài)是指(BD)。A.用于計算暫時統(tǒng)計B.每個進程當?shù)貭顟B(tài)C.要發(fā)送消息D.當前正在傳輸中消息34.面向消息中間件模型通常提供(ACD)。A.持久異步通信B.RPC和RMIC.電子郵件D.工作流35.在分布式系統(tǒng)中,實現(xiàn)事務方法是(BC)。A.創(chuàng)建進程B.為進程分配私有工作空間C.做寫前日志D.創(chuàng)建線程36.并發(fā)控制總體思想是(A)。A.正確調(diào)度相沖突操作B.對事務進行管理C.進行數(shù)據(jù)更新D.有序通信37.下面屬于進程間同時算法是(CD)。A.FIFO算法B.基于優(yōu)先級算法C.選舉算法D.互斥算法38.嚴格一致性中存在問題是(A)。A.依賴于絕正確全局時間B.不依賴于絕正確全局時間C.依賴于并發(fā)控制算法D.不依賴于并發(fā)控制算法39.以下屬于“以數(shù)據(jù)為中心一致性模型”是(ACD)。A.持久一致性B.最終一致性C.因果一致性D.次序一致性40.以下屬于“以客戶為中心一致性模型”是(BCD)。A.嚴格一致性B.單調(diào)讀一致性C.單調(diào)寫一致性D.讀寫一致性41.下面屬于一致性協(xié)議是(CD)。A.傳輸協(xié)議B.中間件協(xié)議C.基于主備份協(xié)議D.復制寫協(xié)議42.基于主備份協(xié)議是指(AB)A.負責協(xié)調(diào)X上遠程寫操作B.負責協(xié)調(diào)X上當?shù)貙懖僮鰿.主動復制D.協(xié)調(diào)操作43.冗余是取得容錯性所需關鍵技術,下面屬于冗余掩蓋故障是(BCD)。A.存放器冗余B.信息冗余C.時間冗余D.物理冗余44.在可靠多播通信中,處理反饋擁塞方法是(AB)。A.無等級反饋控制B.分等級反饋控制C.分層反饋控制D.閉環(huán)反饋控制45.實現(xiàn)可靠原子多播方法是(BC)。A.轉發(fā)指針B.消息排序C.虛擬同時D.指針緩存46.在分布式系統(tǒng)安全設計問題中,控制焦點是(ABC)。A.預防無效操作保護B.預防未經(jīng)授權調(diào)用保護C.預防未經(jīng)授權用戶保護D.安全機制保護47.在分布式系統(tǒng)中,加密和解密實現(xiàn)是(D)。A.遞歸算法B.安全管理C.通道管理D.以密鑰為參數(shù)加密算法48.分布式系統(tǒng)慣用加密系統(tǒng)有(ABC)。A.對稱加密系統(tǒng)(DES)B.公鑰加密系統(tǒng)(RSA)C.散列函數(shù)(MDS)D.授權加密49.在分布式系統(tǒng)安全通道通信中,其安全性歸結為(BC)。A.授權訪問B.對通信各方進行身份驗證C.確保消息完整性和機密性D.檢驗權限50.在分布式安全訪問控制中,實現(xiàn)訪問控制方式有(ABC)。A.結構訪問控制矩陣B.結構保護域C.采取防火墻D.密鑰管理1.網(wǎng)絡體系結構能夠定義為:(C)A、一個計算機網(wǎng)絡實現(xiàn)B、執(zhí)行計算機數(shù)據(jù)處理軟件結構C、建立和使用通信硬件和軟件一套規(guī)則和規(guī)范D、由ISO制訂一個標準2.在OSI參考模型中,數(shù)據(jù)鏈路層數(shù)據(jù)服務單元是:(C)A、分組B、報文C、幀D、比特序列3.下面屬于分布式計算系統(tǒng)是(BC)A、資源管理B、集群計算C、網(wǎng)格計算D、運行應用程序4.現(xiàn)在分布式信息系統(tǒng)按集成可分為(AB)A、事務處理系統(tǒng)B、企業(yè)應用集成C、網(wǎng)絡管理D、資源分配系統(tǒng)5.現(xiàn)在已認可分布式系統(tǒng)軟件體系結構樣式有(ABCD)A、分層體系結構B、基于對象體系結構C、以數(shù)據(jù)為中心體系結構D、基于事件體系結構6.兩個旅行社甲和乙為旅客到某航空企業(yè)訂飛機票,形成互斥資源是(A)。A.飛機票B.旅行社C.航空企業(yè)D.旅行社和航空企業(yè)7.DNS屬于(A)層協(xié)議。A.應用層 B.傳輸層 C.互聯(lián)網(wǎng)層 D.網(wǎng)絡接口層8.活動目錄是一個(AB)結構目錄服務。A.層次式 B.分布式 C.對等式 D.主次式9.對于域名:,DNS服務器查找次序是(B)。A.先查找test主機,再查找.com域 B.先查找.com域,再查找test主機 C.隨機查找 D.以上答案皆是 10.SMTP協(xié)議是關于(A)協(xié)議。A.郵件傳輸 B.文件傳輸 C.超文本傳輸 D.網(wǎng)絡新聞組傳輸11.POP3協(xié)議是關于(C)協(xié)議。A.超文本傳輸 B.郵件傳輸 C.接收郵件 D.網(wǎng)絡新聞組傳輸12.遠程客戶端登錄終端服務器必須提供一定信息,以下有(AC)屬于這種必要信息。A.用戶名 B.域 C.服務器IP地址 D.連接名稱13.在多播通信中,應用層多播樹質量通常以(ABC)不一樣尺度來度量。A.鏈接樹B.相對延時賠償C.樹成本D.樹結構14.以多播流方式傳遞內(nèi)容時只能采?。˙)類型公布點。A.單播公布點 B.廣播公布點C.單播公布點或廣播公布 D.既不是單播公布點也非廣播公布點15.DNS名稱空間是分層組織一棵有根樹,標識符是有(C)。A.字母組成B.數(shù)字組成C.字母和數(shù)字組成D.漢字組成16.IDL編譯器輸出包含文件是(ABD)。A.文件頭B.客戶存根C.守護程序D.服務器存根17.以下屬于流同時是(CD)。A.位同時B.字同時C.離散數(shù)據(jù)流與連續(xù)數(shù)據(jù)流之間同時D.口型同時18.實現(xiàn)線程包基本方法有(AC)。A.結構一個完全在用戶模式下執(zhí)行線程庫B.由進程間通信實現(xiàn)C.由內(nèi)核來管理線程并進行調(diào)度D.由用戶程序來實現(xiàn)19.下面是多線程服務器可行設計方法是(ACD)A.多線程文件服務器B.Web服務C.單線稱文件服務器D.作為有限狀態(tài)機20.與迭代名稱解析比較,遞歸名稱解析優(yōu)點是(BC)。A.要求服務器性能高B.緩存結果更為有效C.能降低通信開銷D.算法簡單21.名稱用來表示實體,下面屬于實體名稱是(BCD)A.實體圖B.標識符C.易于了解名稱D.實體地址22.下面用于定位移動實體方法是(ABCD)A.使用廣播與多播B.使用轉發(fā)指針C.給實體指定一個起始位置D.創(chuàng)建一棵分層搜索樹23.分布式系統(tǒng)全局狀態(tài)是指(BD)。A.用于計算暫時統(tǒng)計B.每個進程當?shù)貭顟B(tài)C.要發(fā)送消息D.當前正在傳輸中消息24.面向消息中間件模型通常提供(ACD)。A.持久異步通信B.RPC和RMIC.電子郵件D.工作流25.在分布式系統(tǒng)中,實現(xiàn)事務方法是(BC)。A.創(chuàng)建進程B.為進程分配私有工作空間C.做寫前日志D.創(chuàng)建線程26.并發(fā)控制總體思想是(A)。A.正確調(diào)度相沖突操作B.對事務進行管理C.進行數(shù)據(jù)更新D.有序通信27.下面屬于進程間同時算法是(CD)。A.FIFO算法B.基于優(yōu)先級算法C.選舉算法D.互斥算法28.嚴格一致性中存在問題是(A)。A.依賴于絕正確全局時間B.不依賴于絕正確全局時間C.依賴于并發(fā)控制算法D.不依賴于并發(fā)控制算法29.以下屬于“以數(shù)據(jù)為中心一致性模型”是(ACD)。A.線性化和次序一致性B.最終一致性C.因果一致性D.FIFO一致性30.以下屬于“以客戶為中心一致性模型”是(BCD)。A.嚴格一致性B.單調(diào)讀一致性C.寫后讀一致性D.讀后寫一致性31.下面屬于一致性協(xié)議是(CD)。A.傳輸協(xié)議B.中間件協(xié)議C.基于主備份協(xié)議D.復制寫協(xié)議32.基于主備份協(xié)議是指(AB)A.負責協(xié)調(diào)X上遠程寫操作B.負責協(xié)調(diào)X上當?shù)貙懖僮鰿.主動復制D.協(xié)調(diào)操作33.冗余是取得容錯性所需關鍵技術,下面屬于冗余掩蓋故障是(BCD)。A.存放器冗余B.信息冗余C.時間冗余D.物理冗余34.在可靠多播通信中,處理反饋擁塞方法是(AB)。A.無等級反饋控制B.分等級反饋控制C.分層反饋控制D.閉環(huán)反饋控制35.實現(xiàn)可靠原子多播方法是(BC)。A.轉發(fā)指針B.消息排序C.虛擬同時D.指針緩存36.在分布式系統(tǒng)安全設計問題中,控制焦點是(ABC)。A.預防無效操作保護B.預防未經(jīng)授權調(diào)用保護C.預防未經(jīng)授權用戶保護D.安全機制保護37.在分布式系統(tǒng)中,加密和解密實現(xiàn)是(D)。A.遞歸算法B.安全管理C.通道管理D.以密鑰為參數(shù)加密算法38.分布式系統(tǒng)慣用加密系統(tǒng)有(ABC)。A.對稱加密系統(tǒng)(DES)B.公鑰加密系統(tǒng)(RSA)C.散列函數(shù)(MDS)D.授權加密39.在分布式系統(tǒng)安全通道通信中,其安全性歸結為(BC)。A.授權訪問B.對通信各方進行身份驗證C.確保消息完整性和機密性D.檢驗權限40.在分布式安全訪問控制中,實現(xiàn)訪問控制方式有(ABC)。A.結構訪問控制矩陣B.結構保護域C.采取防火墻D.密鑰管理三.簡答題(每小題n分,共m分)1.按照資源共享觀念定義計算機網(wǎng)絡具備哪幾個主要特征?答:三個主要特征:1.建立目標是實現(xiàn)計算機資源共享,包含數(shù)據(jù)資源\軟件資源和硬件資源。2.互連計算機是分布在不一樣地理位置多臺獨立”自治計算機”。3.連網(wǎng)計算機之間通信必須遵照共同網(wǎng)絡協(xié)議。2.為何傳輸層通信服務經(jīng)常不適于構建分布式應用程序?答:因為它不適適用于支持多層客戶-服務器交互過程所使用同時請求-應答方式,在可靠傳輸中,造成許多開銷都花費在連接管理上。3.描述一下客戶和服務器之間使用套接字無連接通信是怎樣進行?答:首先服務器和客戶端都要創(chuàng)建一個套接字,并遵照UDP協(xié)議,服務器將其所在IP地址以及一個端口號綁定到套接字,完成綁定后,服務器就能接收來自客戶端UDP數(shù)據(jù)包了。一樣,客戶端在創(chuàng)建套接字后,能夠向服務器發(fā)送UDP包進行通信,通信過程中,服務器和客戶端之間是不用建立連接。4.簡述TCP和UDP協(xié)議在通信中區(qū)分TCP是面向連接可靠協(xié)議,適適用于傳輸大批量文件,檢驗是否正常傳輸。而UDP是面向非連接不可靠協(xié)議,適適用于傳輸一次性小批量文件,不對傳輸數(shù)據(jù)報進行檢驗。TCP需要先建立連接才能通話;而UDP不需要,實時性要高點。TCP能夠形象比喻為打電話過程;UDP能夠比喻為發(fā)短信過程。TCP不能發(fā)送廣播和組播,只能單播;UDP能夠廣播和組播。5.JavaRMI對代碼遷移依賴到何種程度?答:JavaRMI時,每一個方法引用傳遞實際上就是執(zhí)行一次代碼遷移,對于移植性差進程來說,代碼遷移是非常必要。6.標識符是否能夠包含它所引用實體信息?答:標識符能夠包含它所引用實體信息,不過,這些信息不允許修改,因為那意味著標識符被改變。7.在深度為k分層定位服務中,當移動實體改變它位置時,最多需要更新多少條位置統(tǒng)計?答:移動實體改變位置會產(chǎn)生刪除操作和插入操作,刪除操作最少需要更新k條位置統(tǒng)計。一樣,插入操作也需要更新k條位置統(tǒng)計。最終,刪除與插入更新移動實體位置統(tǒng)計共需要2k+1條。8.要使用Lamport時間戳實現(xiàn)全序多播,是不是每個消息都必須要被嚴格地確認?答:不需要,任何類型消息,只要它時間戳大于所接收到消息時間戳,就能夠被加入消息隊列,使用Lamport時間戳實現(xiàn)全序多播。9.許多分布式算法需要使用協(xié)調(diào)進程。討論一下,這么算法實際上能夠在什么程度上被看作為分布式?答:在集中式算法中,通常會選擇一個固定進程作為協(xié)調(diào)者,其它進程能夠分布在不一樣機器上運行。分布式算法中也一樣能夠引入?yún)f(xié)調(diào)進程,不過,這個進程并不是固定,它是從作為算法一部分進程中選擇。所以,使用協(xié)調(diào)進程并不會影響算法分布性。10.作業(yè)調(diào)度和進程調(diào)度有何區(qū)分?答:作業(yè)調(diào)度與進程調(diào)度之間差異主要是:作業(yè)調(diào)度是宏觀調(diào)度,它所選擇作業(yè)只是具備取得處理機資格,但還未占有處理機,不能立刻在其上實際運行;而進程調(diào)度是微觀調(diào)度,動態(tài)地把處理機實際地分配給所選擇進程,使之真正活動起來。另外,進程調(diào)度相當頻繁,而作業(yè)調(diào)度執(zhí)行次數(shù)通常極少。11.請解釋DNS怎樣進行復制,以及它實際運行很好原因。答:DNS進行復制基本思想是:域名服務器能夠緩存以前查找過結果。因為DNS名稱到地址映射極少更改,所以,這些結果能夠緩存很長一段時間。12.簡述進程與程序聯(lián)絡和區(qū)分答:(1)聯(lián)絡:一個進程能夠包括到一個或幾個程序執(zhí)行;一個程序能夠對應一個或多個進程,即同一程序段能夠在不一樣數(shù)據(jù)集合上運行,可組成不一樣進程,比如打印輸出程序段,比如同一高級語言編譯程序與多個用戶源程序。(2)進程和程序區(qū)分主要表現(xiàn)在:1)進程是動態(tài),具備一定生命周期,而程序是靜態(tài);2)進程可并發(fā)執(zhí)行,而沒有創(chuàng)建進程程序是不能執(zhí)行;3)進程是操作系統(tǒng)中申請和分配資源基本單位,而沒有創(chuàng)建進程程序是不能申請資源;4)進程包含程序、數(shù)據(jù)和進程控制塊;5)同一程序數(shù)次執(zhí)行對應多個進程13.在下列圖中,一個次序一致存放器允許6種可能語句交叉。請列舉出這6種可能情況。進程P1進程P2x=1;y=1;if(y==0)kill(P2)if(x==0)kill(P1)答:這6種可能情況是:(1)a=1;if(b==0);b=1;if(a==0);(2)a=1;b=1;if(a==0);if(b==0);(3)a=1;b=1;if(b==0);if(a==0);(4)b=1;if(a==0);a=1;if(b==0);(5)b=1;a=1;if(b==0);if(a==0);(6)b=1;a=1;if(a==0);if(b==0);14.一個文件被復制在10個服務器上,請列出表決算法允許全部讀團體和寫團體。答:以下可能性讀團體和寫團體是正當:(1,10)、(2,9)、(3,8)、(4,7)、(5,6)、(6,5)、(7,4)、(8,3)、(9,2)、(10,1)。15.原子多播可擴展性主要到哪種程度上?答:它取決于一組包含多個進程狀態(tài)。假如進程為故障容錯進行了復制,擁有少許副本可能就足夠了,在這種情況下,可擴展性幾乎不成問題。假如是由不一樣進程組成組,可擴展性就可能成了一個問題。當為了性能而復制時,原子多播本身可能超出負荷能力。16.在兩階段提交協(xié)議中,為何即使在參加者們選擇一個新協(xié)調(diào)者情況下也不會完全消除阻塞?答:因為選舉結束后,新協(xié)調(diào)者也一樣可能會瓦解。在這種情況下,其余參加者也不能做出最終決定,因為這需要由新當選協(xié)調(diào)者發(fā)起選舉。17.假設Alice希望向Bob發(fā)送一條消息m。她沒有使用Bob公鑰K+B加密m,而是生成了一個會話密鑰KA,B,然后發(fā)送[KA,B(m),K+B(KA,B)]。為何通常來講,這種方法愈加好?(提醒:考慮性能問題)。答:會話密鑰有一個短而固定長度,而消息m可能是任意長度。所以,采取會話密鑰和公鑰結合加密短消息通常在性能方面優(yōu)于只使用一個公鑰加密消息。18.列舉出為密鑰管理使用集中式服務一些優(yōu)點和缺點。答:一個顯著優(yōu)點是簡單。比如:若有N個客戶在一個集中式服務器上共享了1個密鑰,我們就只需要維護N個密鑰;假如是成對共享密鑰,那我們就需要維護N(N-1)/2個。而且使用集中式服務器存放和維護都在一個站點上,使存放和維護都比較方便。潛在缺點:首先是服務器有可能成為性能和可用性瓶頸。其次,假如服務器機密被泄露,就必須建立新密鑰。19.一個網(wǎng)絡中,DNS服務器應該布署在什么地方最適宜?答:要用域名訪問Internet上服務器必須先訪問DNS服務器,經(jīng)過DNS對域名解析才能連接到對應主機。所以,在一個網(wǎng)絡中,DNS服務器應該布署在客戶端能夠集中訪問網(wǎng)絡位置上。20.進程間同時和互斥含義是什么?答:進程間同時是并發(fā)進程之間存在相互制約和相互依賴關系。進程間互斥是若干進程共享一資源時,任何時刻只允許一個進程使用。四.綜合題(本題結果不是唯一,每小題n分,共m分)1.有三個進程P1,P2和P3并發(fā)工作。進程P1需用資源S3和S1;進程P2需用資源S1和S2;進程P3需用資源S2和S3?;卮穑?1)若對資源分配不加限制,會發(fā)生什么情況?為何?(2)為確保進程正確工作,應采取怎樣資源分配策略?為何?(1)多個進程動態(tài)地共享系統(tǒng)資源可能會產(chǎn)生死鎖現(xiàn)象。死鎖產(chǎn)生,必須同時滿足四個條件,第一個是互斥條件,即一個資源每次只能由一個進程占用;第二個為等候條件,即一個進程請求資源不能滿足時,它必須等候,但它仍繼續(xù)保持已得到全部其它資源;第三個是非出讓條件,任何一個進程不能搶占另一個進程已經(jīng)取得且未釋放資源;第四個為循環(huán)等候條件,系統(tǒng)中存在若干個循環(huán)等候進程,即其中每一個進程分別等候它前一個進程所持有資源。預防死鎖機構只須確保上述四個條件之一不出現(xiàn),則系統(tǒng)就不會發(fā)生死鎖。只要資源分配策略能確保進程不出現(xiàn)循環(huán)等候,則系統(tǒng)就不會發(fā)生死鎖。(2)銀行家算法分配資源標準是:系統(tǒng)掌握每個進程對資源最大需求量,當進程要求申請資源時,系統(tǒng)就測試該進程尚需資源最大量,假如系統(tǒng)中現(xiàn)存資源數(shù)大于或等于該進程尚需最大量時,則就滿足進程當前申請。這么能夠確保最少有一個進程可能得到全部資源而執(zhí)行到結束,然后償還它所占用全部資源供其它進程使用。銀行家算法破壞了產(chǎn)生死鎖第四個條件,即不可能產(chǎn)生循環(huán)等候,從而能夠防止死鎖發(fā)生。預防進程發(fā)生循環(huán)等候另一個資源分配策略是按序分配算法,其基本思想以下:把系統(tǒng)中全部資源排一個次序,比如系統(tǒng)共有m個資源,用ri表示第i個資源,那么這m個資源是:r1,r2,r3……,rm要求任何進程不得在占用資源ri(1<im)后再申請rj(j<im),或者說,假如里程需要資源rj,那么它必須在申請ri之前申請(j<i)。能夠證實,按這種策略分配資源時破壞了循環(huán)等候條件,故能預防發(fā)生死鎖2.怎樣設計一個好RPC?采取client/server模型與應用程序組件說明開發(fā)過程?本文比較詳細地介紹了遠程過程調(diào)用(RPC)OSF標準在MicrosoftVC++中實現(xiàn)原理,以及怎樣使用它們來開發(fā)應用程序.閱讀本文你將了解RPC基本原理,并將看到怎樣開發(fā)使用RPC進行異種機網(wǎng)絡分布式處理客戶機應用程序和服務器應用程序.Para1.RPC工作原理RPC是把傳統(tǒng)當?shù)剡^程調(diào)用概念加以擴充后引入分布式環(huán)境一個形式.RPC形式和行為與傳統(tǒng)當?shù)剡^程調(diào)用極為相同,差異僅在于被調(diào)用procedure(過程)實際運行在與調(diào)用者場點不一樣場點上(如圖1).也正是因為這一差異,我們得經(jīng)過編寫程序來實現(xiàn)兩場地之間連接和信息溝通.RPC機制實質是實現(xiàn)OSI七層模型中會話層功效.它在兩個試圖進行通信場點之間建立一條邏輯信道(即會話連接),并利用這個信道交換信息,不用時就釋放連接.下面我們就來看看RPC通信模型(以下列圖2):Client端:1)

發(fā)送遠程過程調(diào)用消息(以消息包形式)給遠程server端;2)

等候,直到收到server端對該請求回復;3)

一旦接收到來自server端返回執(zhí)行結果,就繼續(xù)執(zhí)行后面程序.Server端:1)

傾聽狀態(tài),等候client端發(fā)送過程調(diào)用消息;2)

一旦接收到過程調(diào)用消息,server就抽取參數(shù)并分析它,然后執(zhí)行所請求過程;3)

將執(zhí)行結果以消息包形式回送給client.至于RPC詳細實現(xiàn),我們能夠借助下列圖3來了解:圖3RPC實現(xiàn)概況其中stub是一組RPC機制操作原語,這些原語組成了RPC實現(xiàn)細節(jié),它能夠獨立于client、server編程.下面我們來講解圖3執(zhí)行過程:1)

調(diào)用者調(diào)用當?shù)豷tub中一個過程(開始遠程過程調(diào)用請求).2)

這個stub過程把關于參數(shù)組裝成一個消息包或一組消息包,形成一條消息.運行此執(zhí)行過程遠程場點IP地址和執(zhí)行該過程進程ID號也包含在這條消息中.3)

將這條消息發(fā)送給對應RPCruntime(RPC運行庫)子程序,由這個子程序將消息發(fā)送到遠程場點.4)

在接收到這條消息時,server端RPCruntime子程序引用與被調(diào)用者對應stub中一個子程序,并讓它來處理消息.5)

與被調(diào)用者對應stub中這個子程序撤卸消息,解析出相關參數(shù),并用當?shù)卣{(diào)用方式執(zhí)行所指定過程.6)

返回調(diào)用結果,調(diào)用者對應stub子程序執(zhí)行return語句返回到用戶,整個RPC過程結束.實際上,從上面這個執(zhí)行過程中,我們能夠看到RPC實現(xiàn)主要有兩個問題需要處理.一個是在遠程過程調(diào)用時,怎樣定位遠程場點;另外一個就是相關兩個場點必須能協(xié)同工作,全部這些工作對用戶都是透明,依次執(zhí)行.通常在實際編程中,程序設計者主要負責設計計算過程并實現(xiàn)計算過程體,而對應stub由系統(tǒng)生成.后面我們就要說到MicrosoftRPC實現(xiàn)機制,看看它是怎樣產(chǎn)生stub。Para2.怎樣設計好RPC對調(diào)用雙方來說,傳遞RPC參數(shù)包含輔助處理當?shù)財?shù)據(jù)表示和網(wǎng)絡數(shù)據(jù)表示相互轉換.另外,輸入輸出參數(shù)需要一些存放分配.同時,RPC中等候時間也不能忽略.所以,通常來說,應該盡可能降低調(diào)用次數(shù).比如,假如要對一個大數(shù)組每個元素都執(zhí)行計算,我們就能夠一次調(diào)用處理一整行或者整個數(shù)組,而不用每次調(diào)用傳遞一個元素.這么能夠降低有RPC引入額外開銷.Para3.應用程序組件為了在client和server端使用RPC,當然少不了client進程和server進程.另外還有一個名稱服務進程,這個稍后再說.開發(fā)過程大致是這么:1)

任何RPC調(diào)用都使用一個定義在IDL(interfacedefinitionlanguage,接口定義語言)文件中接口,然后MIDL(MicrosoftIDL)編譯器對IDL文件進行編譯,編譯之后會自動生成一個.h文件,同時生成一個clientstub和一個serverstub.關于這個你能夠在dos下運行midl.exe/?得到更詳細信息.2)

Client端應用程序使用clientstub調(diào)用RPCruntime以實現(xiàn)網(wǎng)絡上調(diào)用.接下來RPC運行時使用一組DLL中一個來實現(xiàn)被使用特定網(wǎng)絡協(xié)議.3)

Server端也與RPCruntime連接.不過server端應用程序使用一些其它函數(shù)來將自己作為一個特殊接口服務器進行注冊(向誰注冊?),并開始偵聽接口請求.3.怎樣用Java或其它語言處理線程同時與互斥問題?(任選擇一個語言)同時有同時方法和同時塊

當有多個線程時候,經(jīng)常需要去同時這些線程以訪問同一個數(shù)據(jù)或資源。比如,假設有一個程序,其中一個線程用于把文件讀到內(nèi)存,而另一個線程用于統(tǒng)計文件中字符數(shù)。因為每個操作都有自己線程,操作系統(tǒng)會把兩個線程看成是互不相干任務分別執(zhí)行,這么就可能在沒有把整個文件裝入內(nèi)存時統(tǒng)計字數(shù)。為處理此問題,你必須使兩個線程同時工作。存在一些線程同時地址問題,Win32提供了許多線程同時方式。在本節(jié)你將看到使用臨界區(qū)、互斥、信號量和事件來處理線程同時問題。

1.臨界區(qū)

臨界區(qū)是一個最直接線程同時方式。所謂臨界區(qū),就是一次只能由一個線程來執(zhí)行一段代碼。假如把初始化數(shù)組代碼放在臨界區(qū)內(nèi),另一個線程在第一個線程處理完之前是不會被執(zhí)行。在使用臨界區(qū)之前,必須使用InitializeCriticalSection()過程來初始化它。

其申明以下:

procedureInitializeCriticalSection(varlpCriticalSection:

TRLCriticalSection);stdcall;

lpCriticalSection參數(shù)是一個TRTLCriticalSection類型統(tǒng)計,而且是變參。只需要在lpCriticalSection中傳遞未初始化統(tǒng)計,InitializeCriticalSection()過程就會填充這個統(tǒng)計。

在統(tǒng)計被填充后,我們就能夠開始創(chuàng)建臨界區(qū)了。這時我們需要用EnterCriticalSection()和LeaveCriticalSection()來封裝代碼塊。這兩個過程申明以下:

procedureEnterCriticalSection(varlpCriticalSection:TRRLCriticalSection);stdcall;

procedureLeaveCriticalSection(varlpCriticalSection:TRRLCriticalSection);stdcall;

正如你所想,參數(shù)lpCriticalSection就是由InitializeCriticalSection()填充統(tǒng)計。

當你不需要TRTLCriticalSection統(tǒng)計時,應該調(diào)用DeleteCriticalSection()過程,下面是它申明:

procedureDeleteCriticalSection(varlpCriticalSection:TRTLCriticalSection);stdcall;

2.互斥

互斥非常類似于臨界區(qū),除了兩個關鍵區(qū)分:首先,互斥可用于跨進程線程同時。其次,互斥能被賦予一個字符串名字,而且經(jīng)過引用此名字創(chuàng)建現(xiàn)有互斥對象附加句柄。

提醒臨界區(qū)與事件對象(比如互斥對象)最大區(qū)分是在性能上。臨界區(qū)在沒有線程沖突時,要用10~15個時間片,而事件對象因為包括到系統(tǒng)內(nèi)核要用400~600個時間片。能夠調(diào)用函數(shù)CreateMutex()來創(chuàng)建一個互斥量。下面是函數(shù)申明:

functionCreateMutext(lpMutextAtrribes:PSecurityAttributtes;

bInitalOwner:BOOL;lpName:PChar):THandle;stdcall;

lpMutexAttributes參數(shù)為一個指向TSecurityAttributtes統(tǒng)計指針。此參數(shù)通常設為0,表示默認安全屬性。bInitalOwner參數(shù)表示創(chuàng)建互斥對象線程是否要成為此互斥對象擁有者。當此參數(shù)為False時,表示互斥對象沒有擁有者。lpName參數(shù)指定互斥對象名稱。設為nil表示無命名,假如參數(shù)不是設為nil,函數(shù)會搜索是否有同名互斥對象存在。假如有,函數(shù)就會返回同名互斥對象句柄。不然,就新創(chuàng)建一個互斥對象并返回其句柄。當使用完互斥對象時,應該調(diào)用CloseHandle()來關閉它。

在程序中使用WaitForSingleObject()來預防其余線程進入同時區(qū)域代碼。此函數(shù)申明以下:

functionWaitForSingleObject(hHandle:THandle;dwMilliseconds:DWORD):DWORD;stdcall;

這個函數(shù)能夠使當前線程在dwMilliseconds指定時間內(nèi)睡眠,直到hHandle參數(shù)指定對象進入發(fā)信號狀態(tài)為止。一個互斥對象不再被線程擁有時,它就進入發(fā)信號狀態(tài)。當一個進程要終止時,它就進入發(fā)信號狀態(tài)。dwMilliseconds參數(shù)能夠設為0,這意味著只檢驗hHandle參數(shù)指定對象是否處于發(fā)信號狀態(tài),而后立刻返回。dwMilliseconds參數(shù)設為INFINITE,表示假如信號不出現(xiàn)將一直等下去。再次申明,當一個互斥對象不再被一個線程所擁有,它就處于發(fā)信號狀態(tài)。此時首先調(diào)用WaitForSingleObject()函數(shù)

線程就成為該互斥對象擁有者,此互斥對象設為不發(fā)信號狀態(tài)。當線程調(diào)用ReleaseMutex()函數(shù)并傳遞一個互斥對象句柄作為參數(shù)時,這種擁關于系就被解除,互斥對象重新進入發(fā)信號狀態(tài)。

注意除WaitForSingleObject()函數(shù)外,你還能夠使用WaitForMultipleObject()和MsgWaitForMultipleObject()函數(shù),

它們能夠等候幾個對象變?yōu)榘l(fā)信號狀態(tài)。這兩個函數(shù)詳細情況請看Win32API聯(lián)機文檔。

3.信號量

另一個使線程同時技術是使用信號量對象。它是在互斥基礎上建立,但信號量增加了資源計數(shù)功效,預定數(shù)目標線程允許同時進入要同時代碼。能夠用CreateSemaphore()來創(chuàng)建一個信號量對象,其申明以下:

functionCreateSemaphore(lpSemaphoreAttributes:PSecurityAttributes;

lInitialCount,lMaximumCount:Longint;lpName:PChar):THandle;stdcall;

和CreateMutex()函數(shù)一樣,CreateSemaphore()第一個參數(shù)也是一個指向TSecurityAttributes統(tǒng)計指針,此參數(shù)缺省值能夠設為nil。

lInitialCount參數(shù)用來指定一個信號量初始計數(shù)值,這個值必須在0和lMaximumCount之間。此參數(shù)大于0,就表示信號量處于發(fā)信號狀態(tài)。當調(diào)用WaitForSingleObject()函數(shù)(或其余函數(shù))時,此計數(shù)值就減1。當調(diào)用ReleaseSemaphore()時,此計數(shù)值加1。

參數(shù)lMaximumCount指定計數(shù)值最大值。假如這個信號量代表某種資源,那么這個值代表可用資源總數(shù)。

參數(shù)lpName用于給出信號量對象名稱,它類似于CreateMutex()函數(shù)lpName參數(shù)。4.怎樣用Java或C/C++語言實現(xiàn)多線程?(任選擇一個語言)//這個例子是基于事件對象#include<windows.h>#include<iostream.h>DWORDWINAPIFun1Proc(LPVOIDlpParameter);//threaddataDWORDWINAPIFun2Proc(LPVOIDlpParameter);//threaddatainttickets=100;HANDLEg_hEvent;voidmain(){HANDLEhThread1;HANDLEhThread2;//創(chuàng)建人工重置事件內(nèi)查對象g_hEvent=CreateEvent(NULL,FALSE,FALSE,"tickets");if(g_hEvent){if(ERROR_ALREADY_EXISTS==GetLastError()){cout<<"onlyoneinstancecanrun!"<<endl;return;}}SetEvent(g_hEvent);//創(chuàng)建線程hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);hThread2=CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);CloseHandle(hThread1);CloseHandle(hThread2);//讓根本程睡眠4秒Sleep(4000);//關閉事件對象句柄CloseHandle(g_hEvent);}//線程1入口函數(shù)DWORDWINAPIFun1Proc(LPVOIDlpParameter)//threaddata{while(true){WaitForSingleObject(g_hEvent,INFINITE);//ResetEvent(g_hEvent);if(tickets>0){Sleep(1);cout<<"thread1sellticket:"<<tickets--<<endl;SetEvent(g_hEvent);}else{SetEvent(g_hEvent);break;}}return0;}//線程2入口函數(shù)DWORDWINAPIFun2Proc(LPVOIDlpParameter)//threaddata{while(true){//請求事件對象WaitForSingleObject(g_hEvent,INFINITE);//ResetEvent(g_hEvent);if(tickets>0){Sleep(1);cout<<"thread2sellticket:"<<tickets--<<endl;SetEvent(g_hEvent);}else{SetEvent(g_hEvent);break;}}return0;}

溫馨提示

  • 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

提交評論