新闻详情

新闻详情

首页 / 资讯中心 / 详情

计算机操作系统引论:核心概念、四大特征与复习指南

发布时间:2026/9/30 1:16:39来源:尧图网络
计算机操作系统引论:核心概念、四大特征与复习指南
1. 先把第一章的骨架搭出来这章到底在讲什么翻开汤小丹老师这本《计算机操作系统》第四版第一章操作系统引论是很多人的第一道坎。原因不在于内容有多深而在于它像一张地图——名词密集、概念抽象、每一段都能单独出题但你要是逐字逐句地背背到第三遍还是记不住多道批处理和分时系统到底差在哪。我自己第一轮复习的时候也是这个状态看到并发和并行就发懵做题时把共享的两种方式写反过两次。后来我把这一章重新拆了一遍发现它其实只有五条主线操作系统是什么、怎么来的、有什么特征、干什么活、内部怎么搭。这五条主线对应教材的五个小节也就是目标与作用、发展过程、基本特征、主要功能、结构设计把它们串成一条链记忆量会立刻降下来。这篇笔记适合三类人正在跟这门课期末周的本科生、准备计算机相关专业考研的同学以及工作几年后想回头把底层知识补扎实的开发者。前100字里我先把核心关键词点明计算机操作系统这门课的第一章操作系统引论本质上是给后面所有章节立规矩——后面的进程管理、内存管理、文件系统全都建立在这一章定义的概念之上。你如果这章含糊第三章讲进程同步时会很难受第五章讲虚拟内存时也会觉得莫名其妙。我给这一章的定位是概念校准章。它不考你复杂计算考的是你对术语边界的把握。比如并发和并行混用就是典型送分题变送命题而虚拟这一特征如果只记住把一个物理实体变成多个逻辑对应物那遇到虚拟处理器、虚拟存储器、虚拟设备三类具体例子时又会卡壳。所以下面的内容我不会按教材顺序平铺而是按理解逻辑重排每一块都告诉你这个概念为什么会被提出来、它在解决什么问题、考试会从哪个角度挖坑。1.1 汤小丹版第一章的知识地图先把整章的节点画清楚心里有数再往下读。第一章的知识点可以归成五组目标与作用四项目标方便性、有效性、可扩充性、开放性、三大作用接口、资源管理者、资源抽象。发展过程无OS阶段、单道批处理、多道批处理、分时、实时、微机OS再加上嵌入式、网络、分布式这几支。四大特征并发、共享、虚拟、异步其中并发和共享互为存在条件。五大功能处理机管理、存储器管理、设备管理、文件管理、用户接口。结构设计简单结构、模块化结构、分层结构、微内核结构、外核结构。这五组不是并列的而是递进关系先定义它是什么再讲它怎么演化出来然后抽出共性特征接着展开具体职能最后落到工程实现的组织方式。你在脑子里只要有这个递进答题时哪怕一时想不起原文也能顺着逻辑推。提示先把这五组标题默写出来比背一百字的定义有用得多。答题时先定位属于哪一组再往里填细节思路不容易乱。1.2 这一章在整本书里的位置很多同学把第一章当成绪论觉得不重要随便看看就翻过去了。这是复习里最容易踩的坑之一。实际上第一章里的每个概念后面都会展开成一整章这里讲处理机管理四个字一带而过第三章就变成进程控制、进程同步、进程通信、调度四大块这里讲存储器管理第四章就展开成内存分配、内存保护、地址映射、内存扩充设备管理文件管理同理。也就是说第一章是全书的名词表你现在糊弄过去后面每章都要回头补课。反过来如果你第一章理解透了后面章节的阅读速度会明显加快。比如第四章讲虚拟存储器时你如果已经清楚虚拟这一特征的通用定义就能马上把它归类成时分复用还是空分复用第三章讲信号量机制时你如果记得共享分互斥共享和同时访问就能理解为什么临界资源必须互斥访问、而磁盘这类资源可以同时访问。所以我一直建议第一章至少读三遍第一遍通读抓主线第二遍对着笔记抠定义第三遍合上书自己复述。2. 操作系统的定义、目标与作用别急着背先理解教材开篇给的操作系统定义比较正式但你要真正记住它得先明白这个词是怎么被逼出来的。想象一台只有CPU、内存、硬盘、键盘显示器的裸机用户可以不可以直接用理论上可以早期确实是人直接操作硬件、拨开关、插线板。问题是效率极低、极易出错而且每个人写的程序都要自己处理硬件细节。于是大家需要一个软件层把硬件细节遮起来、把资源统一管起来这就是操作系统的由来。抓住这个遮细节、管资源的动机后面所有定义都不需要硬背。从工程视角看操作系统承担两种角色向下管硬件向上提供服务。对硬件它负责分配CPU时间、划分内存空间、调度外设、组织磁盘数据对用户它提供命令行、图形界面、系统调用这些接口。你在终端敲一条ls或dir看起来只是列个目录背后其实是一次跨层的调用链用户程序发起请求通过系统调用进入内核内核里的文件系统模块读取目录项再通过设备驱动去访问磁盘最后把结果返回用户态。这条链就是第一章讲的接口和资源管理者两个作用的具体样子。我复习这一节时用了一个笨办法但很有效把四项目标和三大作用分别写在纸的两侧然后自己连线。你会发现方便性和可扩充性基本对应接口这一作用有效性和开放性对应资源管理者这一作用。连完线之后再回看教材的原文记忆就牢固了。2.1 从裸机到资源管理者三层视角的类比我用一个生活类比自己理解了这一节。把计算机系统比作一家酒店裸机硬件是楼、水电、房间设施本身能住人但没人管理就乱套。操作系统是酒店管理层负责分房、调度保洁、维护设备、记账还统一处理客人请求。用户程序是住客只需要向前台提要求不需要自己去接水管、修电梯。这个类比能解释很多事情。比如资源管理者就是分房和调度接口就是前台住客不用直接接触锅炉房资源抽象就是把复杂的硬件变成统一的逻辑资源就像把所有房间统一成标准间大床房这种类型住客只需选类型不用管具体是哪间。注意答题时如果题目问操作系统的作用要答三条作为用户与硬件之间的接口、作为资源的管理者、实现对计算机资源的抽象。第三条最容易被漏但它是理解虚拟存储、虚拟设备的前置概念漏掉会连累后面章节。2.2 四项目标与三大作用怎么对应四项目标我整理成下表顺带把每项目标对应的现实体现列出来方便你理解而不是死记目标含义现实体现方便性让用户不必懂硬件就能用图形界面、命令行、脚本有效性提高资源利用率和系统吞吐量多道批处理、并发执行可扩充性便于增加新功能、适配新硬件模块化、可加载驱动开放性遵循标准便于互连与移植POSIX 标准、开源内核这张表的价值在于当题目问为什么操作系统要追求有效性时你可以从早期硬件昂贵、CPU常常空转这个历史背景切入而不是干巴巴地说为了提高效率。理解背景答案自然就有内容。我在做题时还发现一个规律这四项目标在后续章节都能找到对应技术。有效性对应多道程序设计可扩充性对应微内核与模块化设计开放性对应标准接口。所以第一章的四项目标不是空话它是全书的技术索引。3. 操作系统的发展历程抓住推动力这条暗线发展过程这一节看起来是历史罗列很多同学背得头疼单道批处理、多道批处理、分时、实时、微机、网络、分布式、嵌入式一串名词。但你只要抓住一条暗线——推动力整条线就活了。推动操作系统演变的动力无非四个提高资源利用率、方便用户、硬件更新换代、新应用需求。每出现一个新系统类型都是为了解决前一代的某个痛点。举个例子。单道批处理解决了人工干预多、CPU等待久的问题但它一次只放一道作业进内存作业在做I/O时CPU还是闲着。于是出现了多道批处理同时放多道作业一道做I/O时另一道用CPU。可多道批处理没有交互能力用户提交作业后要等很久才拿到结果于是分时系统登场把CPU时间切成小片轮流分给多个用户让大家感觉独占机器。而有些场景不能容忍超时比如工业控制、导弹制导于是实时系统出现强调及时性和可靠性。提示这一节不要按时间背按痛点—方案背。每一代系统问自己两句它解决了上一代什么问题它自己又留下什么新问题这样记考简答题时能答出逻辑而不是流水账。3.1 手工操作阶段与单道批处理系统最早期的计算机没有操作系统用户直接用机器语言或汇编通过插板、纸带、卡片操作。这个阶段的矛盾非常直白人工操作速度慢而CPU速度快两者差距好几个数量级导致CPU大量空转而且一人独占机器其他用户只能排队。这两个问题直接催生了批处理。单道批处理系统的核心思想是成批提交、自动过渡。用户把一批作业交给系统系统通过监控程序后来的驻留监控程序自动从一个作业转到下一个中间不需要人工干预。它的特征可以概括为三点自动性、顺序性、单道性。自动性指作业自动过渡顺序性指内存中始终只有一道作业按顺序执行单道性则点出了它最大的局限——一次只能放一道。单道批处理解决了一部分人工干预问题但CPU空转依然严重。原因很简单一道作业做I/O时CPU只能干等。这个局限非常关键因为它直接推导出了多道程序设计的必要性。考试如果问为什么要引入多道批处理答案的根就在这。3.2 多道批处理的诞生与它带来的四个新问题多道批处理的核心是多道程序设计技术同时把多道作业装入内存让它们在管理程序控制下交替运行。这样当一道作业因I/O而暂停时CPU可以切换去执行另一道作业资源利用率大幅提升系统吞吐量也随之增加。但代价也很明显教材总结了两个缺点平均周转时间长因为作业要排队等前面的做完没有交互能力用户提交后只能等结果中间无法干预。这两点是后面分时系统出现的直接理由。更值得注意的是多道批处理带来了一堆管理上的新问题教材把它们归成四类处理机管理、内存管理、I/O设备管理、文件管理。你会发现这四个问题恰好就是第一章后面主要功能那一节的雏形也是全书后续各章的主题。所以我说第一章是全书的目录多道批处理这一小节就是目录的源头。我复习到这里时做了一个小测试拿一段简单程序假设它在单道环境下和双道环境下执行看看CPU空闲时间差多少。虽然只是估算但算完一遍之后我对多道程序设计提升资源利用率这个结论就有了量的感觉而不是只记住一句结论。这种动笔算一算的习惯比反复读教材更能对抗遗忘。3.3 分时系统与实时系统两种完全不同的追求分时系统要解决的是多道批处理无交互的痛点。它把处理机时间划分成很短的时间片轮流分配给各个终端用户。每个用户在自己的终端上操作由于时间片很短、轮转很快用户感觉不到别人也在用同一台机器仿佛自己独占。它的特征可以记为四条多路性、独立性、及时性、交互性。其中及时性是指用户请求能在可接受的时间内得到响应而不是像实时系统那样强调硬性截止时间。分时系统要落地关键难点有两个及时接收和及时处理。及时接收要把来自多个终端的输入快速收进来常用办法是增设多路缓冲区及时处理要保证每个用户的请求尽快得到响应依赖合理的调度策略和足够快的CPU。这两个点是简答题常客。实时系统则走向另一个极端。它不太在意资源利用率而是强调及时性和可靠性。教材把它分成两类实时控制系统如工业过程控制和实时信息处理系统如订票、查询系统。这类系统一旦超过截止时间后果可能很严重所以设计上往往牺牲吞吐量换确定性。注意分时的及时性和实时的及时性不是一回事。前者是相对的、人可接受就行后者是硬性的、有明确截止时间。答题时把这两个词区分开是很常见的得分点。3.4 微机、网络、分布式与嵌入式这几支微机操作系统的发展线索是按用户数和任务数递增的单用户单任务如早期磁盘操作系统、单用户多任务如 Windows 系列、多用户多任务如 UNIX、Linux。这条线背后其实是硬件成本下降和交互需求上升的结果。网络操作系统和分布式操作系统容易混。简单说前者强调在各自独立的机器之间提供通信与资源共享每台机器有自己的操作系统更多是协作后者则把多台机器统一成一个整体对外服务任务可以在机器之间迁移用户面对的是一个逻辑上的单一系统。前者是多台机器各自为政但能通信后者是多台机器合成一台。嵌入式操作系统则是为特定设备定制的特点是内核小、实时性可裁剪、可固化在存储芯片里。智能家电、车载系统、可穿戴设备用的都是这一类。这一小节的复习策略是不要逐个背定义而是抓住用户数和任务数两个维度画一张坐标图把各类系统往格子里放再记住每类的代表场景。这样即使考到不常见的名词你也能靠维度推断它的定位。4. 四大基本特征并发、共享、虚拟、异步这一节是第一章的重点也是后续章节反复调用的底层概念。四大特征里并发和共享是最核心的一对虚拟和异步是前两者的延伸结果。我在复习时把这一节当成定义边界课因为这里的每个词都有精确含义混用就会丢分。举个最常见的错误把并发和并行当成同义词。并发是多个事件在同一时间间隔内发生宏观上同时、微观上交替并行是多个事件在同一时刻同时发生需要多个处理机或硬件单元支持。单核机器上多道程序之间是并发多核机器上不同核上的程序可以真正并行。这个区别在考卷的选择题和判断题里出现的频率极高。共享也不是简单地大家一起用。教材把它拆成互斥共享和同时访问两种互斥共享指一段时间内只允许一个进程访问某个资源比如打印机、临界变量同时访问指一段时间内允许多个进程同时访问比如磁盘文件、只读数据。注意这里同时在微观上还是交替的只是在宏观上表现为同时。4.1 并发与共享为什么互为存在条件教材有一句很经典的话并发和共享是操作系统最基本的特征两者互为存在条件。这句话拆开有两层一方面没有并发就谈不上共享因为只有一道程序在跑所有资源都是它的资源共享无从谈起另一方面没有共享并发的程序之间无法交换信息、无法协作并发也就失去意义。我理解这句话用的是食堂的类比多个同学同时来吃饭是并发桌上的菜、窗口、座位是共享资源。如果只有一个人吃饭无并发不存在争抢共享就无从体现如果大家各吃各的、互不接触无共享那也不需要考虑协调。正因为既并发又共享才需要操作系统去调度、去同步。这个理解还能直接迁移到后面的进程同步因为并发进程共享资源所以必须有序因为要保证有序所以引出临界区、信号量、管程这些机制。复习到第三章时你回头看这一句会有原来如此的感觉。4.2 虚拟时分复用和空分复用虚拟这一特征的定义很抽象把一个物理实体变成若干个逻辑上的对应物。但真正要记的是它的两种实现方式时分复用和空分复用。前者是把时间维度切开让多个用户轮流使用同一物理资源比如虚拟处理机、虚拟设备后者是把空间维度切开让每个用户用物理实体的一部分比如虚拟存储器。我用出租的比方帮助记忆时分复用就像会议室按时段出租上午张三用、下午李四用大家用的都是同一间空分复用就像大房间隔成小隔间每人一间用的还是同一套房子。教材里虚拟处理机、虚拟存储器、虚拟设备这三个例子就是对号入座处理机是时段出租设备是时段出租存储器是空间切分。提示考试常考三种虚拟技术的对应关系。记住虚拟处理机、虚拟设备走时分复用虚拟存储器走空分复用。这条对应关系答错后面的解释再漂亮也拿不到分。4.3 异步为什么程序会走走停停异步是指进程以不可预知的速度向前推进走走停停。它之所以出现恰恰是因为并发和共享多个进程争用同一资源谁先拿到、能跑多久都不确定所以每个进程的运行节奏是不可预测的。异步带来的直接后果是结果不可再现。同一组程序运行两次可能得到不同的执行顺序甚至得到不同的结果如果没做好同步。这正是操作系统必须提供进程同步机制的根本原因。所以你看异步这一特征并不是单独存在的它是并发和共享的必然产物同时又反过来要求操作系统提供同步手段。我在复习时把四者的关系总结成一句话并发和共享是前提虚拟是手段异步是结果同步是补救。这句话不需要背理解之后自然能写出来。考简答题时如果题目问为什么说异步是操作系统的基本特征你从并发共享导致执行顺序不确定切入再补充因此需要同步机制保证结果可再现基本就能拿满分。5. 五大管理功能把第一章和后面各章接上主要功能这一节看似只是罗列其实它是全书各章的提纲。它把系统要干的活分成五块处理机管理、存储器管理、设备管理、文件管理、用户接口。每一块后面都对应一到两章所以这里每多理解一分后面就少痛苦一分。我复习这一节的方法是反向索引先列出五块再给每块写出它在后续章节对应的具体技术。比如处理机管理对应进程控制、同步、通信、调度存储器管理对应内存分配、保护、地址映射、扩充设备管理对应缓冲、分配、处理、虚拟设备文件管理对应存储空间管理、目录管理、读写保护用户接口对应命令接口和程序接口。写一遍整本书的知识体系就清楚了。这里还要强调一点五大管理功能不是五件独立的事它们之间有大量交叉。比如虚拟存储器既要存储器管理参与也要处理机管理在缺页时介入文件系统读盘要经过设备管理进程调度又要和内存分配配合。理解这种交叉才能看懂后面各章为什么反复出现进程被阻塞缺页中断这类交叉场景。5.1 处理机管理到底管什么处理机管理教材归纳为四件事进程控制、进程同步、进程通信、调度。我用一句话串起来进程控制负责进程的生老病死创建、撤销、状态转换进程同步负责让共享资源的进程有序推进进程通信负责让进程之间交换信息调度负责从一堆就绪进程里挑一个上CPU。这四件事的排列顺序不是随意的。先有进程、才有同步问题同步解决不了的消息传递需求催生通信而通信和同步又要靠调度来分配执行机会。所以你在复习第三章时可以反复回到这一条主线一切的起点是进程这个抽象一切的目的都是让并发进程协调运行。注意处理机管理里的调度分三级——高级调度作业调度、中级调度内存调度、低级调度进程调度。第一章通常只提个名字第三章才展开。如果你在第一章就先把三级调度的名字记住第三章学起来会轻松很多。5.2 存储器管理与设备管理的职责划分存储器管理的四件事内存分配、内存保护、地址映射、内存扩充。前两件好理解分配就是把空间分给进程保护就是防止进程越界访问地址映射是把逻辑地址翻译成物理地址因为程序编译后用的是逻辑地址内存扩充则是借助虚拟存储技术让程序在有限内存上运行得更大本质上是用时间换空间。设备管理的四件事缓冲管理、设备分配、设备处理、虚拟设备。缓冲管理是为了缓和CPU与外设的速度差设备分配是决定哪个进程用哪台设备设备处理是驱动设备的实际动作虚拟设备则是通过SPOOLing技术把独占设备变成可共享的虚拟设备。这里的SPOOLing技术是考点核心是用磁盘上的缓冲区模拟独占设备让多个进程看起来同时拥有它。这两块有个共同的考试套路让你指出某个技术属于哪一类管理。比如缺页中断属于哪类管理——既涉及存储器管理缺页处理又涉及处理机管理中断处理答的时候要看题目问的是主要归属还是具体环节。我踩过这个坑题目问缺页中断处理由哪个功能模块负责我先答了处理机管理其实教材强调的是存储器管理中的内存扩充部分。5.3 文件管理与用户接口系统调用是关键文件管理包括文件存储空间管理、目录管理、文件读写管理与保护。它的目标是让用户按名存取不必关心数据在磁盘的物理位置。目录管理负责把文件名映射到物理位置读写管理负责实际的存取操作保护则涉及权限控制。用户接口分两类命令接口和程序接口。命令接口又分联机交互式和脱机批处理式即作业控制语言程序接口就是系统调用的集合。系统调用是这一节最核心的概念因为它是用户程序进入内核的唯一正规入口。系统调用和库函数容易混。库函数运行在用户态是一段普通的代码系统调用需要陷入内核由内核执行特权操作。很多库函数其实是对系统调用的封装比如C标准库里的文件操作函数内部会调用内核提供的读写调用。理解这层关系你在学第四章中断与系统调用、第五章文件操作时会顺畅很多。接口类型使用场景典型形式命令接口联机交互式操作终端命令命令接口脱机批处理作业作业控制脚本程序接口程序中请求内核服务系统调用6. 结构设计流派从单体到微内核的演进逻辑结构设计这一节讲的是操作系统内部怎么组织代码。它有五类简单结构、模块化结构、分层结构、微内核结构、外核结构。乍看是五个独立概念其实是一条演进路线从什么都塞一起到松散便于维护再到只留最小内核。理解演进逻辑比记五段定义划算得多。简单结构的代表是早期的磁盘操作系统这类系统特点是接口和层次不分模块之间可以随意调用写起来快但一改就牵一发动全身。模块化结构把系统拆成独立模块规定好接口提高了可维护性但还是存在模块间可以互相调用、接口不确定的问题。分层结构更严格每一层只能调用下层调试方便、易于验证代价是效率下降因为请求要一层层穿过去。微内核结构的思路完全不同只把最基本的功能进程管理、低级存储管理、中断处理等留在内核其他服务文件系统、设备驱动、网络都放到用户态。好处是内核小、易扩展、可靠性高一个服务崩溃不一定拖垮内核代价是用户态和内核态之间频繁切换性能有损耗。外核更进一步把资源的保护与分配分离让用户程序自己管理资源。6.1 各结构的优缺点对照表我把这五种结构整理成下表考简答题时直接调用即可结构核心思想优点缺点简单结构模块混在一起无明确层次实现简单、开销小难以维护、易出错模块化结构拆成模块定义接口可维护性提高、可并行开发接口不统一、模块耦合仍强分层结构每层只调下层易于调试和验证层次多、效率低微内核结构内核只留最小功能可扩展、可靠、可移植频繁态切换、性能下降外核结构内核只做保护与分配灵活、减少抽象层开销编程复杂、管理难度大这张表的好处是无论题目问哪一种结构的优缺点你都能从耦合度、性能、可维护性、可靠性四个维度去推。我在考场上就靠这四个维度临时推过一道完全没背过的题虽然写不全但方向不会错。6.2 为什么现代系统选择了微内核加模块化的混搭这里有一个常见疑问既然微内核性能差为什么现代系统还在往这个方向走我的理解是微内核的价值不在于性能而在于可靠性、可扩展性和可移植性。当系统要支持不断增多的硬件和功能时把新功能放到用户态、只通过消息传递和内核交互比改动内核安全得多。现实中更常见的是混合方案内核保留一部分核心服务以保性能同时以模块形式支持动态加载驱动。这样既不牺牲太多性能又保留了扩展能力。理解这一点你对结构设计这一节的把握就从背书升级到了理解趋势答题时也能写出更有深度的判断。7. 几个高频混淆点管程、协程、系统调用、库函数复习这一章时很多同学会带着网上的热词一起搜最常见的就是管程和协程。这两个词都和并发有关但层面完全不同混在一起记会越记越乱。我在这里单独拆开讲顺便把系统调用和库函数的区别也一并说清。先把边界划清管程是同步机制是操作系统教材里的经典概念用于解决进程互斥与同步协程是用户态的执行单元是编程语言层面的调度单位和操作系统内核调度不是一回事。一个偏原理一个偏工程实现。你如果在第一章就把这两个词区分清楚后面学到进程同步时不会串。7.1 管程到底是什么为什么要有它管程Monitor是一种高级同步机制它的核心思路是把共享变量和对共享变量的所有操作封装在一起形成一个模块并且保证在任一时刻只有一个进程能进入管程内部执行。它由三部分组成共享数据结构、对数据结构操作的过程、对共享数据初始化的语句。它解决的是信号量机制分散、易错的问题。用信号量做同步时wait和signal操作散布在程序的各个地方一旦漏写或写错位置就会出现死锁或同步失效。管程把同步逻辑集中封装配合条件变量使用让并发控制更结构化。管程的同步依赖两个操作等待和唤醒。当进程在管程内发现条件不满足时调用等待挂起自己并释放管程另一个进程改变条件后调用唤醒把等待的进程重新唤醒。这套机制是第三章进程同步的重点但在第一章就把概念分清后面会省力很多。提示管程的关键词是封装和互斥进入它保证的是同一时刻只有一个进程在管程内活动。别把它和进程混为一谈管程是容纳操作的结构不是执行体。7.2 协程和管程、线程的关系协程Coroutine是用户态的轻量级执行单元特点是协作式调度——它主动让出执行权而不是被内核强制抢占。因为切换发生在用户态不需要陷入内核所以开销比线程小得多适合高并发IO密集型场景。很多语言都提供了协程支持比如 Go 的 goroutine、Python 的异步协程、Lua 的 coroutine。它和线程的区别可以概括为线程由内核调度、切换要陷入内核协程由用户程序或运行时调度、切换在用户态完成。它和管程的区别是管程是同步原语回答的是多个执行流如何有序访问共享资源协程是执行流本身回答的是如何用更低开销并发执行任务。两者不是同一层面的东西放在一起比较就像拿锁和线程比较。举个最简单的例子下面这段 Go 代码启动两个协程并发执行package main import ( fmt sync ) func main() { var wg sync.WaitGroup wg.Add(2) go func() { defer wg.Done() fmt.Println(协程 A 执行) }() go func() { defer wg.Done() fmt.Println(协程 B 执行) }() wg.Wait() }这段程序里两个协程由运行时调度但底层的操作系统线程数量可能远少于协程数量。这正是用户态调度带来的优势。不过要注意协程虽然轻量但共享资源时仍然需要同步机制管程、互斥锁这些概念照样用得上。所以两者不是替代关系而是配合关系。对比项管程协程本质同步机制执行单元所在层面操作系统原理语言/运行时解决的问题共享资源有序访问降低并发切换开销调度方式不涉及调度用户态协作式调度8. 复习与做题的实战打法概念都过一遍之后剩下的就是怎么把它们变成分数。这一章我建议分三轮推进第一轮通读抓主线第二轮精读抠定义第三轮合书复述加做题。每一轮的目标不同混着来效率最低。第一轮大概花四十分钟不追求记住细节只求能画出上一节那张知识地图并且能合上书说出五组大标题。第二轮要慢逐字对照教材把每个概念的定义、特征、优缺点抄成自己的话重点是把并发与并行互斥共享与同时访问分时及时性与实时及时性这几对区分清楚。第三轮最痛苦也最有效合上书对着空白纸默写操作系统的目标、作用、基本特征和主要功能能写多少写多少再对照教材补漏。这种主动回忆比反复读效率高好几倍我自己用这个方法第一章的记忆保持时间明显长于只读不写的科目。做题时有个技巧先判断考点属于哪一组再按那一组的框架作答。比如题目问为什么引入多道批处理先定位到发展过程组再套用痛点—方案框架答出单道批处理的局限、多道并发的资源利用率提升、以及它带来的四个新管理问题。这样答案结构清晰踩分点也全。8.1 我踩过的三个坑第一个坑是把并发当并行。当时做判断题题目说单处理机系统中进程可以并行执行我犹豫了一下答了对其实是错的单处理机上只能并发。后来我给自己定了个口诀并行要硬件并发看时间。第二个坑是虚拟技术对应记反。虚拟处理机和虚拟设备用时分复用虚拟存储器用空分复用我一开始全写成时分选择题连错两道。解决办法是记住时间靠轮流空间靠切分处理机和设备是轮流使用存储器是切块使用。第三个坑是微内核认为性能更好。实际恰恰相反微内核因为频繁态切换性能通常不如宏内核它的优势是可靠和可扩展。这个坑在简答题里很致命因为一旦写反后面论证全部作废。8.2 常见问题速查表常见问题正确理解易错点并发和并行怎么区分并发看时间间隔并行看同一时刻单核只有并发共享的两种方式互斥共享、同时访问同时访问不是真同时虚拟技术分类处理机/设备用时分存储器用空分别全写时分异步的根源并发共享导致执行顺序不确定与随机不是一回事分时与实时的及时性分时是相对及时实时是硬性截止两者不能互换微内核的优劣可靠可扩展但性能有损耗别说性能更好管程与协程前者是同步机制后者是执行单元不同层面不可比提示这张表建议打印出来贴在书桌前每轮复习前扫一遍。考试前最后一晚看一遍性价比极高。9. 给不同基础读者的补充建议零基础的同学我建议先别急着抠定义而是先建立一个整体印象找一段讲操作系统作用的通俗视频或入门材料看一遍知道它是干什么的再回来读教材。这样你在读到资源管理者接口这些词时脑子里有具体画面不至于干巴巴地背书。基础薄的同学尤其要注意第一章的名词密度很高硬啃容易劝退先建立框架再填细节是更稳的路径。已经有编程经验的同学可以把第一章和实际代码对照着看。比如写一段多线程程序观察线程的并发执行、共享变量的问题、加锁后的效果再回头读并发、共享、同步这几节你会发现教材讲的不是理论而是你天天在用的东西。有工作经验的读者重点可以放在结构设计和系统调用这两块因为它们和实际的系统编程、性能调优关系最紧。慕课版教材和汤小丹老师的版本在第一章内容上大体一致但章节标题和例题可能有细微差别复习时以老师课上划的重点为准笔记里的概念定义保持一致。我个人的做法是平时用教材建立体系考前用课堂笔记和高频考点做冲刺两边互相补充效果最好。9.1 背诵与理解怎么平衡这一章的名词多很多同学陷入背了忘、忘了背的循环。我的经验是能理解的绝不硬背必须硬背的编成口诀。比如四项目标方便、有效、可扩充、开放我记成方有可开四大特征并发、共享、虚拟、异步我只记并发共享是根虚拟异步是果前半句理解、后半句推导。这样即使考场上紧张也能靠逻辑把定义补回来。共 4 条其中2条要靠理解记忆2条可以靠推导。凡是能用为什么推出来的就不要背。凡是纯约定、无逻辑的比如某个技术的英文缩写才用重复记忆。复习时间有限时把力气花在理解型内容上回报更高。9.2 这一章最容易出错的环节最后再强调一遍易错环节。定义混淆是第一大类典型是并发与并行、互斥共享与同时访问、分时及时性与实时及时性。分类归属是第二大类比如问某个技术属于哪部分管理缺页中断、SPOOLing、缓冲管理这些都要能对号入座。结构与性能的对应是第三大类特别是微内核可靠但性能稍逊这个结论千万别记反。我自己复盘时发现出错最多的不是没背而是背了但记反、记串。所以复习后期我把所有成对的概念单独抽出来做了一张对照表反复比对。这个方法没什么技术含量但确实管用——成对的概念放在一起看差异才看得清。10. 最后聊两句我的复习节奏我在实际复习这门课时第一章花了整整三天比很多人预想的要久。但后面用到它的地方太多了这三天其实是在给整个学期省时间。我的节奏是第一天读教材加画知识地图第二天抠定义加做对照表第三天合书复述加刷选择题。第三天最折磨人写不出来的时候很想翻书但咬牙写完再对照记忆效果是翻书的好几倍。如果时间紧我的建议是优先保证四大特征、五大功能、系统调用这几块的理解发展过程和结构设计可以适当简化只记痛点—方案和优缺点四维度这两套推导框架。考场上哪怕是没见过的小问你也能靠框架推出个大概比空着强。还有就是别怕第一遍看不懂。我第一遍读微内核那段时完全没感觉读第三遍、配合实际系统的例子才慢慢理解。第一章的内容就是这样的它在书的最前面却要用后面整本书去验证。你现在觉得抽象的地方等学到进程和内存时回头看自然就通了。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

