• 硬件核心 => 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 的新功能

  • 系统安全:认证技术、密码技术、访问控制技术、反病毒技术
  • 网络功能和服务:网络通信、资源管理、应用互操作
  • 支持多媒体:接纳控制功能、实时调度、多媒体文件的存储

操作系统系列学习笔记:

操作系统学习笔记-1:基础概念

操作系统学习笔记-2:体系结构和运行机制

操作系统学习笔记-3:初识进程和进程控制

操作系统学习笔记-4:进程同步与进程互斥(一)

操作系统学习笔记-5:进程同步与进程互斥(二):信号量机制

操作系统学习笔记-6:进程同步与进程互斥(三):经典问题

操作系统学习笔记-7:进程通信

操作系统学习笔记-8:线程

操作系统学习笔记-9:调度