- 硬件核心 => CPU
- 软件核心 => 操作系统 (系统软件)
1. 主要目标:
- 方便性:在硬件(裸机)上跑程序很麻烦(得用机器语言)
- 有效性:
- 提高系统资源利用率:没有 OS 的时候,诸如 I/O 等设备常处于空闲状态,没有得到有效的利用
- 提高系统吞吐量:合理组织工作流程,缩短程序的运行周期
- 可扩充性:方便地增添新的功能和模块
- 开放性:遵循世界标准规范,达到彼此兼容
2. 发展过程
2.1 无操作系统:
阶段一 —— 人工操作:
- 独占全机的问题:一个用户搞定之后,后面的用户才有机会使用
- 资源利用率低的问题:
- 纸带的输入输出的速度相对于CPU 的处理速度很慢,这导致 CPU 把大量空闲时间浪费在等待输入输出上
- 人工将程序、数据存进纸带的速度相对于纸带的输入输出很慢(人机矛盾)
阶段二 —— 脱机输入/输出:
在纸带与 CPU 之间增加一个外围机,这个外围机协助将数据读入磁带,而磁带能够快速地将数据输入到内存中进行处理。
- 外围机上有一个监督程序负责控制输入输出的流程,这个程序就是后来操作系统的雏形。
2.2 单道批处理系统
单道批处理系统通过连续处理尽可能地减少机器的空闲等待时间,但存在 CPU 和 IO 使用忙闲不均(总有一个人没做事)的情况,仍然没有做到充分利用资源。用一个例子来说明:
假如计算机现在需要处理 J1,J2,J3 三个作业,每个作业都需要经历输入(1秒)、计算(1秒)、输出(1秒)的过程。
如果计算机是单道批处理系统,那么处理过程大概是这样的:
(图源:《王道考研》视频)
可以看到,输入设备,CPU,输出设备这三者只能串行工作,不存在其中两者并行使用的情况。虽然系统尽可能地连续处理三个作业,但是可以看到,就同一时刻而言,输入设备,CPU,输出设备中总有至少一方无事可做,而这是对资源的浪费。
2.3 多道程序批处理系统
作业存放在外存,形成“后备队列”,由作业调度程序选择若干个作业调入内存,使他们共享 CPU 和系统资源。由于有多道程序,可以及时补位 CPU 的空闲。
- 特点:无序性(先进入内存的作业不一定先完成)、多道性、调度性
- 优点:资源利用率高、系统吞吐量大
- 缺点:平均周转时间长、无法交互
用一个例子来说明:
假如计算机现在需要处理 J1,J2,J3 三个作业,每个作业都需要经历输入(1秒)、计算(1秒)、输出(1秒)的过程。
如果计算机是多道批处理系统,那么处理过程大概是这样的:
(图源:《王道考研》视频)
可以看到,输入设备,CPU,输出设备这三者是可以并行使用的。J1 输入完成后开始计算,此时输入设备空闲,可用于进行 J2 的输入工作,J1 计算完成后开始输出,此时 CPU 空闲,可用于 J2 的计算工作,J2 进行计算的时候,输入设备空闲,可用于 J3 的输入工作,以此类推…可以看到,多道批处理系统尽可能在同一时刻让输入设备,CPU,输出设备这三者都有事可做,将资源充分调用起来。相比单道批处理系统耗时 9 秒,完成相同的工作,多道批处理系统只需要 5 秒即可。
2.4 分时系统(Time sharing system)
需求:人机交互(要能修改、能控制)、共享主机(有“独占”的感觉)
人机交互的关键:系统要及时接受并处理用户输入,所以作业不能再放在外存(磁盘),而要直接进入内存;另外,需要采用轮转运行方式。引入时间片的概念,时间片可以看作一个时间限制,每次每个作业(用户)只有一个时间片的运行时间,过了这个时间片,就必须让给其它作业(用户)运行。
特点:
- 多路性:一主机,多终端,多个用户按照分时原则共享一台计算机
- 独立性:一用户一终端,互不打扰,有一种“独占”的感觉
- 及时性:及时响应用户请求
- 交互性:用户请求系统提供某些服务
分时系统的缺点是,它对每个用户/作业都是公平的,循环地为它们执行一个时间片,不区分轻重缓急,因此不能优先处理紧急任务。
2.5 实时系统 (Real time system)
实时即“及时”。这里要注意和分时系统的区别:实时系统能够及时响应外部事件的请求,指的是紧急任务可以不需要时间片的排队而优先得到处理。
实时任务:
- 任务是否周期性?周期性实时任务:非周期性实时任务(开始截止时间、完成截止时间)
- 对截止时间的要求?硬实时任务(不能错过截止时间):软实时任务(允许错过截止时间)
特点:
- 多路性:系统周期性地采集多路现场信息
- 独立性:对信息得采集、对对象得控制,互不干扰
- 及时性:控制对象所要求的截止时间
- 交互性:仅限于某些系统特定的服务
- 可靠性:多级容错措施
2.6 微机操作系统
…
2.7 网络操作系统
…
PS:同时具有批处理、分时、实时处理的功能,叫做通用操作系统
3. 基本特性
3.1 并发:
提高资源利用率、增加系统吞吐量,依靠的就是程序的并发执行。
并行和并发的区别
并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。比如下图的 ABC 三个人同时吃面包,1分钟后都吃完了,无论是从微观角度(聚焦于一秒)还是从宏观角度(聚焦于几十秒),这三者都是同时执行的
并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速地轮换执行,使得在宏观上具有多个进程同时执行的效果,但实际上在微观上并不是同时执行的。比如下图的 ABC 三个人吃面包,0-10 秒 A 吃面包,10-20 秒 B 吃面包,20-30 秒 C 吃面包,那么在微观角度上(聚焦于秒级别的比较),很显然不是同时执行的;但是在宏观角度上(聚焦于整体的1分钟),不考虑更加精细的时间,这三者是同时执行的。
- 进程:在系统中能够独立运行并作为资源分配的基本单位,程序创建进程后才能并发执行
3.2 共享
多个并发进程共同使用系统资源,资源在同一个时间段内交替地被多个进程使用
- 互斥共享方式(例如打印机,仅当 A 进程访问完并释放系统资源后,才允许另一进程访问该资源)
- 同时访问方式(如磁盘设备,一段时间内是可以同时访问的。这里的同时是宏观层面上的)
PS:并发和共享互为存在条件,是 OS 最基本的特征:进程并发是资源共享的前提,对共享资源的访问保证了进程并发的顺利执行
3.3 虚拟
通过虚拟技术把一个物理上地实体变为若干个逻辑上的对应物
- 时分复用技术:把一个单一的大时间段分成多个时间片,交替执行各个进程。比如说虚拟处理器技术就是时分复用技术的一种 —— 单核计算机同时打开多个软件,在用户看来感觉像是多个 CPU 在跑这些软件。
- 空分复用技术:虚拟存储器技术就是空分复用技术的一种 —— 计算机只有 4G 内存,虽然各个运行的软件消耗的总的内存远不止 4G,但它们还是可以正常运行,在用户看来感觉像是物理内存超过了 4G。
3.4 异步
多个程序并发执行,但是由于资源有限,进程的执行不是一贯到底的,以不可预知的速度向前推进。
4. 基本功能
4.1 处理机管理功能
- 进程控制:为作业创建、撤销、种植进程,控制进程的状态转换
- 进程同步:为多个进程的运行进行协调
- 进程互斥方式
- 进程同步方式
- 进程通信:进程之间的信息交换
- 调度:作业调度、进程调度
4.2 存储器管理功能
- 内存分配:静态内存分配(运行过程中不可申请新的内存空间)和动态内存分配(运行过程中允许申请新的内存空间)
- 内存保护:每个程序只在自己的内存区运行
- 地址映射:逻辑地址 => 物理地址
- 内存扩充:借助虚拟存储技术,从逻辑上进行内存扩充
4.3 设备管理功能
- 缓冲管理:在 I/O 和 CPU 之间引入缓冲,提高资源利用率和系统吞吐量。缓冲区机制包括:单缓冲机制、双缓冲机制、公用缓冲池机制
- 设备分配:根据用户请求的设备类型和采用的分配算法,对设备进行分配
- 设备处理:实现 CPU 与设备控制器之间的通信。
4.4 文件管理功能
- 文件存储空间的管理:为文件分配外存空间
- 目录管理:为文件建立一个目录项
- 文件读写管理和保护:对外存中的文件进行读写,提供防护
4.5 操作系统与用户之间的接口
- 命令接口(用户直接使用):联机用户接口、脱机用户接口
- 程序接口(用户通过程序间接使用):让用户程序在执行中访问系统资源,是用户程序取得 OS 服务的唯一途径,有时候也叫做系统调用
- 图形用户接口
4.6 现代 OS 的新功能
- 系统安全:认证技术、密码技术、访问控制技术、反病毒技术
- 网络功能和服务:网络通信、资源管理、应用互操作
- 支持多媒体:接纳控制功能、实时调度、多媒体文件的存储
操作系统系列学习笔记: