操作系统(Operation System),简称OS,是管理计算机 【硬件】 与 【软件】 资源的计 算机程序。
操作系统向上管理软件,向下管理硬件,并向用户提供访问访问方式(接口),操作系统向应用程序也提供了接口,在计算机系统中起到了承上启下的作用
OS是一种【系统软件】
- 与硬件交互
- 对资源共享进行调度
- 解决并发操作处理中存在协调问题
- 数据结构复杂,外部接口多样化,便于用户反复使用
作为【系统软件】,OS做了哪些事
- 管理与配置内存
- 决定系统资源供需的优先次序
- 控制输入设备与输出设备
- 操作网络与管理文件系统等基本事务
- 提供一个让用户与系统交互的操作界面
管理系统资源
- 提高系统资源利用率
- 提高系统的吞吐量
方便用户使用
作为扩充机器
兼容硬件升级与扩充
支持软件获取和调用系统资源
兼容不同的软件硬件标准
1) 处理机(处理器)管理
- 进程控制
- 进程同步
- 进程通信
- 调度
2) 存储器管理
- 内存分配
- 内存保护
- 地址映射
- 内存扩充
3) I/O设备管理
- 缓冲管理
- 设备分配
- 设备处理
4) 文件管理
- 文件存储空间的管理
- 目录管理
- 文件读/写管理和保护
- 程序接口(应用程序访问操作系统的接口,操作系统再去访问硬件)
- 命令接口(用户可以直接使用命令操作操作系统)
- GUI(Graphical User Interface),图形用户接口
- 将具体的计算机硬件资源抽象成软件资源,方便用户使用
- 开放了简单的访问方式,隐藏了实现细节
- 举例:使用浏览器进行搜索
- 操作系统同时也对软件提供了简单的访问接口
操作系统四大基本特征
- 并发
- 共享
- 虚拟
- 异步
其中的关系图如下
- 同一时间内执行和调度多个程序的能力
- 宏观上,处理机同时执行多道程序
- 微观上,处理机在多道程序之间高速切换(分时交替执行)
- 关注单个处理机同一时间段内处理任务数量的能力
相似概念:并行
- 并发: 同一时间间隔内(时间段)发生的事件数量
- 例如:午餐时段,学校餐厅用餐总人数为12人
- 并行:同一时刻(时间点)发生的事件数量
- 例如:同一时间点,学校餐厅最多并行3人打餐
并发和并行都可以提高系统的吞吐量,但是并发还可以提高系统资源利用率,通过后期优化调度算法可以提高系统的并发能力,进而使系统资源利用率进一步提高,可以在不加大硬件投入的情况下提高系统性能,所以大部分场景下并发能力更加重要,而对于计算密集型任务来说,每个任务都会长时间占用单个处理机,并且也没有什么算法优化的余地,这种情况下想要提高系统总体的性能,就需要去添加物理机硬件
即资源共享,系统中的资源供多个【并发执行】的应用程序共同使用
- 同时访问方式:同一时段允许多个程序同时访问共享资源
- 互斥共享方式:也叫独占式,允许多个程序在同一个共享资源上独立工作而互不干扰的方式
共享设备:共享打印机、音频设备、视频设备
并发和共享互为存在条件
共享性要求OS中同时运行着多道程序
- 若只有单道程序正在运行,则不存在共享的可能
并发性难以避免的导致多道程序同时访问同一个资源
- 若多道程序无法共享部分资源(比如磁盘),则无法并发
使用某种技术把一个物理实体变成多个逻辑上的对应物
- 时分复用技术(TDM,Time Division Multiplexing)
- 虚拟处理机技术:“四核八线程”
- 虚拟设备技术:虚拟打印机
- 空分复用技术(SDM:Space Division Multiplexing)
- 虚拟磁盘技术:将一个硬盘虚拟出若干个卷
- 虚拟存储器技术
多道程序环境下,允许多个程序并发执行
单处理机环境下,多个程序分时交替执行
- 程序执行的不可预知性
- 获得运行的时机
- 因何暂停
- 每道程序需要多少时间
- 不同程序的性能,比如计算多少,I/O多少
- 宏观上“一气呵成”,微观上“走走停停”