恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

操作系统概念第1章导读:中断、DMA、存储层次与双模式操作

  • 首页
  • 资讯中心
  • /
  • 操作系统概念第1章导读:中断、DMA、存储层次与双模式操作

相关资讯

基于MATLAB+YALMIP+Gurobi的源荷不确定性机组调度优化实现 2026/10/15 5:10:18
停用模型为何成电影人香饽饽?AI视频深度定制与电影工业的碰撞 2026/10/15 5:10:18
STM32 HAL库驱动SG90舵机:PWM定时器配置与实战调参 2026/10/15 5:10:18

最新资讯

基于FastAdmin的多场馆预约系统开发与部署实战
自营交易平台暴雷:80万美金账面利润为何提不出来?
用TqSdk从零搭建期货量化交易:行情订阅到自动化委托全流程实践
FPGA第一次实验避坑指南:从环境搭建到上板调试
Java接口从基础语法到工程实践:默认方法、抽象类与多实现冲突全解析
GPT-5.4能自己操作电脑?AI Agent从聊天到动手干活的技术解析

今日推荐

AI视频生成的时间一致性难题与时空建模演进
基于bbox的PDF文档解析:多栏重排与水印过滤实战
探矿数据进RAG前的清洗全攻略:TXT、Word、PDF、网页四类文档处理实践

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

操作系统概念第1章导读:中断、DMA、存储层次与双模式操作

