add OS chapter one

main
InkSoul 2023-06-30 17:08:20 +08:00
parent 11b6fb3d3e
commit 0d104cfd95
4 changed files with 314 additions and 268 deletions

View File

@ -1,70 +0,0 @@
---
title: "《操作系统》操作系统发展历程"
date: 2022-12-29T20:53:40+08:00
---
### 手工操作阶段
用户在计算机上的所有计算流程都要人工干预
缺点:
1. 用户独占全机,虽然不会出现因资源已被用户占用而等待的现象,但资源利用率极低
2. CPU等待手工操作CPU利用不充分
### 批处理阶段
#### 单道批处理系统
主要在解决人机矛盾及CPU和I/O设备不匹配的问题
特征:
1. 自动性,顺利的情况下,同一磁带上的同一批作业能够自动逐个运行
2. 顺序性,磁带上的各道作业顺序地进入内存
3. 单道性,内存中仅有一道程序运行
#### 多道批处理系统
多道程序设计的特点是多道、宏观上并行,微观上串行
1. 多道。计算机内存中同时存放多道相互独立的程序
2. 宏观上并行。同时进入系统的多道程序都出于运行过程中,即先后开始各自运行但都未运行完毕
3. 微观上串行。内存中的多道程序轮流占有CPU交替执行
优点:
资源利用率高多道程序共享计算机资源从而使各种资源得到充分利用系统吞吐量打CPU和其他资源保持“忙碌”状态
缺点:
用户响应时间较长;不提供人机交互能力,用户既不能了解自己的程序的运行情况,又不能控制计算机
### 分时操作系统
分时操作系统是指多个用户通过终端同时共享一台主机,用户可以同时与主机进行交互操作而互不干扰
特征:
1. 同时性
2. 交互性,用户能够方便进行人机对话
3. 独立性,多个用户可以彼此独立地进行操作
4. 及时性,用户请求能在很短的时间内响应
### 实时操作系统
根据响应时间限制分为两种:
1. 硬实时系统:某个动作必须绝对地在规定的时刻发生
2. 软实时系统:能够接受偶尔违反时间规定的情况且不会引起任何永久性的损害
特点:
1. 及时性
2. 可靠性
### 网络操作系统和分布式计算机系统

View File

@ -1,198 +0,0 @@
---
title: "《操作系统》操作系统的基本概念"
date: 2022-08-18T15:53:40+08:00
---
## 知识框架
* 概论
* 特征
* 并发(最基本)
* 共享(最基本)
* 虚拟
* 异步
* 目标和功能
* 计算机系统资源管理者
* 扩充机器
* 用户与计算机系统之间的接口
* 命令接口
* 程序接口
* GUI
* 发展
* 批处理操作系统$\rightarrow$分时操作系统$\rightarrow$实时操作系统$\rightarrow$网络和分布式操作系统
* 运行机制
* 中断和异常
* 系统调用
* 体系结构
* 大内核
* 微内核
## 操作系统的基本概念
### 操作系统的概念
操作系统是只控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。
操作系统是计算机系统中最基本的系统软件
### 操作系统的特征
基本特征包括并发、共享、虚拟和异步
#### 并发
并发指两个或多个事件在同一时间间隔内发生
操作系统的并发性指计算机系统中同时存在多个运行的程序,因而具有处理和调度多个程序同时执行的能力。
同一时间间隔(并发)和同一时刻(并行)的区别:
1. 宏观上有多道程序同时进行,微观上这些程序依旧是分时交替执行的,操作系统的并发性正是分时得以实现的
2. 并行性则是具有同时进行运算或操作的特性,同一时刻能完成两种或两种以上的工作,需要硬件的支持
#### 共享
共享通常指系统中的资源可供内存中多个并发执行的进程共同使用,拥有两种资源共享方式
* 互斥共享方式
互斥式共享:
当进程A访问某个资源时必须先提出请求若此时该资源空闲则系统将其分配给进程A使用此后有其他进程也要访问该资源时就必须等待。仅当进程A访问完并释放该资源后才允许另一个进程对该资源进行访问。
临界资源(独占资源)
一段时间内只允许一个进程访问的资源
互斥共享要求一种资源在一段时间内(哪怕是很小的时间)只能满足一个请求,否则就会出现严重的问题
* 同时访问方式
宏观上存在一些资源允许多个进程同时访问,微观上这些进程是交替地对该资源进行访问,即分时共享
---------------------------
并发和共享是操作系统两个最基本的特征,两者互为存在的条件:
1. 资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题
2. 若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行
#### 虚拟
虚拟是指把一个物理上的实体变为若干逻辑上的对应物。
操作系统中采用了多种虚拟技术来实现虚拟处理器、虚拟内存和虚拟外部设备等
虚拟技术可归纳为:
1. 时分复用技术,如处理器的分时共享
2. 空分复用技术,如虚拟存储器
#### 异步
程序的异步性:
多道程序环境允许多个程序并发执行,但由于资源有限,进程执行并非一贯到底,而是走走停停,以不可预知的速度向前推进
异步性导致的问题:
异步性会使操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误。然而在运行环境相同的情况下,操作系统就需要保证多次运行进程后得到的结果相同
### 操作系统的目标和功能
操作系统应具有以下功能来给多道程序提供良好的运行环境
1. 处理机管理、存储器管理、设备管理和文件管理
2. 需向用户提供接口以方便用户使用
3. 可用于扩充机器来提供更方便的服务、更高的资源利用率
#### 操作系统作为计算机系统资源的管理者
* 处理机管理
在多道程序环境下,处理机的分配和运行都以进程(线程)为主要单位
处理机的管理可归结为对进程的管理,因此进程创建、撤销、管理、避免冲突、合理共享就是进程管理的主要任务
进程管理的主要功能:
1. 进程控制
2. 进程同步
3. 进程通信
4. 死锁处理
5. 处理机调度
* 存储器管理
存储器管理用于给多道程序的运行提供良好环境,便于用户使用及提高内存利用率
主要功能:
1. 内存分配与回收
2. 地址映射
3. 内存保护与共享
4. 内存扩充
* 文件管理
负责文件管理的部分称为文件系统
主要功能:
1. 文件存储空间的管理
2. 目录管理
3. 文件读写管理和保护
* 设备管理
主要任务是完成用户I/O请求方便用户使用设备提高设备利用率
主要功能:
1. 缓冲管理
2. 设备分配
3. 设备处理
4. 虚拟设备
#### 操作系统作为用户与计算机硬件系统之间的接口
##### 命令接口
* 联机命令接口
联机命令接口又称为交互式命令接口,适用于分时或实时系统的接口
可由用户在控制台或终端输入命令,经命令解释程序解释并执行后,控制权再转交回控制台或终端,这一过程往往强调交互性
常见为 命令提示符中输入单条指令
* 脱机命令接口
脱机命令接口又称为批处理命令接口,适用于批处理系统
脱机用户不能干预作业运行,事先使用作业控制命令编写"命令清单",系统调度到该作业时,命令解释程序逐条解释并执行,从而间接控制作业的进行
常见为 使用命令编写脚本后运行
##### 程序接口
该接口由一组系统调用组成,用户通过在程序中使用这些系统调用来请求操作系统为其提供服务
常见为用户图形界面(GUI)如linux的KDE桌面
#### 操作系统用作扩充机器
没有任何软件支持的计算称为裸机,它仅是计算机系统的物质基础。操作系统提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强,使用更方便的机器
通常将覆盖了软件的机器称为扩充机器或虚拟机

View File

@ -0,0 +1,314 @@
---
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. 进行操作系统引导
### 引导流程

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB