操作系统的运行机制(详解版)

  • 内容
  • 评论
  • 相关

将I/O结构的时候提到,现代操作系统是中断驱动(interrupt driven)的。如果没有进程需要执行,没有 I/O 设备需要服务,而且没有用户需要响应,那么操作系统会静静地等待某个事件的发生。

事件总是由中断陷阱引起的。陷阱(trap,或异常(exception))是一种软件生成的中断,或源于出错(如除数为零或无效存储访问),或源于用户程序的特定请求(执行操作系统的某个服务)。这种操作系统的中断特性规定了系统的通用结构。对于每种中断,操作系统有不同代码段来处理。中断服务程序用于处理中断。

由于操作系统和用户共享计算机系统的硬件和软件,需要确保用户程序的出错仅仅影响自己。由于共享,一个程序错误(bug)可能会对多个进程造成不利的影响。例如,如果一个进程陷入死循环,那么这个死循环可能阻止许多其他进程的正确运行。多道程序系统可能出现更多微妙错误,一个错误程序可能修改另一程序另一程序数据甚至操作系统本身。

如果对这些错误不加以预防,那么计算机只能一次执行一个进程,否则所有输出都值得怀疑。操作系统的正确设计必须确保错误程序(或恶意程序)不会造成其他程序的错误执行。

双重模式与多重模式的执行

为了确保操作系统的正确运行,必须区分操作系统代码和用户代码的执行。大多数计算机系统采用硬件支持,以便区分各种执行模式。

至少需要两种单独运行模式:用户模式(user mode)内核模式(kernel mode)(也称为监视模式(supervisor mode)系统模式(system mode)特权模式(privileged mode))。计算机硬件可以通过一个模式位(mode bit)来表示当前模式:内核模式(0)用户模式(1)

有了模式位,就可区分为操作系统执行的任务和为用户执行的任务。当计算机系统执行用户应用时,系统处于用户模式。然而,当用户应用通过系统调用,请求操作系统服务时,系统必须从用户模式切换到内核模式,以满足请求,如图 1 所示。正如将会看到的,这种架构改进也可用于系统操作的许多其他方面。


用户模式到内核模式的转换
图 1 用户模式到内核模式的转换

本文标题:操作系统的运行机制(详解版)

本文地址:https://www.hosteonscn.com/3536.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注