全国硕士研究生招生考试是指教育主管部门和招生机构为选拔研究生而组织的相关考试的总称。考试分初试和复试两个阶段进行。初试由国家统一组织,复试由招生单位自行组织。
初试一般设置4个考试科目,分别是思想政治理论、外语、业务课一和业务课二,满分分别为100分、100分、150分和150分。初试方式均为笔试,考试的第一天上午考查思想政治理论,下午考查外语;第二天上午考查业务课一(数学或专业基础课),下午考查业务课二(专业课)。每一科目考试时长均为3小时。
对于计算机考研而言,业务课一是数学,业务课二则根据学校或专业的不同,考查内容也会不同。目前来看,越来越多的学校对计算机或信息相关专业的业务课二,偏向于选择全国统考,也有一部分学校是自主命题。因而,考生在备考业务课二之前,要先明确所报考院校的考查科目和考查内容。例如,在中国海洋大学2023年的硕士研究生招生考试中,计算机科学与技术专业(专业代码为081200)的业务课二考查的是计算机学科专业基础,而保密科学与技术专业(专业代码为0812Z1)的业务课二则考查计算机网络与安全;在中南大学2023年的硕士研究生招生考试中,计算机科学与技术专业(专业代码为081200)的业务课二考查的是数据结构。
全国统考主要考查计算机科学与技术领域的核心知识和技能,旨在培养学生在该领域的研究和应用能力。考试内容较为广泛,包括计算机科学与技术的基础理论、专业知识和应用技术,涉及了数据结构、计算机组成原理、操作系统和计算机网络4部分内容。
答题方式为闭卷、笔试;考试时间为180分钟;试卷满分为150分,其中数据结构45分、计算机组成原理45分、操作系统35分、计算机网络25分;试卷题型结构为选择题80分(40小题,每小题2分),综合应用题70分。
在全国统考中,操作系统的总体分值一般是35分,约占总分的23%。具体考查的题型与题量及分值如下表所示。
一些自主命题院校会有所不同,以中国计量大学信息工程学院的2023年硕士研究生招生考试为例,其考查的专业课为数据结构和操作系统,其中操作系统占70分,其具体的题型与题量及分值如下表所示。
而在哈尔滨工程大学软件工程专业的2023年硕士研究生招生考试中,考核的也是数据结构与操作系统,其中操作系统占60分,其具体的题型占题量及分值如下表所示。
再次强调,考生在备考前一定要了解自己心仪院校相关专业业务课二的考查内容及分数的分配情况,从而协调分配自己的复习时间,以达到高效复习的目的。
在全国统考中,对操作系统部分的考查目标如下。
(1)掌握操作系统的基本概念、基本原理和基本功能,理解操作系统的整体运行过程。
(2)掌握操作系统的进程、内存、文件和I/O管理的策略、算法、机制以及相互关系。
(3)能够运用所学的操作系统原理、方法与技术分析问题和解决问题,并能利用C语言描述相关算法。
1.考查要点概览
根据新版的全国统考大纲,操作系统部分的主要考查内容是:操作系统概述、进程管理、内存管理、输入/输出管理、文件管理。其中输入/输出管理也是我们常说的I/O管理或者设备管理,为了方便读者阅读,在本书中统一称为I/O管理。
基于历年真题的分析,总结出常考知识点的分布情况,如下页表所示。
大家可以看到,进程管理分值比例超过了35%,所以在本书中,我们把进程管理的内容划分为两章来讲解,分别是第二章的“进程管理”和第三章的“处理机调度与死锁”。
2.命题趋势分析
2021年发布的2022年全国统考大纲是操作系统考查内容变化的一个转折点。
这次的大纲修订,主要强调了考生对操作系统整体运行过程的理解,因而考生要更加全面地理解计算机操作系统,而不是只关注具体的考点。这个变化在真题中也有所体现,题目的综合性更强,考生需要提高综合运用所学知识的能力,才能准确答题。其次,新增了外核、操作系统引导、虚拟机、线程、文件系统挂载、固态硬盘等考点。这些新增考点,虽然不是核心考查内容,但增大了操作系统考查内容的广度。
考生若想在考试中取得好成绩,除了需要牢固掌握知识点外,还需要快速、准确地对一些题目作出判断和处理。因此,考生平时要多归纳和总结一些通用的答题技巧,这有助于考生更好地应对考试,提高复习效率。
1.关键词法
在全国统考中,因为时间有限,在选择题作答过程中,应做到尽快确定答案,然后稍作验证和确认,将更多的时间留给综合应用题的作答。如果能够抓住题目和选项中的关键词,就能快速锁定可能的答案,锁定答案之后,再将答案和题干一起验证,确保正确即可,没有必要花费过多的时间在其他选项上。
【全国统考2014】下列调度算法中,不可能导致饥饿现象的是( )。
A.时间片轮转
B.静态优先级调度
C.非抢占式短任务优先
D.抢占式短任务优先
【解析】 本题主要考查调度算法。
本题的关键词是“饥饿”,考生在读到这个关键词之后,应该马上想到“有优先,就会有饥饿”,也就是在学习的过程中,要将“饥饿”这个关键词与“优先”这个关键词绑定在一起。那么根据关键词法的技巧,就可以初步锁定答案——A选项。进一步验证,时间片轮转算法的特点是将CPU时间片分为一个一个时间片,每个就绪进程轮流执行,每个进程都会在一次调度周期内得到执行,确实不会产生饥饿现象。所以,确定A选项为正确答案。
【答案】 A
2.理解易混淆的知识点
在全国统考中,有很多知识点相互关联,但各有侧重点。考生在准备不充分的时候,往往会混淆这些概念,导致无法正确答题。这就要求考生在复习阶段,对这些易混淆的概念重点掌握,明确其区别。
【全国统考2015】若系统S1采用死锁避免方法,S2采用死锁检测方法。下列叙述中,正确的是( )。
Ⅰ.S1会限制用户申请资源的顺序,而S2不会
Ⅱ.S1需要进程运行所需资源总量信息,而S2不需要
Ⅲ.S1不会给可能导致死锁的进程分配资源,而S2会
A.仅Ⅰ、Ⅱ
B.仅Ⅱ、Ⅲ
C.仅Ⅰ、Ⅲ
D.Ⅰ、Ⅱ、Ⅲ
【解析】 本题主要考查死锁避免、死锁检测、死锁预防的概念。
S1采用的是死锁避免方法,Ⅰ限制用户申请资源的顺序,也就是顺序资源分配法,这是为了破坏“循环等待条件”,属于死锁预防的范畴,并非死锁避免;死锁避免的方法主要采用的是银行家算法,所以需要知道进程运行所需资源的总量信息,在分配资源时,会进行安全检查,如果资源分配可能导致死锁,则不会给进程分配资源。S2采用死锁检测方法,死锁检测对资源分配不作限制,而是对是否发生死锁进行检测,进而决定如何解除死锁。综上所述,Ⅱ、Ⅲ叙述正确,正确答案是B选项。
【答案】 B
3.理解操作系统的动态变化
操作系统是动态运行的,它在不同的情况下会以不同的方式运行和响应。仅仅掌握操作系统的静态概念是不够的,因为真实的操作系统在不同的负载、并发和资源分配条件下会有不同的行为。操作系统的调度算法、内存管理、进程同步等方面的问题通常涉及操作系统在实时环境中的行为。只有通过理解操作系统如何根据不同的负载情况调整资源分配、调度任务及处理各种竞争条件,才能正确地回答与操作系统实际运行相关的问题。
【全国统考2017】下列有关基于时间片的进程调度的叙述中,错误的是( )。
A.时间片越短,进程切换的次数越多,系统也越大
B.当前进程的时间片用完后,该进程状态由执行态变为阻塞态
C.时钟中断发生后,系统会修改当前进程在时间片内的剩余时间
D.影响时间片大小的主要因素包括响应时间、系统开销和进程数量等
【解析】 本题主要考查进程调度。
题目看似只是在考查基于时间片的进程调度,但实际上考查的是与进程调度、切换,以及进程状态变化等有关的诸多知识点。要正确解答本题,需要对进程调度的各种细节有充分的了解。这也就是我们强调的动态变化,考生需要明确知道进程调度的流程及细节。B选项中,当前进程的时间片用完后,该进程状态由执行态变为阻塞态是错误的,在这种情况下,进程应该切换到就绪态。
【答案】 B
4.综合应用题:掌握常见题目的解题技巧
在全国统考中,操作系统的综合应用题有两道,题目主要涉及进程管理、文件管理和内存管理等内容。其中,在进程管理中进程同步与互斥的考核频率很高,主要考核方向为前驱关系、进程同步与互斥等。考生在备考时,需要明确综合应用题的考核形式。综合应用题的考核形式基本稳定,所以考生只要多做题,多总结解题方法与思路,往往就能做到胸有成竹。
以考核频率最高的进程同步与互斥为例,可以总结出以下几点。
(1)P操作又名wait,V操作又名signal。
(2)用于互斥的信号量,初始值为1。
(3)用于保护资源的同步信号量,初始值为资源的总量。
(4)用于表示前驱关系的信号量,事件未发生,信号量初始值为0。
(5)在互斥保护时信号量的P操作和V操作应该成对出现。
(6)要查看或者修改一个变量的值,都需要使用互斥信号量保护。
(7)“前V后P”。在进程同步时,信号量的P操作和V操作通常在不同的进程中出现,前面的操作之后,使用V操作对信号量加1,在操作之后,需要使用P操作对信号量减1。例如,只有生产了商品之后,才能销售商品,商品存放的仓库容量为 N ,则定义信号量Full的初始值为0,生产商品后需要使用V(Full)操作让仓库中的商品数量加1,商品销售后,使用P(Full)操作让商品数量减1。当然,细心的考生应该在此场景下发现另外一个同步关系,即只有仓库有空间时,才能生产新的商品,这就意味着需要定义信号量Empty的初始值为 N ,在销售出商品后,使用V(Empty)操作来将Empty加1,在生产商品之后,使用P(Empty)操作对Empty减1。
(8)前驱关系。前驱关系是一种特别特殊的同步关系。
【全国统考2022年】某进程的两个线程T1和T2并发执行A、B、C、D、E和F共6个操作,其中T1执行A、E和F,T2执行B、C和D。如图表示上述6个操作的执行顺序所必须满足的约束:C在A和B完成后执行,D和E在C完成后执行,F在E完成后执行。请使用信号量的wait()、signal()操作描述T1和T2之间的同步关系,并说明信号量的作用及其初值。
【解析】 进程T1要执行A、E、F,T2要执行B、C、D。由图可知,T2执行C必须在T1执行完A之后,T1执行E必须在T2执行完C之后。所以,有两对同步关系。
这是一道典型的前驱关系题目,每一对同步关系都可以设置一个信号量,将其值初始化为0,表示前一事件默认未开始,比如定义信号量a的初始值为0,表示A事件暂未发生。当A执行后,应该执行V(a)操作,而在A的后续操作C之前,必须执行P(a),等待A事件发生,这就是我们所说的前V后P。
【答案】 信号量的定义和同步关系的描述如下所示。
semaphore a = 0; //信号量a表示A过程是否执行,初始为0表示默认未执行 semphore c = 0; //信号量c表示C过程是否执行,初始为0表示默认未执行 thread T1() { 执行A; signal(a); //告知线程T2已经执行完A过程 wait(c); //等待线程T2执行完C过程 执行E; 执行F; } thread T2() { 执行B; wait(a); //等待线程T1执行完A过程 执行C; signal(c); //告知线程T1已经执行完C过程 执行D; }
对于参加全国统考的考生来说,操作系统的重要性次于数据结构和计算机组成原理,同时操作系统中有一些知识和计算机组成原理中的知识略有重叠(如内存管理、I/O管理等内容),如果考生对计算机组成原理比较熟悉,学习操作系统会轻松一些。
综合来看,可以给大家提出以下几个建议。
(1)第一章“操作系统概述”是操作系统的基础,虽然分值占比较低,但需要重点学习,深入理解并熟练掌握。第一章所涉及的基础知识和概念,会贯穿后续所有章节,如果第一章掌握得不好,在后续学习中,对很多知识点往往难以做到真正理解。
(2)对于常考的知识点,一定要做到熟练掌握。只有做到充分理解各考点对应的历年真题且能独立解题,才意味着理解和掌握了该知识点。在做真题时,如果发现有模棱两可的情况,则必须认真学习相关理论知识,直至对知识点、考点的细节都掌握透彻。
(3)对于典型题目,特别是综合应用题,一定要多做。虽然每次考的题目乍看起来千差万别,但实际上,这些题目都是万变不离其宗,只有掌握了核心考点和考核形式,解答综合应用题时才能游刃有余。
(4)建议历年真题卷至少准备2套。在第一轮基础学习的时候,不需要使用真题卷。在第二轮巩固提升阶段,在学习每一章时,可以将真题卷中涉及的题目挑出来练习。在冲刺阶段,可以拿全新的真题卷,按照真实考试的要求,在一定的时间内完成操作系统部分的作答,并参照答案自己评分。对于此阶段依然做错的题目,需要重点对待,看看自己遗漏或疏忽了哪些知识点,以查漏补缺。
在全国统考中,数据结构、计算机组成原理、操作系统和计算机网络4个模块在一定程度上相互关联,只有进行整体学习,才能达到相辅相成的效果。
考生在备考时,可以分3个阶段进行。
(1)基础学习阶段:全面学习操作系统的所有知识点,可通过思维导图等方式记录笔记,快速过一遍操作系统的所有知识点。
(2)巩固提升阶段:面向考点,对自己掌握不好的,以及重点的知识进行重点学习,确保掌握高频考点。
(3)模拟冲刺阶段:基于真题进行自测,快速定位自己的弱项,开展有针对性的学习,并总结综合应用题的考核形式,确保在考场上作答时能得心应手。