Skip to content
On this page

历史

早期:只是一些库

一开始操作系统只是一组常用函数库,让程序员不是一定要编写低级 I/O 代码而是提供一些 API,让开发人员公作轻松一点。

在这些大型机系统上,一次运行一个程序,由操作员来控制,这个操作员做了现代操作系统会做的很多事,比如决定运行作业的顺序。

超越库:保护

人们意识到操作系统运行的代码是特殊的,它控制了设备,因此对待它的方式应该与对待正常应用程序代码的方式不同。

因此,系统调用的概念诞生了。不是讲操作系统例程作为库提供,而是添加一些特殊的硬件指令和硬件状态,让向操作系统过度变为更正式的、受控的过程。

系统调用和过程调用的关键区别在于,系统调用将控制转移到 OS 中。

多道程序时代

在小型机时代到来时,由于希望更好的利用机器资源,多道程序变得很普遍,操作系统不是一次只运行一项作业,而是将大量作业加载到内存里快速切换,从而提高 CPU 利用率,因为 I/O 设备很慢,处理 I/O 时让 CPU 闲置很浪费,所以让 CPU 在处理 I/O 时换个工作继续。

因为多个程序重叠进行了,这一愿望迫使操作系统创新,内存保护等问题变得重要。

Released under the MIT License.