批处理技术和多道技术
更新日期:2026-09-18 01:34:39
| 标题 | 批处理技术和多道技术 | |||||||||||||||||||||||||||
| 内容 | 回想上世纪五十年代末到六十年代初,操作系统刚起步那会儿,最大的痛点其实就一个:计算机太“贵”了,但人又跑不动。那时候没有互联网,程序员把代码写在打孔卡上,交给操作员,操作员手动把卡片投进读卡机,启动机器。问题在于,CPU 处理速度极快,而纸带或磁带读取、打印输出这些机械动作慢得要死。结果就是 CPU 大部分时间都在干等,就像法拉利司机在堵车,这浪费简直让人心疼。 为了解决这个问题,批处理技术最先登场。它的核心思路很简单:别一个个排队提交了,把所有任务攒成一堆(Batch),一次性扔给系统,中间不用人来干涉。但这还不够,因为哪怕是一批任务,如果里面有个程序要去读盘,CPU 还是得歇菜。这时候,多道技术(多道程序设计) 就派上用场了。它不再让内存里只待一个作业,而是硬塞进去好多个,当一个等着 IO 的时候,CPU 马上切出去干另一个。这两者结合,才真正把计算机从“算力的玩具”变成了“高效的生产力工具”。 核心逻辑与演变简述 简单来说,批处理是管理形态,规定了用户怎么提交任务;多道性是底层机制,决定了内存和 CPU 到底怎么调度。早期的单道批处理虽然解决了人工调度的麻烦,但资源利用率依然低下。引入多道后,操作系统开始负责维护多个进程的“状态”,通过中断机制判断谁需要 CPU。这种设计牺牲了一定的交互性(你不能随时打断程序改参数),换来的是吞吐量的成倍提升。这也为后来的分时系统和实时系统打下了地基。 为了更直观地看清这两者在实际运行中的区别与联系,我们整理了以下对比表:
总结与思考 回顾历史,批处理技术和多道技术并不是孤立的两个概念,它们更像是操作系统进化树上的两个连续节点。如果说批处理解决了“怎么把活交给机器”的问题,那么多道技术则回答了“怎么让机器不停干活”的问题。 在实际工程落地中,这两者的界限在后期的演进中逐渐模糊。现代的云计算调度器、容器编排,本质上都是高级形式的批处理(处理海量微任务)叠加多道(在同一物理机上跑多个容器)。理解它们的初衷,有助于我们在面对高并发任务调度、后台任务队列优化时,抓住资源瓶颈的本质:不要让人等资源,也不要让资源等人。 | |||||||||||||||||||||||||||
| 随便看 |
|