第2章 · 播客 第1集

操作系统 · 操作系统定义、分类与进程概念

🎙️ 本集播客第1集:从「哪一条进程状态转换绝对不可能发生」这个必考点切入,先把操作系统的定义、接口、五大管理功能和分类的「三个还是七个」辨清,再把进程与程序的区别、三态定义与四条转换逐条讲透,最后拿前趋图的直接制约与间接制约收尾——都是选择题的直接取材点。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
🎙️ 第2章播客 第1集
⬇ 下载本集 点击播放
小雅
阿明,开场先送你一道年年考的题:进程的三种基本状态之间,有一条转换是绝对不可能直接发生的,你说是哪条?
阿明
呃……运行态直接变等待态?不对,那个天天发生。那我猜等待态直接变就绪态?
小雅
两个都答错了,而且错得很典型。原文原话是:阻塞状态的进程不能直接进入执行状态,就绪状态的进程不能直接进入阻塞状态。也就是说不可能的有两条,「阻塞态直接到运行态」和「就绪态直接到阻塞态」。这一集我把三态和它们之间每一条通路都给你捋一遍,捋完这种题你连想都不用想。
阿明
行,那从头来吧。操作系统这章开头那些定义,是不是就是背一背?
小雅
定义得抠字,因为判断题就在字上做手脚。原文:操作系统是计算机系统中的核心系统软件,负责管理和控制计算机系统中的硬件和软件资源,合理地组织计算机工作流程和有效地利用资源,在计算机与用户之间起接口的作用。注意三个关键词——核心系统软件、既管硬件又管软件资源、起接口作用。
阿明
「接口」这个词好像会单独出题?
小雅
会,而且是分两头考。操作系统为用户提供的接口,表现形式一般是命令、菜单、窗口之类的;而操作系统为应用程序提供的接口是 API。所以题干问「面向用户」你选命令菜单窗口,问「面向应用程序」你选 API,别混。这条线后面还会延伸到系统调用,那是第 4 集的活。
阿明
明白。那这章开篇说的「一个观点、两条线索」呢?听起来像口号。
小雅
是纲,但也是考点。原文说掌握操作系统原理的关键在于深入理解「一个观点、两条线索」:一个观点是以资源管理的观点来定义操作系统;两条线索是指操作系统如何管理计算机各类资源和控制程序的执行。配套的一句是:从资源管理的角度看,操作系统主要是对处理器、存储器、文件、设备和作业进行管理——处理器、存储器、文件、设备、作业,五个,一个都不能少。
阿明
五大管理功能记住了。分类呢?我印象里有三种,又好像有七种。
小雅
这就是这一节唯一的坑,你正好踩在上面。原文有两处说分类:章节开头说「操作系统的基本类型有:批处理操作系统、分时操作系统和实时操作系统」,三个;而 2.1.2 说「按照操作系统的功能划分,操作系统的基本类型有批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、嵌入式操作系统、微内核操作系统等」,七个。
阿明
所以看题干问的是哪一种说法。
小雅
对。问「最基本的三种类型」,答批处理、分时、实时;问「按功能划分包括哪些」,那网络、分布式、嵌入式、微内核也都算。两份名单都背下来,别只记一份。
阿明
好。接下来是进程管理了吧,这块我知道是重头。
小雅
重头到什么程度,原文自己交代了:处理机是计算机系统的核心资源;处理机管理是整个操作系统的重心所在,其管理的好坏直接影响到整个系统的运行效率;而且处理机管理集中了操作系统中最复杂的部分,它设计的好坏关系到整个系统的成败。这三句是简答题的现成答案。
阿明
那为什么处理机管理又叫进程管理?这两个名字换着用我经常懵。
小雅
因为进程是处理机管理中最基本的、最重要的概念,而且原文给了两句定性:以进程作为独立运行的基本单位,以进程作为分配资源的基本单位。既然一切都从进程的角度研究,处理机管理也就被称为进程管理。它的功能是组织和协调用户对处理机的争夺使用,把处理机分配给进程,对进程进行管理和控制。
阿明
那进程和程序到底差在哪?我一直说不清楚,只会说「一个动一个静」。
小雅
「一个动一个静」其实抓住了核心,原文就是这么切的:用静态的观点看,操作系统是一组程序和表格的集合;用动态的观点看,操作系统是进程的动态和并发执行的。而且原文点明——进程的概念实际上是程序这一概念发展的产物,所以是从分析程序的基本特征入手引出进程的。你答题时把「程序是静态的一组代码与表格,进程是程序的动态并发执行、是系统并发执行的体现、是独立运行和分配资源的基本单位」串起来说,就完整了。
阿明
那顺序程序又是什么?这个词我在原文里见过但没在意。
小雅
定义要背:顺序程序是指程序中若干操作必须按照某种先后次序来执行,并且每次操作前和操作后的数据、状态之间都有一定的关系。原文补一句,在早期的程序设计中程序一般都是按顺序执行的。它的对立面就是多道程序系统里的并发执行,这两个概念是一对。
阿明
多道程序系统带来的变化,原文列了几条?
小雅
两条,编号很清楚。第一条,资源共享——为了提高资源的利用率,计算机系统中的资源不再由一道程序专用,而是由多道程序共同使用。第二条,程序的并发执行或并行执行。第二条又分逻辑上和物理上两层,这层次是考点,我给你分开讲。
阿明
来,逻辑上是哪几种并行?
小雅
逻辑上三种:允许多道不同用户的程序并行运行;允许一个用户程序内部完成不同操作的程序段之间并行运行;允许操作系统内部不同的程序之间并行运行。注意中间那条——同一个用户程序内部的不同程序段之间也算并行,这条最容易被漏掉,出题人就爱拿它当「以下哪项不属于」的正确项来骗你排除。
阿明
记住了,程序内部也算。物理上呢?
小雅
物理上原文说:内存储器中保存多个程序,输入输出设备被多个程序交替地共享使用;在多处理机系统的情形下,表现为多个程序在各自的处理机上运行,执行时间是重叠的;单处理机系统时,程序的执行表现为多道程序交替地在处理机上相互空插运行。这里的对照很关键——多处理机是「执行时间重叠」,单处理机是「交替空插」。问「单处理机上多道程序是真并行吗」,答不是,是交替空插。
阿明
那并行执行和资源共享之间是什么关系?原文好像专门说了一段。
小雅
说了,而且是「相辅相成」四个字:一方面,只有允许程序并行执行,才可能存在资源共享的问题;另一方面,只有有效地实现资源共享,才可能使得程序并行执行。双向的,不是单向因果,这种题会把它写成「资源共享是并行执行的前提」这种单向说法,那就不全。还有一句收口的:并发操作实际上是这样的——大多数程序段只要求操作在时间上是有序的,也就是有些操作必须在其他操作之前,这是有序的,但其中有些操作却可以同时进行。
阿明
这句「有些必须有序、有些可以同时」听起来像在给前趋图铺路。
小雅
眼光不错,本集最后就落到前趋图。但先把三态办完,这是本章第一号考点。三个状态,我一个一个念定义,你注意每条里的限定词。
阿明
来吧,我最容易把就绪和阻塞的描述搞反。
小雅
第一,就绪状态。原文:当进程已分配了除 CPU 以外的所有必要的资源后,只要能再获得处理机,便能立即执行,把这时的进程状态称为就绪状态。在一个系统中可以有多个进程同时处于就绪状态,通常把它们排成一个队列,称为就绪队列。这句话你逐字记住——「已分配除 CPU 以外的所有必要资源」「只要再获得处理机便能立即执行」,这两句就是原题题干。
阿明
等一下,这不就是我刚才那道题的正确答案?
小雅
正是。题干问「已获得除 CPU 外所有必要资源、只要获得处理机便能立即执行的状态是」,答案就是就绪状态,一个字都没改,是照抄原文的送分题。四个干扰项你也得逐个排掉:执行状态是进程已经在运行,它连 CPU 都拿到了,不满足「除 CPU 外」这个限定;阻塞状态是因等待事件而暂停,它缺的是事件不是 CPU,给它处理机也跑不动;挂起状态更不行——挂起的进程不可能被调度而执行,这是原文明说的属性。
阿明
所以关键是那五个字「除 CPU 以外」,谁只缺 CPU 谁就是就绪。
小雅
对。第二,执行状态,原文:指进程已获得处理机,其程序正在执行。跟着一句限定必须记——在单处理机系统中,只能有一个进程处于执行状态。这句是判断题原材料,问「同一时刻可以有多个进程处于执行状态吗」,在单处理机下答不能;而就绪和阻塞都可以同时有多个,各排成就绪队列和阻塞队列。
阿明
一个执行、多个就绪、多个阻塞。第三个呢?
小雅
第三,阻塞状态:指进程因发生某事件而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种暂停状态为阻塞状态。原文举的事件是请求输入输出、申请缓冲空间等。还有一个别名陷阱:阻塞状态有时也称为「等待」状态,或「睡眠」状态。所以题目里出现等待态、睡眠态,说的都是阻塞态,别当成第四种状态。