分布式系统特征

分布式系统特征

分布和并行计算的区别

  • 并行:单机多核,并行编程

    • 并行计算3个基本条件

      • 并行计算机:多核

      • 应用问题具有并行度:应用可以分解为多个子任务,子任务可以并行执行

        将应用分解为多个子任务的过程称为并行算法的设计

      • 并行编程:实现并行算法,编写运行程序

    解决问题:单机器下通过并行加快求解同一个应用的速度

  • 分布:多台机器通过网络连接,对外以整体提供服务

    解决问题:通过网络相互连接的两个以上的处理机相互协调、各自执行相互依赖的不同应用,从而达到协调资源访问,提高资源使用效率的目的

分布式系统趋势

  • 泛在网络和现代互联网

    泛在网络来源于拉丁语Ubiquitous,从字面上看就是广泛存在的,无所不在的网络。也就是人置身于无所不在的网络之中,实现人在任何时间、地点,使用任何网络与任何人与物的信息交换,基于个人和社会的需求,利用现有网络技术和新的网络技术,为个人和社会提供泛在的,无所不含的信息服务和应用

  • 移动和边缘计算

    • 移动计算:笔记本电脑,手机…
    • 边缘计算:智能设备,智能家电…

    边缘计算,是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。边缘计算处于物理实体和工业连接之间,或处于物理实体的顶端。而云端计算,仍然可以访问边缘计算的历史数据。

  • 分布式多媒体系统

    多媒体网络指以多媒体技术和网络技术为基础,既包括文本,图形,声音,图象,动画等,也包括把这些媒体结合在一起的超媒体技术。

    由于多媒体信息数据量大,为了协同工作和资源共享,在网络多媒体系统中引入分布式处理,形成分布式多媒体系统

  • 把分布式计算作为一个公共设施

    • 云计算

      “云”实质上就是一个网络,狭义上讲,云计算就是一种提供资源的网络,使用者可以随时获取“云”上的资源,按需求量使用,并且可以看成是无限扩展的,只要按使用量付费就可以。

      计算能力作为一种商品,可以在互联网上流通,就像水、电、煤气一样,可以方便地取用,且价格较为低廉。

    • 物联网

      物联网( IoT ,Internet of things )即“万物相连的互联网”,是互联网基础上的延伸和扩展的网络,将各种信息传感设备与网络结合起来而形成的一个巨大网络,实现在任何时间、任何地点,人、机、物的互联互通

共享资源

可以被一个以上任务使用的资源叫做共享资源

为了防止数据被破坏,每个任务在与共享资源打交道时必须独占该资源,这叫做互斥

  • 互斥锁(Mutex)是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这个资源

    保证了使用资源线程的唯一性和排他性,但是无法限制资源释放后其他线程申请的顺序问题,所以是无序的

  • 信号量(信号灯,Semaphore)用在多线程多任务同步的,一个任务要访问共享资源之前申请信号,得到允许后才能使用共享资源。此时信号量改变,其他任务访问受阻(大家都在semtake的时候,就阻塞在那里)

  • 信号量与互斥锁的区别

    • 互斥锁用于线程互斥:互斥锁保证了使用资源线程的唯一性和排他性,但是无法限制资源释放后其他线程申请的顺序问题,所以是无序的

      信号量用于线程同步:在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的(少许情况读取可以同时申请),通过其他机制保证了线程执行的有序性

    • 互斥量值只能为0/1,信号量值可以为非负整数。

    • 互斥量的加锁和解锁必须由同一线程分别对应使用,信号量可以由一个线程释放,另一个线程得到。

并行与并发的区别

并发系统:某个系统支持两个或多个动作同时存在

并行系统:某个系统支持两个或多个动作同时执行

并行是并发的一个子集

并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。

无论从微观还是从宏观来看,二者都是一起执行的。
在这里插入图片描述

并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。
在这里插入图片描述

并行计算的关键:可挖掘的并发性

这里的并发性指【单个程序中能够并发多个计算任务】的可能性(多个计算任务独自计算,互不影响,能在同一时间内执行多个计算任务而提升总体性能)

通过对具体问题的实际分析进行并行算法设计,进行并行编码

(并行编程)这有点像有一个操场上有20个滑梯而不是一个。孩子们不必排队等待轮到自己,因为他们可以同时玩。你可以使用电脑鼠标,一边听在线广播,一边更新电子表格中的信息,并对你的个人电脑做病毒扫描,这唯一的理由就是并发编程。在这种情况下,它的多重任务允许多个程序或进程访问CPU而没有等待。这一设置允许使用多任务共享的资源进行密集的I/O处理和有效的信号处理。并发性也可以通过实施多个计算线程发生(通常采用交错启动和完成点)。这叫做多线程,并且它发生在一个单一的进程或程序中。这就是为什么你可以打印一个文档,同时继续编辑另一个文档。如果没有多线程,UI会太慢,因为系统将无法在同一时间应对多个用户操作。

共享内存与分布式内存

在这里插入图片描述

共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。

由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。

分布式共享内存(distributed shared memory)是并行处理发展中出现的一种重要技术

DSM提供给程序员一个逻辑上统一的地址空间,任何一台处理机都可以对这一地址空间直接进行读写操作

具有分布式内存结构可扩充性的优点,也具有共享内存结构通用性好、可移植性、编程容易的优点

DSM的实现有三种方式:

  1. 用硬件实现。实际上是传统的高速缓存(cache)技术在可扩展体系结构中的延伸
  2. 操作系统和程序库的实现方法,通过虚拟内存管理机制实现共享和一致性
  3. 编译实现,自动将共享访问转变为同步和一致性原语。

虽然从实现上考虑,这个统一的全局地址空间是不存在的,数据的访问是通过消息传递来进行的,但这些对程序员来说可以是透明的。

  1. 编译实现,自动将共享访问转变为同步和一致性原语。

虽然从实现上考虑,这个统一的全局地址空间是不存在的,数据的访问是通过消息传递来进行的,但这些对程序员来说可以是透明的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天亮又要起床Fiiii

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值