ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

操作系统核心考点:进程管理与信号量P/V操作解析

操作系统核心考点:进程管理与信号量P/V操作解析

简介:这是一份计算机操作系统课程配套的课后习题答案解析文档,覆盖第一章与第二章的核心考点,适合计算机科学与技术专业学生课后自测、期末复习及备考使用。资源包内共1个docx文件,大小约53KB,内容为两章共33道经典选择题的完整题干、标准答案与逐题解题思路说明。目前已有1313人学习浏览过此资源。第一章习题主要围绕操作系统的定义、用户与计算机的接口、多道程序设计技术、批处理与分时系统等基础概念展开;第二章则重点讲解进程的特征、进程基本状态及其转换、进程调度与状态变迁等核心难点。每道题均附带简明解析,不仅能帮助读者快速核验学习效果,还能通过解析理解易错点,例如进程的静态性与动态性区分、就绪态与阻塞态的转换条件、时间片对响应时间的影响等。文档按章节顺序编排,答案紧跟题目,适合作为操作系统入门阶段的同步练习与考前冲刺材料。

1. 操作系统课后习题:第一章和第二章的考点分布与拿分策略

操作系统这门课,第一章和第二章的课后习题就是整门课的考点压缩包。第一章考"操作系统是什么"——定义、作用、三大类型、时间片计算,全是选择和填空;第二章考"进程怎么管"——进程特征、状态转换、PCB、信号量P/V操作,难度直接上一个台阶,也是期末和面试里最容易翻车的地方。这两章的分值占比大概是这样:基础概念题约30%,状态转换题约25%,信号量题约35%,计算和填空约10%。拿分的关键不是背定义,而是吃透三张表:操作系统类型对比表、进程状态转换表、信号量取值含义表。这份课后题答案资料覆盖了第一章全部10道选择、第二章全部判断题、填空和进程控制题,适合在备考研期末、补考重修,或者准备操作系统岗位面试的人。把这些题过一遍,相当于给整本操作系统教材的地基做了一遍加固。

2. 第一章高频考点:操作系统定义、类型判断与时间片计算模板

2.1 操作系统的定义与双重身份:从第1题到第6题的送分逻辑

第一章前六道题都围绕操作系统的定义展开,看似送分,实际上每道题都埋了一个选项陷阱。第1题问"操作系统是对什么进行管理的软件",答案是C计算机资源。注意:OS管理的不是单纯的硬件,也不是单纯的软件,而是整个计算机资源——CPU、内存、外设、文件和数据都在管辖范围内,选项A和B都只覆盖了一半。第2题从用户观点看OS是什么,答案是A用户与计算机之间的接口。这道题考的是OS的对外身份:对用户来说,OS就是一层"翻译官",把鼠标点击、键盘输入转换成机器能执行的指令,再把结果翻译回人能看懂的界面。第3题问哪个不是OS关心的主要问题,答案是D高级程序设计语言的编译器。编译器的作用是翻译程序代码,它运行在OS之上,OS不直接"关心"编译器本身,OS关心的是为编译过程提供运行环境。第4题问配置了OS的计算机是逻辑上的什么计算机,答案是C虚拟。裸机是物理计算机,加上OS之后功能增强、用户使用更方便,这台"增强后的机器"在逻辑上存在,所以叫虚拟计算机。

第5题和第6题继续考OS的基本功能。第5题多道程序设计技术提高了CPU和外部设备的利用率,答案是A。多道程序设计让多个程序同时驻留内存,当一个程序等待I/O时CPU转去执行另一个程序,CPU和外设都不闲着,这就是"利用率"三个字的来源。第6题OS提供给程序员的接口是系统调用,答案是B。程序员通过系统调用请求OS服务,比如打开文件、申请内存、创建进程,库函数是封装在系统调用之上的,用户程序直接面对的是系统调用这一层。

