分布式系統(tǒng)復(fù)習(xí)習(xí)題與參考答案(答案完全版)_第1頁(yè)
分布式系統(tǒng)復(fù)習(xí)習(xí)題與參考答案(答案完全版)_第2頁(yè)
分布式系統(tǒng)復(fù)習(xí)習(xí)題與參考答案(答案完全版)_第3頁(yè)
分布式系統(tǒng)復(fù)習(xí)習(xí)題與參考答案(答案完全版)_第4頁(yè)
分布式系統(tǒng)復(fù)習(xí)習(xí)題與參考答案(答案完全版)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(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、關(guān)于分布式系統(tǒng)復(fù)習(xí)題與參考答案一、 填空題(每題n分,答錯(cuò) 個(gè)扣 分,全錯(cuò)全扣,共計(jì)m分)1下面特征分別屬于計(jì)算機(jī)網(wǎng)絡(luò)和分布式計(jì)算機(jī)系統(tǒng),請(qǐng)加以區(qū)別:分布式計(jì)算機(jī)是指系統(tǒng)內(nèi)部對(duì)用戶是完全透明的;系統(tǒng)中的計(jì)算機(jī)即合作又自治;系統(tǒng)可以利用多種物理和邏輯資源,可以動(dòng)態(tài)地給它們分配任務(wù)。計(jì)算機(jī)網(wǎng)絡(luò)是指互連的計(jì)算機(jī)是分布在不同地理位置的多臺(tái)獨(dú)立的“自治計(jì)算機(jī)”。2點(diǎn)到點(diǎn)通信子網(wǎng)的拓?fù)浣Y(jié)構(gòu)主要有以下幾種:星型、環(huán)型、樹型、網(wǎng)狀型,請(qǐng)根據(jù)其特征填寫相應(yīng)結(jié)構(gòu)。網(wǎng)狀型 :結(jié)點(diǎn)之間的連接是任意的,沒有規(guī)律。環(huán)型:節(jié)點(diǎn)通過(guò)點(diǎn)到點(diǎn)通信線路連接成閉合環(huán)路。星型:節(jié)點(diǎn)通過(guò)點(diǎn)到點(diǎn)通信線路與中心結(jié)點(diǎn)相連;樹型:結(jié)點(diǎn)按層次進(jìn)行

2、連接。3分布式計(jì)算系統(tǒng)可以分為兩個(gè)子組,它們是集群計(jì)算系統(tǒng)和網(wǎng)格計(jì)算系統(tǒng)。4分布式事務(wù)處理具有4個(gè)特性,原子性:對(duì)外部來(lái)說(shuō),事務(wù)處理是不可見的;一致性:事務(wù)處理不會(huì)違反系統(tǒng)的不變性;獨(dú)立性:并發(fā)的事務(wù)處理不會(huì)相互干擾;持久性:事務(wù)處理一旦提交,所發(fā)生的改變是永久性的。5網(wǎng)絡(luò)協(xié)議有三要素組成,時(shí)序是對(duì)事件實(shí)現(xiàn)順序的詳細(xì)說(shuō)明;語(yǔ)義是指需要發(fā)出何種控制信息,以及要完成的動(dòng)作與作出的響應(yīng);語(yǔ)法是指用戶數(shù)據(jù)與控制信息的結(jié)構(gòu)與格式6根據(jù)組件和連接器的不同,分布式系統(tǒng)體系結(jié)構(gòu)最重要的有4種,它們是:分層體系結(jié)構(gòu)、基于對(duì)象的體系結(jié)構(gòu)、以數(shù)據(jù)為中心的體系結(jié)構(gòu)、基于事件的體系結(jié)構(gòu)7在客戶-服務(wù)器的體系結(jié)構(gòu)中,應(yīng)用

3、分層通常分為3層,用戶接口層、處理層和數(shù)據(jù)層。8有兩種類型的分布式操作系統(tǒng),多處理器操作系統(tǒng)和多計(jì)算機(jī)操作系統(tǒng)。9軟件自適應(yīng)的基本技術(shù)有3種,一是要點(diǎn)分離、二是計(jì)算映像、三是基于組件的設(shè)計(jì)。10DCE本身是由多個(gè)服務(wù)構(gòu)成的,常用的有分布式文件系統(tǒng)、目錄服務(wù)、安全服務(wù)以及分布式時(shí)間服務(wù)等。11TCP/IP體系結(jié)構(gòu)的傳輸層上定義的兩個(gè)傳輸協(xié)議為傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)。12Windows NT的結(jié)構(gòu)借用了層次模型和客戶/服務(wù)器兩種模型。13常用的進(jìn)程調(diào)度算法有先來(lái)先服務(wù)、優(yōu)先數(shù)法和輪轉(zhuǎn)法14進(jìn)程的三個(gè)基本狀態(tài)是就緒、執(zhí)行、等待(阻塞)。15進(jìn)程是 程序在一個(gè)數(shù)據(jù)集合上的運(yùn)行

4、過(guò)程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè) 獨(dú)立單位16進(jìn)程四個(gè)特征是 動(dòng)態(tài)性, 并發(fā)性, 獨(dú)立性 ,異步性。17操作系統(tǒng)通??梢苑譃橐韵聨追N類型:批處理系統(tǒng)、分時(shí)系統(tǒng)、 實(shí)時(shí)系統(tǒng) 、 網(wǎng)絡(luò)操作系統(tǒng) 和分布式操作系統(tǒng)。18解決死鎖的基本方法包括預(yù)防死鎖, 避免死鎖,死鎖檢測(cè),死鎖恢復(fù)。19在引進(jìn)線程的操作系統(tǒng)中,調(diào)度和分派的基本單位是線程,擁有資源的單位是進(jìn)程。20在面向流的通信中,為連續(xù)提供支持?jǐn)?shù)據(jù)流的模式有異步傳輸模式、同步傳輸模式和等時(shí)傳輸模式三種。21在流同步機(jī)制,通常有在數(shù)據(jù)單元層次上進(jìn)行顯式同步和通過(guò)高級(jí)接口支持的同步兩種。22在分布式系統(tǒng)中,掛載外部名稱空間至少需要的信息是:訪問(wèn)協(xié)議的

5、名稱、服務(wù)器的名稱和外部名稱空間中掛載點(diǎn)的名稱。23在名稱空間的實(shí)現(xiàn)中,為了有效實(shí)現(xiàn)名稱空間,通常把它劃分為邏輯上的三層,其三層指的是全局層、行政層和管理層。24在名稱解析的實(shí)現(xiàn)中,通常采用兩種方法,一是迭代名稱解析;二是遞歸名稱解析。25在邏輯時(shí)鐘算法中,Lamport定義了一個(gè)稱作“先發(fā)生”的關(guān)系,表達(dá)式ab表示a在b之前發(fā)生。先發(fā)生關(guān)系是一個(gè)傳遞關(guān)系。26分布式系統(tǒng)中,通常有4種互斥算法,一是集中式、二是非集中式、三是分布式、四是令牌環(huán)。27分布式系統(tǒng)中的選舉算法有兩種,一是欺負(fù)選舉算法;二是環(huán)選舉算法。28在以數(shù)據(jù)為中心的一致性模型中,順序一致性是指“任何執(zhí)行結(jié)果都是相同的,所有進(jìn)程對(duì)

