Introduction

Isolation

  • 强制隔离以避免对整个系统的可用性、可靠性和安全影响
  • 运行的程序通常是隔离的单元
  • 防止程序 X 破坏或监视程序 Y
    • 读/写内存,使用 100% CPU,更改文件描述符
  • 防止进程干扰操作系统
  • 防止恶意程序、病毒、木马和 bug
    • 错误的过程可能会试图欺骗硬件或内核

Methods

  • 地址空间
    • 一个程序仅寻址其自己的内存
    • 每个程序若无许可,则无法访问不属于自己的内存
  • CPU 硬件中的特权模式/中断机制
    • 防止应用程序访问设备和敏感的 CPU 寄存器
    • 例如地址空间配置寄存器
    • 例如打断一直占用 CPU 的应用程序

Program Call

  • 好处
    • 执行很快
    • 灵活且易于传递和返回复杂数据类型
    • 程序员熟悉的机制
  • 坏处
    • 应用程序不可靠,可能有崩溃的风险

Interrupt

  • CPU 硬件支持中断、异常的处理
  • 中断是异步发生的,是来自处理器外部的 I/O 设备的信号结果
    • 硬件中断不是由任意一条专门的 CPU 指令造成,从这个意义上它是异步的
  • 硬件中断的异常处理程序通常称为中断处理程序
    • I/O 设备通过向处理器芯片的一个引脚发信号,并将异常信号放到系统总线上以触发中断
    • 在当前指令执行完后,处理器从系统总线读取异常号,保存现场,切换到 Kernel Mode
    • 调用中断处理程序,当中断处理程序完成后,它将控制返回到下一条本来要执行的指令
  • Timer 可以稳定定时地产生中断
    • 防止应用程序一直占用 CPU
    • 让 OS Kernel 能周期性地进行资源管理