发布时间:2026/10/15 5:10:18
操作系统概念第1章导读:中断、DMA、存储层次与双模式操作 很多学过《Operating System Concepts》的人都有同感第1章绪论是最容易被翻过去的一章。刚开学时觉得这就是概念介绍等学到进程同步、虚拟内存、文件系统时再回头才发现当初漏掉的中断、缓存一致性、双模式操作每一个都是后面章节的地基。开这个《操作系统概念》课程学习系列第1篇就从Chapter 1 Introduction开始把绪论里埋下的线头逐个捋清楚顺便把我自己上课、复习、做题时踩过的坑和总结的学习方法一起放进来。适合正在上操作系统课的同学、准备考研复试的读者以及想系统补基础但一直卡在入门劝退的人。1. 为什么把第1章读厚一次开机背后的四层协同1.1 从电源键到shell引导过程的完整链路很多人学操作系统学的是一堆孤立的名词等到串起来的时候才发现操作系统真正干活的现场是一次开机事件。按下电源键之后计算机首先要执行的不是操作系统代码而是固件里的引导程序——硬件会把CPU入口地址固定指向某个ROM芯片中的指令这个环节教材里通常用bootstrap program来描述。这段引导程序做的事情非常枯燥但极其关键做硬件自检、初始化CPU寄存器、检测内存大小与I/O设备状态然后把操作系统内核从磁盘读进内存、跳转到内核入口。之后内核才会接管设备、初始化中断向量表、建立内存管理所需的基础数据结构最后启动第一个用户进程比如Linux下的init或systemd。到了这一步你看到的可能是命令行提示符也可能是桌面环境登录界面。我当初在理解这个过程时容易犯一个错以为引导程序是操作系统的一部分想当然地把BIOS和OS混为一谈。后来才反应过来引导程序是在操作系统之前运行的软件它的职责是把操作系统拉起来而不是管理计算机资源。这个区分虽然在第1章只是几行字但理解不透后面学内核模块系统启动日志分析时会很别扭。1.2 中断与DMA数据路径上的两个节流阀第1章里有个高频考点操作系统是中断驱动的interrupt-driven。这句话听起来很玄翻译成大白话就是平时CPU该干嘛干嘛只有当硬件设备有事情要找它时它才会暂时放下手头工作去处理。比如键盘敲了一下键盘控制器发一个中断信号给CPU磁盘读完一块数据磁盘控制器发一个中断信号CPU暂停当前指令流跳转到对应的中断处理程序。中断处理的具体流程值得手写一遍光在脑子里过是记不牢的。硬件收到中断信号后CPU会先保存当前指令的执行现场寄存器、程序计数器然后根据中断向量查表跳转到对应服务程序处理完再恢复现场继续原来的指令。这里面有个容易被出题人盯住的细节中断向量表是操作系统在启动阶段就布置好的不同的中断号对应不同设备的中断处理例程。教材里还提到DMA。为什么需要DMA因为没有DMA的时候每次传输一块数据都要CPU亲自搬一遍从磁盘缓冲区搬到内存CPU全被搬运工占用了别的计算全耽误了。DMA控制器做的事情是CPU设置好源地址、目的地址、传输长度之后就可以放手不管由DMA控制器直接在主存和设备之间搬运数据搬运完再发一个中断通知CPU。这相当于外包物流——这省出来的CPU时间正是操作系统能同时处理很多任务的基础。1.3 四层结构里用户态与内核态的分界点第1章最经典的一张图就是计算机系统的分层结构硬件在最底层操作系统在硬件之上再往上是应用程序最顶层是用户。这个图我在第一遍看的时候觉得太简单了直到复习时才琢磨出味道分层真正的意义不是画起来好看而是每一层的接口是受限的。用户程序不能直接执行特权指令不能直接改内存映射、不能直接触发设备读写必须通过系统调用进入内核态由操作系统代做。这引出了两个术语内核态kernel mode和用户态user mode。硬件上通常用某个状态位区分当前CPU处于哪个态而双模式操作dual-mode operation这个机制保证了用户程序即使写错了代码也不能把整个系统搞崩——最多把自己的进程搞崩。我当时整理笔记时画过一张对比表很管用也顺手分享在这里项目用户态内核态可访问指令集普通指令特权指令普通指令地址空间访问受限于自身地址空间全部内存空间典型场景用户进程运行系统调用、中断处理、设备驱动状态切换入口无中断、陷阱、系统调用明白这张表第1章的双模式就算过关了。后面学系统调用、进程上下文切换时你会反复回到这个表找答案。2. 存储层次第1章里最像投资组合的一张表2.1 用钱包、背包和仓库来理解存储金字塔存储层次结构memory hierarchy是第1章最接近工程实践的内容。从上到下依次是寄存器、高速缓存、主存RAM、固态盘、机械硬盘每往下一层容量变大速度变慢单位成本变低。教材里通常画成一个金字塔我复习时习惯给它起外号叫资金分配表寄存器相当于钱包缓存相当于随身背包主存相当于家里书柜硬盘相当于地下仓库。钱包容量最小但取用最快仓库容量最大但来回跑一趟时间很长。计算机之所以要搞这么复杂本质上是成本限制如果全机都用寄存器级别的速度做存储价格高到无法商用。所以系统的存储调度策略就是热数据放上层冷数据放下层操作系统、编译器、硬件各自在不同层级上做数据搬运。做题时容易踩的坑是把缓存和主存的速度差距想成几倍实际差几十到上百倍。寄存器访问通常在一个时钟周期内完成主存访问需要几百个时钟周期硬盘则是毫秒级。这个数量级概念贯穿后面磁盘调度、虚拟内存的学习——没有量级概念很多调度算法看起来像是在做无用功。2.2 局部性原理不是玄学是策略的根基缓存之所以能起作用是因为程序访问内存时存在两个局部性时间局部性和空间局部性。时间局部性指刚访问过的数据很快还会再访问典型例子是循环里的计数变量空间局部性指访问了某个地址后邻近地址也大概率被访问典型例子是数组的顺序遍历。我见过很多同学直接跳过了这个小节觉得这是计组的内容。但只要稍微往后翻几章就知道缓存一致性、页面置换算法、磁盘调度全部建立在局部性之上。第1章之所以讲局部性是要给你一个性能幻觉的解释操作系统让程序以为内存很大、访问很快靠的就是一层层缓存把局部性放大。2.3 缓存一致性问题第1章埋下的一个雷多处理器环境下同一个内存地址的数据可能被多个CPU核各自的缓存复制了一份。CPU A改了某个变量的值只改了它的本地缓存CPU B缓存的还是旧值两个核读到的数据就不一致了。这个缓存一致性cache coherence问题在第1章通常只是提一句但它是后面学多核同步原语的真正动机之一。我当时在复习时写了一个特别朴素的比喻多个CPU核就像多个合伙记账的人各自有个小本子记录收支如果有人在自己小本子上改了账又没通知别人月底对账时就乱了。必须有一套协议保证大家要么看到相同的旧值要么看到相同的新值。顺着这个比喻去理解后面要学的锁、原子操作、内存屏障方向就差不了。第1章可能不会考缓存一致性的细节但它会提醒你操作系统管理的不是单块裸机而是一台内部正在高速协作的复杂设备。3. 三组容易被绕晕的概念多道程序、多任务与多处理3.1 多道程序和多任务一个为了利用率一个为了响应教材中文版对multiprogramming和multitasking的翻译在不同版本里有差别但核心区分非常明确多道程序的目标是提高CPU利用率当当前进程在等待I/O时CPU切换到另一个进程去执行多任务是在多道程序基础上增加了时间片轮转每个进程只运行一小段时间就切换目标是让每个用户都能得到可接受的响应时间。举一个洗衣服烧水的例子如果你只有一台洗衣机和一台电水壶人在等洗衣机时可以去烧水这就是多道程序思想——人不会闲等设备。而多任务就像是同时烧好几壶不同温度要求的水每隔一段时间看看哪壶快开了轮流照顾一下保证每壶水都在推进。考试时常见的辨析题会问你分时系统的核心是哪个答案是多任务因为分时系统正是通过时间片轮转让多个用户都能及时看到程序运行结果。多道程序本身并不保证响应及时它只是让CPU闲置的时间变少。两个词的战略目标完全不同。3.2 并行与并发第1章就埋在进程管理前的骨架并行parallelism和并发concurrency是操作系统课程最重要的概念对之一。并发是逻辑上同时发生在一个单核CPU上通过快速切换任务来模拟并行是物理上同时发生需要多颗核心真正地同时执行多条指令。教材在第1章的描述里其实已经点出来了但很多人没在意直到第4章进程、第5章线程时才回来补课。建议在第一遍学习时就用餐厅后厨做例子并发是只有一个厨师切菜炒菜来回倒腾并行是有两个厨师一个切菜一个炒菜同时进行。学调度算法时并发决定了你需要在多个进程之间做选择学多线程时并行决定了能否真正减少总运行时间——但注意很多任务受锁竞争影响增加并行度反而变慢这是后话。3.3 SMP与多核理解操作系统在一台机器上管理的多颗CPU对称多处理SMP指的是多个处理器对称共享内存和I/O操作系统把进程调度到任何一个处理器上执行Anytime任何一颗CPU都可以运行操作系统内核代码或用户代码。多核multicore是在单颗芯片内部集成多个CPU核但对外仍然是一个处理器插槽。这两个概念的区别第1章讲得挺细SMP关注的是多个处理器如何共享内存并维持一致性多核关注的是芯片内部的通信成本比芯片间低因此核间同步开销更小。做题时有个高频选项多核处理器比多处理器系统的优势之一是核间通信速度更快因为物理距离更近、片内互联带宽更高。这个结论看起来很顺理成章但如果不看书很容易漏。我刚学到这里时会把SMP和负载均衡联想在一起。操作系统在SMP系统上需要额外决定哪些进程放在哪颗CPU上这就是处理器亲和性后面学优先级与调度时会再展开。第1章虽然只给了定义但框架感极强。4. 操作系统管事的五大维度从进程到安全的职责清单4.1 进程与内存管理操作系统最重要的两个会计第1章后半部分开始讲操作系统的功能能概括为五大块进程管理、内存管理、存储管理、保护与安全、系统调用与用户接口。其中进程管理和内存管理是重中之重。进程管理的核心工作是CPU时间的分配包括创建进程、暂停进程、恢复进程、进程间通信与同步。它的下层资源是CPU是世界上最贵的资源之一所以调度算法决定谁先吃这块蛋糕。内存管理干的则是空间分配操作系统要跟踪内存里哪些部分被谁占用、哪些空闲根据策略分配和回收空间还要在虚拟内存场景下处理内存超出物理容量的映射问题。教材里有一句话很精辟操作系统通过内存管理让程序假装自己拥有完整的地址空间。这句话在学虚拟内存时会被反复验证。我把进程管理和内存管理比作两个会计一个管时间账本每个进程分到了多少CPU时间一个管空间账本每个进程占了哪块内存。操作系统本身像一个管家定时检查两个账本有没有冲突。很多同学学完第1章只记住了四大管理功能的名字而没有意识到它们是围绕时间和空间两条主线展开的这条主线在后续所有章节中都不会断。4.2 存储与文件管理把磁盘整理成用户看得懂的档案柜存储管理针对的是磁盘这类二级存储实际落地的产品就是文件系统。操作系统要把磁盘这种块设备抽象成文件、目录、路径让用户不需要关心数据在磁盘的哪个扇区。这个概念第1章只给了提纲——卷、目录、文件属性、挂载mount但你应该从这一章就开始建立抽象意识操作系统的每一项发明本质上是简化了一种资源的访问方式。举个例子没有文件系统时你写程序要自己算清楚数据的柱面号、磁头号、扇区号底层细节多到让人崩溃。文件系统提供的文件相当于把一块磁盘变成一个有目录的档案柜你只需要记住档案编号不需要知道档案在第几排第几格。后面的文件系统章节会讲索引节点、目录项、软链接硬链接都是在这个抽象之上增砖添瓦。4.3 保护与安全墙和锁要分开认识教材把protection和security分成两个词protection是防止内部进程越权访问其他进程/系统的资源security是防止外部攻击与非法访问。我用一句话记忆protection管的是自己人别乱窜门security管的是外人别进来偷东西。两者的实现基础都离不开第1章的双模式操作和特权指令。只有内核态才有权修改页表、文件权限、用户身份信息用户态的程序必须通过系统调用而系统调用入口处会做权限检查。比如说用户程序想直接读另一个进程的内存硬件会拦截因为它发出的是普通指令而不是通过合法的访问途径即使是在内核态不同模块之间也有访问控制机制。这块内容看似少但为后面学访问控制矩阵、加密、认证做铺垫。第1章的阅读目标不是掌握细节而是明白操作系统不只是资源分配器它同时是看门人。资源分配和监督守护是同一个硬币的两面。5. 计算环境变化对第1章的重新翻译从大型机到云计算5.1 传统环境与移动环境里的资源哲学教材后面几节开始讨论计算环境的变化从传统PC到移动设备、客户端-服务器、点对点、云计算、实时嵌入式系统。很多同学觉得这部分不是考点于是跳过去。但恰恰是这些环境变化告诉你操作系统的设计决策不是普适的而是与环境约束强相关。传统PC时代目标是通用性和多任务处理一个用户可能同时开了浏览器、编译器和音乐播放器。移动环境iOS或Android则更强调功耗与资源隔离后台任务被严格限制原因很简单电池容量有限CPU随时多开任务会让设备迅速发热、电量骤降。嵌入式/实时系统更激进它要求任务必须在截止时间前完成比如汽车安全气囊控制或工业机械臂系统行为的确定性比平均性能更重要。这就解释了为什么同一本教材要把环境单独拎出来讲你不理解运行环境就不明白为什么同样是操作系统有的强调吞吐率、有的强调响应时间、有的强调截止时间。5.2 虚拟化与云计算把硬件变成可切片的面包第1章末尾会介绍虚拟化virtualization和云计算cloud computing。虚拟化的核心是将一台物理机模拟成多台虚拟机或者将多台物理机抽象成一台逻辑机。第1章不需要你掌握VMM虚拟机监控器的实现细节但需要你理解一个上位概念虚拟机监控器本身也是软件它运行在硬件之上为每个客户操作系统虚拟出一套CPU、内存、磁盘接口。云计算则是把这种能力变成服务你不用买服务器按需租用一段计算资源弹性扩缩容。举一个比较生活化的场景你想开一家自制果汁店传统PC相当于自己买全套榨汁设备云计算相当于借用共享厨房里的榨汁机用几分钟付几分钟钱。虚拟化之所以能成为云计算的基石是因为它把硬件资源的边界打破了资源的分配从物理边界变成软件边界。5.3 开源与标准操作系统生态里那股看不见的推力教材这部分还会提到开源软件与标准。Linux、BSD、Android这些开源项目让操作系统教学和研究得以在真实代码上展开而不只是停留在书本上的理论POSIX等标准则为不同系统之间的兼容性提供了公约。说句实在话如果你以后想读操作系统方向的源码第1章提到的开源运动背景是很有用的认知铺垫。看Linux内核代码时你会遇到Kconfig、模块机制、设备树这些东西它们不是凭空设计的而是几十年开源协作沉淀下来的工程决策。第1章虽然只给了几段历史叙述但它是让你从使用操作系统切换到研究操作系统的认知开关。6. 我给第1章设计的复习闭环笔记、图解、三遍阅读法6.1 三遍阅读法轻读到重读再到翻查第1章内容杂而不深最适合用来训练三遍阅读法。第一遍是轻读像看小说一样从头到尾翻完不求记住细节只求建立全局地图第二遍是重读边读边划线把每一节的核心概念提炼成一句话第三遍是翻查带着后续章节的问题回来找依据比如学到页错误时回来翻缓存与存储层次那一节。这个方法看起来笨但实操下来很管用。第一遍读大约需要两小时第二遍需要三小时左右第三遍是长期的过程伴随你的整个学期。我建议每章都做一张A4纸章节地图第1章的地图长这样计算机组成四层 → 中断与DMA → 存储层次与局部性 → 多道程序/多任务/多处理 → 操作系统五大功能 → 计算环境。学期末复习时手里有六张纸比翻三百页书轻松得多。6.2 用提问式自测代替死记出题人视角我一直觉得操作系统这类课用死记硬背的方式学效率极低因为它考的是机制带来的后果。我在第1章复习时会给自己提三类问题第一类概念边界问题多道程序和分时的目标分别是什么并行和并发分别在什么硬件条件下成立第二类流程细节问题一次磁盘读取从CPU发出请求到收到中断中间经历了哪些步骤第三类设计动机问题如果没有DMA系统会变成什么样如果没有双模式用户程序能破坏系统吗不要小看这些问题它们恰好是出题人用来区分读过书和理解书的两类考生的标准。平时学到一个小节如果能闭眼把这三种问题各出一道并自行作答这个知识点的留存率会高很多。6.3 我踩过的弯路和调整第一次学第1章时我犯过一个典型错误试图把每一个英文缩写的全称都背下来结果记住了缩写忘了机制。比如SMP、DMA、AIO、NIO背了一堆字母却说不清DMA究竟省下了什么时间。这次教训让我调整策略每个缩写先理解它解决什么痛点再记全称顺序不能反。另一个弯路是跳过课后习题直接看答案。教材的每章末习题看似基础但有些题要你对比概念、画出流程图做完才知道自己哪里想岔了。我建议第1章的习题里至少把多道程序与多任务的区别和中断在操作系统中的作用这两类题用完整的书面语言写一遍别只在脑子里过。书写的过程会把模糊的想法逼成清晰的表达这个过程本身就是学习。回到开头那句话第1章容易被低估是因为它不像后面的调度算法、死锁避免那样有可计算的结论。但你越是学到深处越会发现所有的深刻都扎根在这份看起来很浅的绪论里。把中断和DMA、存储层次与局部性、双模式操作这三条线在学第1章时就牢牢织进自己的认知网里后面十六个章节的路走起来会顺很多。我自己的体会是操作系统这门课真正的分水岭不在智商而在有没有在绪论阶段建立起计算机是一个由中断驱动、层次化存储、特权分级控制的协作系统这个全局画面。把这个画面先挂好后面往里面填细节就是水到渠成的事了。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号