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

操作系统 —— A / 概述

🌈个人主页:慢了半拍

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

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

目录

一、基本概念

1.1 概念

1.1.1 引例:一台电脑的诞生

1.1.2 定义

1.2 功能和目标

1.2.1 作为系统资源的管理者

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

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

1.3 操作系统的特征

1.3.1. 并发

1.3.2. 共享

1.3.3  虚拟

1.3.4 异步

二、发展历史

2.1 手工操作阶段

2.2 批处理阶段

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

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

2.3 分时操作系统

2.4 实时操作系统

2.5 其他几种操作系统

三、运行环境

3.1 处理器运行模式

3.1.1 特权指令vs非特权指令

3.1.2 内核态vs用户态

3.2 中断和异常

3.2.1 中断的作用

3.2.2 中断的类型

3.2.3 中断的分类

3.2.4 中断机制的基本原理

3.3 系统调用

3.3.1 什么是系统调用

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

3.3.3 小例子

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

3.3.5 系统调用的过程

四、结构

4.1 计算机系统的层次结构

4.2 大内核(宏内核)

4.3 微内核

4.4 最新结构大总结

五、引导

5.1 磁盘相关数据

5.2 操作系统引导过程

5.3 应用案例

六、虚拟机

6.1 传统计算机

6.2 虚拟机

6.2.1 虚拟机的定义

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的资源分配方式,但虚拟化层级更深

  • 两类虚拟机管理程序

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

http://www.dtcms.com/a/292032.html

相关文章:

  • 工业通信网关详解:2025年技术选型与物联网方案设计指南
  • 激活函数Focal Loss 详解​
  • Jenkins流水线中的核心概念
  • DearMom以“新生儿安全系统”重塑婴儿车价值,揽获CBME双项大奖
  • STM32 GPIO(通用输入输出)详解:从模式原理到实战应用
  • C++_Hello算法_队列
  • Word2Vec和Doc2Vec学习笔记
  • 用手机当外挂-图文并茂做报告纪要
  • AWS PrivateLink方式访问Redis
  • Windows游戏自动检测本地是否安装 (C++版)
  • 设计模式七:抽象工厂模式(Abstract Factory Pattern)
  • 技能系统详解(4)——运动表现
  • 面向对象高级:static
  • linux内核与GNU之间的联系和区别
  • 决策规划内容整理
  • Linux的磁盘存储管理实操——(下一)——标准分区扩容
  • 得物视觉算法面试30问全景精解
  • 图论的整合
  • 西门子 S7-1500分布式 I/O通信 :PROFINET IO 与 PROFIBUS DP核心技术详解(上)
  • Spring、Spring MVC、Spring Boot、Spring Cloud的联系和区别
  • Uni-App:跨平台开发的终极解决方案
  • uniapp app打包流程
  • 华为服务器操作系统openEuler介绍与安装
  • uniapp 报错 Not found ... at view.umd.min.js:1的问题
  • Kafka——揭开神秘的“位移主题”面纱
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现持械检测(C#代码,UI界面版)
  • 记一次flink资源使用优化
  • 《Uniapp-Vue 3-TS 实战开发》自定义时间选择
  • @DateTimeFormat、@JsonFormat、@JSONField区别及用法
  • 获取制定版本的yolov5,使用下载zip文件替代git