这类题的答题思路很固定:看到"管理"两个字,优先选"计算机资源"这个完整范围;看到"用户观点"或"接口",直接匹配"用户与计算机之间的接口";看到"逻辑上更强",选"虚拟";看到"多道程序设计",选"利用率";看到"程序员接口",选"系统调用"。不要在定义题上纠结超过10秒,答案几乎都能在教材第一章前两节的原话里找到。

提示:第1题最常见的误选是B硬件。OS确实管理硬件,但题干考的是完整表述"对计算机资源进行管理",少了软件、数据这些范围就不完整,审题时注意选项的覆盖面。

2.2 批处理、分时、实时三大类型:判断题与场景题的判别依据

第7题到第9题集中考操作系统类型的特征。第7题选A:批处理作业必须具有作业控制信息。这是批处理系统能自动成批运行的前提——作业缺少控制信息,系统就不知道何时运行、如何运行、运行后怎么处理结果。第8题是场景判断题:订购机票系统处理各个终端的服务请求,处理后通过终端回答用户,答案是D实时信息处理系统。机票预订对响应时间有硬性约束,必须在规定时间内完成查询和出票处理,这是实时系统的典型应用场景。第9题选B:批处理系统的主要缺点是缺少交互性,用户提交作业后无法干预运行过程,要等一批作业全部跑完才能拿到结果。

三类系统的区分,我从历年考题里总结了一个快速判据。批处理看关键词"成批""作业控制信息""无交互";分时看关键词"时间片""轮转""多个终端用户""响应时间";实时看关键词"规定时间内完成""及时响应""外部事件"。可以把三类系统的主要特征放在一起对比:

类型核心特征典型关键词主要缺点
批处理成批自动运行、无交互作业控制信息、成批提交缺少交互性
分时时间片轮转、多用户共享时间片、响应时间、终端响应时间随用户数增多而恶化
实时响应时间硬约束机票预订、银行交易、工业控制专用性强、通用性差

第8题很多同学误选分时系统,就是只看到"各个终端",没看到"处理完后通过终端回答用户"这句话暗示的实时性要求。记住一个场景判断口诀:出现"必须及时响应""规定时间内完成"这类硬性时间约束,选实时;出现"时间片""轮转"这类共享CPU机制的词,选分时;出现"成批""无交互"这类批处理特征,选批处理。

2.3 时间片最大值计算:第一章唯一一道必须动笔的题

第10题是第一章唯一涉及计算的选择题:分时系统中用户数为50,为保证响应时间不超过1秒,时间片最大值为多少?答案是B,20ms。推导过程:分时系统按时间片轮转,每个用户在一轮中恰好获得一个时间片的CPU时间。最坏情况下,最后一个用户要等前面49个用户各跑完一个时间片才轮到自己,所以一轮的总耗时是50个时间片。要保证任何用户在1秒内都能得到响应,必须满足:时间片 × 用户数 ≤ 响应时间上限。代入数据:时间片 ≤ 1000ms ÷ 50 = 20ms,取最大值就是20ms。

如果题目变形为"用户数为80、响应时间不超过2秒",就用同一个公式:2000ms ÷ 80 = 25ms。再变形为"时间片固定20ms、1秒内必须响应",最多支持的用户数是1000 ÷ 20 = 50。这类题考试几乎年年出,考场上的操作只有两步:先把单位统一换算成ms,再做除法。千万不要把用户数直接乘时间片再除以响应时间——那是把因果关系搞反了。时间片越大,单个用户单次运行时间越长,但其他用户等待时间也越长;系统要保证的是最坏情况下的响应时间,所以用响应时间上限除以用户数,得到的是时间片的上限值。

3. 第二章高频考点(上):进程特征、状态转换与PCB管理

3.1 进程与程序:静态与动态的辨析题