6、數(shù)據(jù)存儲(chǔ)的讀/寫操作是按某種序列順序執(zhí)行的,并且每個(gè)進(jìn)程的操作按照程序所制定的順序出現(xiàn)在這個(gè)序列中”。29在因果一致性中,所有進(jìn)程必須以相同的順序看到具有潛在因果關(guān)系的寫操作。不同機(jī)器可以以不同的順序看到并發(fā)的寫操作。30以客戶為中心的一致性模型中,滿足最終一致性的數(shù)據(jù)存儲(chǔ)具有以下屬性:沒有更新操作時(shí),所有副本逐漸成為相互完全相同的拷貝。31以客戶為中心的一致性模型中,一個(gè)寫操作總是在同一進(jìn)程執(zhí)行的后續(xù)讀操作之前完成,而不管這個(gè)后續(xù)的讀操作發(fā)生在什么位置。32在一致性協(xié)議中,基于主備份的協(xié)議比較盛行,它包括遠(yuǎn)程寫協(xié)議和本地寫協(xié)議兩種。33在一致性協(xié)議中,復(fù)制的寫協(xié)議包括主動(dòng)復(fù)制和基于多數(shù)表決的

7、一致性協(xié)議兩種。34在容錯(cuò)性中,故障通常被分為暫時(shí)性故障、間歇性故障和持久性故障三大類型。35如果系統(tǒng)是容錯(cuò)的,使用冗余掩蓋故障的方法有信息冗余、時(shí)間冗余和物理冗余三種。36在可靠的客戶-服務(wù)器通信中,失敗時(shí)的RPC系統(tǒng)中發(fā)生客戶不能定位服務(wù)器、請(qǐng)求消息丟失、服務(wù)器崩潰、應(yīng)答消息丟失和客護(hù)端崩潰等5種形式。37在原子多播里,消息排序通常有4種不同的排序方法,它們分別是:不排序的多播、FIFO順序的多播、按因果關(guān)系排序多播和全序多播。38容錯(cuò)性的基本要求是從錯(cuò)誤中恢復(fù),本質(zhì)上有兩種形式的錯(cuò)誤恢復(fù),一是回退恢復(fù);另一種是前向恢復(fù)。39在分布式安全性中,通??紤]計(jì)算機(jī)系統(tǒng)受到的安全威脅有竊聽、中斷、

8、修改和偽造等四種。40安全策略準(zhǔn)確地描述系統(tǒng)中的實(shí)體能夠采取的行為以及禁止采取的行為。41安全機(jī)制包括加密、身份認(rèn)證、授權(quán)和審計(jì)等四個(gè)部分。42分布式加密系統(tǒng)通常有三種類型,一是對(duì)稱加密系統(tǒng)(DES);二是公鑰加密系統(tǒng)(RSA)、三是散列函數(shù)(MDS)系統(tǒng)。43身份認(rèn)證是一種會(huì)話密鑰,常用的身份認(rèn)證有基于共享密鑰的身份認(rèn)證、使用密鑰分發(fā)中心的身份認(rèn)證、使用公鑰加密的身份認(rèn)證三種類型。44消息的完整性是指保護(hù)消息免受修改;其機(jī)密性確保竊聽者不能截獲和讀取消息。45在安全通道中,為了使消息完整性和機(jī)密性。通常采用數(shù)字簽名和會(huì)話密鑰的加密算法實(shí)現(xiàn)安全通道的數(shù)據(jù)交換。46在安全組通信中,要確保機(jī)密性,

9、機(jī)密組通信使用公鑰加密系統(tǒng)可以解決;而安全的復(fù)制服務(wù)器組中共享一個(gè)保密簽名的方法。47在訪問(wèn)控制中,要建立主體對(duì)對(duì)象的訪問(wèn)權(quán)限,其普通方法是構(gòu)造一個(gè)訪問(wèn)控制矩陣,而訪問(wèn)控制列表(ACL)和權(quán)能列表來(lái)實(shí)現(xiàn)。48防火墻通常分為兩種不同的類型,一種是數(shù)據(jù)包過(guò)濾網(wǎng)關(guān);另一種是應(yīng)用層的網(wǎng)關(guān)。49在分布式系統(tǒng)安全管理中,主要分密鑰管理、安全組管理以及授權(quán)管理三大內(nèi)容。50在容錯(cuò)性中,人們定義了一些不同類型的故障,主要的有崩潰性故障、遺漏性故障、定時(shí)性故障、響應(yīng)性故障以及隨意性故障等五大類。二、選擇題(每題n分,共m個(gè)題,共計(jì)x分)1網(wǎng)絡(luò)體系結(jié)構(gòu)可以定義為:( C )A、一種計(jì)算機(jī)網(wǎng)絡(luò)的實(shí)現(xiàn) B、執(zhí)行計(jì)算機(jī)

10、數(shù)據(jù)處理的軟件結(jié)構(gòu)C、建立和使用通信硬件和軟件的一套規(guī)則和規(guī)范 D、由ISO制定的一個(gè)標(biāo)準(zhǔn)2在OSI參考模型中,數(shù)據(jù)鏈路層的數(shù)據(jù)服務(wù)單元是:( C )A、分組 B、報(bào)文 C、幀 D、比特序列3下面屬于分布式計(jì)算系統(tǒng)的是(B C) A、資源管理 B、集群計(jì)算 C、網(wǎng)格計(jì)算 D、運(yùn)行應(yīng)用程序4目前分布式信息系統(tǒng)按集成可分為(A B)A、事務(wù)處理系統(tǒng) B、企業(yè)應(yīng)用集成 C、網(wǎng)絡(luò)管理 D、資源分配系統(tǒng)5現(xiàn)在已認(rèn)可的分布式系統(tǒng)軟件體系結(jié)構(gòu)樣式有(ABCD)A、分層體系結(jié)構(gòu) B、基于對(duì)象的體系結(jié)構(gòu)C、以數(shù)據(jù)為中心的體系結(jié)構(gòu) D、基于事件的體系結(jié)構(gòu)6兩個(gè)旅行社甲和乙為旅客到某航空公司訂飛機(jī)票,形成互斥的資源

11、是( A )。A. 飛機(jī)票 B旅行社 C航空公司 D旅行社和航空公司7DNS屬于( A )層協(xié)議。 A應(yīng)用層 B傳輸層 C互聯(lián)網(wǎng)層 D網(wǎng)絡(luò)接口層8活動(dòng)目錄是一種( AB )結(jié)構(gòu)的目錄服務(wù)。 A層次式 B分布式 C對(duì)等式 D主次式9對(duì)于域名:,DNS服務(wù)器查找順序是( B )。 A先查找test主機(jī),再查找域B先查找域,再查找test主機(jī)C隨機(jī)查找 D以上答案皆是10SMTP協(xié)議是關(guān)于( A )的協(xié)議。 A郵件傳輸 B文件傳輸 C超文本傳輸 D網(wǎng)絡(luò)新聞組傳輸11POP3協(xié)議是關(guān)于( C )的協(xié)議。 A超文本傳輸 B郵件傳輸 C接收郵件 D網(wǎng)絡(luò)新聞組傳輸12遠(yuǎn)程客戶端登錄終端服務(wù)器必須提供一定的信

