操作系统是什么

操作系统是控制和管理整个计算机系统硬件与软件资源的系统软件。它组织调度计算机工作,分配系统资源,并向用户和应用程序提供接口和运行环境。

从层次上看:

1000

位置 作用
向下 管理 CPU、内存、磁盘、I/O 设备等硬件资源
向上 向用户和应用程序提供方便易用的接口
中间 把裸机扩展成更易用、更安全、更强的机器

操作系统的三个核心定位:

  • 系统资源的管理者:管理处理机、存储器、文件和设备。
  • 向上层提供服务:提供命令接口、程序接口、图形界面等。
  • 最接近硬件的软件层:直接处理时钟、中断、设备驱动、CPU 状态切换等底层机制。
扩充机器

裸机只提供硬件能力。操作系统把硬件能力组织起来,提供进程、文件、虚拟内存、设备抽象等机制,使用户看到的是一台更方便的“扩充机器”。

# 操作系统管理哪些资源
资源 管理内容
处理机 进程调度、CPU 分配、上下文切换
存储器 内存分配、地址转换、虚拟存储
文件 文件创建、删除、读写、目录、权限
设备 设备分配、I/O 控制、缓冲、驱动、中断处理

这些资源往往被多个进程共同使用,因此需要操作系统统一管理。否则,多个应用程序直接操作同一个硬件资源,容易导致混乱、数据破坏或安全问题。

用户接口

操作系统向上提供的接口可以分为三类。

接口 使用者 例子 特点
联机命令接口 普通用户 shell、cmd 命令 用户输入一条命令,系统执行一条命令
脱机命令接口 普通用户或管理员 批处理脚本 用户提交一组命令,系统按批执行
程序接口 程序员和应用程序 系统调用 程序通过代码请求内核服务

图形用户界面属于更直观的用户接口。它把许多命令操作包装成窗口、图标、菜单和按钮,但底层仍会转化为操作系统服务。

程序接口由一组系统调用组成,其作用和执行过程见 System-Calls。系统调用引发的 CPU 状态切换见 CPU-Modes

四个特征

并发

并发是指两个或多个事件在同一时间间隔内发生。宏观上看它们同时进行,微观上可能交替执行。

并行是指两个或多个事件在同一时刻同时发生。

概念 关键点
并发 同一时间段内都在推进,单核 CPU 上也能出现
并行 同一时刻真正同时执行,通常需要多核或多个处理单元

单核 CPU 同一时刻只能执行一个程序,但可以通过快速切换让多个程序并发运行。多核 CPU 可以让多个程序并行执行,但只要运行程序数超过核心数,仍然需要并发调度。

操作系统与程序并发几乎是一起出现的。没有并发,现代操作系统的大部分资源管理问题都不会出现。

共享

共享是指系统中的资源可供多个并发执行的进程共同使用。

共享方式有两类:

方式 含义 例子
互斥共享 一个时间段内只允许一个进程访问 摄像头、普通打印机
同时共享 宏观上多个进程可同时访问 多个进程交替读写磁盘

并发和共享互为存在条件。没有并发,系统中只有一个程序运行,共享失去意义;没有共享,多个进程无法共同使用资源,并发也难以展开。

虚拟

虚拟是把一个物理实体变成若干逻辑上的对应物。物理实体是真实存在的,逻辑对应物是用户感受到的。

虚拟对象 技术 用户感受
内存 虚拟存储器 每个进程仿佛拥有独立、连续、较大的地址空间
CPU 虚拟处理器 多个进程仿佛都在同时运行
设备 SPOOLing 等 独占设备可表现为逻辑共享设备

虚拟离不开并发。若系统中始终只运行一个程序,就没有必要把一个 CPU 虚拟成多个处理器,也没有必要让多个进程共享一个逻辑上的大地址空间。

异步

异步是指在多道程序环境下,进程并不是从头到尾一贯到底地运行,而是因为等待资源、I/O、调度等原因走走停停,以不可预知的速度向前推进。

异步性来自并发和资源限制。多个进程争用有限资源时,谁先获得 CPU、谁先完成 I/O、谁先被唤醒,都可能随系统状态变化。

特征之间的关系

特征 关系
并发 最基本特征之一,带来调度、同步、互斥等问题
共享 最基本特征之一,要求操作系统统一管理资源
虚拟 以并发和共享为基础,把物理资源抽象成逻辑资源
异步 并发程序争用资源后产生的执行不确定性

并发和共享是操作系统最基本的两个特征。没有并发和共享,就谈不上虚拟和异步。