第二章开头三题全是进程与程序的辨析。第1题问哪个不是进程的特征,选C静态性。进程的特征包括动态性、并发性、独立性、异步性,唯独没有"静态性"——静态是程序的属性。第2题说"进程是指令的集合"是错误的,因为指令的集合是程序,进程是程序在一个数据集合上的一次执行。第3题问哪个说法不能描述进程与程序的区别,选D"进程不能包含多个不同的程序"。反过来才对:一个程序可以被多个进程执行,比如多个用户同时打开同一个编辑器,产生多个进程共享同一份程序代码。

这组题对应两个填空考点。第一组:进程的基本特征是动态性、并发性、独立性、异步性;进程与程序的主要区别在于进程是动态的、程序是静态的,一个程序可以对应多个进程。第二组:进程由程序段、数据段、PCB三部分组成,PCB是进程存在的唯一标志,程序段可以被其他进程共享。还有一个常考的填空来自第二章复习题:程序的顺序执行通常在单道程序的工作环境中,具有程序的可再现性特征;程序的并发执行通常在多道程序的工作环境中,具有资源共享特征。"可再现性"是顺序执行的关键词,换成并发环境就变成"资源共享",这两个词经常被出卷人互换测试。

把这些填空答案背下来,选择题里凡是把"静态性"安到进程头上、把"指令集合"说成是进程的、把"进程不能包含多个程序"当正确表述的,直接判错。

3.2 三种基本状态:就绪、运行、阻塞的判断标志

第7题到第13题考进程的三种基本状态。第7题"分配到必要的资源并获得处理机时的进程状态"是执行状态,关键词是"获得处理机"——只有真正拿到CPU才叫运行,光有资源没CPU只能算就绪。第8题进程"正等着输入一批数据"时处于阻塞状态,阻塞的本质是等待某事件发生,比如I/O完成、数据到达、信号量唤醒。第9题运行中的进程申请打印机,会变为阻塞态,因为打印机由OS管理,申请动作本身就是一次I/O请求,进程必须等打印机分配完成才能继续执行。第10题不正确的转换是C"就绪转换为等待",就绪态进程在就绪队列里排队,它缺的是CPU而不是某个事件,谈不上"等待"。第11题进程从执行状态转为就绪状态,发生在时间片到的时候,另一个触发原因是高优先级进程抢占。

把六条合法转换和两条非法转换背下来,这一组题就全通了。合法转换:就绪→运行(进程调度)、运行→就绪(时间片到或被抢占)、运行→阻塞(等待事件)、阻塞→就绪(事件完成)。非法转换:就绪→阻塞、阻塞→运行。其中"阻塞→运行"必须经过就绪态中转,I/O完成的进程只能先进入就绪队列排队,不能直接跳回CPU。

状态转换触发者是否合法
就绪 → 运行进程调度程序合法
运行 → 就绪时间片到 / 高优先级抢占合法
运行 → 阻塞进程自身发起I/O请求合法
阻塞 → 就绪I/O完成 / 事件发生合法
就绪 → 阻塞无非法
阻塞 → 运行无(必须经就绪)非法

对应填空:进程状态由就绪状态转化到运行状态是由进程调度引起的;进程的基本状态有执行、就绪、阻塞三个。第12题一个基本状态可以从其他两种基本状态转变过来,这个状态一定是就绪——就绪可以由运行(时间片到)和阻塞(I/O完成)两个方向转入,而运行只能从就绪来,阻塞只能从运行来。第13题说一个正在运行进程的时间片终结会转入就绪状态,与第11题完全一致,只是换了一种问法。

3.3 状态转换判断题组:从第14题到第22题的触发者规律

第14题到第22题是一整组状态转换判断题,统一用一个规律就能全答对:除了"运行→阻塞"是进程自己发起的,其余转换都是被外部触发的。第14题读盘操作完成后,进程从等待变为就绪,注意不是直接变运行,必须先回就绪队列排队。第15题一次I/O操作的结束,可能导致一个进程由阻塞变为就绪——只有一个进程,不是多个,也不会直接进入运行态。第16题"一个进程从就绪状态变成了运行状态"是进程调度的结果,它本身就代表调度已经发生,所以不能作为"引起调度的情况"来选。第17题有新进程进入就绪队列不是引起操作系统选择新进程的直接原因,因为当前运行进程还在使用CPU,直到它时间片用完、出错或等待事件,才轮到系统去选新进程。第18题单处理机系统中运行状态进程只能有一个,这是"单处理机"三个字决定的,与有多少个进程无关。

