InkSoul/content/408/《操作系统》计算机系统概述.md

314 lines
9.8 KiB
Markdown
Raw Normal View History

2023-06-30 17:08:20 +08:00
---
title: "《操作系统》计算机系统概述"
date: 2022-08-18T15:53:40+08:00
---
## 操作系统的基本概念
### 操作系统的概念
* 负责管理协调硬件、软件等计算机资源的工作
* 操作系统为上层用户,应用程序提供简单易用的服务
* 操作系统是一种系统软件
### 操作系统的特征
* 并发和共享是最基本的两个性质
* 并发和共享互为存在条件
* 资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题
* 若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行
* 没有并发和共享就谈不上虚拟和异步
#### 并发
* 并发指两个或多个事件在同一时间间隔内发生
* 并行:系统具有同时进行运算或操作的特性(同时刻)
* 可并行的有【处理机与设备】【处理机与通道】【设备与设备】
* 不可并行的有【进程与进程】
* 真正实现并行的为多核处理机
同一时间间隔(并发)和同一时刻(并行)的区别:
* 宏观上有多道程序同时进行,微观上这些程序依旧是分时交替执行的,操作系统的并发性正是分时得以实现的
* 并行性则是具有同时进行运算或操作的特性,同一时刻能完成两种或两种以上的工作,需要硬件的支持
#### 共享
共享通常指系统中的资源可供内存中多个并发执行的进程共同使用,拥有两种资源共享方式
* 互斥共享方式
当进程A访问某个资源时必须先提出请求若此时该资源空闲则系统将其分配给进程A使用此后有其他进程也要访问该资源时就必须等待。仅当进程A访问完并释放该资源后才允许另一个进程对该资源进行访问。
临界资源(独占资源)
一段时间内只允许一个进程访问的资源
互斥共享要求一种资源在一段时间内(哪怕是很小的时间)只能满足一个请求,否则就会出现严重的问题
* 同时访问方式
宏观上存在一些资源允许多个进程同时访问,微观上这些进程是交替地对该资源进行访问,即分时共享
#### 虚拟
虚拟是指把一个物理上的实体变为若干逻辑上的对应物。
* 时分复用技术,如处理器的分时共享
* 空分复用技术,如虚拟存储器
#### 异步
* 程序异步性:多道程序环境允许多个程序并发执行,但由于资源有限,进程执行并非一贯到底,而是走走停停,以不可预知的速度向前推进
* 异步性导致的问题:
异步性会使操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误。然而在运行环境相同的情况下,操作系统就需要保证多次运行进程后得到的结果相同
### 操作系统的目标和功能
操作系统应具有以下功能来给多道程序提供良好的运行环境
1. 处理机管理、存储器管理、设备管理和文件管理
2. 需向用户提供接口以方便用户使用
3. 可用于扩充机器来提供更方便的服务、更高的资源利用率
#### 操作系统作为计算机系统资源的管理者
* 处理机管理
* 在多道程序环境下,处理机的分配和运行都以进程(线程)为主要单位
* 主要功能
* 进程控制
* 进程同步
* 进程通信
* 死锁处理
* 处理机调度
* 处理机的管理可归结为对进程的管理,因此进程创建、撤销、管理、避免冲突、合理共享就是进程管理的主要任务
* 存储器管理
* 存储器管理用于给多道程序的运行提供良好环境,便于用户使用及提高内存利用率
* 主要功能:
* 内存分配与回收
* 地址映射
* 内存保护与共享
* 内存扩充
* 文件管理
* 计算机的信息都是以文件的形式存在的
* 文件存储空间的管理
* 目录管理
* 文件读写管理和保护
* 设备管理
* 主要任务是完成用户I/O请求方便用户使用设备提高设备利用率
* 主要功能
* 缓冲管理
* 设备分配
* 设备处理
* 虚拟设备
#### 操作系统作为用户与计算机硬件系统之间的接口
* 用户使用接口
* GUI用户界面接口
* 命令接口
* 联机命令接口:用户发送一次命令,系统执行一次,主要是交互性,适用于分时或实时系统
* 脱机命令接口:用户一次性发送命令清单,系统按清单执行,无法中途干预,适用于批处理系统,可解决独占问题
* 软件使用接口
* 程序接口(系统调用)
#### 操作系统用作扩充机器
* 裸机:没有任何软件支持的计算机
* 扩充机器/虚拟机:覆盖了软件的机器
--------------------------------------------------------------------------------------
## 操作系统发展历程
### 手工操作阶段
用户在计算机上的所有计算流程都要人工干预
#### 缺点
* 用户独占全机,资源利用率低
* CPU等待手工操作CPU利用不充分
### 单道批处理系统
#### 定义
* 程序封闭性,程序执行的结果只取决与进程本身,不受外界影响
* 失去封闭性后,不同速度下的进程执行结果不同
#### 特点
* 自动性,顺利的情况下,同一磁带上的同一批作业能够自动逐个运行
* 顺序性,磁带上的各道作业顺序地进入内存
* 单道性,内存中仅有一道程序运行
#### 缺点
* 资源利用率低,吞吐量小
### 多道批处理系统
#### 定义
* 批处理:允许多个用户将若干作业提交给计算机系统集中处理
* 多道性则是为了提高系统利用率和吞吐量
#### 特点
* 多道,共享性,宏观上并行,微观上串行
* 引入多道后,系统失去封闭性和顺序性
* 制约性,程序执行因为共享资源和协同所有产生了竞争,相互制约
* 考虑竞争的公平性,程序断续执行
#### 优点
* 资源利用率高
* 系统吞吐量大
* CPU利用率高
* IO设备利用率高
#### 缺点
* 用户响应时间长
* 不提供人机交互能力(用户无法干预批处理作业)
### 分时操作系统
#### 定义
* 允许多个用户以交互的方式使用计算机的操作系统
* 快速响应用户(分时系统产生原因)
* 响应时间 = 时间片*用户
* 进度调度通常采用抢占式的优先级优先
#### 特点
* 同时性
* 交互性,用户能够方便进行人机对话
* 独立性,多个用户可以彼此独立地进行操作
* 及时性,用户请求能在很短的时间内响应
#### 优点
* 提供人机交互能力
#### 缺点
* 不能在规定的时间内做出处理
### 实时操作系统
#### 定义
* 在该操作系统下,计算机系统能够及时处理过程控制反馈的数据并给出响应
#### 特点
* 硬实时系统:必须在绝对严格的时间内完成处理(自动驾驶系统)
* 软实时系统:能接受偶尔违反时间规定(订票系统)
#### 优点
* 安全可靠
* 及时处理
* 快速处理
### 网络操作系统和分布式计算机系统
#### 特点
* 分布性
* 并行性
### 分布式计算机系统
#### 特点
* 网络中各种资源的关系
* 网络中各计算机间的通信
---------------
## 操作系统结构
* 分层结构
* 特性
* 内核分多层,每层可单向调用更低一层提供的接口
* 优点
* 便于调试和验证,自底向上逐层调试验证
* 易扩充和维护,各层间调用接口清晰固定
* 缺点
* 仅可调用相邻低层,难以合理定义各层边界
* 效率低,不可跨层调用,系统调用执行时间长
* 模块化
* 特性
* 内核 = 主模块 + 可加载内核模块
* 主模块只负责核心功能,如进程调度,内存管理
* 可加载内核模块:可动态加载新模块到内核,无需重新编译整个内核
* 优点
* 模块间逻辑清晰易维护,确定模块间接口后即可多模块同时开发
* 支持动态加载新内核模块安装设备驱动程序增强OS适应性
* 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高
* 缺点
* 模块间的接口定义未必合理,实用
* 模块间相互依赖,更难调试和验证
* 宏内核
* 特性
* 所有的系统功能都放在内核里
* 优点
* 性能高,内核内部各种功能都可以直接相互调用
* 缺点
* 内核庞大功能复杂,难以维护
* 大内核中某个功能模块出错,就可能导致整个系统崩溃
* 微内核
* 特性
* 只把中断,原语,进程通信等最核心的功能放入内核,进程管理,文件管理,设备管理等功能以用户进程的形式运行在用户态
* 优点
* 内核小功能少,易于维护,内核可靠性高
* 内核外的某个功能模块出错不会导致整个系统崩溃
* 缺点
* 性能低,需要频繁切换用户/核心态,用户态下的各功能模块不可直接互相调用,只能通过内核的消息传递来间接通信
* 外核(exokernel)
* 特性
* 内核负责进程调度,进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
* 优点
* 外核可直接给用户分配不虚拟,不抽象的硬件资源,使用户进程可以更灵活地使用硬件资源
* 减少虚拟硬件资源的映射层,提升效率
* 缺点
* 降低系统的一致性
* 使系统更加复杂
-----------
## 操作系统引导
![](../../images/system_boot_pic.jpg)
### 启动过程
1. CPU加电CS:IP指向FFFF0H
2. 执行JMP指令跳转到BIOS
3. 登记BIOS中断例程入口地址
4. 硬件自检
5. 进行操作系统引导
### 引导流程