全部版块 我的主页
论坛 经济学论坛 三区 环境经济学
231 0
2025-11-12

第一章 计算机系统概述:操作系统运行环境和操作系统结构

1.3 操作系统运行环境

一、CPU 执行的程序类型

操作系统内核程序:

  • 是唯一能使用特权指令的程序,属于计算机底层软件,管理系统的各种资源。
  • 核心功能: 时钟管理、中断机制(仅小部分属于内核);
  • 原语: 最基础的可调用公共小程序;
  • 系统资源管理: 进程管理、存储器管理、设备管理。

用户自编程序(应用程序):

  • 不允许执行特权指令。

二、运行模式切换(通过 PSW 程序状态字控制器实现)

两种状态:

  • 用户态(目态);
  • 核心态(管态、内核态)—— 需与“发生”类概念区分,核心态下可执行特权指令(如输入/输出指令、时钟指令、系统调用指令等)。

状态切换方式:

  • 内核态→用户态:执行一条修改 PSW 的特权指令;
  • 用户态→内核态:由中断引起,硬件自动完成(这是用户态进入内核态的唯一途径)。

三、中断和异常

中断概念:

  • 使操作系统内核强行夺回 CPU 控制权,让 CPU 从用户态切换到内核态。

中断分类:

类型 子分类 触发原因 & 处理 补充说明
内中断(异常) 访管 / 自陷(trap) 由陷入指令引发,用于调用内核功能(如缺页故障、非法操作码) 属于软件中断(程序性异常)
故障(fault) 由错误条件引发,修复后可继续执行程序
终止(abort) 由指令错误引发,无法修复,会终止应用程序
外中断(狭义中断) 时钟中断 由时钟信号触发 属于硬件中断
I/O 中断请求 由 I/O 设备请求触发 注:外部中断时,PC 值由中断隐指令自动保存,通用寄存器内容由 OS 保存。

四、中断机制的基本实现原理

检查中断信号:

  • 内中断:CPU 执行指令时检查是否有异常;
  • 外中断:每个指令周期末尾,CPU 检查是否有外中断信号。

找到中断处理程序:

  • 通过中断向量表实现(与子程序调用的区别:中断处理需同时保存断点和 PSW 内容)。

五、系统调用

概念:

  • 操作系统提供给应用程序的接口,使应用程序能请求内核服务(只能通过用户程序间接使用)。

系统调用与库函数的区别:

  • 部分库函数是系统调用的封装;
  • 部分库函数不依赖系统调用。

使用场景:

  • 设备管理、文件管理、进程管理、进程控制、内存管理。

执行过程:

  • 用户态传参 → 用户态陷入指令 → 核心态系统调用 → 返回用户态应用程序。

1.4 操作系统结构

计算机系统的层次结构(从下到上):

  1. 裸机(纯硬件);
  2. 操作系统内核(时钟管理、中断处理、原语等);
  3. 操作系统功能层(进程管理、存储器管理、设备管理等);
  4. 非内核功能(如 GUI);
  5. 应用程序(软件);
  6. 用户。

注:

  • 内核中的原语是具有原子性的特殊程序,运行时不可被中断;若仅将原语层视为内核,则称为微内核。

操作系统内核框架分类

结构类型 核心特点 优点 缺点 典型案例
宏内核(大内核、单内核) 系统功能都在内核中,运行于核心态 高性能,内核内部功能可直接调用 内核代码庞大、结构混乱,维护困难;某功能出错可能导致系统崩溃 Windows、Android、iOS
微内核 仅将最基础功能(时钟、中断、原语、进程通信等)放在内核中,其余功能在核外 结构清晰、方便维护、可靠性高 需频繁在核心态与用户态间切换,性能低 Windows NT
分层法 内核分为多层,每层仅能调用紧邻的底层功能 结构清晰,便于调试和验证;易于扩充和维护 设计困难,难界定层边界;效率低,执行时间长 -
模块化 内核划分为主模块 + 可加载模块,模块间协作 逻辑清晰、易于维护;可动态加载模块;模块间直接调用,效率高 模块太多,接口难定义;调试困难 -
外核 内核负责进程调度等,外核负责硬件资源的分配、回收、保护 用户可灵活使用硬件资源,减少虚拟资源映射层,提高效率 降低系统一致性,系统复杂度增加 -
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群