天天看點

架構之美随筆三------系統架構

  第三部分内容作者使用Xen、Guardian、JPC以及Jikes RVM四個執行個體向我們展示系統架構所涵蓋的内容。

  第七章 Xen和虛拟化之美

  首先我們需要了解何為Xen,Xen是一個虛拟化平台,它來自于一項學術研究成果,現已發展成為一個重要的開源項目。它容許客戶在單個實體機器上運作幾個作業系統,并特别強調性能、隔離性和安全性。最初的Xen是Xenoservers項目的一部分,而Xenoservers的目标是建立一個“全球的分布式計算結構”。當設計Xen架構的時候,首先要關注的是隻要有可能,就把政策和機制分開來。系統管理程式設計成用來管理低級硬體的薄層,擔當引用監控器和排程程式,複用對硬體裝置的通路。最新版本的Xen包含了Bochs和QEMU的代碼,它們都是模拟程式。在作業系統的環境中,Xen已經表明半虛拟化,無論是它增加虛拟驅動程式還是大規模地改變作業系統,還是在標明區域中有意識地提升性能,都是在虛拟環境中運作時提升性能的一項重要技術。當然在Xen發展過程中采取的最大膽的決策就是當其他管理程式隻作為私有軟體時把Xen開源化。

  第八章 Guardian:一個容錯作業系統環境

  Guardian是Tandem的容錯“NonStop”系列計算機的作業系統。它設計成與硬體并行以便用最小的開銷提供容錯性。這裡作者主要從Tandem入手來進行描述。Tandem把所有計算機描述成有多個處理器的單獨計算機,但是,從21世紀的觀點來看,它們更像是與單個計算機一樣運作的計算機網絡。尤其是每個處理器都幾乎完全不依賴其他處理器而獨立地工作,而系統可以從任何單個元件的故障中恢複。和傳統聯網處理器最大的差別是整個系統都從單個核心映像開始運作。Guardian是一個微核系統:除了低級别的中斷處理器和一些非常低級别的代碼之外,所有的系統服務都運作在系統代碼和資料空間中的系統程序處理。其比較重要的程序包括:系統監控程式、記憶體管理器、I/O程序這三者。

  第九章 JPC:一個純java的x86 PC模拟程式

  java的運作處理機制其實很慢,模拟程式同樣很慢。是以當兩者結合起來時,隻能意味着以蝸牛的速度進行計算。其實最初的JPC原型确實要比真的機器慢10000倍。現代的pc内部非常複雜。它的硬體已經優化和疊代了許多次以形成一個高效和普遍的計算平台。然而,它也保留了設計來維持它向後相容的遺留元件和功能。JPC的大部分設計師相對簡單系統分析,對這個模拟程式來說,把初始的系統映射到JPC也幾乎是在硬體規範和java類之間進行一一對應。優化的第一準則就是不要優化。和所有性能技巧一樣,技巧知識指導方針而不能将它作為準則。良好設計和清晰編碼的代碼幾乎總是優于“優化的”代碼。隻有看到對設計有積極的影響或對性能真的有必要時再參考指導方針。作者有提到幾點指導方針:建立對象不好、靜态好、表切換好,查找切換不好、方法越小越好、Exception用于異常的情況、小心使用裝飾模式、對類進行instanceof的操作更快、最低程度地使用同步、小心外部庫。

  第十章 元循環虛拟機的力量:Jikes RVM

  在一個托管運作時環境中運作代碼是當今來發人員的普遍選擇。實際上,大部分已開發代碼都适合于托管運作時環境。Jikes RVM采用java語言編寫來運作java運作程式。不但運作時系統是用java編寫的,而且這個架構的所有其他元件都是用java編寫的。這些元件包括自實行和優化的編譯系統、線程、異常處理和垃圾收集。與一個傳統編譯器的自舉相比,元循環運作時的自舉涉及更多的技巧。啟動映像的内容是代碼和資料,類似于在一個正常編譯器的對象檔案中的東西。Jikes RVM的啟動映像中額外包含了由垃圾收集器建立的根映射。Jikes RVM是一個成功的實驗虛拟機,以一種靈活和易于擴充的方式提供近乎于藝術級的性能。以運作時支援的語言來編寫,這允許緊密的內建群組建的重用。Java的使用使簡單易懂的代碼、好的子產品性和高品質工具的使用成為可能。

轉載于:https://www.cnblogs.com/Againzg/p/6391701.html