资源御灵
你以为多进程共享资源就行。但死锁、竞态、饥饿让并发编程成为深渊。操作系统的灵魂不是管理充裕的资源——是承认资源永远不够。
资源殿
资源殿穹顶悬着四盏法器灯:CPU、内存、磁盘、设备,各泛着冷光。殿中央是一座环形祭坛,坛上刻着四个字——"万物皆资源"。
「操作系统是御灵者。它分配、调度、隔离、保护——让无数进程在一具肉身上共存。」
「简单。开五个程序,资源够用的。赌不赌?」
资源够用预测挑战器
反直觉下注(五选一,可连错)→ 资源占用全景拼合 → OS演进时间轴
资源占用全景 · 四类资源全部爆满
OS演进时间轴 · 每一代都在回答"不够,怎么分?"
进程阁 · 状态之轮
阁中央悬着一架巨大的状态轮:就绪、运行、阻塞三盏灯,被箭头连成环。轮下排着五个进程晶核。
「进程是运行中的程序。程序是死的,进程是活的——它有状态、有身份、有上下文。开五个,看看会怎样。」
「开嘛。五个一起跑。资源够用的。」
进程状态轮转模拟 · 上下文切换实验台
激活五进程 → 状态轮转 → 切换频率滑块(CPU利用率先升后降)→ PCB解剖
PCB解剖 · 进程控制块
调度场 · 公平之妄
调度场是一片开阔的石台,台面刻着五道调度符文。台边立着一排进程——有长有短,有急有缓。
「CPU只有一个,进程有十个。谁先跑?你选一种调度,看看公不公平。」
「公平嘛。先来先服务,天经地义。选它。」
调度五算法推演器
线程切分 → 五算法符文切换 → 甘特图实时模拟 → 平均等待/周转时间 → 三种公平崩塌
实时钟 · 截止之刃
石台尽头是一座倒计时钟塔,塔面嵌着多个任务,每个任务都带一个红色截止刻度。
「这些不是普通进程。刹车、气囊、心脏起搏器——迟一毫秒,就是一条命。RM按周期分配优先级,EDF按截止期最近优先。选一种,看看能不能让它们全部准时。」
实时调度模拟器 · RM/EDF双模式
RM试炼(T3错过截止期)→ EDF试炼(全部准时)→ 过载实验(EDF也错过)
内存域 · 分而治之
内存域是一片悬浮的方格阵列,每一格是一个内存页框。域中央有三座分配法器:连续分配柱、分页塔、分段阁。
「进程要占内存。怎么分?连续分配最直觉——但会碎。分页最整齐——但要查表。分段最贴合程序——但也会碎。你试。」
内存分配三法器 · 虚拟内存映射
连续/分页/分段切换 → 碎片可视化 → 虚拟页→物理页框映射 → 缺页中断
虚拟内存 · 页表映射 + 缺页中断
置换渊 · 抖动之痛
置换渊是一口深井,井壁嵌满了内存页框。井底是磁盘——换出去的页沉下去,换回来时再浮上来。井沿刻着四种置换符文。
「内存只有3个页框。进程要访问7个页。换谁出去?选一种。」
「换出去再换回来嘛,能有多难?选FIFO,简单的。」
置换曲线追踪器
四算法切换 → 帧数滑块(Belady异常检测)→ 缺页计数 → 抖动实验
抖动实验 · 并发进程数 vs CPU利用率
文件塔 · 持久之器
文件塔是一座层叠的石塔,每一层是一块磁盘盘面,盘面上布满扇区。塔基立着三座分配法器。
「进程死了,文件还在。怎么存?怎么找?怎么读得快?」
文件分配三法 + 磁盘调度四算法
连续/链接/索引分配 → inode解剖 → FCFS/SSTF/SCAN/C-SCAN磁头移动
inode解剖 · 文件的身份卡
磁盘调度 · 磁头从53柱面出发
设备阵 · 内核之门
设备渊是一条向下延伸的通道,尽头是一扇刻着"内核"二字的巨门。通道两侧悬着各种设备。
「用户程序在门外,硬件在门里。这扇门,叫系统调用。CPU有两种姿态——用户态和内核态。门只朝一个方向开。」
设备管理 · 系统调用 · 内核架构
三法I/O对比(CPU占用率)→ trap穿越动画 → 宏/微内核光谱滑块
系统调用 trap 演示 · 点击 read()
内核架构 · 性能↔安全光谱
同步殿 · 共享之祸
内核门后是一座环形阵法,阵中央悬浮着一个共享变量水晶——多个进程的触手都伸向它。
「两个进程同时往一个账户里加钱。会发生什么?」
「加两次呗。共享嘛,大家一起用就行。」
死锁四条件公式组装器
竞态演示 → 三法同步 → 死锁构造(四条件拖拽组装)→ 栈溢出三防护
死锁构造器 · 拖条件碎片进插槽
栈溢出攻击 · 8字节缓冲区写16字节
Boss 战 · 死锁之环
阵法灯火齐灭。暗紫色的环从四面八方压过来,凝成一个巨大的、缓慢自转的环——环上四道刻痕明灭可见。
「我是死锁之环。我不住在你的错误里——错误你能改。我住在你'以为资源总是够的'那份傲慢里。三问。答错一题,环就紧一分。」
渊账累计 0 笔 · 三问全对后清零
尾声 · 御灵之悟
环散尽时资源殿重归清明,你手腕上的资源环微微发光——四道刻痕还在,像四枚没说出口的印章。
「你入门了。不是因为你答对了三问——答对的会忘。是因为你摔过的每一跤,都刻在你手上了。但——你管好了机器内部的资源。进程、内存、文件、设备、同步、死锁,你都摸过了。可你写的那些程序,从高级语言到机器码,中间那层翻译——会不会也丢了什么资源?明天,我们去看那座翻译殿。那座殿,叫编译原理。」
知识图谱点亮 · 御灵之悟
点亮全章11块碎片 → 死锁破局居中 → 境界突破