zoukankan      html  css  js  c++  java
  • 分布式系统及并行操作系统个人见解

    试想,如果计算机需要执行数量级巨大的任务,应该使用什么方法呢?

    是花重金去购买昂贵的超级大型计算机,高性能计算机?还是另辟蹊径,想别的方法?那么有别的方法吗?答案是有,就是搭建分布式的系统提供服务。

    分布式系统,通俗点来说,就是由若干服务器通过网络互联起来的一个系统,可能这些服务器都存在于不同的地理位置,很远或者很近,都无所谓,只要有网络将它们连起来。

    那么,它们是如何工作的呢?

    当需要执行一个任务时,这个任务会被拆分为若干个子任务,根据合适的调度算法,分配到这个分布式系统下的所有机器上去执行,每台计算机独立完成属于自己的那部分子任务。最后将结果综合到一起,就顺利执行完了这个总任务。

    这样,就可以只用若干台价格比大型机低廉许多的小型服务器,顺利地完成巨大数量级的任务。

    可能有些人会问,既然使用微机处理是一种节省开支的方法,那么为什么不给每个人一台计算机,让他们独立地去工作?原因就在于数据共享。例如,机票预订处的工作人员需要访问存储航班以及现有座位信息的主数据库。假如给每个工作人员都备份整个数据库,那么在实际中这是无法工作的,因为没有人知道其他工作人员已经卖出了哪些座位。共享的数据是上例和许多其它应用的基础,所以计算机间必须互连。而计算机互连就产生了分布式系统。

    还有一点,分布式系统并不一定是多用户,因为就算只有一个用户,他需要执行一个任务,这个任务也会被拆分分配到所有服务器上执行。

    最后简单说一下并行操作系统,并行是指的是同时执行两个任务,但这只是一个虚像。真正的情况是,对于一个cpu,先分配给第一个任务0.01秒,再分配给另外一个任务0.01秒,如此往复循环,直到两个任务都执行完成。因为这样0.01秒之间的切换在我们人眼看来是无法辨别的,因此我们就认为一个cpu在同时执行两个任务。而事实上要记住的是,一个cpu在同一时刻永远只能处理一个线程!!!通俗点说就是只能执行一个任务!!!

    请大家多多指正,一起进步!!!

  • 相关阅读:
    重写NSLog,Debug模式下打印日志和当前行数
    iOS 对UIButton的imageView和titleLabel进行重新布局
    iOS 归档
    SWIFT 通过字符串创建相关的类
    iOS 隐藏系统的导航,使用自定义的导航
    SWIFT UITableView的基本用法
    Bugly符号化iOS 崩溃,操作手册及快速定位crash(上传符号表)
    iOS navigationBar与tabBar的translucent
    swift
    xcode更换启动图显示空白launchImg
  • 原文地址:https://www.cnblogs.com/qiuhaojie/p/5289718.html
Copyright © 2011-2022 走看看