Skip to content

操作系统运行环境

处理机运行模式

内核态与用户态

  • 内核态(管态、核心态)

    在此状态下,处理机可运行除访管指令的所有特权指令非特权指令

    访管指令

    访管指令(Trap Instruction)是操作系统提供给用户程序的接口,用户程序通过访管指令请求操作系统服务。访管指令是操作系统最基本的特性,是操作系统实现的关键。

    本质上,访管指令就是自陷中断的一种特殊形式

  • 用户态(目态)

    在此状态下,处理机只能运行非特权指令

特权指令与非特权指令

  • 特权指令: 不允许用户直接使用的指令,必须在内核态下运行,以下类型的指令均属于特权指令:

    • 用于直接管理系统资源的指令,如设置时钟、启动/关闭硬件设备、切换进程、设置中断等

    • 系统状态修改指令,如修改中断向量表、切换CPU的运行模式等

    • 系统控制指令,如停机指令、重启指令等

  • 非特权指令: 允许用户直接使用的指令,不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间

中断与异常

graph TD
    A[中断] --> B[异常 Exception<br/>内部中断]
    A --> C[中断 Interrupt<br/>外部中断]

    B --> D[故障 Fault]
    D --> I[软件中断]
    B --> E[自陷 Trap]
    E --> I
    B --> F[终止 Abort]
    F --> J[硬件中断]

    C --> G[可屏蔽中断<br/>INTR]
    C --> H[不可屏蔽中断<br/>NMI]

中断类型

  • 异常(内部中断):由CPU内部事件引起的中断

    • 故障(Fault):可恢复的异常,如缺页异常、除零异常

    • 自陷(Trap):程序主动触发的异常,如系统调用

    • 终止(Abort):不可恢复的严重错误,如硬件故障

  • 中断(外部中断):由外部设备引起的中断

    • 可屏蔽中断(INTR):可以被CPU屏蔽的中断

    • 不可屏蔽中断(NMI):不能被屏蔽的紧急中断

系统调用

系统调用是操作系统提供给用户程序的接口,用户程序通过系统调用请求操作系统服务。系统调用是操作系统最基本的特性,是操作系统实现的关键。

系统调用的类型
系统调用的类型

  • 设备管理: 完成设备的请求或释放,以及设备启动等功能

  • 文件管理: 完成文件的读写、创建、删除等操作

  • 进程管理: 完成进程的创建、撤销、阻塞、唤醒等操作

  • 进程通信: 完成进程之间的消息传递或信号传递,包括进程间同步、互斥、信号量等操作

  • 内存管理: 完成内存的分配、回收以及获取作业占用内存区大小和起始地址等操作

系统调用执行过程
系统调用执行过程

从图示不难看出,系统调用的过程依赖于中断机制