第19题必会引起进程切换的是"一个进程从运行态变为就绪态"——运行进程让出CPU,系统必然要选一个新进程进入运行,CPU持有者发生了变化。第20题进程调度主要负责选一个进程占有CPU,注意区分作业调度(选作业进入内存)和进程调度(选进程占有CPU)。第21题进程自身决定的是从运行状态到阻塞状态,只有进程自己知道自己需要等待什么事件,所以这道题的答案是A。第22题运行变等待的原因是I/O请求,与第9题、第14题是同一逻辑链:I/O请求导致阻塞,I/O完成导致就绪。

做题时先问一句"谁触发了这个转换"。触发者是调度程序、时间片、I/O完成这类外部实体,答案就在被动转换里找;触发者是进程自身,只有"运行→阻塞"一种情况。这个规律能解决第二章接近半数选择题。

3.4 进程控制与PCB:创建、入队、唤醒的完整流程

进程控制部分有五道题,和PCB的四道题可以放在一起理解。进程被创建后立即进入就绪队列排队,而不是运行队列(答案A)。创建进程的必要步骤包括建立PCB、为进程分配内存、将PCB链入就绪队列,唯独不需要"由调度程序为进程分配CPU"——CPU是进程被调度时才分配的,创建阶段只负责"造出来、排好队"。第23题每个进程只能有唯一的PCB,第24题OS通过PCB对进程进行管理,第25题PCB是操作系统分配并维护、记录进程信息的内存块,第26题PCB中保存进程标识符、进程当前状态、代码段指针、通用寄存器值,不保存磁盘目录和变量结构。

问卷考"不会引起进程创建"的是设备分配(答案C),因为设备分配是运行中进程发出的I/O请求,不产生新进程;而用户登录成功、启动程序运行都会创建新进程。进程被唤醒意味着进程变为就绪状态(答案D),唤醒的本质是把PCB从等待队列移到就绪队列,不是直接占有CPU。把这些串起来就是一条完整的进程生命周期:创建→就绪队列→调度→运行→(等待I/O)→阻塞→(I/O完成)→就绪→调度→运行→撤销。填空考点"进程在系统中存在的唯一标志是PCB"基本年年出现,把PCB的三句话背熟:唯一标志、OS通过它管理进程、保存标识符+状态+现场信息。

4. 第二章高频考点(下):信号量语义与P/V操作推演

4.1 临界资源、临界区与同步机制四原则

信号量部分前六题是概念地基。第1题临界资源是互斥的共享资源——它本身是共享的,但同一时刻只允许一个进程使用,所以加"互斥"修饰,答案是C。第2题不属于共享资源的是非共享数据,打印机、共享变量、共享缓冲区都是共享资源。第3题临界区是一段程序,不是缓冲区也不是数据区,是访问临界资源的那段代码,这个定义经常被选项伪装成"一个缓冲区""一段共享数据区"来干扰。第4题不属于同步机制原则的是无限等待,四条原则是:空闲让进、忙则等待、让权等待、有限等待。第5题P、V操作这类执行过程中不能被中断的程序叫原语,答案B。第6题P、V操作是进程同步、互斥的原语,答案A。

四原则的细节容易被忽略,考试常把其中一条替换成"无限等待"或"立即进入"来凑干扰项。答题时把四原则当顺口溜背:空闲让进、忙则等待、让权等待、有限等待。其中"让权等待"说的是进程等不到资源时主动让出CPU,这个概念在后面理解阻塞态的时候也用得上——进程阻塞就是让权等待的体现。

4.2 P/V操作的值变化规则:先操作、后判断

