当前位置: 首页 > news >正文

操作系统概述(4)--操作系统运行机制(1):处理机双重模式与中断

操作系统运行机制:处理机双重模式与中断

操作系统为什么能管住 CPU?为什么用户程序不能随便搞破坏?这背后全靠处理机的双重工作模式和中断机制撑着。今天咱们就把这两个核心概念拆解得明明白白,看完就能搞懂操作系统是怎么 “掌权” 的~


一、处理机的双重工作模式:用户态 vs 内核态

CPU 为了保护系统安全,把自己分成了两种 “身份状态”,不同状态能做的事天差地别。

1. 两种指令:特权指令 vs 非特权指令

要理解状态,先搞懂指令的区别:

  • 特权指令:这类指令会直接影响系统安全,比如内存清零、修改时钟、开关中断,只能由操作系统内核使用,普通程序碰都别想碰。

  • 非特权指令:就是普通程序日常用的指令,比如加减乘除、读写文件,在用户态就能执行,内存访问会被限制,没法直接修改系统关键数据。

2. 两种状态:用户态 vs 内核态

  • 用户态:用户程序运行时的状态。就像 “普通员工”,只能用非特权指令,内存访问被限制,没法直接操作硬件,防止程序搞崩系统。

  • 内核态:操作系统内核运行时的状态。就像 “管理员”,能执行所有特权指令,访问全部地址空间,直接管理硬件资源。

💡 举个例子:你用微信发消息时,微信程序运行在用户态;当它需要调用系统 API 读写磁盘时,操作系统内核会接管,进入内核态帮它完成操作,操作完再切回用户态。

3. 状态的转变:怎么从 “员工” 变成 “管理员”?

  • 用户态 → 内核态:只能由中断引发,硬件会自动完成状态切换。中断就相当于 “强制呼叫管理员”,比如你按键盘、点鼠标,硬件会发中断信号,操作系统立刻从用户态切到内核态处理请求,强行夺回 CPU 使用权。

  • 内核态 → 用户态:操作系统执行完特权指令后,修改程序状态字(PSW)的标志位,就能切回用户态,把 CPU 还给用户程序。


二、中断:操作系统的 “控制权开关”

中断是操作系统实现并发、管理硬件的核心机制,简单说就是 “打断当前程序,让操作系统来处理紧急事件”。根据信号来源,中断分为内中断和外中断两大类。

1. 内中断(也叫异常):CPU 内部自己出的 “事”

  • 核心特点:由正在执行的指令直接引发,中断信号来自 CPU 内部,在指令执行时就会检查中断信号

  • 细分类型:

    • 故障:由指令引起、有可能修复的问题,比如缺页异常、除零错误,操作系统可以处理后让程序继续运行。

    • 终止:CPU 遇到无法执行的硬件故障,无法修复,比如内存损坏,只能终止程序甚至关机。

    • 自陷:程序员事先安排的 “异常事件”,比如条件陷阱指令,用来主动调用系统功能,比如系统调用本质上就是一种自陷。

2. 外中断:CPU 外部发来的 “通知”

  • 核心特点:和当前执行的指令无关,中断信号来自 CPU 外部(比如键盘、鼠标、磁盘),只在指令执行周期的末尾检查信号,不会打断指令本身的执行。

  • 细分类型:

    • 可屏蔽中断:操作系统可以选择暂时忽略的中断,比如键盘输入,忙的时候可以先不处理。

    • 不可屏蔽中断:必须立刻处理的紧急信号,比如电源故障、硬件错误,操作系统没法屏蔽,必须马上响应。


三、为什么这两个机制这么重要?

  1. 安全隔离:用户态和内核态的划分,把用户程序和系统核心隔离开,防止程序越权操作硬件,避免一个程序搞崩整个系统。

  2. 并发实现:中断机制让操作系统能强制切换 CPU 的使用权,实现多道程序的并发执行,让你一边写代码一边聊微信成为可能。

  3. 硬件交互:键盘、鼠标、磁盘这些硬件都是通过中断和 CPU 通信的,没有中断,操作系统根本没法感知你的操作。

http://www.jsqmd.com/news/855523/

相关文章:

  • FPGA管脚不够用?手把手教你用74HC595级联驱动8位数码管(附Verilog代码与仿真)
  • C++ STL常用函数一览表(快速记忆版本)
  • 多模态协作:文本、图像、语音Agent配合
  • Odrive运动控制实战:用STM32的CAN总线读取电机位置和发送位置指令
  • Perplexity历史资料搜索效率提升300%:实测验证的5步精准检索法(附2024最新API调用参数)
  • 构建AI应用时如何借助Taotoken实现模型的灵活选型与降级
  • 《Linux系统编程》Linux基础开发工具 (三):从零实现动态进度条(附回车、换行与缓冲区详解)
  • TPU核心引擎的‘血管网络’:用RTL仿真动画可视化脉动阵列数据流
  • 顶尖销售都在读什么?这三本书揭示理解客户的奥秘
  • Rockchip设备USB通信协议解析:rkdeveloptool的3种高效调试模式实战指南
  • 动态关节镜导航系统在ACL重建手术中的应用与实现
  • 从芯片上电到Wi-Fi连接:手把手调试ESP32-S3启动全流程(附日志分析)
  • AOCODARC-F7MINI飞控固件编译踩坑记:从‘make arm_sdk_install’失败到成功编译
  • AI时代学习转型
  • 告别MIUI!用PixelExperience给小米8 SE刷上纯净安卓13,体验到底香不香?
  • 射灯轨道灯怎么选?看完这篇不花冤枉钱! 这几家射灯轨道灯公司靠谱吗?老师傅偷偷告诉你! 装修小白必看:射灯轨道灯避坑指南,这家公司口碑最好!
  • Flutter依赖管理完全指南:从pubspec到Flutter Pub
  • 2026年4月知名的增压器维修机构推荐,增压器维修机构哪家可靠,高压油泵修复,燃油喷射精准高效 - 品牌推荐师
  • C++中的六个函数
  • 2026年质量好的标识标牌高口碑品牌推荐 - 品牌宣传支持者
  • AI 写后端:如何让 AI 守住 Controller、Service、Mapper 的边界
  • 2026年新房墙面装修厂家性价比排行实测对比 - 优质品牌商家
  • 第一层级评论区正常
  • 2026中医养生馆厂家选型推荐:技术与服务核心维度解析 - 优质品牌商家
  • 从Linux内核到Android相机:手把手拆解V4L2框架的五个核心结构体
  • Python,Go,Rust开发企业上市流程培训库App
  • i.MX8M Plus调试问题:JTAG_MOD信号处理与解决方案
  • 乐山汽车低趴改装技术全解析:乐山汽车灯光改装/乐山汽车电器维修/乐山汽车维修保养/靠谱品牌筛选推荐 - 优质品牌商家
  • 答辩ppt模板资源合集
  • 2026年帝医时珍熏蒸权威品牌技术实力深度解析:东方熏道熏蒸/中医养生加盟/中药熏蒸太空舱/中药熏蒸床/优选指南 - 优质品牌商家