12、息,下列有(AC)屬于這種必要的信息。 A用戶名 B域 C服務(wù)器IP地址 D連接名稱13在多播通信中,應(yīng)用層多播樹的質(zhì)量通常以(ABC)不同的尺度來(lái)度量。 A鏈接樹 B. 相對(duì)延時(shí)補(bǔ)償 C. 樹成本 D. 樹結(jié)構(gòu)14以多播流方式傳遞內(nèi)容時(shí)只能采用(B)類型的發(fā)布點(diǎn)。A單播發(fā)布點(diǎn) B廣播發(fā)布點(diǎn)C單播發(fā)布點(diǎn)或廣播發(fā)布 D既不是單播發(fā)布點(diǎn)也非廣播發(fā)布點(diǎn)15DNS名稱空間是分層組織的一棵有根樹,標(biāo)識(shí)符是有( C )。 A字母組成 B. 數(shù)字組成 C. 字母和數(shù)字組成 D. 漢字組成16IDL編譯器的輸出包括的文件是( ABD )。 A文件頭 B. 客戶存根 C. 守護(hù)程序 D. 服務(wù)器存根17下列屬于

13、流同步的是(C D)。A位同步 B. 字同步 C. 離散數(shù)據(jù)流與連續(xù)數(shù)據(jù)流之間同步D口型同步18實(shí)現(xiàn)線程包的基本方法有(AC)。A構(gòu)造一個(gè)完全在用戶模式下執(zhí)行的線程庫(kù) B. 由進(jìn)程間通信實(shí)現(xiàn)C由內(nèi)核來(lái)管理線程并進(jìn)行調(diào)度 D. 由用戶程序來(lái)實(shí)現(xiàn)19下面是多線程服務(wù)器可行的設(shè)計(jì)方法是(ACD) A多線程文件服務(wù)器 B. Web服務(wù) C單線稱文件服務(wù)器 D. 作為有限狀態(tài)機(jī)20與迭代名稱解析比較,遞歸名稱解析的優(yōu)點(diǎn)是(B C)。A要求服務(wù)器性能高 B. 緩存結(jié)果更為有效C能減少通信開銷 D. 算法簡(jiǎn)單21名稱用來(lái)表示實(shí)體,下面屬于實(shí)體名稱的是(BCD)A實(shí)體圖 B. 標(biāo)識(shí)符 C. 易于理解的名稱 D

14、. 實(shí)體地址22下面用于定位移動(dòng)實(shí)體的方法是(ABCD)A使用廣播與多播 B. 使用轉(zhuǎn)發(fā)指針 C給實(shí)體指定一個(gè)起始位置 D. 創(chuàng)建一棵分層搜索樹23分布式系統(tǒng)的全局狀態(tài)是指( B D )。 A用于計(jì)算的臨時(shí)記錄 B. 每個(gè)進(jìn)程的本地狀態(tài) C要發(fā)送的消息 D. 當(dāng)前正在傳輸中的消息24面向消息的中間件模型一般提供(ACD)。A持久異步通信 B. RPC和RMIC電子郵件 D. 工作流25在分布式系統(tǒng)中,實(shí)現(xiàn)事務(wù)的方法是(B C)。A創(chuàng)建進(jìn)程 B. 為進(jìn)程分配私有工作空間C做寫前日志 D. 創(chuàng)建線程26并發(fā)控制的總體思想是( A )。A正確調(diào)度相沖突的操作 B. 對(duì)事務(wù)進(jìn)行管理C進(jìn)行數(shù)據(jù)的更新 D

15、. 有序的通信27下面屬于進(jìn)程間同步算法的是(C D)。AFIFO算法 B. 基于優(yōu)先級(jí)的算法C選舉算法 D. 互斥算法28嚴(yán)格一致性中存在的問(wèn)題是(A)。A依賴于絕對(duì)的全局時(shí)間 B. 不依賴于絕對(duì)的全局時(shí)間C依賴于并發(fā)控制算法 D. 不依賴于并發(fā)控制算法29下列屬于“以數(shù)據(jù)為中心的一致性模型”是(ACD)。A線性化和順序一致性 B. 最終一致性C因果一致性 D. FIFO一致性30下列屬于“以客戶為中心的一致性模型”是(BCD)。A嚴(yán)格一致性 B. 單調(diào)讀一致性C寫后讀一致性 D. 讀后寫一致性31下面屬于一致性協(xié)議的是(C D)。A傳輸協(xié)議 B. 中間件協(xié)議C基于主備份的協(xié)議 D. 復(fù)制的

16、寫協(xié)議32基于主備份的協(xié)議是指(A B) A負(fù)責(zé)協(xié)調(diào)X上的遠(yuǎn)程寫操作 B. 負(fù)責(zé)協(xié)調(diào)X上的本地寫操作 C主動(dòng)復(fù)制 D. 協(xié)調(diào)操作33冗余是獲得容錯(cuò)性所需的關(guān)鍵技術(shù),下面屬于冗余掩蓋故障的是(BCD)。A存儲(chǔ)器冗余 B. 信息冗余C時(shí)間冗余 D. 物理冗余34在可靠多播通信中,解決反饋擁塞的方法是(A B)。A無(wú)等級(jí)的反饋控制 B. 分等級(jí)的反饋控制C分層的反饋控制 D. 閉環(huán)反饋控制35實(shí)現(xiàn)可靠原子多播的方法是(B C)。A轉(zhuǎn)發(fā)指針 B. 消息排序C虛擬同步 D. 指針緩存36在分布式系統(tǒng)安全設(shè)計(jì)問(wèn)題中,控制的焦點(diǎn)是(ABC)。A防止無(wú)效操作的保護(hù) B. 防止未經(jīng)授權(quán)調(diào)用的保護(hù)C防止未經(jīng)授權(quán)用

17、戶的保護(hù) D. 安全機(jī)制的保護(hù)37在分布式系統(tǒng)中,加密和解密的實(shí)現(xiàn)是(D)。A遞歸算法 B. 安全管理C通道管理 D. 以密鑰為參數(shù)的加密算法38分布式系統(tǒng)常用的加密系統(tǒng)有(ABC)。A對(duì)稱加密系統(tǒng)(DES) B. 公鑰加密系統(tǒng)(RSA)C散列函數(shù)(MDS) D. 授權(quán)加密39在分布式系統(tǒng)安全通道的通信中,其安全性歸結(jié)為(B C)。A授權(quán)訪問(wèn) B. 對(duì)通信各方進(jìn)行身份驗(yàn)證C確保消息完整性和機(jī)密性 D. 檢驗(yàn)權(quán)限40在分布式安全訪問(wèn)控制中,實(shí)現(xiàn)訪問(wèn)控制的方式有(A BC)。A構(gòu)造訪問(wèn)控制矩陣 B. 構(gòu)造保護(hù)域C采用防火墻 D. 密鑰管理三簡(jiǎn)答題(每小題n分,共m分)1按照資源共享的觀念定義的計(jì)算

