目录儿
- 三、操作系统概述
 - 3.1 操作系统的基本概念
 - 3.1.1 操作系统的概念
 - 3.1.2 操作系统的目标和功能
 - 3.1.2.1 目标
 - 3.1.2.2 功能
 
- 3.1.3 操作系统的特征
 
- 3.2 操作系统的发展与分类
 - 3.2.1 分类
 
- 3.3 操作系统的运行环境
 - 3.3.1 操作系统的运行机制
 - 3.3.1.1 用户态、核心态
 - 3.3.1.2 时钟与中断
 - 3.3.1.3 中断的处理过程
 - 3.3.1.4 原语
 - 3.3.1.5 系统数据结构
 - 3.3.1.6 系统调用
 
- 3.3.2 操作系统的体系结构
 - 3.3.2.1 传统的操作系统结构(大内核)
 - 3.3.2.2 微内核OS结构(微内核)
 
三、操作系统概述
3.1 操作系统的基本概念
3.1.1 操作系统的概念
操作系统简称 OS,是管理(沟通)计算机硬件与软件资源的计算机程序,是一种系统软件。
 
计算机系统的构成由上到下依次为:
- 用户
 - 应用程序
 - 操作系统(OS)
 - 硬件(裸机)
 
应用软件安装在系统软件上
系统软件安装在硬件上
- 与硬件交互
 - 对资源共享进行调度管理
 - 解决并发操作处理中存在的协调问题
 - 数据结构复杂,外部接口多样化
 
操作系统做了哪些事儿(主要作用):
- 管理与配置内存
 - 决定系统资源供需的优先顺序
 - 控制输入输出设备
 - 操作网络与管理文件系统等基本事务
 - 提供让用户与系统交互的操作界面
 
3.1.2 操作系统的目标和功能
3.1.2.1 目标
- 有效管理系统资源 
  
- 提高系统资源利用率
 - 提高系统的吞吐量
 
 - 方便用户使用
 - 对计算机的功能进行扩充和开放(实现各种功能)
 
3.1.2.2 功能
- 作为计算机系统资源的管理者: 
  
- 处理器管理 
    
- 进程控制
 - 进程同步
 - 进程通信
 - 调度
 
 - 存储器管理 
    
- 内存分配
 - 内存保护
 - 地址映射
 - 内存扩充
 
 - I/O设备管理 
    
- 缓冲管理
 - 设备分配
 - 设备处理
 
 - 文件管理 
    
- 文件存储空间的管理
 - 目录管理
 - 文件的读/写管理与保护
 
 
 - 处理器管理 
    
 - 作为用户与计算机『硬件系统』之间的接口: 
  
- 程序接口
 - 命令接口
 - 图形用户接口 GUI(Graphical User Interface)
 
 - 实现了对计算机资源的抽象(作为扩充机器): 
  
- 将具体的计算机资源抽象成软件资源,方便用户使用
 - 开放了简单的访问方式,隐藏了实现细节(如浏览器百度搜索)
 
 
如浏览器百度搜索: 用户 → 打开浏览器输入网址 → 一系列的系统调用 → 网络设备进行远程通信
3.1.3 操作系统的特征

- 并发
同一时间间隔内执行和调度多个程序的能力
宏观上:处理器同时执行多个任务
微观上:处理器在多个任务之间高速切换(分时交替执行)易混淆概念:并行
并发一段时间内发生的事件数量(单线程一段时间内能够处理的最大任务数)
并行是某一时刻发生的事件数量(多线程同一时刻能处理的最大任务数) - 共享
即资源共享,系统中的资源供多个并发执行的应用程序共同使用(如打印机,音频设备,视频设备),资源共享有两种方式:。
① 同时访问方式:同一时段允许多个程序同时访问共享资源。
② 互斥共享方式:也叫独占式,允许多个程序在同一个共享资源上独立而互不干扰的工作。 - 虚拟
使用某种技术吧一个物理实体变成多个逻辑实体,常见两种技术:- 时分复用技术(TDM Time Division Multiplexing) 
    
