Article
操作系统-CH1.1-操作系统的基本概念
操作系统-CH1.1-操作系统的基本概念,待补充摘要。
- https://tingwu.aliyun.com/doc/transcripts/2erk9xo7e6gr9ml8?sl=1# 《1-1 操作系统的基本概念 720P》

第一章:操作系统的基本概念与特性
知识导图与起承转合
在学习操作系统(Operating System, OS)时,我们通常会经历以下认知过程:
- OS 是什么? —— 首先我们要明确它的定义与在计算机系统中所处的位置(作为软硬件之间的中介)。
- OS 扮演什么角色? —— 接着探讨它的三大作用(用户接口、资源管理者、对硬件的抽象)。
- OS 的灵魂是什么? —— 深入理解它的四大特性(并发、共享、虚拟、异步)。这四大特性并不是孤立存在的,它们交织在一起,共同构建了现代多任务操作系统的运行基石。
一、 操作系统的基本概念与作用
1.1 什么是操作系统(OS)?
定义:操作系统(OS)是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序集合。
- 本质:操作系统是一层软件(是系统软件的核心),它处于计算机硬件与应用软件之间。
- 直观理解:我们每天使用的手机(iOS/Android)、电脑(Windows/macOS/Linux)都搭载了操作系统,我们不直接操作裸机芯片,而是通过 OS 获取整台机器的服务。
1.2 操作系统的三大作用
操作系统在不同的角度扮演着不同的角色,主要体现在以下三个方面:
① OS 作为用户与计算机硬件之间的接口
OS 为用户提供安全、方便、易用的服务,用户无须直接面对复杂的物理硬件。
- 提供接口的形式:
- 命令接口:用户直接使用的控制命令(如 Windows 的 CMD、Linux 的 Terminal)。
- 程序接口(系统调用/API):供程序员在开发应用时调用的底层服务(本质是 API,根据命令提供服务,如
read/write)。 - 图形用户接口(GUI):通过窗口、图标、鼠标进行直观交互。

② OS 作为计算机系统资源的管理者
在多道程序环境下,系统资源的分配和管理必须有一个“大管家”,OS 就是这个管家。 OS 管理的资源可分为四类:
- 处理机(CPU)管理:控制和分配 CPU 时间(对应进程管理)。
- 存储器管理:负责内存的分配与回收。
- I/O 设备管理:管理外设的分配与数据传输(如打印机、磁盘)。
- 文件(信息)管理:管理数据的存取、共享和保护。
💡 知识延伸:我们去买了一台新打印机,必须要先安装它的驱动程序。这些驱动程序以及相关外设控制软件,本质上都属于 OS 统一管理的软件资源。
③ OS 实现了对计算机资源的抽象(“虚机器”/ 扩充机器)
如果计算机没有任何软件(称为裸机),用户想要对 I/O 设备进行读写,就必须对底层物理接口的物理细节(如磁头定位、扇区寻址等)有极其充分的了解。这导致物理机器极难使用。
OS 通过在裸机上覆盖一层层软件,实现了多级抽象:
- 物理硬件(裸机):提供最底层的物理接口。
- 覆盖 I/O 软件(I/O 设备管理):隐藏设备操作物理细节,向高层抽象为一组简化的数据结构和 操作命令。此时,硬件对上层软件而言成为了一个 Black Box(黑盒)。
- 覆盖文件管理软件:进一步向用户屏蔽文件具体的磁盘存储物理细节,提供方便的文件存取接口。
- 覆盖窗口/图形软件:为最终用户呈现一个可视化的、极为简便的窗口操作环境。
每覆盖一层软件,就相当于对底层的硬件实施了一次抽象和扩充,使原本难以直接使用的物理机器转变为功能更强、更易使用的逻辑扩充机器(或称虚机器)。

