操作系统发展史:从手工操作到分布式系统
引言
任何技术的演进都是为了解决前人留下的痛点。操作系统的发展也不例外——它的每一步进化,都在回答同一个问题:“怎样才能让昂贵又稀缺的计算机资源得到更充分的利用?”
核心速览
- 操作系统的演进主线:解决人机速度矛盾 → 提高资源利用率 → 改善用户体验
- 六个关键阶段:手工操作 → 单道批处理 → 多道批处理 → 分时系统 → 实时系统 → 网络/分布式系统
- 408 考试重点:每个阶段主要解决什么问题、各自的优缺点、代表性技术术语
第一阶段:手工操作时代
这是计算机的"石器时代"。程序员需要亲自操作物理开关和纸带:
程序员 → 人工装/取纸带 → 计算机运算 → 人工取结果
工作流程:
- 程序员把程序打在纸带上
- 走到机房,人工把纸带装入输入机
- 计算机开始运行
- 运行完毕后,人工取下打印结果
- 下一个程序员才能开始
致命缺陷:
- 人机速度矛盾:CPU 运算速度极快(微秒级),人的操作速度极慢(秒~分钟级)
- 资源利用率极低:CPU 大部分时间在"等人",而非"干活"
- 用户独占全机:一个人霸占着整台计算机,其他人排队干等
第二阶段:单道批处理系统
为了解决"人等机器"的问题,引入了监督程序(操作系统的雏形):
程序员A → 程序A ─┐
程序员B → 程序B ─┤ → 外围机 → 磁带 → 计算机 → 磁带 → 外围机 → 打印结果
程序员C → 程序C ─┘
核心技术:
- 用磁带作为缓冲介质(读写速度远快于纸带)
- 监督程序负责自动将磁带上的作业逐个加载到内存执行
- 程序员不再需要亲自操作机器,只需提交作业
优点:
- 一定程度上缓解了人机速度矛盾
- 资源利用率有所提高
缺点:
- 内存中只能保存一道程序,CPU 在等待 I/O 操作时处于空闲状态
- 资源利用率仍然较低
第三阶段:多道批处理系统
这是操作系统发展史上的里程碑——操作系统正式诞生!
┌── 程序A ────┐
内存中同时 │ 程序B │ → CPU 在程序之间切换:A 等 I/O 时,CPU 执行 B
存在多道程序│ 程序C │
└────────────┘
核心突破:
- 内存中同时驻留多道程序
- 当程序 A 在执行 I/O 操作(慢)时,CPU 立即切换到程序 B(快)
- CPU 始终保持"忙碌"状态
优点:
- 多道程序并发执行,资源利用率大幅提升
- CPU 吞吐量显著增加
缺点:
- 用户交互性差:提交作业后只能干等结果,中间无法干预
- 响应时间长:如果前面有大作业,后面的小作业也得排队
- 无法调试:程序运行过程中无法进行交互式调试
第四阶段:分时操作系统
为了解决"用户交互"的问题,分时系统登场:
时间片轮转:
时间轴: │←50ms→│←50ms→│←50ms→│←50ms→│...
分配给: 用户A 用户B 用户C 用户A ...
核心机制:以时间片(time slice)为单位,轮流为多个用户/作业服务。
优点:
- 彻底解决了人机交互问题
- 多个用户可以同时使用一台计算机,互不干扰
- 用户可以实时调试程序、查看中间结果
缺点:
- 不能优先处理紧急任务:所有用户一视同仁,循环分配时间片
- 对于需要实时响应的任务(如导弹控制),分时系统无能为力
第五阶段:实时操作系统
为了解决"及时响应"的问题,实时系统应运而生:
实时系统分类:
├── 硬实时系统:必须在严格时限内完成
│ └── 导弹控制系统、自动驾驶
│
└── 软实时系统:偶尔超时可以接受
└── 12306 抢票系统、视频会议
核心特征:及时性和可靠性。
- 硬实时:超时可能导致灾难性后果(飞机自动驾驶延迟 1 秒 = 机毁人亡)
- 软实时:超时影响体验但不致命(抢票慢了 0.5 秒 = 票被别人抢了)
第六阶段:网络操作系统与分布式操作系统
网络操作系统
将多台计算机通过网络连接,实现数据通信和资源共享。典型代表如 Windows NT。
分布式操作系统
更高阶的网络系统,核心特征是分布性和并行性:
- 系统中的多台计算机地位相同,可以分布在不同的地理位置
- 任何工作可以被分布到多台计算机上并行协同完成
- 用户可以像使用一台计算机一样使用整个系统
六阶段速记对照表
| 阶段 | 主要矛盾 | 核心机制 | 关键缺点 |
|---|---|---|---|
| 手工操作 | 人机速度矛盾 | 人工装取纸带 | CPU 大量时间等人 |
| 单道批处理 | 人工效率低 | 监督程序 + 磁带 | 内存中仅一道程序 |
| 多道批处理 | CPU 等待 I/O | 多道程序并发 | 无交互能力 |
| 分时系统 | 无用户交互 | 时间片轮转 | 不区分优先级 |
| 实时系统 | 紧急任务响应 | 优先级抢占 | 成本高,适用面窄 |
| 网络/分布式 | 资源共享 | 网络互联 + 协同计算 | 复杂度高 |
⚠️ 考研提醒:408 选择题最爱考"多道批处理系统是操作系统正式诞生的标志"和"分时系统解决了人机交互问题"。同时要会区分网络操作系统和分布式操作系统的关键差异(分布式强调并行协同)。
常见疑问
单道批处理和多道批处理最本质的区别是什么?
内存中同时存在的程序数量。单道批处理同一时刻内存中只有一道程序,CPU 等 I/O 时就空闲。多道批处理内存中同时驻留多道程序,A 等 I/O 时 CPU 去执行 B。后者是操作系统并发性的最早实现。
分时系统和实时系统的区别仅仅是"快"吗?
不只是快慢的问题,而是设计理念根本不同。分时系统追求公平性(每个用户时间均等),实时系统追求优先级(紧急任务优先处理)。分时系统的时间片轮转是"排队制",实时系统是"急诊制"。
小结
- 发展主线:人机矛盾 → 提高利用率 → 改善交互 → 保障及时性 → 网络共享
- 关键拐点:多道批处理 = 操作系统正式诞生;分时系统 = 人机交互的起点
- 考试重点:每个阶段的优缺点,以及它解决了上一阶段的什么问题
下一篇我们将深入操作系统的运行机制——内核态与用户态的区别、中断和异常的工作原理、以及系统调用的全流程剖析。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)