《网络管理》教学大纲设计:从SNMP到网管平台的三层落地 2026/9/30 3:01:21

《网络管理》教学大纲设计:从SNMP到网管平台的三层落地

简介:《网络管理》教学大纲.doc面向高校计算机网络工程、计算机科学与技术等专业的本科生与授课教师,提供一份完整的专业必修课教学纲领,帮助读者快速把握课程定位、学时分配与知识脉络。资源包共1个doc文件,约66KB,内…

阅读更多 →
AZ-204备考全攻略:题库拆解、实验命令与避坑指南 2026/9/30 3:01:21

AZ-204备考全攻略:题库拆解、实验命令与避坑指南

简介:面向微软 AZ-204 认证考试的 2022 年最新题库,覆盖 Azure 虚拟机迁移、资源管理器模板安全存储密码、AKS 容器部署等核心考点,适合正在备考 Azure 开发人员认证的开发者用于刷题与查漏补缺。压缩包内仅有 1 个 PDF 文件,大小…

阅读更多 →
从零构建基于Raft的高性能分布式KV存储:架构、读写优化与WAL设计 2026/9/30 3:01:21

从零构建基于Raft的高性能分布式KV存储:架构、读写优化与WAL设计

“自研基于Raft的高性能分布式KV存储系统(一)”——这个标题我在立项时想了很久。市面上已经有 etcd、Consul、ZooKeeper 这些强一致组件,为什么还要自己造轮子?原因很简单:我需要一个能支撑高并发读写、可定制存储引擎…