1.3 典型例题演练
例题 1(单选题)
操作系统在计算机系统中扮演着“管家”的角色。下列选项中,不属于操作系统管理范畴的资源是( )。 A. 内存空间 B. 外部设备驱动程序 C. 数据库管理系统中的索引文件 D. CPU 调度
- 解析:
- A、B、D 选项分别对应存储器管理、设备管理、处理机管理,属于 OS 的管理范畴。
- C 选项中的“数据库管理系统(DBMS)中的索引文件”属于应用软件(DBMS)内部的数据管理结构,不由操作系统直接参与组织和管理。
- 答案:C
二、 操作系统的四大基本特性
操作系统的核心生命力体现在其四大特性上:并发、共享、虚拟和异步。其中,并发和共享是操作系统最基本的特征,互为对方存在的条件。
2.1 并发 (Concurrency)
① 并发 vs 并行
这两个概念极易混淆,其核心区别在于时间结构的不同:
- 并行(Parallelism):指两个或多个事件在同一时刻发生。这通常需要多物理核心(如双核、多核 CPU)硬件支持,使多个程序真正“同时”推进。
- 并发(Concurrency):指两个或多个事件在同一时间间隔内发生。
- 宏观上:在一段时间内有多个程序同时在运行。
- 微观上:在单处理机(单核 CPU)环境下,某一时刻其实只有一道程序被执行,各个进程在 CPU 上分时交替、轮流运行。
【并行】(多核CPU) 【并发】(单核CPU分时)
CPU 1: [---进程A---] CPU 1: [进程A][进程B][进程A][进程B]
CPU 2: [---进程B---] (微观上交替,宏观上同时)
② 进程 (Process) 的引入
- 传统程序限制:传统的静态程序是不能并发执行的(因为它们共享一套物理寄存器和内存空间,并发会导致执行逻辑彻底错乱)。
- 什么是进程:系统能独立运行并能作为资源分配对象的基本单位。它由机器指令、数据和堆栈等组成,是一个能够独立运行的活动实体。
- 并发的应用:例如,为一个应用程序分别建立一个“计算进程”和一个“I/O 进程”,它们便可并发执行,极大地提高了 CPU 和 I/O 设备的利用率。
📝 笔记主人的疑问解答 1
问:一个应用可以有多个进程吗?
答:当然可以,并且这是现代应用程序非常主流的设计模式(多进程架构/Multi-process Architecture)。 以你最常接触的两个应用为例:
- 微信:当你打开微信时,微信主程序是一个主进程;当你打开微信内置浏览器看一篇文章,或者玩微信小程序时,微信会为其创建独立的子进程。这样如果某个网页崩溃了,小程序闪退了,并不会拖垮整个微信主应用。
- Chrome 浏览器:Chrome 采用典型的多进程架构。你每打开一个标签页(Tab)、运行一个浏览器插件、或者进行 GPU 渲染,Chrome 都会启动一个独立的进程。这样不仅提高了并发效率,更起到了沙箱隔离(Sandbox)的作用,增强了安全性和系统稳定性。
2.2 共享 (Sharing)
定义:指系统中的资源可供内存中多个并发执行的进程共同使用。
- 限定条件:时间限定(进程在内存中运行期间)、空间限定(必须载入内存中)。
- 产生背景:由于系统中的资源远少于多道程序的需求总和,导致各进程对共享资源产生争夺,OS 必须介入进行妥善管理。
① 两种共享方式
| 共享方式 | 定义 | 典型设备/资源 |
|---|---|---|
| 互斥共享方式 | 虽然可以提供给多个进程使用,但在一段时间内只允许一个进程访问该资源。只有当前占有者释放后,其他进程才能访问。这类资源称为临界资源。 | 打印机、音频设备 |
| 同时共享方式 | 允许多个进程在宏观上**“同时”**对其进行访问。微观上,由于单 CPU 限制,进程对资源的访问依然是交替(分时)进行的。 | 磁盘、可重入代码 |
📝 笔记主人的疑问解答 2
问:我的感觉是,两种共享方式就是“有没有上锁”。比如原子读写。这个理解对吗?
答:这是一个极其深刻且直击本质的直觉!你的理解基本正确,我们可以将其用操作系统的专业术语进行更严谨的提炼:
- 互斥共享(确实“上了锁”): 你感觉的“上锁”在操作系统中被称为**“互斥锁(Mutex)”或“信号量(Semaphore)机制”**。 临界资源(如打印机)在同一时刻只能有一个人使用,所以当进程 A 使用它时,OS 会给这个资源“上锁”(Lock)。此时进程 B 来申请,发现有锁,只能进入挂起或等待队列(就像在排队)。等进程 A 用完释放并“解锁”(Unlock)后,进程 B 才能获取锁并使用。
- 同时共享(锁的粒度不同,或是“无锁并发/排队调度”): 对于像磁盘这样的“同时共享设备”,之所以宏观上不需要像打印机那样整体上锁,是因为它的读写速度极快,且其寻道和数据存取微观上是可以被 OS 的调度算法高效排队、交替进行的。
- 在微观层面上,当两个进程发出读写磁盘命令时,它们不需要等待彼此完全执行完整个长任务,而是通过磁盘调度算法(如电梯调度、先来先服务)将磁头请求排成队列(就像你笔记里写标有“队”字的“排队”)。
- 在更底层的数据层面(如原子读写/并发控制):多个进程即使同时访问同一块磁盘,如果读写的是不同扇区,是不需要上锁的;但如果两个进程试图在同一时刻读写同一个物理数据块,操作系统和底层数据库依然会使用读写锁(Shared/Exclusive Lock)*或*原子操作来确保数据一致性。
总结:互斥共享是宏观任务级别的锁(如打印机一用就是几分钟,必须整机锁死);
同时共享则是微观调度级别的排队,只有在物理读写冲突的瞬间才会有底层的、极小粒度的“原子锁”或“读写锁”介入。
② 并发与共享的关系(相辅相成)
并发和共享是多任务 OS 最基本的特征,互为存在条件:
- 资源共享以进程并发为条件:如果系统内不允许并发,每次只能串行运行一个进程,那么资源根本不需要在多个进程间协调共享,直接独占使用即可。
- 并发执行以资源共享为保障:如果 OS 无法对共享资源进行有效管理,协调好各个并发进程的访问,就会导致访问冲突、数据毁坏甚至死锁,进程根本无法顺利并发运行。
2.3 虚拟 (Virtualization)
定义:指通过某种技术,将一个物理实体变为若干个逻辑上的对应物的功能。
- 物理实体(实):物理上客观存在的(数量通常只有一个或有限几个)。
- 逻辑对应物(虚):用户主观感觉存在、但实际上是通过技术模拟出来的。
① 虚拟处理机技术(分时复用 CPU)
虽然系统内可能只有一台物理 CPU,但 OS 通过分时多路复用技术(Time-Division Multiplexing),让 CPU 极快地在各个进程之间切换。
- 由于CPU处理每个进程足够快,在宏观上,每个终端用户或进程都认为有一个专用的虚拟 CPU 在为自己服务。
② 虚拟设备技术(以虚代实)
将一台物理 I/O 设备虚拟为多台逻辑上的 I/O 设备,允许每个用户或进程在一段时间内独占一台逻辑设备。
- 经典实例:将单台独占性物理打印机(临界资源),虚拟成多台逻辑打印机(如 SPOOLing 假脱机技术)。各进程将打印数据先写到虚拟磁盘的打印缓冲区,由操作系统统一排队打印,宏观上实现了多进程同时访问临界设备。
2.4 异步 (Asynchrony)
① 什么是异步性?
在多道程序设计下,程序并发执行,但由于系统中的处理机、I/O 设备等资源有限,进程的执行通常不可能“一气呵成”,而是呈现出走走停停的运行状态。
- 不可预知性:内存中的每一个进程,何时能获得 CPU 运行、何时因提出资源请求而暂停、各进程向前推进的速度快慢,以及每道程序总共需要多少时间才能完成,都是不可预知的。
- 定义:进程是以人们不可预知的速度向前推进的,这就是进程的异步性(Asynchrony)。
📝 笔记主人的疑问解答 3
问:异步,使用的不是一个 CLK,每个进程节奏不一样。感觉像是时序逻辑电路中的 Sequential Circuit(异步时序电路)?
答:这个学科交叉的联想非常惊艳!你抓住了“异步”在硬件和软件中的共同本质——即“打破全局统一时钟的步调一致性”。
在**数字电路(时序逻辑电路)**中:
- 同步时序电路:所有触发器(Flip-Flops)都连接到同一个全局时钟信号 上,状态翻转必须踩着 的上升沿或下降沿同步发生。
- 异步时序电路:没有统一的全局时钟,某些触发器的时钟输入是由其他触发器的输出触发的。由于信号传输有延迟,触发器的状态改变是前后错开、随输入信号的变化而动态发生的(“各自有各自的节奏”)。
在**操作系统(软件层面)**中:
- 如果没有操作系统,单片机里的前后台系统只能像“同步电路”一样,严格按照主循环里的时钟节拍(轮询)一步步执行。
- 引入 OS 后,进程并发运行就变成了“异步时序电路”:
- 每个进程不需要像踩着统一的 节拍那样同步前行。
- 进程 1 正在使用 CPU,突然发起一个 请求,由于 设备速度慢,进程 1 就会主动放弃 CPU 并进入阻塞状态(此时 CPU 空着)。
- 为了不浪费 CPU 资源,OS 立即调度进程 2 占有 CPU 运行。
- 等 结束发出中断信号,进程 1 被重新唤醒并排队,等待 CPU 空闲时继续推进。
结论:你的类比极度精确。操作系统的异步性就是因为没有一个统一的强约束拍子强迫所有进程同步推进,各个进程完全由事件驱动(I/O 完成、时间片到、资源就绪等),在走走停停中,以不可预知的速度和节奏向前推进。
② 异步性的正确运行保障
虽然异步性会导致进程运行的动态性,但只要操作系统中配置了完善的进程同步机制,且运行环境相同,作业即便经过多次运行,也能获得完全相同的结果。因此,异步运行方式是被允许的,而且是 OS 的一个重要特征。
2.5 典型例题演练
例题 2(判断题)
在单处理机系统中,进程的并发执行和异步执行均体现为微观上的交替执行。只要多个进程并发执行,就必然会产生资源竞争,因此并发性与共享性是一对不可分割的矛盾。( )
- 解析:
- 前半句正确:微观上的交替执行是并发与异步在单 CPU 下的表现形式。
- 后半句“是一对不可分割的矛盾”表述不够严谨和科学。在 OS 中,并发性与共享性是互为对方存在前提的相辅相成关系,并非单纯对立的矛盾,它们共同构成了现代多任务操作系统的基石。
- 答案:错误(×)
三、 核心概念辨析:作业 (Job) vs 进程 (Process)
在视频和转写材料中,BOK 老师引入了一个非常经典的汉堡店点餐模型,能够帮你完美理清这两个概念的联系与区别:
+-------------------------------------------------------------+
| 【作业 (Job)】 |
| (顾客在汉堡店点的“整个订单” —— 汉堡套餐) |
| |
| +------------------+ +------------------+ +-------------+ |
| | 【进程 1】 | | 【进程 2】 | | 【进程 3】 | |
| | 准备汉堡 | | 炸薯条 | | 倒饮料 | |
| +------------------+ +------------------+ +-------------+ |
| (具体的厨房准备操作,是系统执行的基本实体) |
+-------------------------------------------------------------+
| 概念 | 汉堡店类比 | 操作系统定义 | 关系 |
|---|---|---|---|
| 作业 (Job) | 顾客点单的整个套餐(例如:汉堡 + 薯条 + 饮料的套餐) | 用户向计算机提交的一项相对完整的工作任务,通常包含程序、数据和作业控制说明书。 | 作业是整体性的任务目标。一个作业在进入系统后,为了并发执行,OS 通常会将其拆分为一个或多个进程来具体执行。 |
| 进程 (Process) | 厨房里准备各项单品的具体操作(如:组装汉堡、炸薯条、倒饮料) | 系统中独立运行并能作为资源分配对象的基本单位,是正在运行的程序的实例。 | 进程是系统实际进行资源调度和运行的基本实体,代表了作业的具体执行步骤。 |
四、 课后巩固与典型例题(带解析过程)
为了帮你更好地应对期末考试或考研,我们为你精心挑选了以下 2 道与本章概念密切相关的经典题目:
4.1 综合计算与应用题
【例题 3】(资源共享与死锁初步演练)
系统中有 3 个并发进程 、 和 ,它们都需要申请使用同一种互斥共享资源——物理打印机。已知系统目前共有 2 台可用的物理打印机。
- 若规定每个进程在运行期间最多可以同时申请并占用 1 台打印机,请问系统是否会发生死锁(即进程互相等待、谁也无法向前推进)?为什么?
- 若规定每个进程在运行期间最多可以同时申请并占用 2 台打印机,请问系统是否有发生死锁的危险?如果有,请设计一种会发生死锁的极端情况,并给出解决思路。
【答案与详细解析过程】
第一问解答:
- 结论:系统绝对不会发生死锁。
- 分析过程:
- 系统共有可用打印机资源 台。
- 每个进程最多需要的资源数 。
- 因为每个进程只需 1 台打印机,一旦它申请到 1 台资源后即可顺利运行并最终释放该资源。
- 即便最坏的情况下, 和 各自占有了 1 台打印机,资源被分完。但此时 和 均已满足最大资源需求(因为它们最多只需要 1 台),两进程都可以顺利执行完毕,执行完后释放资源,剩下的 随后也能顺利获取资源运行。
- 因此系统绝对安全,不会发生死锁。
第二问解答:
- 结论:系统有发生死锁的危险。
- 死锁极端情况设计:
- 每个进程的最大需求量 。
- 假设在某个时刻,进程 申请了 1 台打印机,进程 申请了 1 台打印机。此时系统中的 2 台可用打印机已被分完(剩余可用资源数 )。
- 接下来:
- 继续向前推进,试图申请它的第 2 台打印机,由于没有空闲打印机, 进入阻塞等待状态。
- 也继续向前推进,试图申请它的第 2 台打印机,同理, 也进入阻塞等待状态。
- 此时无论提出什么申请,都无法获得资源,同样等待。
- 此时,占有资源的进程 和 都在等待对方释放资源,而它们自身又处于阻塞状态无法释放已占有的资源。系统进入无限等待状态,即发生了死锁。
- 解决思路(初探):
- 限制申请:规定同一时间只允许最多 2 个进程处于活动状态并申请打印机;
- 引入虚拟设备技术:配置 SPOOLing 系统,将物理打印机虚拟化。各进程将打印任务输出至磁盘缓冲区,由 OS 守护进程统一调度打印,避免对物理打印机的直接互斥死锁。
【例题 4】(特征辨析题)
现代操作系统中,允许多个并发进程共享系统资源。请问,如果系统没有配置完备的进程同步机制(如锁、信号量),进程的异步性会给系统带来什么危害?请举一简单例子说明。
【答案与详细解析过程】
- 危害:如果缺乏同步机制,并发进程在异步执行(走走停停、速度不可预知)时,由于相互交替执行的顺序随机,会导致“数据不一致性”(或称竞争条件/Race Condition),使程序多次运行的结果不确定,甚至产生毁灭性的逻辑错误。
- 经典生活实例(账户存款并发冲突):
- 假设你的银行账户余额为 元。
- 现在有两个并发进程同时操作你的账户:
- 进程 A:存入 元(读取余额 计算新余额 写回余额)。
- 进程 B:存入 元(读取余额 计算新余额 写回余额)。
- 由于异步性,两个进程的执行步骤可能交叉进行:
- 进程 A 读取余额,得到 元。由于 CPU 时间片到,A 被迫暂停。
- 进程 B 被调度运行,读取余额,也得到 元。
- 进程 B 在自己的寄存器中计算出新余额为 元,并写回数据库。此时账户余额更新为 元。
- 进程 A 重新获得 CPU,继续执行未完步骤:它基于刚才读取的 元计算出新余额为 元,并写回数据库。
- 最终结果:账户余额变成了 元!但实际上我们存入了 元和 元,正确余额应该是 元。其中一笔存款由于异步交错执行而“丢失”了。
- 总结:为了消除异步性带来的逻辑混乱,操作系统必须配置进程同步机制(如对账户更新操作整体上锁,变为互斥共享),确保多次运行结果的完全正确性和一致性。