第7题和第8题是P/V操作的规则题,用"先操作、后判断"六个字就能拿下。P操作:先执行s减1,再判断,若s≥0则进程继续执行,若s<0则该进程被阻塞,插入到该信号量对应的等待队列中。所以第7题第一空选B(s>=0),第二空选C(s<0)。V操作:先执行s加1,再判断,若s>0则进程继续执行,若s≤0则从等待队列中取出一个进程,使其进入就绪状态。第8题第一空选A(s>0),第二空选D(s<=0)。注意P操作的"继续"条件是s≥0,V操作的"继续"条件是s>0,一个是大于等于、一个是大于,边界值千万别记混。

用一段伪代码把规则固定下来:

P(s): s = s - 1 if s >= 0: 进程继续执行 else: 进程阻塞,加入s的等待队列 V(s): s = s + 1 if s > 0: 进程继续执行 else: 从s的等待队列中取出一个进程,置为就绪

这套规则里最容易错的两处:一是P操作判断的是"减1之后"的值,不是减之前的值;二是V操作唤醒的是"等待队列里的一个进程",该进程进入就绪态,但不一定立即运行。第9题进程从阻塞进入就绪,可能是因为正在运行的进程执行了V操作——V把等待队列里的进程唤醒,正好对应阻塞→就绪这个合法转换。第13题P原语使进程进入等待队列的条件是s<0,和伪代码里的判断分支完全一致。

4.3 信号量数值的含义:可用资源数与等待进程数

通过第10题到第12题掌握信号量数值的翻译规则。信号量s的语义分两段:s≥0时,s表示当前可用资源数;s<0时,s的绝对值表示正在等待该资源的进程数。第10题s初值为2、当前值为-1,说明有1个等待进程,选B。第11题初值3、当前值1,可用资源数M=1,没有进程在等待(N=0),因为s还是正数。第12题最综合:n个进程、某资源允许m个进程同时进入临界区(n>m>1),信号量初值为m,取值范围是m-n到m,处于等待状态的进程数最多是n-m。推导过程:m个进程成功进入后s从m减到0,剩余n-m个进程继续执行P操作,s从0降到-(n-m),最小值就是m-n;所有进程退出后s回到最大值m。

信号量当前值含义
s > 0有s个可用资源
s = 0资源全部被占用,无进程等待
s < 0资源被占用,且有s的绝对值个进程在等待

第20题用P、V操作管理临界区时,互斥信号量初值应定义为1。只有初值为1,第一个P操作后s=0表示临界区被占用,第二个P操作后s=-1表示有进程在等待。第21到23题考查mutex的三种取值:mutex=1表示没有进程进入临界区;mutex=0表示有一个进程进入临界区、没有进程等待;mutex=-1表示有一个进程进入临界区、另一个进程在临界区外等候。这三道题是信号量部分的必背结论,答题时按P操作次数推:初始1,首次P后变0,二次P后变-1,V操作后回0或1。

4.4 综合判断题:同步、互斥与生产者消费者模型

第14到第27题里有一组综合判断题。第14题不需要信号量就能实现的功能是进程的并发执行——并发执行是系统天然支持的,同步、互斥、前趋关系才需要信号量来约束。第15题进程A正在使用磁带机时进程B又申请,这是互斥资源的正常竞争情形,B会阻塞等待而不会导致系统错误,答案选D"无所谓的"。第16题互斥型信号量的最大值不超过1(也就是二进制信号量),资源型信号量的最大值可以是大于零的有限值,所以选B。第17题单处理机系统中有20个进程,运行状态的进程最多1个——又考了一遍单处理机约束。第18题一个程序经过多次创建后产生的进程是不同的,每次创建都是新的执行实例。第19题要对并发进程进行同步,根本原因是并发进程推进的不确定性——不用信号量约束,谁先谁后无法预知。

