返回介绍

15.2 分布的两个基本特性:可拆分与可处理

发布于 2024-12-15 23:01:50 字数 1802 浏览 0 评论 0 收藏 0

但什么是“分布”呢?

分布并不等于分割。“分割”是指一个问题集(无论是运算能力还是运算对象)能否被切分,例如前面一再提及的大象就是不可被分割的。而“分布”,指的是分割的结果能否被各个独立地加以处理。因此,我们说大象映射为石头之后具有了“(数据的)可分布性”,并不仅仅是因为在形式上进行了分割,还因为这些石头能被逐一称重。所以说:

“可拆分”与拆分的结果“可处理”,这两个特性在“分布”中缺一不可。

与一把秤相类似,一个函数实质上也是一个数据处理系统:

  • 其一,很明显,它能“处理数据” 2 并反馈一个返回值;
  • 其二,函数能处理的数据也有类型、边界以及运算总量的限制。

就我们通常使用的、单处理器的个人计算机而言,“所有软件构成的全集”所提供的功能总和可以被理解为“一个函数”(设为函数 F)。因为从计算机通电运行开始,系统开始了唯一一个程序入口与处理过程:

  • 步骤一:进行系统自检、BIOS 预设等常规的、硬件系统自有的处理程序;
  • 步骤二:尝试按照约定次序加载移动存储、外部存储等设备中的处理程序 3
  • 步骤三:将系统的控制权转移给步骤二中找到的处理程序(的入口)。

请注意,在上述这个过程以及其后的全过程中,处理器(CPU)的处理其实是在单一的时间序列中进行的。而我们的操作系统之所以能同时运行多个程序(例如 Windows 的资源管理器与记事本),以及在后台与前台运行不同的服务与应用程序等,是操作系统:

  • 将“所有软件所提供的功能总和”,即是我们上面假定的函数F,分成了多个函数F0,…,Fn,计为F′
  • F′ 理解为进程的入口,并假定 F′ 可以再分成多个函数F′0,…,F’n,计为F″
  • F″ 理解为线程的入口,并假定 F″ 可以再分成……

可见我们的操作系统(或某个硬件环境下的软件系统)无非是在对需要运算的总量进行拆分,并尝试将这些拆分结果分布在“不同的逻辑单元” 4 中进行处理。

这一计算模型在单处理器时代被称为“分时处理”,即通过任务调度,将单一处理器的处理能力分配给不同的函数。这些函数在宏观层面上是同时运行的进程、线程等执行体,即 并行5 ;而在微观层面上是分时运行的、单处理器的时间序列下的一个时间片,即 串行

回顾分时处理模型,其核心仍然基于“顺序机器”这一基本假设。与此相应地,其基本计算逻辑也是基于结构化程序设计观念,即可以将分支逻辑与循环逻辑统一为顺序逻辑的一个部分。进一步地,也可以将函数理解为一个子函数序列的连续运算。再进一步地,可以说:

如果子函数可以分布,则整个系统是可以分布的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文