18、機(jī)網(wǎng)絡(luò)具備哪幾個(gè)主要特征答:三個(gè)主要特征:1.建立的目的是實(shí)現(xiàn)計(jì)算機(jī)資源的共享,包括數(shù)據(jù)資源軟件資源和硬件資源。2.互連的計(jì)算機(jī)是分布在不同地理位置的多臺(tái)獨(dú)立的”自治計(jì)算機(jī)”。3.連網(wǎng)的計(jì)算機(jī)之間的通信必須遵循共同的網(wǎng)絡(luò)協(xié)議。2為什么傳輸層通信服務(wù)常常不適于構(gòu)建分布式應(yīng)用程序答:因?yàn)樗贿m合用于支持多層客戶-服務(wù)器交互過(guò)程所使用的同步請(qǐng)求-應(yīng)答方式,在可靠傳輸中,造成許多開銷都耗費(fèi)在連接的管理上。3描述一下客戶和服務(wù)器之間使用套接字的無(wú)連接通信是如何進(jìn)行的答:首先服務(wù)器和客戶端都要?jiǎng)?chuàng)建一個(gè)套接字,并遵循UDP協(xié)議,服務(wù)器將其所在的IP地址以及一個(gè)端口號(hào)綁定到套接字,完成綁定后,服務(wù)器就能接收來(lái)

19、自客戶端的UDP數(shù)據(jù)包了。同樣,客戶端在創(chuàng)建套接字后,能夠向服務(wù)器發(fā)送UDP包進(jìn)行通信,通信過(guò)程中,服務(wù)器和客戶端之間是不用建立連接的。4簡(jiǎn)述TCP和UDP協(xié)議在通信中的區(qū)別TCP是面向連接的可靠的協(xié)議,適用于傳輸大批量的文件,檢查是否正常傳輸。而UDP是面向非連接的不可靠的協(xié)議,適用于傳輸一次性小批量的文件,不對(duì)傳輸數(shù)據(jù)報(bào)進(jìn)行檢查。TCP需要先建立連接才能通話;而UDP不需要,實(shí)時(shí)性要高點(diǎn)。TCP可以形象比喻為打電話的過(guò)程;UDP可以比喻為發(fā)短信的過(guò)程。TCP不能發(fā)送廣播和組播,只能單播;UDP可以廣播和組播。5Java RMI對(duì)代碼遷移依賴到何種程度答:Java RMI時(shí),每一個(gè)方法引用傳

20、遞實(shí)際上就是執(zhí)行一次代碼的遷移,對(duì)于移植性差的進(jìn)程來(lái)說(shuō),代碼遷移是非常必要的。6標(biāo)識(shí)符是否可以包含它所引用實(shí)體的信息答:標(biāo)識(shí)符可以包含它所引用實(shí)體的信息,但是,這些信息不允許修改,因?yàn)槟且馕吨鴺?biāo)識(shí)符被改變。7在深度為k的分層定位服務(wù)中,當(dāng)移動(dòng)實(shí)體改變它的位置時(shí),最多需要更新多少條位置記錄答:移動(dòng)實(shí)體改變位置會(huì)產(chǎn)生刪除操作和插入操作,刪除操作至少需要更新k條位置記錄。同樣,插入操作也需要更新k條位置記錄。最后,刪除與插入更新移動(dòng)實(shí)體位置的記錄共需要2k+1條。 8要使用Lamport時(shí)間戳實(shí)現(xiàn)全序多播,是不是每個(gè)消息都必須要被嚴(yán)格地確認(rèn)答:不需要,任何類型的消息,只要它的時(shí)間戳大于所接收到的消息

21、的時(shí)間戳,就可以被加入消息隊(duì)列,使用Lamport時(shí)間戳實(shí)現(xiàn)全序多播。 9許多分布式算法需要使用協(xié)調(diào)進(jìn)程。討論一下,這樣的算法實(shí)際上可以在什么程度上被看作為分布式的答:在集中式算法中,一般會(huì)選擇一個(gè)固定的進(jìn)程作為協(xié)調(diào)者,其它的進(jìn)程可以分布在不同的機(jī)器上運(yùn)行。分布式算法中也同樣可以引入?yún)f(xié)調(diào)進(jìn)程,但是,這個(gè)進(jìn)程并不是固定的,它是從作為算法一部分的進(jìn)程中選擇的。因此,使用協(xié)調(diào)進(jìn)程并不會(huì)影響算法的分布性。 10作業(yè)調(diào)度和進(jìn)程調(diào)度有何區(qū)別答:作業(yè)調(diào)度與進(jìn)程調(diào)度之間的差別主要是:作業(yè)調(diào)度是宏觀調(diào)度,它所選擇的作業(yè)只是具有獲得處理機(jī)的資格,但尚未占有處理機(jī),不能立即在其上實(shí)際運(yùn)行;而進(jìn)程調(diào)度是微觀調(diào)度,動(dòng)態(tài)

22、地把處理機(jī)實(shí)際地分配給所選擇的進(jìn)程,使之真正活動(dòng)起來(lái)。另外,進(jìn)程調(diào)度相當(dāng)頻繁,而作業(yè)調(diào)度執(zhí)行的次數(shù)一般很少。 11請(qǐng)解釋DNS如何進(jìn)行復(fù)制,以及它實(shí)際運(yùn)行很好的原因。答:DNS進(jìn)行復(fù)制的基本思想是:域名服務(wù)器可以緩存以前查找過(guò)的結(jié)果。由于DNS的名稱到地址的映射很少更改,因此,這些結(jié)果可以緩存很長(zhǎng)一段時(shí)間。 12簡(jiǎn)述進(jìn)程與程序的聯(lián)系和區(qū)別答:(1)聯(lián)系:一個(gè)進(jìn)程可以涉及到一個(gè)或幾個(gè)程序的執(zhí)行;一個(gè)程序可以對(duì)應(yīng)一個(gè)或多個(gè)進(jìn)程,即同一程序段可以在不同數(shù)據(jù)集合上運(yùn)行,可構(gòu)成不同的進(jìn)程,例如打印輸出程序段,例如同一高級(jí)語(yǔ)言編譯程序與多個(gè)用戶源程序。(2)進(jìn)程和程序的區(qū)別主要體現(xiàn)在:1)進(jìn)程是動(dòng)態(tài)的,具

