跳到主要内容

目标机器与辅助机器

目标机器和辅助机器分别指什么?​

  • 目标机器: 软件所服务的对象, 程序必须在该机器上进行最后测试;
  • 辅助机器: 在开发系统中提供服务的机器;
  • 重叠情况: 若在为原有机器开发操作系统, 则该机器同时充当目标机器和辅助机器;
  • 分类目的: 把机器支持拆成两类, 才能分别规划配置、时间和使用策略;

目标机器需要什么配置和计划?​

  • 监督程序或系统核心软件需要自己的机器, 并需要若干操作员和一两个系统程序员, 保证机器上的标准支持即时更新、实时可用;
  • 额外机器的要求: 运行速度不必非常快, 但至少要有若干兆字节主存、百兆字节在线硬盘和终端;
  • 终端要求: 字符型终端即可, 但必须比 15 字符/分的打字机快;
  • 大内存的用途: 可以进行进程覆盖和功能测试之后的剪裁工作, 极大提高生产率;
  • 调试支持: 需要配备调试机器或软件, 使调试过程中所有类型的程序参数可以被自动计数和测量;
  • 例子: 内存使用模式是非常强大的诊断措施, 能查出程序中不可思议的行为或性能意外下降的原因;

目标机器的使用需求有什么特殊曲线?​

  • 曲线形状: 刚开始使用率非常低, 突然出现爆发性增长, 接着趋于平缓;
  • OS/360 实例: 按经验计划并提前预定了 System/360 使用时间, 起初机器日复一日空闲; 突然有一天 16 个系统全部上线, 资源配给立刻成为严重问题;
  • 原因: 每个人在同一时间开始调试自己的第一个组件, 之后团队大多数成员持续进行某些调试工作;
  • 管理含义: 早期空闲与后期拥挤都是计划的结果, 需要提前设计配给机制;

怎样安排目标机器的时间最有效?​

  • 初步尝试: 集中所有机器和磁带库, 组建有经验的专业团队操作; 以批处理方式运行所有任务, 每天运行四次(周转时间 2.5 小时, 实际要求 4 小时);
  • 失败结果: 队伍过度运转, 几个月内缓慢周转、相互指责、极度痛苦;
  • 改进做法: 把机器时间分配成连续的块--整个 15 人的排序小组得到系统 4 至 6 小时的使用块, 由他们自己决定如何使用; 即使机器空闲, 其他人也不能使用;
  • 为什么更好: 即使机器利用程度可能降低, 生产率却提高了--6 小时内连续 10 次操作的生产率高于间隔 3 小时的 10 次操作, 因为持续精力集中能减少思考时间;
  • 配套节奏: 冲刺之后, 小组通常需要一到两天从事书面文档工作;
  • 小组规模: 通常 3 人左右的小组能卓有成效地安排和共享时间块;
  • 作者判断: 调试新操作系统时, 这似乎是最好的使用目标机器的方法;

为什么调试总是夜班性质的工作?​

  • 观察: 二十年前作者在 701 上工作时, 所有机房负责人都在家中安睡; 三代机器过去, 技术完全改变, 操作系统出现了, 大家喜好的工作方式没有改变;
  • 原因: 这种工作方式得以延续, 是因为它的生产率最高;
  • 现状: 人们已开始认识到它的生产力, 并敞开接受这种富有成效的实践;