操作系统 —— A / 概述

🌈个人主页慢了半拍

🔥 创作专栏:《算法分析》 | 《无味生》 |《C语言》 | 《C练习解析》|《C++讲解》|《软件测试》|《Linux》|《数据结构》|《计组》

🏆我的格言:一切只是时间问题。

目录

一、基本概念

[1.1 概念](#1.1 概念)

[1.1.1 引例:一台电脑的诞生](#1.1.1 引例:一台电脑的诞生)

[1.1.2 定义](#1.1.2 定义)

[1.2 功能和目标](#1.2 功能和目标)

[1.2.1 作为系统资源的管理者](#1.2.1 作为系统资源的管理者)

[1.2.2 向上层提供方便易用的服务](#1.2.2 向上层提供方便易用的服务)

[1.2.3 实现了对计算机功能的扩充](#1.2.3 实现了对计算机功能的扩充)

[1.3 操作系统的特征](#1.3 操作系统的特征)

[1.3.1. 并发](#1.3.1. 并发)

[1.3.2. 共享](#1.3.2. 共享)

[1.3.3 虚拟](#1.3.3 虚拟)

[1.3.4 异步](#1.3.4 异步)

二、发展历史

[2.1 手工操作阶段](#2.1 手工操作阶段)

[2.2 批处理阶段](#2.2 批处理阶段)

[2.2.1 批处理阶段 ------ 单道批处理系统](#2.2.1 批处理阶段 —— 单道批处理系统)

[2.2.2 批处理阶段 ------ 多道批处理系统](#2.2.2 批处理阶段 —— 多道批处理系统)

[2.3 分时操作系统](#2.3 分时操作系统)

[2.4 实时操作系统](#2.4 实时操作系统)

[2.5 其他几种操作系统](#2.5 其他几种操作系统)

三、运行环境

[3.1 处理器运行模式](#3.1 处理器运行模式)

[3.1.1 特权指令vs非特权指令](#3.1.1 特权指令vs非特权指令)

[3.1.2 内核态vs用户态](#3.1.2 内核态vs用户态)

[3.2 中断和异常](#3.2 中断和异常)

[3.2.1 中断的作用](#3.2.1 中断的作用)

[3.2.2 中断的类型](#3.2.2 中断的类型)

[3.2.3 中断的分类](#3.2.3 中断的分类)

[3.2.4 中断机制的基本原理](#3.2.4 中断机制的基本原理)

[3.3 系统调用](#3.3 系统调用)

[3.3.1 什么是系统调用](#3.3.1 什么是系统调用)

[3.3.2 系统调用与库函数的区别](#3.3.2 系统调用与库函数的区别)

[3.3.3 小例子](#3.3.3 小例子)

[3.3.4 什么功能要用到系统调用](#3.3.4 什么功能要用到系统调用)

[3.3.5 系统调用的过程](#3.3.5 系统调用的过程)

四、结构

[4.1 计算机系统的层次结构](#4.1 计算机系统的层次结构)

[4.2 大内核(宏内核)](#4.2 大内核(宏内核))

[4.3 微内核](#4.3 微内核)

[4.4 最新结构大总结](#4.4 最新结构大总结)

五、引导

[5.1 磁盘相关数据](#5.1 磁盘相关数据)

[5.2 操作系统引导过程](#5.2 操作系统引导过程)

[5.3 应用案例](#5.3 应用案例)

六、虚拟机

[6.1 传统计算机](#6.1 传统计算机)

[6.2 虚拟机](#6.2 虚拟机)

[6.2.1 虚拟机的定义](#6.2.1 虚拟机的定义)

[6.2.2 虚拟机管理程序](#6.2.2 虚拟机管理程序)


一、基本概念

1.1 概念

1.1.1 引例:一台电脑的诞生

  • 层次结构:计算机系统分为四层,从下到上依次是:裸机(纯硬件)→操作系统→应用程序→用户

  • 裸机定义:仅包含CPU、内存等硬件组件,不含任何软件的机器

  • 典型安装流程:厂家组装裸机→安装操作系统(如Windows)→用户安装应用程序(如QQ)→使用应用程序

  • 边界特点:用户与操作系统、应用程序与操作系统之间存在交互边界。

1.1.2 定义

  • 核心定义:操作系统是控制和管理整个计算机系统的硬件和软件资源,并合理组织调度计算机工作和资源分配的系统软件

1.2 功能和目标

1.2.1 作为系统资源的管理者

引例:用QQ和朋友视频聊天的过程

  • 四步流程:

    • 文件管理:通过目录结构查找QQ.exe(如D:/Tencent/QQ/Bin)

    • 存储器管理:将程序从磁盘加载到内存,并确定存放位置

    • 处理机管理:为QQ分配CPU资源

    • 设备管理:分配摄像头等设备资源

1.2.2 向上层提供方便易用的服务

1)封装的思想

裸机只能识别二进制指令(如010101),所以操作系统将硬件功能封装为友好接口,类比汽车将复杂机械结构封装为方向盘等简单控制部件。

2)程序接口

系统调用

  • 使用方式:通过程序代码间接使用(如C语言的printf函数)

  • 实现机制:库函数→系统调用→硬件操作

  • 术语注意:系统调用又称广义指令

GUI图形化用户接口

  • 特点:通过图形界面操作,无需记忆复杂命令

  • 实例:Windows中将文件拖拽到回收站即可删除

  • 发展:现代操作系统普遍提供,早期系统不具备

3)命令接口

联机命令接口

  • 交互特点:用户说一句,系统做一句(如 命令提示符)

  • 典型流程:输入命令→系统响应→用户输入新指令

脱机命令接口

  • 文件特征:以C盘中 *.bat为后缀的命令集合

  • 执行特点:用户提供命令清单,系统批量执行

  • 与联机区别:联机是交互式(说一句做一句),脱机是批处理式

1.2.3 实现了对计算机功能的扩充

  • 机器拓展:操作系统将裸机改造为功能更强的扩充机器/虚拟机

  • 实现方式:协调组织CPU、内存等硬件,使其协同工作

  • 类比说明:如同传动系统将发动机的转动转化为汽车行进

1.3 操作系统的特征

1.3.1. 并发

  • 定义:指两个或多个事件在同一时间间隔内发生,宏观上同时发生,微观上交替发生

  • 并行对比:并行指两个或多个事件在同一时刻同时发生,并发强调时间间隔内的交替执行,并行强调物理上的同时执行

  • 操作系统并发性:计算机中同时运行多个程序,宏观同时运行,微观交替运行

  • 硬件影响:

    • 单核CPU只能并发执行程序(交替发生)

    • 多核CPU可并行执行程序(如4核CPU可并行同时4个程序)

1.3.2. 共享

  • 定义:系统资源供多个并发进程共同使用

  • 互斥共享:一个时间段内只允许一个进程访问(如摄像头)

  • 同时共享:宏观上允许多个进程"同时"访问(微观可能交替)

1)例题:互斥共享方式

  • 典型案例:QQ和微信争抢摄像头

  • 现象说明:当一个视频应用占用摄像头时,其他应用无法同时使用

  • 答案:互斥共享的本质是资源的独占性访问

2)例题:同时共享方式

  • 典型案例:QQ和微信同时发送文件

  • 微观机制:进程交替访问硬盘(宏观表现为同时)

  • 答案:同时共享分为逻辑同时和物理同时两种

并发和共享的关系

  • 互为条件:无并发则共享失去意义,无共享则无法实现并发;

  • 基础地位:这两个特征是虚拟和异步特性的前提。

1.3.3 虚拟

  • 定义:将物理实体变为多个逻辑对应物

  • 空分复用:如虚拟存储器(4GB物理内存表现为更大逻辑内存)

  • 时分复用:如虚拟处理器(单核CPU表现为多逻辑CPU)

1.3.4 异步

  • 定义:多道程序并发执行时因资源竞争导致的执行不确定性

  • 核心表现:程序执行走走停停,速度不可预知

  • 产生原因:有限资源被多个程序争抢

例题:约会争抢资源

  • 题目解析

    • 类比案例:老渣与两个女友争抢"真心"资源

    • 程序表现:指令执行可能在不同位置被阻塞

    • 答案:异步性是并发执行的必然结果

二、发展历史

2.1 手工操作阶段

  • 工作方式:

    • 编程介质:使用穿孔纸带(有孔=1,无孔=0)

    • 执行流程:人工装纸带→计算机读取→计算→输出到纸带→人工取结果

  • 主要缺点:

    • 独占性:用户独占全机资源

    • 效率问题:人机速度矛盾严重(人工操作/IO速度慢 vs CPU计算速度快)

    • 资源浪费:CPU利用率极低(忙碌时间占比约20%)

2.2 批处理阶段

2.2.1 批处理阶段 ------ 单道批处理系统

  • 技术改进:

    • 脱机IO技术:通过外围机+磁带实现(速度比纸带机快)

    • 监督程序:自动控制作业输入/输出流程

  • 执行特点:

    • 串行处理:内存中仅驻留一道程序

    • 流程优化:作业从磁带读取→计算→输出到另一磁带

  • 优缺点:

    • 优点:缓解人机速度矛盾,CPU利用率提升

    • 缺点:资源利用率仍较低(IO时CPU空闲)

2.2.2 批处理阶段 ------ 多道批处理系统

  • 核心创新:

    • 多道程序技术:内存同时驻留多个程序

    • 资源复用:CPU计算时并行执行IO操作

  • 系统特性:

    • 正式诞生:首个真正意义上的操作系统

    • 并发执行:程序共享CPU/IO设备资源

  • 优缺点:

    • 优点:资源利用率大幅提升(CPU忙碌时间达80%+)

    • 缺点:缺乏人机交互功能(用户无法调试程序)

2.3 分时操作系统

  • 核心机制:

    • 时间片轮转:以固定时间片(如50ms)轮流服务各用户

    • 终端交互:支持键盘/鼠标等交互设备

  • 典型特征:

    • 及时响应:用户请求最大延迟=时间片×用户数

    • 虚拟独占:每个用户感知独占计算机

  • 局限性:无法优先处理紧急任务(公平调度)

2.4 实时操作系统

  • 核心特性:

    • 优先级响应:紧急任务无需排队

    • 严格时限:必须在规定时间内完成处理

  • 分类对比:

    • 硬实时系统:绝对严格时限(如导弹控制、自动驾驶)

    • 软实时系统:允许偶尔超时(如12306票务系统)

  • 设计重点:及时性(响应速度)和可靠性(结果正确)

2.5 其他几种操作系统

  • 网络操作系统:

    • 功能:实现数据传送、资源共享(如文件共享)

    • 实例:Windows NT(典型网站服务器系统)

  • 分布式操作系统:

    • 特点:分布性+并行性(多机协同完成任务)
  • 个人计算机系统:

    • 实例:Windows XP、MacOS(单用户友好设计)

三、运行环境

3.1 处理器运行模式

3.1.1 特权指令vs非特权指令

  • 程序分类:

    • 应用程序:普通程序员开发的程序(如QQ、微信),运行在操作系统之上

    • 内核程序:操作系统开发者编写的程序,组成操作系统内核(kernel)

  • 指令区别:

    • 特权指令:可能严重影响系统(如内存清零),仅允许内核程序使用

    • 非特权指令:常规运算指令(如加减乘除),所有程序均可使用

  • 硬件支持:CPU设计时已划分特权/非特权指令,执行时可自动识别指令类型

3.1.2 内核态vs用户态

  • 状态标识:

    • 内核态(核心态/管态):运行内核程序,可执行特权指令

    • 用户态(目态):运行应用程序,仅能执行非特权指令

  • 实现机制:通过PSW(程序状态字)寄存器中的二进制位标记当前状态

引例:CPU状态切换过程

  • 开机过程:

    • 初始为内核态,执行系统初始化内核程序

    • 完成后通过特权指令修改PSW切换为用户态

  • 异常处理:

    • 应用程序尝试执行特权指令会触发中断

    • CPU自动切换回内核态执行中断处理程序

  • 切换方式:

    • 内核态→用户态:执行修改PSW的特权指令(主动让权)

    • 用户态→内核态:由中断触发,硬件自动完成(强制夺权)

3.2 中断和异常

3.2.1 中断的作用

  • 核心功能:

    • 强制使CPU从用户态切换至内核态,使操作系统能强行夺回CPU控制权
  • 必要性:

    • 若无中断机制,应用程序将独占CPU无法实现多道程序并发

    • 是操作系统实现进程管理的基础

  • 状态转换:通过特权指令主动让权,通过中断机制被动夺权

3.2.2 中断的类型

1)内中断

  • 本质特征:中断信号来源于CPU内部,与当前执行指令直接相关

  • 别称:在考试和教材中常称为"异常"

  • 例题1

    • 触发场景:用户态程序尝试执行特权指令

    • 处理流程:

      • CPU检测到非法指令

      • 触发中断信号拒绝执行

      • 自动切换至内核态执行处理程序

    • 结果:操作系统重新获得CPU控制权

  • 例题2

    • 典型情况:执行除法指令时除数为零

    • 特点:即使是非特权指令,参数非法也会触发内中断

  • 例题3

    • 特殊指令:陷入指令(trap)

      • 非特权指令但会引发内中断,用于应用程序主动请求内核服务
    • 应用:系统调用的底层实现机制

2)外中断

  • 本质特征:中断信号来自CPU外部,与当前指令无关

  • 检测时机:CPU在每个指令周期末尾例行检查

  • 例题1

    • 硬件来源:时钟部件周期性发送(如每50ms)

    • 并发实现:

      • 应用程序1执行时收到时钟中断

      • CPU切换至内核态处理中断

      • 内核调度应用程序2运行

      • 循环切换实现多道程序并发

  • 例题2

    • 典型场景:I/O设备完成任务后发送中断信号

      • 如打印机完成打印任务
    • 处理方式:由对应内核程序处理设备通知

3.2.3 中断的分类

  • 术语对照:

    • 内中断 = 异常

    • 外中断 = 中断(狭义)

  • 异常子类:

    • 陷入(trap):程序主动引发(如系统调用)

    • 故障(fault):可修复错误(如缺页故障)

    • 终止(abort):致命错误(如除零、非法特权指令)

3.2.4 中断机制的基本原理

  • 处理流程:

    • CPU检测中断信号

    • 查询中断向量表获取处理程序地址

    • 执行对应的内核处理程序

  • 检测差异:

    • 内中断:执行指令时立即检查

    • 外中断:指令周期末尾例行检查

3.3 系统调用

3.3.1 什么是系统调用

  • 定义: 系统调用是应用程序请求操作系统内核服务的编程接口,由一组系统调用组成。

  • 作用: 作为程序接口提供给应用程序使用,与命令接口(GUI/命令行)并列构成操作系统对外的两大接口类型。

  • 类比: 类似于函数调用,但属于更底层的服务请求机制。

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

  • 实现差异:

    • 部分库函数(如math.hmath.hmath.h中的数学运算)无需系统调用

    • 必须特权的操作(如文件创建)最终会调用系统调用

  • 编程视角:

    • 现代编程多使用高级语言库函数

    • 底层可通过汇编直接发起系统调用

3.3.3 小例子

  • 案例描述: WPS和Word并发打印导致内容混杂

  • 问题本质: 共享资源(打印机)未受管控的并发访问

  • 解决方案:

    • 操作系统统一管理共享资源

    • 通过系统调用实现资源分配

    • 保证互斥访问避免冲突

  • 核心启示: 系统调用是解决资源共享问题的必要机制

3.3.4 什么功能要用到系统调用

  • 功能分类

  • 共同特征: 涉及共享资源操作

  • 管理必要性: 有限资源需统一分配,确保系统稳定性

3.3.5 系统调用的过程

  • 执行流程:

    • 用户态传参(通过寄存器)

    • 执行陷入指令(trap)

    • 触发内中断转入核心态

    • 执行系统调用处理程序

    • 返回用户态继续执行

  • 关键指令:

    • 陷入指令(非特权指令)

    • 别名:trap指令/访管指令

  • 状态转换:

    • 请求在用户态发起

    • 处理在核心态完成

  • 高级语言封装:

    • 库函数隐藏底层细节

    • 参数传递和陷入指令由库函数处理

总结:

四、结构

4.1 计算机系统的层次结构

  • 基本组成: 从下到上依次为裸机(纯硬件)、非内核功能(如GUI)、用户应用程序(软件)

  • 内核功能:

    • 时钟管理: 通过时钟中断实现计算机计时功能,是程序并发的基础

    • 中断处理: 负责实现中断机制

    • 原语: 具有原子性的特殊程序,执行过程不可中断,运行时间短且调用频繁

  • 内核与非内核:

    • 内核是操作系统最核心、最基本的部分,由一系列运行在内核态的程序组成

    • 非内核功能如Ubuntu、CentOS等Linux发行版主要实现的是非内核部分

4.2 大内核(宏内核)

  • 定义: 将所有操作系统功能(包括进程管理、存储器管理、设备管理等)都包含在内核中

  • 运行模式: 所有内核功能都运行在内核态

  • 特点:

    • 优点: 性能高,应用程序请求服务时CPU状态转换次数少

    • 缺点: 内核代码庞大,结构混乱,难以维护

  • 典型系统: Linux、UNIX等

4.3 微内核

  • 定义: 只保留与硬件关系最紧密的功能(时钟管理、中断处理、原语)在内核中

  • 运行模式:

    • 内核功能运行在内核态

    • 其他功能(如进程管理、存储管理等)运行在用户态

  • 特点:

    • 优点: 内核功能少,结构清晰,方便维护

    • 缺点: 需要频繁在核心态和用户态之间切换,性能较低

  • 典型系统: Windows NT等

  • 性能影响:

    • 服务请求涉及多个模块时,每个模块访问内核都需要CPU状态转换

    • 例如同时涉及进程管理、存储管理、设备管理的请求,需要6次状态转换(相比大内核只需2次)

4.4 最新结构大总结

五、引导

操作系统引导:指计算机开机时使操作系统运行起来的过程

5.1 磁盘相关数据

  • 初始状态:新磁盘内部为空,类似空钱包需要安装操作系统后才能使用

  • MBR结构:

    • 位置: 磁盘开头区域

    • 组成:

      • 磁盘引导程序:负责后续引导过程

      • 分区表:记录各分区空间大小和地址范围的数据结构

    • 分区示例: 常见的C/D/E/F盘划分

  • 活动分区:

    • 定义: 安装了操作系统并用于启动的分区(通常为C盘)

    • 内部结构:

      • PBR(分区引导记录):负责找到启动管理器

      • 根目录:包含操作系统文件和文件夹

5.2 操作系统引导过程

  • 硬件基础:

    • 主存组成: RAM(易失性) + ROM(非易失性)

    • BIOS存储: 存储在主板ROM芯片中的基本输入输出系统

  • 四步引导流程:

    • ROM引导:CPU从固定地址执行ROM引导程序(自举程序),先进行硬件自检(检查磁盘、内存等)

    • 读取MBR:将磁盘第一块(MBR)读入内存,执行磁盘引导程序并扫描分区表

    • 读取PBR:从活动分区读取分区引导记录(PBR),执行PBR中的程序

    • 启动管理器:从根目录找到并执行启动管理器,完成操作系统初始化(开机转圈圈阶段)

  • 关键程序链: ROM引导程序 → 磁盘引导程序 → PBR程序 → 启动管理器

  • 数据流向: ROM → MBR → PBR → 根目录文件

5.3 应用案例

  • 例题:Windows操作系统文件夹

    • 实践验证:

      • 路径: C盘Windows文件夹下的Boot文件夹

      • 内容: 包含操作系统初始化程序(启动管理器)

      • 观察建议: 可自行查看但不要随意修改

    • 启动管理器特征:

      • 位于系统根目录下的深层路径

      • 包含多个与启动相关的配置文件和程序

      • 实际开机过程会按顺序调用这些文件

六、虚拟机

6.1 传统计算机

  • 架构特点:一台物理机器上只能运行一个操作系统,操作系统之上运行各种用户进程

  • 资源利用问题:在商业化环境中会导致硬件资源利用率不足,例如高性能服务器只能运行单一操作系统

  • 安全隐患:不同应用(如游戏服务器)运行在同一操作系统上会相互争夺资源并产生安全风险

  • 解决方案缺陷:将应用迁移到另一台物理机器虽能隔离风险,但会造成硬件资源浪费

6.2 虚拟机

6.2.1 虚拟机的定义

  • 核心概念:使用虚拟化技术将一台物理机器虚拟化为多台虚拟机器(VM),每台VM可独立运行操作系统

  • 商业价值:解决传统架构的资源浪费问题,允许单个高性能服务器同时安全运行多个隔离环境

6.2.2 虚拟机管理程序

  • 术语说明:虚拟机管理程序(Virtual Machine Monitor, VMM)又称Hypervisor或虚拟机监控程序

  • 资源分配原理:

    • CPU通过时间片划分模拟多处理器

    • 磁盘和内存通过空间划分分配给各VM

    • 类似传统OS的资源分配方式,但虚拟化层级更深

  • 两类虚拟机管理程序

    • 两类虚拟机管理程序的对比

相关推荐
鱼圆食不食3 小时前
在资源受限单片机中使用printf等可变参函数时的陷阱(2025年7月22日)
单片机·嵌入式硬件
2301_793121045 小时前
基于单片机的猪舍空气环境监测系统设计
单片机·嵌入式硬件
Tracy9735 小时前
A316-Mini-V1:超小尺寸USB高清音频解码器模组技术探析
嵌入式硬件·音视频·智能硬件·xmos 模组
亿道电子Emdoor6 小时前
[ARM]MDK出现报错error: A\L3903U的解决方法
arm开发·stm32·单片机·arm
CC呢6 小时前
基于单片机智能消毒柜设计
stm32·单片机·嵌入式硬件·消毒柜
Ronin-Lotus7 小时前
嵌入式硬件篇---核心板制作
单片机·嵌入式硬件
Ronin-Lotus8 小时前
嵌入式硬件篇---按键
嵌入式硬件·按键
竹照煜_ysn10 小时前
蓝桥杯51单片机
单片机·算法·蓝桥杯·51单片机
我是标同学10 小时前
单片机的几种GPIO输入输出模型详解
stm32·单片机·嵌入式硬件·gpio
IT永勇14 小时前
STM32-SPI全双工同步通信
c语言·stm32·单片机·嵌入式硬件·spi通信·flash数据读写