前言
早期计算机没有OS,程序直接操作硬件资源。
后来引入OS,OS本身也是靠计算机硬件执行的一种程序。OS把复杂的硬件虚拟化后提供简单的接口给应用程序使用。有OS这个程序来运行应用程序,而不是应用程序自己操作硬件。
早期单任务模式
这时候应用程序一般存放在软盘或其他介质之上。重启计算机,机器从软盘特定扇区载入应用程序执行,结果显示在显示器上。每个需要使用计算机的用户都需要经历插入软驱,重启,等待运算结果。应用程序运行期间,如果CPU空闲,其他用户的程序只能等待。可见这时候因为没有OS,每执行新的程序都要重启计算机。
引入OS后的单任务模式
引入OS后,计算机加电,首先运行OS(因为OS本身也是一段代码)。随时可以通过软驱等其他介质载入应用程序代码,然后切换到该代码让CPU执行。执行完毕后返回OS。正常情况下,当被载入的应用程序执行时,其他应用程序必须等待,包括OS。只有被载入的应用程序运行完毕或者中断,其他应用程序才有可能上位。可见这个时候,引入OS唯一比不引入OS之前的区别就是,不用每次运行不同的应用程序都要重启计算机。但是这里还有一个地方有人工干预,就是当一个应用程序执行完毕后,下个应用程序是需要用户手动插入软驱等介质载入的。
引入OS的单任务批处理系统
OS将多个程序一个一个排列起来,成批地执行,中途省略认为载入程序过程。除此之外和“引入OS后的单任务模式”一毛一样。
多任务操作系统
OS针对时钟中断,开发了专门时钟中断程序,即多任务OS中的调度程序。每个应用程序占用的时间片很小,这样就形成一种多个应用程序好像在同时执行的假象。 多任务OS系统的关键就在于其具有多任务调度程序。