第24题两个进程合作完成一个任务,一个进程要等合作伙伴发来消息或建立某个条件后再向前执行,这种制约性合作关系叫同步,答案A。同步和互斥的区别在于:同步是"等条件"——A等B完成某件事;互斥是"争资源"——A和B不能同时进入临界区。第25题正在访问临界资源的进程因申请等待I/O而被中断时,可以允许其他就绪进程抢占处理器继续运行——释放了CPU但没有释放临界区,所以其他进程不能进该临界区,但可以运行与临界区无关的就绪进程。第26题信号量S的含义归纳题,逐项对照分段语义,只要抓住"S≥0表示资源数、S<0表示等待进程数的绝对值"就能排除干扰。

第27题是生产者消费者模型的最简形式:进程A读数据放入缓冲器,进程B加工数据。可能出现B尚未取走旧数据时A又写入新数据(覆盖),或者A还没放入新数据时B重复加工旧数据(重读),根本原因是A和B的速率无法同步。这正是用信号量解决同步问题的典型场景:需要一个"空位"信号量记录缓冲区剩余容量,初值为缓冲器可容纳的数据个数;一个"满位"信号量记录已有数据的个数,初值为0。A写数据前P(空位)、写完后V(满位),B取数据前P(满位)、取完后V(空位),再用一个mutex保证同一时刻只有一个进程访问缓冲区。考试中考到这个模型,先画出数据流向,再标出P、V的位置,分数就到手了。

5. 易错题盘点:五个最常踩的选项陷阱

5.1 陷阱一:时间片计算把除数和被除数颠倒

错在哪:第10题算时间片,有人列式成"50用户 ÷ 1秒"得出50ms,或者直接选10ms当"人均时间片",还有人把1秒当成100ms换算。

为什么错:时间片是"每个用户每次获得CPU的时长",一轮下来50个用户各跑一个时间片,总耗时=50×时间片。要保证最坏情况下1秒内响应,必须让总耗时不超过1秒,所以是"响应时间上限÷用户数",不是"用户数÷响应时间"。

怎么答对:先统一单位(1秒=1000ms),再套公式:时间片最大值=响应时间上限÷用户数。1000ms÷50=20ms。变形题也一样,比如响应时间2秒、用户80个,就是2000÷80=25ms。考场上一旦出现"分时系统+用户数+响应时间"这三个词同时出现,就认定是时间片计算题,直接用除法。

5.2 陷阱二:把"就绪→等待"当成合法转换

错在哪:第10题四个状态转换里,有人把"就绪转换为等待"当成合法转换选进去。

为什么错:就绪态进程缺的是CPU,它已经在就绪队列里排着队,不存在"等待某个事件"的需求。等待事件(阻塞)只能从运行态发起,因为只有运行中的进程才能执行I/O请求、才能申请资源。一个还没拿到CPU的进程,拿什么去申请打印机、申请读盘?

怎么答对:背下六条转换表,看到"就绪→阻塞"和"阻塞→运行"直接排除。I/O完成只能让进程进入就绪态,这个"必须经就绪中转"的规则在选择题和判断题里反复出现,记住一句话:任何进程想从阻塞回到运行,中间必须过一趟就绪队列。

5.3 陷阱三:信号量负值时数错等待进程

错在哪:第10题信号量初值2、当前值-1,判断等待进程数时写成2,理由是"初值是2,现在-1,差3个所以等待3个"。

为什么错:把初值当成"已有的等待数"。初值是初始可用资源数,当前值是运行过程中的动态结果。s=-1的含义是:有一个进程在s已经减到0之后又执行了一次P操作,把s压到-1,这个进程进入等待队列。所以等待进程数是1,不是2也不是3。

怎么答对:等待进程数=|当前值|(当前值为负时),一句话解决。更稳妥的做法是数P操作次数:从初值2到当前值-1,中间执行了3次P操作,前2次有资源可用(s从2到0),第3次无资源可用(s从0到-1),失败的那1次对应的进程在等待。把"初值、当前值、等待数"三个数写出来再选答案,基本不会错。