23、有一定的生命周期,而程序是靜態(tài)的;2)進(jìn)程可并發(fā)執(zhí)行,而沒有創(chuàng)建進(jìn)程的程序是不能執(zhí)行的;3)進(jìn)程是操作系統(tǒng)中申請(qǐng)和分配資源的基本單位,而沒有創(chuàng)建進(jìn)程的程序是不能申請(qǐng)資源的;4)進(jìn)程包括程序、數(shù)據(jù)和進(jìn)程控制塊;5)同一程序的多次執(zhí)行對(duì)應(yīng)多個(gè)進(jìn)程13在下圖中,一個(gè)順序一致的存儲(chǔ)器允許6種可能的語(yǔ)句交叉。請(qǐng)列舉出這6種可能的情況。進(jìn)程P1 進(jìn)程P2 x=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 );

24、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一個(gè)文件被復(fù)制在10個(gè)服務(wù)器上,請(qǐng)列出表決算法允許的所有讀團(tuán)體和寫團(tuán)體。答:下列可能性的讀團(tuán)體和寫團(tuán)體是合法的:(1,10)、(2,9)、(3,8)、(4,7)、(5,6)、(6,5)、(7,4)、(8,3)、(9,2)、(10,1)。 15

25、原子多播的可擴(kuò)展性重要到哪種程度上答:它取決于一組包含多個(gè)進(jìn)程的狀態(tài)。如果進(jìn)程為故障容錯(cuò)進(jìn)行了復(fù)制,擁有少量的副本可能就足夠了,在這種情況下,可擴(kuò)展性幾乎不成問(wèn)題。如果是由不同進(jìn)程構(gòu)成的組,可擴(kuò)展性就可能成了一個(gè)問(wèn)題。當(dāng)為了性能而復(fù)制時(shí),原子多播自身可能超出負(fù)荷的能力。 16在兩階段提交協(xié)議中,為什么即使在參與者們選擇一個(gè)新的協(xié)調(diào)者的情況下也不會(huì)完全消除阻塞答:因?yàn)檫x舉結(jié)束后,新的協(xié)調(diào)者也同樣可能會(huì)崩潰。在這種情況下,其余的參與者也不能做出最后決定,因?yàn)檫@需要由新當(dāng)選的協(xié)調(diào)者發(fā)起選舉。 17假設(shè)Alice希望向Bob發(fā)送一條消息m。她沒有使用Bob的公鑰K+B加密m,而是生成了一個(gè)會(huì)話密鑰KA

26、,B,然后發(fā)送KA,B(m), K+B(KA,B)。為什么一般來(lái)講,這種方法更好(提示:考慮性能問(wèn)題)。答:會(huì)話密鑰有一個(gè)短而固定的長(zhǎng)度,而消息m可能是任意長(zhǎng)度。因此,采用會(huì)話密鑰和公鑰結(jié)合加密短消息通常在性能方面優(yōu)于只使用一個(gè)公鑰加密的消息。 18列舉出為密鑰管理使用集中式服務(wù)的一些優(yōu)點(diǎn)和缺點(diǎn)。答:一個(gè)顯著的優(yōu)點(diǎn)是簡(jiǎn)單。比如:若有N個(gè)客戶在一個(gè)集中式的服務(wù)器上共享了1個(gè)密鑰,我們就只需要維護(hù)N個(gè)密鑰;如果是成對(duì)共享密鑰,那我們就需要維護(hù)N(N-1)/2個(gè)。而且使用集中式服務(wù)器存儲(chǔ)和維護(hù)都在一個(gè)站點(diǎn)上,使存儲(chǔ)和維護(hù)都比較方便。潛在的缺點(diǎn):首先是服務(wù)器有可能成為性能和可用性的瓶頸。其次,如果服務(wù)

27、器機(jī)密被泄露,就必須建立新的密鑰。19一個(gè)網(wǎng)絡(luò)中,DNS服務(wù)器應(yīng)該部署在什么地方最合適答:要用域名訪問(wèn)Internet上的服務(wù)器必須先訪問(wèn)DNS服務(wù)器,經(jīng)過(guò)DNS對(duì)域名的解析才能連接到相應(yīng)的主機(jī)。所以,在一個(gè)網(wǎng)絡(luò)中,DNS服務(wù)器應(yīng)該部署在客戶端可以集中訪問(wèn)的網(wǎng)絡(luò)位置上。20進(jìn)程間同步和互斥的含義是什么答:進(jìn)程間同步是并發(fā)進(jìn)程之間存在的相互制約和相互依賴的關(guān)系。進(jìn)程間互斥是若干進(jìn)程共享一資源時(shí),任何時(shí)刻只允許一個(gè)進(jìn)程使用。四綜合題(本題結(jié)果不是唯一的,每小題n分,共m分)1有三個(gè)進(jìn)程P1,P2和P3并發(fā)工作。進(jìn)程P1需用資源S3和S1;進(jìn)程P2需用資源S1和S2;進(jìn)程P3需用資源S2和S3?;卮?/p>

28、:(1)若對(duì)資源分配不加限制,會(huì)發(fā)生什么情況為什么(2)為保證進(jìn)程正確工作,應(yīng)采用怎樣的資源分配策略為什么(1)多個(gè)進(jìn)程動(dòng)態(tài)地共享系統(tǒng)的資源可能會(huì)產(chǎn)生死鎖現(xiàn)象。死鎖的產(chǎn)生,必須同時(shí)滿足四個(gè)條件,第一個(gè)是互斥條件,即一個(gè)資源每次只能由一個(gè)進(jìn)程占用;第二個(gè)為等待條件,即一個(gè)進(jìn)程請(qǐng)求資源不能滿足時(shí),它必須等待,但它仍繼續(xù)保持已得到的所有其它資源;第三個(gè)是非出讓條件,任何一個(gè)進(jìn)程不能搶占另一個(gè)進(jìn)程已經(jīng)獲得且未釋放的資源;第四個(gè)為循環(huán)等待條件,系統(tǒng)中存在若干個(gè)循環(huán)等待的進(jìn)程,即其中每一個(gè)進(jìn)程分別等待它前一個(gè)進(jìn)程所持有的資源。防止死鎖的機(jī)構(gòu)只須確保上述四個(gè)條件之一不出現(xiàn),則系統(tǒng)就不會(huì)發(fā)生死鎖。只要資源分配

29、策略能保證進(jìn)程不出現(xiàn)循環(huán)等待,則系統(tǒng)就不會(huì)發(fā)生死鎖。(2) 銀行家算法分配資源的原則是:系統(tǒng)掌握每個(gè)進(jìn)程對(duì)資源的最大需求量,當(dāng)進(jìn)程要求申請(qǐng)資源時(shí),系統(tǒng)就測(cè)試該進(jìn)程尚需資源的最大量,如果系統(tǒng)中現(xiàn)存的資源數(shù)大于或等于該進(jìn)程尚需的最大量時(shí),則就滿足進(jìn)程的當(dāng)前申請(qǐng)。這樣可以保證至少有一個(gè)進(jìn)程可能得到全部資源而執(zhí)行到結(jié)束,然后歸還它所占用的全部資源供其它進(jìn)程使用。銀行家算法破壞了產(chǎn)生死鎖的第四個(gè)條件,即不可能產(chǎn)生循環(huán)等待,從而可以避免死鎖的發(fā)生。防止進(jìn)程發(fā)生循環(huán)等待的另一種資源分配策略是按序分配算法,其基本思想如下:把系統(tǒng)中所有的資源排一個(gè)順序,例如系統(tǒng)共有m個(gè)資源,用ri表示第i個(gè)資源,那么這m個(gè)資源

