統(tǒng)中能夠做到某一位置上能集收到系統(tǒng)的所有信息,因為分布式系統(tǒng)使用分布式算法。然后由某些進程檢測這些信息,再做出同步?jīng)Q策,而這在分布式系統(tǒng)中常常是不可能做到分布式算法一般有以下特點:
1相關(guān)信息分布在多臺機器上。
2進程只根據(jù)外地可用的信息做出決策。
3應(yīng)防止系統(tǒng)中單機失效。
4沒有公共時鐘或其他的全局時間源。
前面三點都是說在處置過程中的單個點上無法收集到系統(tǒng)的所有信息。例如,做資源分
配(以不會出現(xiàn)死鎖的方式分配IO設(shè)備)時,通常不應(yīng)將所有的UO請求發(fā)送給一個管理進程。
管理進程檢查所有的I/O請求,根據(jù)其設(shè)備表中的信息決定滿足請求或拒絕請求。大系統(tǒng)中,將
所有的請求發(fā)送給單個管理進程,會使這個進程的負擔過重。
而且象這樣的單機失效會使整個系統(tǒng)變得不可靠。理想情況下,分布式系統(tǒng)應(yīng)該比單機更
可靠。如果分布式系統(tǒng)中某臺機器停止工作,剩余的機器應(yīng)該能夠繼續(xù)完成系統(tǒng)功能。zui不希
望看到由于某臺機器的失敗(如資源分配器)導(dǎo)致許多其他機器(如它客戶)終止工作。
為了沒有集中控制的情況下實現(xiàn)同步,需要采取與保守操作系統(tǒng)不同的方式。
上面列出的第4點也很重要。集中式系統(tǒng)中,時間是很明確的每個進程要知道當前時
間,只要執(zhí)行一個系統(tǒng)調(diào)用,操作系統(tǒng)內(nèi)核就會返回當前系統(tǒng)時間給進程。如果進程A查詢了
系統(tǒng)時間,稍后進程B也去查詢系統(tǒng)時間,那么進程B得到時間將在進程A得到時間值之后
也可能相等)肯定不會在此之前。分布式系統(tǒng)中,要達到這種時間的一致性不是件簡單的
事。.
作為一個簡單例子,考慮一下缺乏全局一致的時間對UNIX中make順序的意義。UNIX
中,大型順序通常分割成多個源文件,這樣在修改某個文件時只要編譯這一個文件,而不是編
譯所有的文件。如果順序有一百個文件,則不需因為有一個文件發(fā)生了較大的變化而重新編譯
所有文件,從而大大加快了順序員工作的速度。
通常,make順序的工作方式很簡單。順序員在修改源文件后,啟動nla~eMake順序檢查
源文件及與它相應(yīng)的目標文件的zui后修改時間。如果源文件input.Czui后修改時間為2151而
相應(yīng)目標程minput.ozui后修改時間為2150make順序就可以確定在創(chuàng)立input.o后,修改了源
文件input.C因此要重新編譯源文件input.C相反,如果output.czui后修改時間為2144而
output,ozui后改時間為2145就不需要重新編譯outputcMake順序遍歷所有的源文件,找
出需要重新編譯的文件,調(diào)用編譯器編譯這些文件。

現(xiàn)在想象在沒有全局—致時間的分布式系統(tǒng)中執(zhí)行make順序。假設(shè)ouput.ozui后修改時間還是2144隨即修改了源文件output.c但是由于編輯output.c機器的時鐘慢,所以修改后output.czui后時間被為2143如圖11-1所示.這時,make順序就不會重新編譯output.c
結(jié)果,生成的可執(zhí)行文件就包括由舊的源文件生成的目標文件和新的源文件產(chǎn)生的目標文件。這樣,順序的運行就會存在問題,而程序員要在代碼中找到問題的出處,也是大傷腦筋的事。
上面我看到時間是人們考慮問題的基礎(chǔ),時鐘之間的不同步會發(fā)生戲劇性的結(jié)果。因此,以“分布系統(tǒng)中的所有時鐘可能同步嗎?這樣一個簡單問題開始研究同步是比擬合適的
上海銳呈電氣有限公司是國內(nèi)外專業(yè)的NTP服務(wù)器,網(wǎng)絡(luò)時間服務(wù)器,GPS同步時鐘,NTP時間服務(wù)器,時間服務(wù)器,時間同步服務(wù)器,GPS時間服務(wù)器生產(chǎn)(供應(yīng))商,主營產(chǎn)品有:NTP服務(wù)器,網(wǎng)絡(luò)時間服務(wù)器,GPS同步時鐘,NTP時間服務(wù)器,時間服務(wù)器,時間同步服務(wù)器,GPS時間服務(wù)器等,上海銳呈電氣有限公司不僅具有國內(nèi)外的技術(shù)水平,更有良好的售后服務(wù)和的解決方案,洽談
:
傳真:
: ruichengdianqi
:http://www.ruichengdianqi.com