第一章 03操作系统运行环境(王道)

一、操作系统运行机制

1.1 知识总览

第一章 03操作系统运行环境(王道)

1.2 程序是如何运行的?

第一章 03操作系统运行环境(王道)
  • 编译转换:高级语言代码(如C语言)经编译后转换为CPU可执行的二进制机器指令
  • 执行本质:程序运行即CPU顺序执行机器指令的过程,如int x=1; x++;可能对应多条机器指令
  • 指令定义:让CPU识别和执行的最基本命令,如加法、赋值等底层操作
第一章 03操作系统运行环境(王道)
  • 关键区分:
    • 机器指令:二进制形式,CPU直接执行的基本操作(本节重点)
    • 命令接口:如Linux的ls、cd等交互式命令,属于操作系统提供的用户接口

1.3 内核程序与应用程序

第一章 03操作系统运行环境(王道)
  • 应用程序:普通程序员开发的程序(如QQ、微信),运行在操作系统之上
  • 内核程序:操作系统开发者编写的程序,组成操作系统内核(kernel),最接近硬件的部分
    • 实现系统资源管理,是操作系统最核心的部分(如Docker仅需Linux内核)

1.4 特权指令与非特权指令

第一章 03操作系统运行环境(王道)
  • 特权指令:仅内核程序可使用(如内存清零),会影响其他程序运行
  • 非特权指令:所有程序可使用(如加减乘除运算指令)

1.5 内核态与用户态(CPU两种状态)

第一章 03操作系统运行环境(王道)
  • 状态标识:通过PSW(程序状态字寄存器)的二进制位标记(1-内核态/0-用户态)
  • 状态别名:
    • 内核态:核心态/管态
    • 用户态:目态
  • 两种状态
    • 处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令
    • 处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令

1.6 内核态和用户态的切换

典型案例:黑客在应用程序植入特权指令→触发中断→CPU切换至内核态执行处理程序

1、刚开机时,CPU处于“内核态”,操作系统内核程序先在CPU上运行

第一章 03操作系统运行环境(王道)

2、开机完成后,用户可以启动某个应用程序

3、操作系统内核程序在合适的时候主动让出CPU,让该程序在CPU中运行

操作系统内核让出CPU之前,会用一条特权指令把程序状态寄存器(PSW)的标志位设置为用户态

第一章 03操作系统运行环境(王道)
用户态

4、应用程序运行在“用户态”

5、此时,一位黑客在应用程序中植入了一条特权指令,企图被坏系统…..

6、CPU发现接下来要执行的这条指令是特权指令,但是自己又处于“用户态“

前面提到的 用户态只能执行非特权指令

7、这个非法事件会引发一个中断信号

第一章 03操作系统运行环境(王道)

CPU检测到中断信号后,会立即变为“核心态”,并停止运行当前的应用程序,转而运行处理中断信号的内核程序

8、“中断”使操作系统再次夺回CPU的控制权

9、操作系统会对引发中断的事件进行处理,处理完了再把CPU使用权交给别的应用程序

对以上内容进行总结:

第一章 03操作系统运行环境(王道)

1.7 操作系统运行机制知识回顾

第一章 03操作系统运行环境(王道)

二、中断和异常

2.1 知识总览

第一章 03操作系统运行环境(王道)

2.2 中断的作用

第一章 03操作系统运行环境(王道)
  • 核心功能:中断是操作系统内核重新夺回CPU使用权的唯一途径
  • 状态转换:使CPU由用户态变为内核态,实现特权级切换
  • 系统意义:
    • 没有中断机制就无法实现多道程序并发
    • 是操作系统得以存在的基础技术支撑
  • 运行机制:
    • 内核程序通过特权指令主动让出CPU使用权
    • 通过中断机制强制收回CPU控制权

2.3 中断的类型

第一章 03操作系统运行环境(王道)
第一章 03操作系统运行环境(王道)

2.3.1 内中断(异常、广义中断)

  • 本质特征:中断信号来源于CPU内部,与当前执行指令直接相关
  • 别称:又称异常(exception),是教材和考试中的标准术语
  • 例1:执行特权指令 – 应用程序在用户态尝试执行特权指令
    • 处理流程:
      • CPU检测到非法特权指令
      • 触发中断信号拒绝执行
      • 自动切换至内核态
      • 执行对应的内核处理程序
    • 系统响应:管理者重新获得CPU控制权
  • 例2:执行非特权指令 – 执行除法指令时发现除数为0
    • 若当前执行的指令是非法的,则会引发一个中断信号
  • 例3:有时候应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令–陷入指令,该指令会引发一个内部中断信号
    • 系统调用也就是陷入指令完成

陷入指令拓展

  • 特殊指令:陷入指令(trap)引发内中断
    • 指令特性:
      • 非特权指令,用户态可执行
      • 用于主动请求内核服务
    • 应用场景:系统调用的实现基础
    • 处理流程:
      • 应用程序执行陷入指令
      • 产生内部中断信号
      • CPU切换至内核态处理请求

2.3.1 外中断(中断)

例1:时钟中断–由时钟部件发来的中断信号

第一章 03操作系统运行环境(王道)
  • 硬件来源:时钟部件定期(如50ms)发送中断信号
  • 并发实现:
    • 应用程序1运行50ms后收到中断
    • CPU切换至内核态处理中断
    • 内核调度程序2运行
    • 循环切换实现并发
  • 检测机制:CPU在每个指令周期末尾检查外中断