30、是: r1, r2, r3 , rm規(guī)定任何進(jìn)程不得在占用資源ri(1im)后再申請(qǐng)rj(jim),或者說(shuō),如果里程需要資源rj,那么它必須在申請(qǐng)ri之前申請(qǐng)(ji)。可以證明,按這種策略分配資源時(shí)破壞了循環(huán)等待條件,故能防止發(fā)生死鎖 2如何設(shè)計(jì)一個(gè)好的RPC采用client/server模型與應(yīng)用程序的組件說(shuō)明開發(fā)過(guò)程本文比較詳細(xì)地介紹了遠(yuǎn)程過(guò)程調(diào)用(RPC)的OSF標(biāo)準(zhǔn)在Microsoft VC+中的實(shí)現(xiàn)原理, 以及如何使用它們來(lái)開發(fā)應(yīng)用程序. 閱讀本文你將了解RPC的基本原理, 并將看到如何開發(fā)使用RPC進(jìn)行異種機(jī)網(wǎng)絡(luò)分布式處理的客戶機(jī)應(yīng)用程序和服務(wù)器應(yīng)用程序.Para 1. RPC工作

31、原理RPC是把傳統(tǒng)本地過(guò)程調(diào)用的概念加以擴(kuò)充后引入分布式環(huán)境的一種形式. RPC的形式和行為與傳統(tǒng)本地過(guò)程調(diào)用極為相似, 差別僅在于被調(diào)用的procedure(過(guò)程)實(shí)際運(yùn)行在與調(diào)用者的場(chǎng)點(diǎn)不同的場(chǎng)點(diǎn)上(如圖1). 也正是由于這一差別, 我們得通過(guò)編寫程序來(lái)實(shí)現(xiàn)兩場(chǎng)地之間的連接和信息溝通.RPC機(jī)制的實(shí)質(zhì)是實(shí)現(xiàn)OSI七層模型中的會(huì)話層功能. 它在兩個(gè)試圖進(jìn)行通信的場(chǎng)點(diǎn)之間建立一條邏輯信道(即會(huì)話連接), 并利用這個(gè)信道交換信息, 不用時(shí)就釋放連接. 下面我們就來(lái)看看RPC的通信模型(如下圖2):Client端: 1) 發(fā)送遠(yuǎn)程過(guò)程調(diào)用的消息(以消息包形式)給遠(yuǎn)程的server端;2) 等待,

32、直到收到server端對(duì)該請(qǐng)求的回復(fù);3) 一旦接收到來(lái)自server端的返回執(zhí)行結(jié)果, 就繼續(xù)執(zhí)行后面的程序.Server端:1) 傾聽狀態(tài), 等待client端發(fā)送過(guò)程調(diào)用消息;2) 一旦接收到過(guò)程調(diào)用消息, server就抽取參數(shù)并分析它, 然后執(zhí)行所請(qǐng)求的過(guò)程;3) 將執(zhí)行結(jié)果以消息包形式回送給client.至于RPC的具體實(shí)現(xiàn), 我們可以借助下圖3來(lái)理解:圖3 RPC的實(shí)現(xiàn)概況其中stub是一組RPC機(jī)制的操作原語(yǔ), 這些原語(yǔ)構(gòu)成了RPC的實(shí)現(xiàn)細(xì)節(jié), 它可以獨(dú)立于client、server編程. 下面我們來(lái)解說(shuō)圖3的執(zhí)行過(guò)程:1) 調(diào)用者調(diào)用本地stub中的一個(gè)過(guò)程(開始遠(yuǎn)程過(guò)程調(diào)用

33、請(qǐng)求).2) 這個(gè)stub過(guò)程把有關(guān)的參數(shù)組裝成一個(gè)消息包或一組消息包, 形成一條消息. 運(yùn)行此執(zhí)行過(guò)程的遠(yuǎn)程場(chǎng)點(diǎn)的IP地址和執(zhí)行該過(guò)程的進(jìn)程ID號(hào)也包含在這條消息中.3) 將這條消息發(fā)送給對(duì)應(yīng)的RPC runtime(RPC運(yùn)行庫(kù))子程序, 由這個(gè)子程序?qū)⑾l(fā)送到遠(yuǎn)程場(chǎng)點(diǎn).4) 在接收到這條消息時(shí), server端的RPC runtime子程序引用與被調(diào)用者對(duì)應(yīng)的stub中的一個(gè)子程序, 并讓它來(lái)處理消息.5) 與被調(diào)用者對(duì)應(yīng)的stub中的這個(gè)子程序撤卸消息, 解析出相關(guān)參數(shù), 并用本地調(diào)用方式執(zhí)行所指定的過(guò)程.6) 返回調(diào)用結(jié)果, 調(diào)用者對(duì)應(yīng)的stub子程序執(zhí)行return語(yǔ)句返回到用戶

34、, 整個(gè)RPC過(guò)程結(jié)束.實(shí)際上, 從上面這個(gè)執(zhí)行過(guò)程中, 我們可以看到RPC的實(shí)現(xiàn)主要有兩個(gè)問(wèn)題需要解決. 一個(gè)是在遠(yuǎn)程過(guò)程調(diào)用時(shí), 如何定位遠(yuǎn)程場(chǎng)點(diǎn); 另外一個(gè)就是相關(guān)的兩個(gè)場(chǎng)點(diǎn)必須能協(xié)同工作, 所有這些工作對(duì)用戶都是透明的, 依次執(zhí)行.通常在實(shí)際編程中, 程序設(shè)計(jì)者主要負(fù)責(zé)設(shè)計(jì)計(jì)算過(guò)程并實(shí)現(xiàn)計(jì)算過(guò)程體, 而對(duì)應(yīng)的stub由系統(tǒng)生成. 后面我們就要說(shuō)到Microsoft的RPC實(shí)現(xiàn)機(jī)制,看看它是如何產(chǎn)生stub的。Para2. 如何設(shè)計(jì)好的RPC對(duì)調(diào)用雙方來(lái)說(shuō), 傳遞RPC參數(shù)包括輔助處理本地?cái)?shù)據(jù)表示和網(wǎng)絡(luò)數(shù)據(jù)表示的相互轉(zhuǎn)換. 此外, 輸入輸出參數(shù)需要一些存儲(chǔ)分配. 同時(shí), RPC中的等待時(shí)

