分布式系統及並行操作系統個人見解


試想,如果計算機需要執行數量級巨大的任務,應該使用什么方法呢?

是花重金去購買昂貴的超級大型計算機,高性能計算機?還是另辟蹊徑,想別的方法?那么有別的方法嗎?答案是有,就是搭建分布式的系統提供服務。

分布式系統,通俗點來說,就是由若干服務器通過網絡互聯起來的一個系統,可能這些服務器都存在於不同的地理位置,很遠或者很近,都無所謂,只要有網絡將它們連起來。

那么,它們是如何工作的呢?

當需要執行一個任務時,這個任務會被拆分為若干個子任務,根據合適的調度算法,分配到這個分布式系統下的所有機器上去執行,每台計算機獨立完成屬於自己的那部分子任務。最后將結果綜合到一起,就順利執行完了這個總任務。

這樣,就可以只用若干台價格比大型機低廉許多的小型服務器,順利地完成巨大數量級的任務。

可能有些人會問,既然使用微機處理是一種節省開支的方法,那么為什么不給每個人一台計算機,讓他們獨立地去工作?原因就在於數據共享。例如,機票預訂處的工作人員需要訪問存儲航班以及現有座位信息的主數據庫。假如給每個工作人員都備份整個數據庫,那么在實際中這是無法工作的,因為沒有人知道其他工作人員已經賣出了哪些座位。共享的數據是上例和許多其它應用的基礎,所以計算機間必須互連。而計算機互連就產生了分布式系統。

還有一點,分布式系統並不一定是多用戶,因為就算只有一個用戶,他需要執行一個任務,這個任務也會被拆分分配到所有服務器上執行。

最后簡單說一下並行操作系統,並行是指的是同時執行兩個任務,但這只是一個虛像。真正的情況是,對於一個cpu,先分配給第一個任務0.01秒,再分配給另外一個任務0.01秒,如此往復循環,直到兩個任務都執行完成。因為這樣0.01秒之間的切換在我們人眼看來是無法辨別的,因此我們就認為一個cpu在同時執行兩個任務。而事實上要記住的是,一個cpu在同一時刻永遠只能處理一個線程!!!通俗點說就是只能執行一個任務!!!

 

請大家多多指正,一起進步!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM