## 操作系统的基本概念
### 操作系统的概念
#### 什么是操作系统?
OS:操作系统(Operating System)
OS:是指控制和管理整个计算机系统的硬件和软件资源 并对计算机资源进行合理的分配 提供给用户和其他软件方便的接口和环境的程序集合
![操作系统发展](./操作系统发展.png)
**电脑启动流程:**
当用户启动一台计算机时 计算机首先是进入的是BIOS模式
BIOS存储在计算机的ROM中 BIOS通过读取CMOS的相关配置来选择启动的设备
从而启动装在硬盘中的操作系统来控制计算机的硬件
而一套完整的计算机系统由三部分组成 应用程序、操作系统(OS)和计算机的硬件
并且 操作系统本质上是一个运行在计算机上的软件程序 只不过这个程序运行在处理器特权模式下 用于管理计算机硬件和软件资源
**计算机系统的构成:**
- 用户
- 应用程序
- *<fontcolor="LightSeaGreen">操作系统(OS)</font>*
- 硬件(裸机)
***操作系统起着承上启下的作用:***
![操作系统承上启下](./操作系统承上启下.png)
OS是一种【系统软件】
- 与硬件交互
- 对资源共享进行调度管理
- 解决并发操作处理中存在的协调问题
- 数据结构复杂 外部接口多样化 便于用户反复使用
作为【系统软件】OS做了哪些事
- 管理与配置内存
- 决定系统资源供需的的优先次序
- 控制输入设备与输出设备
- 操作网络与文件管理系统等基本事务
- 提供一个让用户与系统交互的操作页面
### 操作系统的目标和功能
#### 目标
- 有效性
- 提高系统资源利用率
- 提高系统的吞吐量
- 方便性
- 可扩充性
- 开放性
#### 功能
- 作为计算机系统资源的管理
- 处理机管理
1. 进程控制
2. 进程同步
3. 进程通信
4. 调度
- 存储器管理
1. 内存分配
2. 内存保护
3. 地址映射
4. 内存扩充
- I/O设备管理 (I/O指的就是input/output 即:输入/输出设备)
1. 缓冲管理
2. 设备分配
3. 设备处理
- 文件管理
1. 文件存储空间的管理
2. 目录管理
3. 文件的读/写管理和保护
- 作为用户与计算机【硬件系统】之间的接口
- 程序接口(API:Application Programming Interface)
- 命令接口(CLI:Command Line Interface)
- 图形用户接口(GUI:Graphical User Interface)
- 实现了对计算机资源的抽象
- 将具体的计算机硬件资源抽象成软件资源 方便用户使用和应用程序调用
- 开发了简单的访问方式(接口) 隐藏(封装)了实现细节
- 举例:使用浏览器进行搜索
### 操作系统的特征
#### OS的四个基本特征
##### 并发(Concurrency)
- 同一时间间隔(时间段)内执行和调度多个程序的能力
- 可以通过各种优化手段来提升并发性 从而提升吞吐量
- 宏观上 处理机同时执行多道程序
- 微观上 处理机在多道程序之间高速切换(分时交替执行 时指的是时间段)
- 关注每个处理机同一时间段内处理任务数量的能力
##### 并行(Parallelism)
- 同一时刻(时间点)发生的事件数量
- 与电脑的核数和线程数是有关系的 最大不能超过核数或是线程数 受限于物理极限
##### 共享(Sharing)
- 即资源共享 系统中的资源供多个【并发执行】的应用程序共同使用
- 同时访问方式:同一时间段允许多个程序同时访问共享资源
- 比如:多个应用程序同时进行数据的读写 那么就共享同一个存储器
- 互斥共享方式:也叫独占式 允许多个程序在同一个共享资源上独立而互不干扰的工作
- 比如:一个程序在执行过程中 其他程序不能干扰这一程序的执行 大家都可以用这一资源 但是在某一时刻上 只允许一个程序的执行
- 共享打印机(互斥共享式) 音频设备(大部分时间是互斥共享式) 视频设备(大部分时间是互斥共享式)
- 并发和共享互为存在条件
- 共享性要求OS中同时运行着多道程序
- 若只有单道程序在运行 则不存在共享的可能
- 并发性难以避免的导致多道程序同时访问同一资源
- 若多道程序无法共享部分资源(如:磁盘) 则无法并发
##### 虚拟(Virtual)
- 使用某种技术把一个物理实体变成多个逻辑上的对应物
- 时分复用技术(TDM:Time Division Multiplexing)
- 虚拟处理机技术:"四核八线程"
- 虚拟设备技术:虚拟打印机
- 空分复用技术(SDM:Space Division Multiplexing)
- 虚拟磁盘技术:将一块硬盘虚拟出若干个卷
- 虚拟存储器技术
##### 异步(Ssynchronism)
- 多道程序环境下 允许多个程序并发执行
- 单处理机环境下 多个程序分时交替执行
- 程序执行的不可预知性
- 获得运行的时机
- 因何暂停
- 每道程序需要多少时间
- 不同程序的性能 比如:计算多少 I/O多少
- 宏观上"一气呵成" 微观上"走走停停"
资源来源于网络 若有侵权 请联系@Admin丶武林高手(QQ:1513358596)删除