35、間也不能忽略.所以, 一般來(lái)說(shuō), 應(yīng)該盡可能降低調(diào)用次數(shù). 例如,如果要對(duì)一個(gè)大數(shù)組的每個(gè)元素都執(zhí)行計(jì)算, 我們就可以一次調(diào)用處理一整行或者整個(gè)數(shù)組, 而不用每次調(diào)用傳遞一個(gè)元素. 這樣可以降低有RPC引入的額外開銷.Para3. 應(yīng)用程序的組件為了在client和server端使用RPC, 當(dāng)然少不了client進(jìn)程和server進(jìn)程. 另外還有一個(gè)名稱服務(wù)進(jìn)程, 這個(gè)稍后再說(shuō).開發(fā)過(guò)程大致是這樣的:1) 任何RPC調(diào)用都使用一個(gè)定義在IDL(interface definition language, 接口定義語(yǔ)言)文件中的接口, 然后MIDL(Microsoft IDL)編譯器對(duì)IDL文

36、件進(jìn)行編譯, 編譯之后會(huì)自動(dòng)生成一個(gè).h文件, 同時(shí)生成一個(gè) client stub 和一個(gè)server stub. 關(guān)于這個(gè)你可以在dos下運(yùn)行得到更詳細(xì)的信息.2) Client端應(yīng)用程序使用client stub調(diào)用RPC runtime以實(shí)現(xiàn)網(wǎng)絡(luò)上的調(diào)用. 接下來(lái)RPC運(yùn)行時(shí)使用一組DLL中的一個(gè)來(lái)實(shí)現(xiàn)被使用的特定網(wǎng)絡(luò)協(xié)議.3) Server端也與RPC runtime連接. 不過(guò)server端應(yīng)用程序使用一些其它的函數(shù)來(lái)將自己作為一個(gè)特殊接口的服務(wù)器進(jìn)行注冊(cè)(向誰(shuí)注冊(cè)), 并開始偵聽接口的請(qǐng)求. 3如何用Java或其它語(yǔ)言解決線程同步與互斥的問(wèn)題(任選擇一種語(yǔ)言)同步 有同步方法和同

37、步塊當(dāng)有多個(gè)線程的時(shí)候,經(jīng)常需要去同步這些線程以訪問(wèn)同一個(gè)數(shù)據(jù)或資源。例如,假設(shè)有一個(gè)程序,其中一個(gè)線程用于把文件讀到內(nèi)存,而另一個(gè)線程用于統(tǒng)計(jì)文件中的字符數(shù)。由于每個(gè)操作都有自己的線程,操作系統(tǒng)會(huì)把兩個(gè)線程當(dāng)作是互不相干的任務(wù)分別執(zhí)行,這樣就可能在沒有把整個(gè)文件裝入內(nèi)存時(shí)統(tǒng)計(jì)字?jǐn)?shù)。為解決此問(wèn)題,你必須使兩個(gè)線程同步工作。存在一些線程同步地址的問(wèn)題,Win32提供了許多線程同步的方式。在本節(jié)你將看到使用臨界區(qū)、互斥、信號(hào)量和事件來(lái)解決線程同步的問(wèn)題。1. 臨界區(qū)臨界區(qū)是一種最直接的線程同步方式。所謂臨界區(qū),就是一次只能由一個(gè)線程來(lái)執(zhí)行的一段代碼。如果把初始化數(shù)組的代碼放在臨界區(qū)內(nèi),另一個(gè)線程在

38、第一個(gè)線程處理完之前是不會(huì)被執(zhí)行的。在使用臨界區(qū)之前,必須使用InitializeCriticalSection()過(guò)程來(lái)初始化它。其聲明如下: procedure InitializeCriticalSection(var lpCriticalSection: TRLCriticalSection);stdcall;lpCriticalSection參數(shù)是一個(gè)TRTLCriticalSection類型的記錄,并且是變參。只需要在lpCriticalSection中傳遞未初始化的記錄,InitializeCriticalSection()過(guò)程就會(huì)填充這個(gè)記錄。在記錄被填充后,我們就可以開始創(chuàng)建

39、臨界區(qū)了。這時(shí)我們需要用EnterCriticalSection()和 LeaveCriticalSection()來(lái)封裝代碼塊。這兩個(gè)過(guò)程的聲明如下: procedure EnterCriticalSection(var lpCriticalSection:TRRLCriticalSection);stdcall; procedure LeaveCriticalSection(var lpCriticalSection:TRRLCriticalSection);stdcall;正如你所想的,參數(shù)lpCriticalSection就是由InitializeCriticalSection()填充

40、的記錄。當(dāng)你不需要TRTLCriticalSection記錄時(shí),應(yīng)當(dāng)調(diào)用DeleteCriticalSection()過(guò)程,下面是它的聲明:procedure DeleteCriticalSection(var lpCriticalSection: TRTLCriticalSection); stdcall; 2. 互斥互斥非常類似于臨界區(qū),除了兩個(gè)關(guān)鍵的區(qū)別:首先,互斥可用于跨進(jìn)程的線程同步。其次,互斥能被賦予一個(gè)字符串名字,并且通過(guò)引用此名字創(chuàng)建現(xiàn)有互斥對(duì)象的附加句柄。提示臨界區(qū)與事件對(duì)象(比如互斥對(duì)象)的最大的區(qū)別是在性能上。臨界區(qū)在沒有線程沖突時(shí),要用1 0 1 5個(gè)時(shí)間片,而事件對(duì)象

41、由于涉及到系統(tǒng)內(nèi)核要用400600個(gè)時(shí)間片。可以調(diào)用函數(shù)CreateMutex ( )來(lái)創(chuàng)建一個(gè)互斥量。下面是函數(shù)的聲明:function CreateMutext(lpMutextAtrribes:PSecurityAttributtes; bInitalOwner:BOOL; lpName:PChar):THandle; stdcall;lpMutexAttributes參數(shù)為一個(gè)指向TSecurityAttributtes記錄的指針。此參數(shù)通常設(shè)為0,表示默認(rèn)的安全屬性。bInitalOwner參數(shù)表示創(chuàng)建互斥對(duì)象的線程是否要成為此互斥對(duì)象的擁有者。當(dāng)此參數(shù)為False時(shí),表示互斥對(duì)象沒

42、有擁有者。lpName參數(shù)指定互斥對(duì)象的名稱。設(shè)為nil表示無(wú)命名,如果參數(shù)不是設(shè)為nil,函數(shù)會(huì)搜索是否有同名的互斥對(duì)象存在。如果有,函數(shù)就會(huì)返回同名互斥對(duì)象的句柄。否則,就新創(chuàng)建一個(gè)互斥對(duì)象并返回其句柄。當(dāng)使用完互斥對(duì)象時(shí),應(yīng)當(dāng)調(diào)用CloseHandle()來(lái)關(guān)閉它。 在程序中使用WaitForSingleObject()來(lái)防止其他線程進(jìn)入同步區(qū)域的代碼。此函數(shù)聲明如下:function WaitForSingleObject(hHandle: THandle; dwMilliseconds: DWORD): DWORD; stdcall;這個(gè)函數(shù)可以使當(dāng)前線程在dwMillisecond