阅读更多 →
自研Raft+LSM分布式KV存储:架构设计与性能优化实践 2026/9/30 3:01:21

自研Raft+LSM分布式KV存储:架构设计与性能优化实践

做后端时间长了,总会跟"一致性"较上劲。之前维护过一个 Redis 主从集群,主节点一宕机,从节点顶上来的那几秒里,缓存里的数据是能丢的;后来换过 ETCD,一致性倒是没问题了,但存业务数据…

阅读更多 →
Kafka实战:核心概念与Producer/Consumer调优指南 2026/9/30 3:01:21

Kafka实战:核心概念与Producer/Consumer调优指南

1. 先搞清楚Kafka的"骨架":Producer与Consumer在整套体系里的位置很多人一聊Kafka就甩出"高吞吐""分布式""消息队列"这些标签,但真到自己动手搭集群、写生产者消费者代码的时候,往往被一堆概念卡住&…

阅读更多 →
百考通AI辅助毕业论文全流程实战:从选题到降重避坑指南 2026/9/30 3:01:08

百考通AI辅助毕业论文全流程实战:从选题到降重避坑指南

又到毕业季,宿舍楼里飘着打印店的油墨味,图书馆走廊里全是抱着电脑来回踱步的人。写论文这件事,几乎把所有人的耐心和睡眠一起磨没了。选题改了七次、框架推倒重来、文献读了五十篇还是下不了笔、查重报告红得跟番茄炒蛋似的——这些场景我太…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