格線通信
GC(Grid Communication)格線通信
格線是一種新興的技術,正處在不斷發展和變化當中。目前學術界和商業界圍繞格線開展的研究有很多,其研究的內容和名稱也不盡相同因而格線尚未有精確的定義和內容定位。比如國外媒體常用“下一代網際網路”、“Internet2”、“下一代Web”等來稱呼格線相關技術。但“下一代網際網路(NGI)”和“Internet2”又是美國的兩個具體科研項目的名字,它們與格線研究目標相交叉,研究內容和重點有很大不同。企業界用的名稱也很多,有內容分發(Contents Delivery)、服務分發(Service Delivery)、電子服務(e-service)、實時企業計算(Real-Time Enterprise Computing,簡稱RTEC)、分散式計算Peer-to-Peer Computing(簡稱P2P)、Web服務(Web Services)等。中國科學院計算所所長李國傑院士認為,格線實際上是繼傳統網際網路、Web之後的第三次浪潮,可以稱之為第三代網際網路套用。
格線是利用網際網路把地理上廣泛分布的各種資源(包括計算資源、存儲資源、頻寬資源、軟體資源、數據資源、信息資源、知識資源等)連成一個邏輯整體,就像一台超級計算機一樣,為用戶提供一體化信息和套用服務(計算、存儲、訪問等),虛擬組織最終實現在這個虛擬環境下進行資源共享和協同工作,徹底消除資源“孤島”,最充分的實現信息共享。
垃圾回收
GC(Garbage Collection):JAVA/.NET中的垃圾回收器。Java是由C++發展來的。它擯棄了C++中一些繁瑣容易出錯的東西。其中有一條就是這個GC。而C#又借鑑了JAVA。
在老式的C/C++程式中,程式設計師定義了一個變數,就是在記憶體中開闢了一段相應的空間來存值。由於記憶體是有限的,所以當程式不再需要使用某個變數的時候,就需要銷毀該對象並釋放其所占用的記憶體資源,好重新利用這段空間。在C/C++中,釋放無用變數記憶體空間的事情需要由程式設計師自己來處理。就是說當程式設計師認為變數沒用了,就手動地釋放其占用的記憶體。但是這樣顯然非常繁瑣,如果有所遺漏,就可能造成資源浪費甚至記憶體泄露。當軟體系統比較複雜,變數多的時候程式設計師往往就忘記釋放記憶體或者在不該釋放的時候釋放記憶體了。
有了GC,程式設計師就不需要再手動的去控制記憶體的釋放。當Java虛擬機(VM)或.NETCLR發覺記憶體資源緊張的時候,就會自動地去清理無用對象(沒有被引用到的對象)所占用的記憶體空間(這裡的說法略顯粗略,事實上何時清理記憶體是個複雜的策略)。如果需要,可以在程式中顯式地使用System.gc() / System.GC.Collect()來強制進行一次立即的記憶體清理。Java提供的GC功能可以自動監測對象是否超過了作用域,從而達到自動回收記憶體的目的,Java的GC會自動進行管理,調用方法:System.gc() 或者Runtime.getRuntime().gc();