例2:I/O中断–由输入/输出设备发来的中断信号

如打印机打印完成,处理I/O中断的内核程序

2.4 中断机制的基本原理

第一章 03操作系统运行环境(王道)
  • 处理流程:
    • CPU检测中断信号
    • 查询中断向量表
    • 定位处理程序入口
  • 硬件实现:
    • 内中断:指令执行时立即检查
    • 外中断:指令周期末尾例行检查
  • 中断向量表存储各类中断处理程序指针

2.5 中断和异常的知识点回顾

第一章 03操作系统运行环境(王道)

三、系统调用

3.1 知识总览

第一章 03操作系统运行环境(王道)

3.2 什么是系统调用?

第一章 03操作系统运行环境(王道)
  • 定义: 系统调用应用程序请求操作系统内核服务编程接口,由操作系统向上层提供的一组服务接口组成。
  • 作用: 作为用户程序和硬件之间的桥梁,提供简单易用的服务接口,保证系统稳定性和安全性。

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

第一章 03操作系统运行环境(王道)
  • 层级关系:
    • 系统调用是操作系统直接提供的底层接口
    • 库函数可能封装系统调用(如文件操作)或独立实现(如数学运算)
  • 使用场景:
    • 必须使用系统调用的场景:涉及共享资源(设备、文件、内存等)的操作
    • 可不使用系统调用的场景:纯计算类操作(如数学运算)

3.3 应用案例

为什么系统调用是必须的?

第一章 03操作系统运行环境(王道)
  • 场景描述: WPS和Word两个进程并发请求打印机资源
  • 问题现象: 无系统调用管理时,打印内容会混杂
  • 解决方案:
    • 操作系统统一管理打印机资源
    • 进程必须通过系统调用申请资源
    • 内核协调各进程的资源使用顺序
  • 核心结论: 共享资源必须通过系统调用来管理,保证互斥访问

3.4 什么功能需要用到系统调用

第一章 03操作系统运行环境(王道)

凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。

3.5 系统调用的过程

第一章 03操作系统运行环境(王道)
第一章 03操作系统运行环境(王道)
  • 执行流程
    • 用户态程序执行传参指令(参数存入寄存器)
    • 执行陷入指令(trap/访管指令)
    • CPU检测到内中断,转入核心态
    • 执行系统调用入口程序
    • 根据参数调用具体处理程序
    • 处理完成后返回用户态

重点知识:

1、陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态

第一章 03操作系统运行环境(王道)

2、发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行

3.6 系统调用知识点回顾

第一章 03操作系统运行环境(王道)

本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客

(2)
何大锤的头像何大锤管理团队

相关推荐

  • 第一章 习题集

    一、重要知识点 二、错题汇总 三、习题 – 王道 四、习题 – 梁红兵 1.设计现代OS的主要目标是什么? (1)有效性 (2)方便性 (3)可扩充性 (4)开放性 2.OS的作用可表现在哪几个方面? (1)OS作为用户与计算机硬件系统之间的接口 (2)OS作为计算机系统资源的管理者 (3)OS实现了对计算机资源的抽象 3.为什么说O…

    2025年7月2日
    300
  • 第一章 06虚拟机(王道)

    一、传统计算机 二、虚拟机(VM、VMM) 2.1 虚拟机的定义 2.2 第一类虚拟机管理程序 2.3 第二类虚拟机管理程序 三、两类虚拟机管理程序的对比

    2025年6月23日
    100
  • 第一章 05操作系统的引导(Boot)(王道)

    一、知识总览 操作系统引导(boot)–开机的时候,怎么让操作系统运行起来? 二、操作系统引导理解 1、初始状态: 新购买的磁盘内部初始为空,类似于空钱包,需要安装操作系统后才能使用。 2、安装操作系统后、开机过程 操作系统要启动,数据先要放入主存中 CPU – RAM \ ROM组成 RAM程序一关机里面的数据清空 ROM芯片存储的…

    2025年6月23日
    400
  • 第一章 04操作系统体系结构(王道)

    一、操作系统体系结构知识总览 二、 操作系统的内核 2.1 内核的概念 2.2 大内核与微内核的区别 2.3 内核知识点回顾 三、操作系统结构 3.1 操作系统结构 -分层结构 内核分多层,每层可单向调用更低一层提供的接口 分层结构的优点: 1、便于调试和验证,自底向上逐层调式验证(新增大纲) 2、易扩充和易维护,各层之间调用接口清晰固定 分层结构的缺点: …

    2025年6月23日
    100
  • 第一章 02操作系统发展历程与分类(王道)

    第一章 计算机系统概述 操作系统发展历程 一、手工操作阶段(无操作系统) 1、特点 此阶段无操作系统,用户在计算机上算题的所有工作都需要人工干预 2、手工操作阶段的缺点 3、唯一的解决办法 用高速的机器代替相对较慢的手工操作来对作业进行控制 二、批处理阶段(操作系统开始出现) – 单道批处理系统(考过) 1、特点 操作系统开始出现,出现批处理系统…

    2025年5月29日
    000

发表回复

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

联系我们

2211932694

在线咨询: QQ交谈

邮件:hdcblog1999@163.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
网站建设中ing......