目录
摘要
关键词
正文
第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分布式操作系统的架构图
- 总结
在本次论文撰写中,通过查阅相关资料和书籍,对分布式操作系统有了由浅而深、循序渐进的深入分析,分布式操作系统非常广泛的应用在计算机领域,像一些云计算和数据库都有分布式部署,分布式在日益发展的过程中,越来越被人们需要但也伴随着一些无法兼顾的问题,在本文中已经做出举例说明。关于分布式系统的架构体系拆分,横向拆分与纵向拆分是主要拆分方式,都需要对系统整体有较好的理解掌握。
图片来源于网络,侵权联删。