- 虚拟处理器技术:四核八线程(超线程)
 - 虚拟设备技术:虚拟打印机
 
 - 空分复用技术(SDM Space Division Multiplexing) 
    
- 虚拟磁盘技术:将一块硬盘虚拟出若干个卷
 - 虚拟存储器技术
 
 
 - 时分复用技术(TDM Time Division Multiplexing) 
    
 - 异步
在单处理器单线程、多个程序的环境下,允许程序并发执行
宏观上程序是“一气呵成”,微观上程序是“走走停停” 
3.2 操作系统的发展与分类
3.2.1 分类
1.分时操作系统
 一台主机连接多个带显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。
 
- 特征: 
  
- 多路性:时间片轮转机制
 - 独立性:用户彼此独立
 - 及时性:用户能在短时间内获得响应
 - 交互性:用户可以请求多种服务
 
 - 缺点: 
  
- 作业/用户优先级相同,不能优先处理紧急任务
 
 
2.实时操作系统
 系统能立即响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
- 特征(与分时操作系统相比): 
  
- 用户性:以用户能接收的等待时间为准
 - 可靠性:多级容错,保障系统和数据的安全
 
 
3.3 操作系统的运行环境
3.3.1 操作系统的运行机制
3.3.1.1 用户态、核心态
两种CPU状态:
- 内核态(Kernel Mode):运行操作系统程序,也叫管态
 - 用户态(User Mode):运行用户程序,也叫目态
 
内核态与用户态的区别:
- 内核态与用户态是操作系统的两种运行级别,当程序运行在3级特权级上时,就可以称之为运行在用户态。因为这是最低特权级,是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户态;
 - 当程序运行在0级特权级上时,就可以称之为运行在内核态。
 - 运行在用户态下的程序不能直接访问操作系统内核数据结构和程序。当我们在系统中执行一个程序时,大部分时间是运行在用户态下的,在其需要操作系统帮助完成某些它没有权力和能力完成的工作时就会切换到内核态。
 - 这两种状态的主要差别是:
 
- 处于用户态执行时,进程所能访问的内存空间和对象受到限制,所占有的处理机是可被抢占的。
 - 处于核心态执行中的进程,则能访问所有的内存空间和对象,且所占有的处理机是不允许被抢占的。
 
两种指令划分:
- 特权指令:只能由操作系统使用、用户程序不能使用的指令。 举例:启动I/O、内存清零 修改程序状态字、设置时钟、允许/禁止终端、停机等
 - 非特权指令:用户程序可以使用的指令。 举例:控制转移 、算数运算 、取数指令、访管指令(使用户程序从用户态陷入内核态)等
 
两种程序划分:
- 内核程序:操作系统必须要有的程序如进程管理、文件管理
 - 应用程序:对于操作系统来说非必要的程序,为用户服务的程序

 
3.3.1.2 时钟与中断
时钟的作用
- 计时:提供系统时间
 - 时钟中断:时钟的一种重要应用,可用于类似进程切换的场景
 
时钟中断
- 作用:基于时钟中断机制的时间片轮转可以在并发环境下提高CPU利用率
 - 中断分类: 
  
- 外中断:中断信号来源于外部设备
 - 内中断:中断信号来源于当前指令 
    
内中断也叫 异常、陷入、例外
 
 
内中断的三种情况
- 陷阱/陷入(Trap):由应用程序主动引发
例:程序运行过程中,读到某条指令需要调用内核程序,于是产生一个陷入指令中断当前程序的执行转去执行内核程序。

 - 故障(fault):由错误条件引发
例:如一个大型游戏,因为整个游戏程序非常大,因此通常只会把游戏的核心程序加载进内存中运行,当执行到某条指令,需要运行核心程序外的其他程序时,就会产生一个内存缺页故障(当前内存没有需要的程序存在),暂停当前核心程序的执行,转而去加载需要的程序进内存运行(典型例子就是进入副本刷图需要等待加载,进入召唤师峡谷需要等待加载等等)。

 - 终止(abort):由致命错误引发
 