5.4 陷阱四:mutex=0与mutex=-1的含义混淆

错在哪:第21题mutex=-1误选"两个进程均进入临界区",第22题mutex=0误选"一个进程进入临界区、另一个进程等待进入"。

为什么错:互斥信号量的语义没吃透。mutex=0表示临界区被占用但无人排队,mutex=-1表示临界区被占用且有1个进程在排队。两个进程同时进入临界区是绝对不可能的——互斥信号量的存在就是为了杜绝这种情况,选这个选项等于否定了互斥本身。

怎么答对:按P操作次数顺着推。初始mutex=1(无进程进入),第一个进程执行P后mutex=0(一个进程进入),第二个进程执行P后mutex=-1(一个进入、一个等待),执行V后回到0或1。把0和-1这两个状态各配一个场景反复背:0=有人在屋里、门外没人;-1=有人在屋里、门外排着一个。题目问"当mutex=X时表示什么",先想清楚X对应的P操作次数,再翻译成场景。

5.5 陷阱五:实时系统与分时系统场景混淆

错在哪:第8题订购机票系统被误判为分时系统,理由是"处理各个终端的服务请求"看起来像分时的多终端交互。

为什么错:分时的关键词是时间片轮转和交互式响应,强调的是"每个用户都能用上计算机";实时的关键词是响应时间硬约束,强调"在规定时间内必须处理完"。机票预订要求查询、出票在限定时间内完成,属于实时信息处理。类似的还有银行取款、股票交易、工业过程控制。

怎么答对:场景题先找"硬约束"。出现"必须在规定时间内""及时响应""处理完后立即回答"选实时;出现"时间片""轮转""保证每个用户响应"选分时;出现"成批执行""无交互""作业控制信息"选批处理。三个关键词组各背一组,见到场景就往关键词组上靠,不要凭"终端"两个字猜答案。

6. 考前冲刺:状态转换、信号量推演的答题模板与押题方向

6.1 概念题的三步排除法

所有概念选择题用三步排除:第一步划掉包含"绝对化错误"的选项,比如"进程是静态的""进程是指令的集合";第二步划掉"范围错误"选项,比如"OS只管理硬件""编译器是OS的主要关心对象";第三步对剩下的选项逐字核对教材原文表述。这套方法对第一章定义题和第二章进程特征题几乎百发百中。

6.2 状态转换题与信号量题的答题模板

状态转换题用"四问"模板:问当前状态、问目标状态、问谁触发、问是否合法。触发者判断规则就四条:调度程序→就绪转运行,时间片/抢占→运行转就绪,进程自身→运行转阻塞,外部事件完成→阻塞转就绪。信号量题用"三步"模板:先写初值,再按P/V操作逐次推当前值,最后看符号翻译含义。当前值≥0是可用资源数,当前值<0是等待进程数。每道信号量题都把这题三步写在草稿纸上,比干想要稳得多。

6.3 四个最可能的变形方向

从这两章课后题的命题规律看,考试变形集中在这四个方向:一是时间片计算的变体,把用户数、响应时间、时间片三者中任意两个作为已知条件求第三个;二是状态转换判断,给四个转换描述让判断正误,陷阱放在"阻塞→运行"和"就绪→阻塞"这两条非法转换上;三是信号量推演,给初值和一串P/V序列求最终值,顺带问有几个进程在等待;四是生产者消费者综合题,用空位信号量、满位信号量加mutex实现同步互斥,让考生标出P、V的位置。把这四个方向各练三遍,这两章的分数基本就稳了。

说句备考时的血泪经验:这两章本身不难,难的是手滑。我把时间片算成10ms、把mutex=-1当成两个进程进临界区、把机票系统当成时分系统,这三个坑全踩过一遍,每次都对答案时才发现错得冤枉。从那以后我每次做信号量题都强制自己先写初值、再推当前值、最后数等待进程;做状态转换题先画三条圈再选答案。这套习惯帮我稳住了后面进程管理的大题,也希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进