43、s指定的時(shí)間內(nèi)睡眠,直到hHandle參數(shù)指定的對(duì)象進(jìn)入發(fā)信號(hào)狀態(tài)為止。一個(gè)互斥對(duì)象不再被線程擁有時(shí),它就進(jìn)入發(fā)信號(hào)狀態(tài)。當(dāng)一個(gè)進(jìn)程要終止時(shí),它就進(jìn)入發(fā)信號(hào)狀態(tài)。dwMilliseconds參數(shù)可以設(shè)為0,這意味著只檢查hHandle參數(shù)指定的對(duì)象是否處于發(fā)信號(hào)狀態(tài),而后立即返回。dwMilliseconds參數(shù)設(shè)為INFINITE,表示如果信號(hào)不出現(xiàn)將一直等下去。再次聲明,當(dāng)一個(gè)互斥對(duì)象不再被一個(gè)線程所擁有,它就處于發(fā)信號(hào)狀態(tài)。此時(shí)首先調(diào)用WaitForSingleObject()函數(shù)的線程就成為該互斥對(duì)象的擁有者,此互斥對(duì)象設(shè)為不發(fā)信號(hào)狀態(tài)。當(dāng)線程調(diào)用ReleaseMutex()函數(shù)并傳遞

44、一個(gè)互斥對(duì)象的句柄作為參數(shù)時(shí),這種擁有關(guān)系就被解除,互斥對(duì)象重新進(jìn)入發(fā)信號(hào)狀態(tài)。注意除WaitForSingleObject()函數(shù)外,你還可以使用WaitForMultipleObject()和MsgWaitForMultipleObject()函數(shù),它們可以等待幾個(gè)對(duì)象變?yōu)榘l(fā)信號(hào)狀態(tài)。這兩個(gè)函數(shù)的詳細(xì)情況請(qǐng)看Win32 API聯(lián)機(jī)文檔。3. 信號(hào)量另一種使線程同步的技術(shù)是使用信號(hào)量對(duì)象。它是在互斥的基礎(chǔ)上建立的,但信號(hào)量增加了資源計(jì)數(shù)的功能,預(yù)定數(shù)目的線程允許同時(shí)進(jìn)入要同步的代碼??梢杂肅reateSemaphore()來(lái)創(chuàng)建一個(gè)信號(hào)量對(duì)象,其聲明如下: function CreateSe

45、maphore(lpSemaphoreAttributes: PSecurityAttributes; lInitialCount, lMaximumCount: Longint; lpName: PChar): THandle; stdcall;和CreateMutex()函數(shù)一樣,CreateSemaphore()的第一個(gè)參數(shù)也是一個(gè)指向TSecurityAttribute s記錄的指針,此參數(shù)的缺省值可以設(shè)為nil。lInitialCount參數(shù)用來(lái)指定一個(gè)信號(hào)量的初始計(jì)數(shù)值,這個(gè)值必須在0和lMaximumCount之間。此參數(shù)大于0,就表示信號(hào)量處于發(fā)信號(hào)狀態(tài)。當(dāng)調(diào)用WaitForS

46、ingleObject()函數(shù)(或其他函數(shù))時(shí),此計(jì)數(shù)值就減1。當(dāng)調(diào)用ReleaseSemaphore()時(shí),此計(jì)數(shù)值加1。參數(shù)lMaximumCount指定計(jì)數(shù)值的最大值。如果這個(gè)信號(hào)量代表某種資源,那么這個(gè)值代表可用資源總數(shù)。參數(shù)lpName用于給出信號(hào)量對(duì)象的名稱,它類似于CreateMutex()函數(shù)的lpName參數(shù)。4如何用Java或C/C+語(yǔ)言實(shí)現(xiàn)多線程(任選擇一種語(yǔ)言)46a181c(2)一個(gè)安全的散列函數(shù)應(yīng)該至少滿足以下幾個(gè)條件:輸入長(zhǎng)度是任意的;輸出長(zhǎng)度是固定的,根據(jù)目前的計(jì)算技術(shù)應(yīng)至少取128bits長(zhǎng),以便抵抗攻擊;對(duì)每一個(gè)給定的輸入,計(jì)算輸出是很容易的給定散列函數(shù)的描

47、述,找到兩個(gè)不同的輸入消息雜湊到同一個(gè)值是計(jì)算上不可行的,或給定散列函數(shù)的描述和一個(gè)隨機(jī)選擇的消息,找到另一個(gè)與該消息不同的消息使得它們雜湊到同一個(gè)值是計(jì)算上不可行的。(3)散列函數(shù)的選擇有兩條標(biāo)準(zhǔn):簡(jiǎn)單和均勻。常用散列函數(shù)的構(gòu)造方法有:平方取中法、除余法、相乘取整法、隨機(jī)數(shù)法。常見散列函數(shù)(Hash函數(shù)):MD5 SHAMAC CRC 7分布式可繁也可以簡(jiǎn),請(qǐng)你組建一個(gè)最簡(jiǎn)單的分布式系統(tǒng)模型。8一個(gè)最完備的分布式體系由以下模塊組成。請(qǐng)說(shuō)明各模塊的功能 分布式處理系統(tǒng)必須有能力在短時(shí)間內(nèi)動(dòng)態(tài)地組合成面向不同服務(wù)對(duì)象的系統(tǒng)。對(duì)用戶來(lái)說(shuō)系統(tǒng)是透明的,用戶只需指定系統(tǒng)干什么而不必指出哪個(gè)部件可以提供這一服務(wù)。系統(tǒng)各組成部分是自主的,但不是無(wú)政府狀態(tài),而是遵循某個(gè)主計(jì)劃由高級(jí)操作系統(tǒng)進(jìn)行協(xié)調(diào)工作。在一個(gè)計(jì)算機(jī)網(wǎng)中有多臺(tái)主機(jī)不一定都是分布式處理。如果這樣的系統(tǒng)不具備動(dòng)態(tài)組合及任務(wù)再指派的能力,那么它們?nèi)匀皇羌惺教幚怼7植际讲樵兛梢栽L問(wèn)來(lái)自多種異類數(shù)據(jù)源的數(shù)據(jù),而這些數(shù)據(jù)可存儲(chǔ)在相同或不同的計(jì)算機(jī)上。分布式數(shù)據(jù)庫(kù)系統(tǒng)由分布于多個(gè)計(jì)算機(jī)結(jié)點(diǎn)上的若干個(gè)數(shù)據(jù)庫(kù)系統(tǒng)組成,它提供有效的存取手段來(lái)操縱這些結(jié)點(diǎn)上的子數(shù)據(jù)庫(kù)。分布式數(shù)據(jù)庫(kù)在使用上可視為一個(gè)完整的數(shù)據(jù)庫(kù),而實(shí)際上它是分布在地理分散的各個(gè)結(jié)點(diǎn)上。當(dāng)然,分布在各個(gè)結(jié)點(diǎn)上的子數(shù)據(jù)庫(kù)在邏輯上是相關(guān)的。分布式緩存支持一些基本配

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論