第7章 多道程序设计:分离进程为独立的功能
按故障隔离与协议边界选择管道、从进程、对等 IPC 或线程。
学习目标
- 能解释 第7章 多道程序设计:分离进程为独立的功能 如何回答“将抓取、解析、过滤与写入任务划分为可恢复的执行单元”
- 能沿 任务划分 → IPC 选择 → 背压传播 → 局部失败 → 恢复编排 重建输入、状态、输出和失败边界
- 能使用 partition_gain = isolation + replaceability - ipc_cost - partial_failure 比较正常输入、恰好边界与单点故障
- 能模拟一段进程故障并证明上游、下游和重试策略行为确定
为什么要从这个问题开始
按故障隔离与协议边界选择管道、从进程、对等 IPC 或线程。 多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。 在本课程中,Unix 风格只是一组待验证假设;当延迟、安全、事务一致性、团队能力或平台约束改变时,允许用证据拒绝它。
直觉、对象与计算合同
贯穿场景是:将抓取、解析、过滤与写入任务划分为可恢复的执行单元。先固定输入版本、资源预算和成功条件,再观察 进程隔离、吞吐延迟 与 资源所有权;若中途改了数据或口径,结果作废。
这个式子用于公开变量关系,不冒充经验常数。当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。 需要特别防范的失败是:为共享内存速度引入线程,却没有为竞态、取消和资源所有权定义协议。
↡第7章 多道程序设计:分离进程为独立的功能在第7章 多道程序设计:分离进程为独立的功能中对应任务划分的可复核状态。·
↡进程隔离在第7章 多道程序设计:分离进程为独立的功能中对应IPC 选择的可复核状态。·
↡协议边界在第7章 多道程序设计:分离进程为独立的功能中对应背压传播的可复核状态。·
↡吞吐延迟在第7章 多道程序设计:分离进程为独立的功能中对应局部失败的可复核状态。·
↡失败传播在第7章 多道程序设计:分离进程为独立的功能中对应恢复编排的可复核状态。·
↡资源所有权在第7章 多道程序设计:分离进程为独立的功能中对应任务划分的可复核状态。正式目录节点:解释与验证
下面逐项保留作者送印版目录坐标。每一项都放回 第7章 多道程序设计:分离进程为独立的功能 的机制链解释,并在页面实验组件与章末复核清单中再次出现;标题出现本身不计作覆盖。
7. Multiprogramming
“7. Multiprogramming”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查进程隔离:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Separating Complexity Control from Performance Tuning
“Separating Complexity Control from Performance Tuning”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查协议边界:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Taxonomy of Unix IPC Methods
“Taxonomy of Unix IPC Methods”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查吞吐延迟:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Handing off Tasks to Specialist Programs
“Handing off Tasks to Specialist Programs”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查失败传播:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Pipes, Redirection, and Filters
“Pipes, Redirection, and Filters”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查资源所有权:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Wrappers
“Wrappers”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查进程隔离:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Security Wrappers and Bernstein Chaining
“Security Wrappers and Bernstein Chaining”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查协议边界:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Slave Processes
“Slave Processes”是本单元比较的机制候选,名称本身不代表应当采用。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查吞吐延迟:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Peer-to-Peer Inter-Process Communication
“Peer-to-Peer Inter-Process Communication”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查失败传播:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Problems and Methods to Avoid
“Problems and Methods to Avoid”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查资源所有权:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Obsolescent Unix IPC Methods
“Obsolescent Unix IPC Methods”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查进程隔离:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Remote Procedure Calls
“Remote Procedure Calls”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查协议边界:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Threads — Threat or Menace?
“Threads — Threat or Menace?”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查吞吐延迟:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
Process Partitioning at the Design Level
“Process Partitioning at the Design Level”把本单元的总机制细化为一个可定位的主题坐标。 在“多道程序设计先把功能和性能问题分开,再比较管道、重定向、包装器、从进程和对等通信;进程边界提供隔离,也引入序列化、调度和部分失败。”这条因果链中,本节点重点检查失败传播:先写预期,再改变一个直接条件,并用当通信状态比业务状态更复杂时,应回退到库边界或重新划分职责。作为停止或继续的边界。
三视图实验:先预测,再操作
1. 组合拓扑
沿 任务划分 → IPC 选择 → 背压传播 → 局部失败 → 恢复编排 定位职责和失败传播,只允许改变一个直接条件。
taoup-chapter-07-multiprogramming · 组合拓扑
第7章 多道程序设计:分离进程为独立的功能
将抓取、解析、过滤与写入任务划分为可恢复的执行单元
选择验证情境
选择工程动作
正常路径和责任链一致,可以进入下一节点,但仍须保存可重放记录。
职责、接口与失败传播
7. Multiprogramming
常见误区
术语
名词解释
本章出现的专业名词,用大白话再讲一遍。
- 第7章 多道程序设计:分离进程为独立的功能
进程隔离的检查入口;必须能回到输入、状态与失败证据。
- 进程隔离
协议边界的检查入口;必须能回到输入、状态与失败证据。
- 协议边界
吞吐延迟的检查入口;必须能回到输入、状态与失败证据。
- 吞吐延迟
失败传播的检查入口;必须能回到输入、状态与失败证据。
- 失败传播
资源所有权的检查入口;必须能回到输入、状态与失败证据。
- 资源所有权
进程隔离的检查入口;必须能回到输入、状态与失败证据。
练习与答案
练习
- 问题 1:目录证据复核。 选择三个相邻目录节点,说明它们在 第7章 多道程序设计:分离进程为独立的功能 中的因果关系,并指出各自的实验与练习证据。
- 问题 2:故障诊断。 在“将抓取、解析、过滤与写入任务划分为可恢复的执行单元”中注入“为共享内存速度引入线程,却没有为竞态、取消和资源所有权定义协议”,第一处应该拒绝结果的位置在哪里?
- 问题 3:方案判断。 什么情况下应该拒绝本章首选的 Unix 风格方案?
本章小结
第7章 多道程序设计:分离进程为独立的功能 的核心不是记住目录名,而是用 任务划分、IPC 选择、背压传播、局部失败、恢复编排 把 进程隔离、协议边界、吞吐延迟、失败传播、资源所有权 连成一条可反驳、可重放、可撤回的证据链。最终验收是:能模拟一段进程故障并证明上游、下游和重试策略行为确定。