3.3.1.3 中断的处理过程

 关中断 是进入中断处理的入口,就像一把锁,进入中断处理时把门给关了,不再响应其他中断请求,直到整个中断处理完成时,开中断 后,才重新接受中断请求。
中断处理流程:
 ① 关中断:关门,不再响应其他中断请求。
 ② 保存断点:保存当前程序计数器状态(记录着 原程序 执行到哪里)。
 ③ 引出中断服务程序:读取本次中断处理完成后需要执行的 程序 的地址。
 ④ 保存现场和屏蔽字:保存当前寄存器状态(记录着原程序的执行状态)。
 ⑤ 开中断:整个中断处理完成了,开门,开始响应其他中断请求。
 ⑥ 执行中断服务程序:执行步骤 ③ 读取到的 程序 。
 ⑦ 关中断:执行完所需要的服务 程序 后,关门,进入中断处理,拒绝响应其他中断请求。
 ⑧ 恢复现场和屏蔽字:恢复寄存器和程序计数器,回到 原程序 继续执行。
 ⑨ 开中断:开门,开始响应中断请求。
3.3.1.4 原语
原语是本质上就是一个程序段(一段指令),可以看作是一个小程序,用来完成某个特定的功能。
 特点:
- 由若干条指令组成。
 - 用来完成某个特定功能。
 - 执行过程不会被中断(具有原子性,依靠开、关中断实现)。
 - 运行在内核空间。
 
3.3.1.5 系统数据结构
3.3.1.6 系统调用

 系统调用应该叫系统调用接口,是由操作系统实现的一套接口的集合,用于给应用程序调用内核服务(由用户态切换到内核态)。
3.3.2 操作系统的体系结构
3.3.2.1 传统的操作系统结构(大内核)
第一代:无结构OS
- 是一系列程序(过程)的集合,程序(过程)间可以相互调用。
 - 结构复杂、混乱,难以调试、阅读和维护。
 
第二代:模块化OS
- 特点: 
  
- 基于“分解”和“模块化”原则设计。
 - 按照功能划分模块/子模块,并规范模块间的接口。
 - 模块基于独立性原则(高内聚、低耦合)设计。
 
 - 优点: 
  
- 提高了OS设计的合理性、可理解性和可维护性。
 - 增强了OS的适应性。
 - 提高了开发效率。
 
 - 缺点: 
  
- 模块接口设计难以扩展、满足后续需求。
 - 模块设计没有统一标准,导致模块接口设计可靠性低。
 
 
第三代:分层式结构OS
 
- 特点: 
  
- 有序分层,自顶向下依次依赖。
 - 设计时自底向上,每一步都建立在可靠的基础上
 
 - 优点: 
  
- 容易保证系统的正确性。
 - 容易扩充和维护。
 
 - 缺点: 
  
- 自上而下的层次通信,导致系统效率下降。
 
 
第四代:微内核OS
3.3.2.2 微内核OS结构(微内核)
微内核OS选择只实现OS的核心功能,因此相比传统操作系统,内核大大缩小,称微内核。
 应用“机制与策略分离”原理,采用面向对象技术。
 
实现的核心功能如硬件处理、客户与服务器通信等基本功能
- 优点: 
  
- 提高了OS的可扩展性、可靠性和可移植性。
 - 对分布式的支持更好。
 - 融入了面向对象技术。
 
 - 缺点 
  
- 相较早期OS,效率有一定的下降(用户态和核心态的切换次数增加了)。
 
 
资料来源:哔哩哔哩 马士兵-小森 清华大牛耗时1000分钟把计算机底层知识 | 计算机组成原理 | 操作系统 | 数
https://www.bilibili.com/video/BV1qe4y1T7t3?p=19&spm_id_from=pageDriver&vd_source=c2e346bb74807b3fde142d31e57292ce


















