分布式操作系统的架构与性能
目錄
摘要
關鍵詞
正文
第1章?引言
第2章?分布式操作系統概述
??2.1分布式操作系統的理解
??2.2?分布式操作系統的分類
??2.3 分布式操作系統的特點
第3章?分布式操作系統的架構
3.1?為什么要走分布式系統架構
3.2?系統如何進行拆分
3.3 分布式通常使用的架構類型有哪些
??3.3.1 客戶端服務器
??3.3.2 三層架構
??3.3.3 多層架構
??3.3.4 點對點架構
??3.3.5 以數據庫為中心
3.4 性能的優缺點
??3.4.1 優點
??3.4.2 缺點
第4章?總結
參考文獻
分布式操作系統的架構與性能
[摘要]
本篇主要介紹了分布式操作系統的概念、特點、架構以及在性能上的優缺點。深入理解操作系統的概念和特點解析分布式系統實現方式,如何實現分布。分布式操作系統在分布性與并行性上有獨到的優點。分布式系統發展的主要動力是大量個人計算機的存在和人們共同工作的與信息共享的需要,這種信息共享必須以一種方便的形式進行。而不受地理或人員、數據或機器的物理分布的影響。分布式操作系統必須有一個單一的、全局的進程間通信機制。進程管理必須處處相同。文件系統相同,使用相同的系統調用接口。
[關鍵詞]
分布式操作系統、三層架構、多層架構、點對點架構、橫向拆分、縱向拆分。
[正文]
- 引言
早在20世紀80年代,大規模集成電路工藝技術的飛躍發展,微處理機的出現和發展,掀起了計算機大發展大普及的浪潮。一方面迎來了個人計算機的時代,同時又向計算機網絡、分布式處理、巨型計算機和智能化方向發展。于是,操作系統有了進一步的發展,如:個人計算機操作系統、網絡操作系統、分布式操作系統等。
分布式操作系統表面上看,與計算機網絡系統沒有多大區別。分布式操作系統也是通過通信網絡,將地理上分散的具有自治功能的數據處理系統或計算機系統互連起來,實現信息交換和資源共享,協作完成任務,——硬件連接相同。
但有如下一些明顯的區別:
(2)分布式系統更強調分布式計算和處理,因此對于多機合作和系統重構、堅強性和容錯能力有更高的要求,希望系統有:更短的響應時間、高吞吐量和高可靠性。
二、分布式操作系統概述
2.1分布式操作系統的理解
???分布式操作系統簡單來說就是有一堆計算機,各自物理硬件上是獨立的,通過網絡相連,互相通信,通過統一的“中間件”進行協調,共享資源,協同分工完成一件任務的計算機集群。也可以分成兩部分來理解,分布式就是計算、存儲不在同一臺處理機上,而是分布在多臺處理機上;操作系統就是我們平常在單臺物理機器上的操作系統,是一個功能強大、穩定的巨大軟件系統。
所以分布式操作系統可大可小,比如一個處理mysql分庫分表的中間件、一個自帶分庫分表的數據庫mongodb,一個搜索引擎(倒排、正排索引太大存放在多臺機器)都是一個分布式操作系統。
舉例來說,我們有一個幾十萬行的代碼,現在拆分成三十個小系統,每個小系統一萬多行代碼。原本代碼之間都是基于Spring框架走JVM內存調用,現在拆開來,將三十個小系統部署在不同的機器上,然后基于分布式服務框架(比如dubbo)用rpc調用,接口與接口之間通過網絡通信來進行請求和響應。所以在分布式系統中服務要跨網絡調用。
網絡操作系統與分布式操作系統區別:分布式操作系統把資料看成整體占用,并作為一個整體進行管理,通過整體機制而非局部機制來處理運行過程,系統基于單一的策略來控制和管理。
2.2分布式操作系統的分類
分布式操作系統有分布式計算系統:集群運算、網絡運算、云計算;分布式信息系統和分布式普適系統。
集群計算指的是計算機集群將一組松散集成的計算機軟件或硬件連接起來高度緊密的協作完成工作。集群系統中的單個計算機通常稱為節點并通過局域網連接,但也有其他的可能連接方式。集群計算機通常用來改進單個計算機速度或可靠性。
網絡計算也是分布式系統的一種實現方式,支持地理分布的計算機之間共享資源,查找資源,整合資源,并根據網絡計算機的運轉情況、容量大小、性能穩定性、價格以及用戶所需服務的質量,進行動態調配。
云計算指的是通過網絡“云”將巨大的數據計算處理程序分解成無數個小程序,然后,通過多部服務器組成的系統進行處理和分析這些小程序得到結果并返回給用戶。簡單地說,就是通過一項一項小的計算完成大事件。
2.3分布式操作系統的特點
分布式操作系統具有以下四個特征:首先它具有分布性,分布式系統由多臺計算機組成,它們在地域上是分散的,可以散布在一個單位、一個城市、一個國家甚至全球范圍。然后它還具有自治性,分布式系統中的各個節點都包含自己的處理機和內存,各自具有獨立的處理數據的功能。一般來說,無先后主次之分,可以自治處理也可以通過分享資源處理信息。并且分布式操作系統具有并行性,并行性就是說一項大的任務可以劃分為若干個子任務,分別在不同的主機上執行。分布式還具有全局性,它的全局性是指不區分本地通信與遠程通信,任何一個進程都可以與其他的進程聯系。具有全局的保護機制。系統之所以在機器上有統一的系統調用集合,它們必須適應分布式的環境。
分布式操作系統也存在一些我們不得不考慮的特性,包括但不限于:
構建分布式系統依賴網絡通信,而網絡通信表現為一個復雜且不可控的過程。在網絡傳輸中,有時會因為網絡原因,消息并沒有成功發送或接受,出現消息丟失,這些問題都會增加通信的代價,如何使通信的代價降到用戶可以接受的層次是分布式系統設計的重要目標。
相較單塊系統,分布式系統由于基于不同的網絡、操作系統、軟件實現技術體系,必須要考慮一種通用的服務集成和交互方式來屏蔽異構系統之間的差異。異構系統之間的不同處理方式會對系統設計和開發帶來難度和挑戰。
在集中式系統中,各部件的任務明確。但是分布式系統是多機協同工作的系統,為了提高系統的整體效率和吞吐量,必須考慮最大程度發揮每個節點的作用。
在分布式結構中,要保持數據一致性很難。因為數據是分散在不同的計算機,數據一致性很難保持,若出現網絡異常部分節點正常運作,會形成網絡分區。
當服務器出現了故障,而各個運作的節點也會出現問題,要解決這些隨時可能會出現的問題,這就需要分布式系統在設計時要允許出現故障時而不影響整個系統的正常運行。
三、分布式操作系統的架構
3.1為什么要走分布式系統架構
分布式業務系統,把原來用Java開發的一個大塊系統,給拆分成多個子系統,多個子系統之間相互調用,形成一個大系統的整體。
舉個例子,假設原來你做了一個OA系統,里面包含了權限模塊、員工模塊、請假模塊、財務模塊,一個工程,里面包含了一堆模塊,模塊與模塊之間會互相去調用,1臺機器部署。
現在如果你把他這個系統給拆分開來,權限系統、請假系統、員工系統、財務系統,4個系統,4個工程,分別在4臺機器上部署。然后一個請求過來,完成這個請求,員工系統去調用權限系統,調用請假系統,調用財務系統,4個系統分別完成了一部分的事情。
這四個系統全部完成,這個請求才算結束,這就是分布式系統的設計實現,如下圖:
3.2系統如何進行拆分?
在分布式系統中,拆分的需求來自組織結構變化、交付速度、業務需求以及技術需求所引起的變化,一般認為系統拆分的基本思路有兩種,即縱向(Vertical)拆分和橫向(Horizontal)拆分。
所謂縱向拆分,就是通過對業務進行梳理,根據業務的特性把應用拆開,不同的業務模塊獨立部署,例如商品購買流程可拆分為:訂單管理、訂單稽查、新增產品、產品查詢、客戶管理、歷史查詢。
相較縱向拆分的面向業務特性,橫向拆分更多關注于技術。通過將可以復用的業務拆分出來并獨立部署為分布式服務,只需調用這些分布式服務即可構建復雜的新業務。
一般來說,系統拆分可以走多輪拆分的思路,第一次拆分就是將以前的各個大的模塊粗粒度拆分開來。
比如一個電商系統可以拆分為訂單系統、商品系統、店鋪系統、會員系統、促銷系統、支付系統等等。后面可能每個系統又變的越來越復雜了,比如說訂單系統又可以進一步拆分出來購物車系統,庫存系統,價格系統等。
總的來說就是基于領域驅動設計的思想以及實戰經驗總結,同時參考業界一些常規做法,大家討論來進行拆分。逐步優化,多輪拆分,小步快跑,最終會達到一個比較好的狀態。
3.3分布式通常使用的架構類型有哪些?
3.3.1客戶端服務器
在客戶端服務器中,它有多個客戶機,這些客戶機決定何時使用共享資源,如何使用和顯示改變數據,并將其送回服務器,像git這樣的代碼倉,就是一個很好的例子。
3.3.2三層架構
這種架構把系統分為表現層、邏輯層和數據層,這簡化了應用程序的部署,大部分早期的網絡應用都是三層的。
3.3.3多層架構
三層架構是多層架構的一種特殊形式。一般會把三層架構更加詳細的進行劃分,比如說以業務的形式進行分層。最常見的是SoC,該項目從模塊化架構開始,然后將質量和安全規范應用于更高可測試性的項目中進行重構,主要分為四層:域、應用、基礎設施、介紹。
3.3.4點對點架構
在這種架構中,沒有專門的機器提供服務或管理網絡資源。而是將任務分配給其他計算機,使其他計算機成為對等機,對等機既可以作為客戶機,也可以作為服務器。這種架構的例子,包括bittorrent和區塊鏈。
3.3.5以數據庫為中心
這種架構是指用一個共享的數據庫,使分布式的各個節點在不需要任何形式直接通信的情況下,進行協同工作的架構。
3.4性能的優缺點
3.4.1優點
3.4.2缺點
(1)在分布式系統中很難提供足夠的安全,因為節點連接和共享都需要安全;
(2)缺乏設計、創新、實現和使用分布式軟件的經驗。
(3)與單用戶系統相比,連接到分布式系統的數據庫是相當復雜和難以處理的;
(4)存在通信問題,若所有節點都試圖同時發送數據,網絡可能會過載、崩潰。
3.5分布式操作系統的架構圖
- 總結
在本次論文撰寫中,通過查閱相關資料和書籍,對分布式操作系統有了由淺而深、循序漸進的深入分析,分布式操作系統非常廣泛的應用在計算機領域,像一些云計算和數據庫都有分布式部署,分布式在日益發展的過程中,越來越被人們需要但也伴隨著一些無法兼顧的問題,在本文中已經做出舉例說明。關于分布式系統的架構體系拆分,橫向拆分與縱向拆分是主要拆分方式,都需要對系統整體有較好的理解掌握。
圖片來源于網絡,侵權聯刪。
總結
以上是生活随笔為你收集整理的分布式操作系统的架构与性能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为十年架构师实战经验总结:大规模分布式
- 下一篇: 分布式系统架构