diff options
32 files changed, 1090 insertions, 547 deletions
diff --git a/2025/11/27/二〇二五年十一月二十七日/index.html b/2025/11/27/二〇二五年十一月二十七日/index.html index a30d522e..5c496605 100644 --- a/2025/11/27/二〇二五年十一月二十七日/index.html +++ b/2025/11/27/二〇二五年十一月二十七日/index.html @@ -215,6 +215,11 @@ <nav class="post-nav"> <div class="prev-item"> + <div class="icon arrow-left"></div> + <div class="post-link"> + <a href="/2025/12/02/%E2%80%9C%E7%BC%BA%E9%A1%B5%E2%80%9D-%E5%92%8C-%E2%80%9C%E4%B8%AD%E6%96%AD%E2%80%9D-%E6%9C%AF%E8%AF%AD%E4%B8%8A%E7%9A%84%E5%8C%BA%E5%88%AB/">Prev</a> + </div> + </div> <div class="next-item"> diff --git a/2025/12/02/“缺页”-和-“中断”-术语上的区别/index.html b/2025/12/02/“缺页”-和-“中断”-术语上的区别/index.html new file mode 100644 index 00000000..c353c0b7 --- /dev/null +++ b/2025/12/02/“缺页”-和-“中断”-术语上的区别/index.html @@ -0,0 +1,314 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> +<meta http-equiv="X-UA-Compatible" content="ie=edge"> + + <meta name="author" content="韩暮秋"> + + + <meta name="subtitle" content="暮秋小屋"> + + + <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处"> + + + <meta name="keywords" content="韩暮秋,MuqiuHan,'Muqiu Han', 'muqiu han', muqiuhan"> + + + + + <title> + + “缺页” 和 “中断” 术语上的区别 | + 暮秋小屋 + </title> + + + + <link rel="icon" href="/favicon.ico"> + + + <style> + @font-face { + font-family: CarroisSong; + src: url('/fonts/CarroisSong.ttf'); + } + </style> + + + + <!-- stylesheets list from _config.yml --> + + <link rel="stylesheet" href="/css/style.css"> + + + + + + <!-- scripts list from _config.yml --> + + <script + src="/js/menu.js"></script> + + + + + + <script + src="https://polyfill.alicdn.com/polyfill.js?features=es6"></script> + <script + id="MathJax-script" + async + src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/mathjax/3.2.0/es5/tex-mml-chtml.js"></script> + + + + + <meta name="generator" content="Hexo 6.3.0"></head> + <body> + <div class="mask-border"> + </div> + + <div class="wrapper"> + + <div class="header"> + <div class="flex-container"> + <div class="header-inner"> + <div class="site-brand-container"> + <a href="/"> + + 暮秋小屋 + + </a> + </div> + <div id="menu-btn" class="menu-btn" onclick="toggleMenu()"> + 菜单 + </div> + <nav class="site-nav"> + <ul class="menu-list"> + + + <li class="menu-item"> + <a href="/"> + 主页 + </a> + </li> + + + + <li class="menu-item"> + <a href="/categories/gallery/"> + 日记本 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Medicine/"> + 医学 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Technique/"> + 计算机/互联网 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Life/"> + 生活 + </a> + </li> + + + + <li class="menu-item"> + <a href="/archives"> + 全部 + </a> + </li> + + + + <li class="menu-item"> + <a href="/about"> + 关于 + </a> + </li> + + + + <li class="menu-item search-btn"> + <a href="#">Search</a> + </li> + + </ul> + </nav> + </div> + </div> +</div> + + <div class="main"> + <div class="flex-container"> + <article id="post"> + + + <div class="post-head"> + <div class="post-info"> + <div class="tag-list"> + + + <span class="post-tag"> + <a href="/tags/Technique/"> + Technique + </a> + </span> + + + </div> + <div class="post-title"> + + + “缺页” 和 “中断” 术语上的区别 + + + </div> + <span class="post-date"> + Dec 2, 2025 + </span> + </div> + <div class="post-img"> + + <div class="h-line-primary"></div> + + </div> +</div> + <div class="post-content"> + <p>在计算机体系结构语境中,术语“异常”与“中断”的混用,源于硬件事件分类与操作系统实现策略的视角差异。这种差异并不代表定义不严谨,而反映了从底层硬件信号到上层软件管理的不同抽象层次。关键在于区分事件的内在性质与操作系统对其的处理模型。</p> +<p>从硬件与架构的视角看,“异常”和“中断”有明确界定。异常是同步事件,由当前正在执行的指令直接触发,其发生时刻可精确复现。非法操作码、除零、地址越界等均属此类,因为它们是执行流本身导致的错误或特殊情况。中断则是异步事件,由外部硬件设备在指令执行的任意时刻触发,与当前指令流无关,如时钟中断、I/O完成中断。这种分类基于事件的来源和时序特性,是CPU设计的基础。</p> +<p>缺页事件的性质符合硬件对异常的定义:当一条内存访问指令(如load或store)试图访问的虚拟地址页面不在物理内存中时,由内存管理单元同步检测并触发该事件。从CPU角度看,这是一条指令执行过程中产生的同步故障,本质上是一个“缺页异常”。</p> +<p>因为操作系统在处理缺页时,借用了中断的处理框架,因此常被称为 “缺页中断”。因为现实是:缺页处理过程耗时极长,涉及磁盘I/O。若采用处理一般异常的简单模型(即陷入内核后在同一执行上下文中直接处理直至完成),CPU将在等待磁盘的数百毫秒内被完全阻塞,导致资源利用率极低。</p> +<p>因此,操作系统将缺页处理设计为一个复杂的状态管理过程。其伪流程如下:</p> +<ol> +<li>CPU执行访存指令,触发缺页异常,硬件自动保存当前上下文并跳转到操作系统预设的异常处理入口。</li> +<li>操作系统内核诊断出缺页原因,确认需要从磁盘调入页面。</li> +<li>内核将此进程标记为“等待I/O”状态,并将其从运行队列移出。</li> +<li>内核调用磁盘驱动程序,发起读盘请求,然后立即执行调度程序,切换到另一个就绪进程运行。此时,对原进程而言,其执行流被“中断”并挂起。</li> +<li>磁盘I/O完成后,磁盘控制器产生一个硬件中断。中断处理程序收到页面数据,将其载入物理内存,并更新页表。</li> +<li>内核将之前等待的进程重新标记为就绪状态。在未来某个时刻,调度程序会再次选中该进程,并通过恢复其之前保存的上下文,让导致缺页的那条指令重新执行,此时便能成功访问内存。</li> +</ol> +<p>这一流程的关键在于第 4 步:操作系统主动放弃当前进程的CPU使用权,去执行其他任务。这种行为模式与响应异步硬件中断后执行调度在逻辑上同构。虽然事件源头是同步异常,但操作系统利用中断处理的可抢占和可调度特性,实现了对漫长I/O等待期的资源复用。因此,“缺页中断”这一术语,精准地描述了操作系统 “将其作为一个可延迟调度的事件进行管理” 的软件机制,而非否定其硬件层面的同步异常本质。</p> +<hr> +<p>有人会觉得:“相当于一个人本来应该姓王,结果直接姓林,然后来句合理,没有前因后果,就像数学分成正数负数,结果给 3 取名负三,然后来句,这是正数”</p> +<hr> +<p>在静态、单一层次的分类体系下,将一个A类事物命名为B类,确实构成矛盾。然而,计算机系统是一个多层级协同运行的动态模型,其术语的最终有效性,不仅在于标识事件的 <strong>静态起源</strong> , 更在于描述其在系统 <strong>动态运行中引发的控制流路径和资源管理行为</strong>。</p> +<p>这个比喻可以引申为:一个人根据其血缘被赋予 “王” 姓(硬件本质),但在特定的工作组织(操作系统)中,因其担任的职能、遵循的流程与 “林” 姓团队完全相同,故在日常运营中被纳入 “林” 团队进行调度和管理。组织内部称其为 “林工”,并非否认其血缘,而是为了精确匹配管理流程,实现最高运作效率。</p> +<p>“缺页” 的命名问题正遵循此逻辑。硬件按起源将其分类为 <strong>同步异常(姓王)</strong> ,但操作系统发现,处理此事件所需的行为模式——保存现场、可能挂起当前任务、启动异步I/O、调度其他任务、在事件完成后通过恢复现场来继续——与处理 <strong>异步中断(姓林)</strong> 的完整行为模式完全一致。这套行为模式的关键特征是 <strong>可阻塞与可调度性</strong> 。</p> +<p>为了调用这套成熟、高效的中断管理框架(包含调度器、等待队列、I/O完成回调等复杂机制),操作系统在软件层面将其标识为“中断”。这并非分类错误,而是在更高抽象层上,根据 <strong>行为模型</strong> 而非 <strong>触发原因</strong> 进行的重新映射。其因果链条是清晰且自洽的:</p> +<ol> +<li><strong>因</strong>:缺页由指令同步触发(硬件异常)。</li> +<li><strong>策略决策</strong>:因其处理必然涉及漫长等待,操作系统决定采用异步、可调度的方式处理它。</li> +<li><strong>技术实现</strong>:实现此策略的最直接路径,是复用已为硬件中断设计好的、具备异步抢占与任务调度能力的中断管理和调度框架。</li> +<li><strong>命名结果</strong>:该事件在处理流程上被纳入“中断”路径,故在操作系统软件范畴内,称其为“缺页中断”。这个术语准确指向了“通过中断管理框架处理的缺页异常”这一复杂概念。</li> +</ol> +<p>这不同于给数字 3 取名“负三”。它更接近于:发现一种具有正数性质的粒子,但其在磁场中的偏转行为与负电荷粒子完全相同。物理学家为便于利用已有的、成熟的“负电荷粒子”行为方程进行计算和预测,可能会在动力学分析中临时称其为“负粒子”,同时明确其静态性质为正。这里的命名服务于特定的分析模型和计算框架。</p> +<p>所以 “缺页中断”这一术语的严谨性,不在于它否定了硬件的分类,而在于它精确地描述了操作系统层面所采用的 <strong>处理模型</strong> 。它不是一个分类学错误,而是一个基于行为相似性,为了实现高效资源管理而采用的、精确的工程学术语。它同时指明了事件的起源(异常)和处理的方式(中断框架),是多层次系统设计中一种高效而准确的表述。</p> + +</div> + +<script> + window.onload = detectors(); +</script> + <div class="post-footer"> + <div class="h-line-primary"></div> + <nav class="post-nav"> + <div class="prev-item"> + + </div> + <div class="next-item"> + + <div class="icon arrow-right"></div> + <div class="post-link"> + <a href="/2025/11/27/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/">Next</a> + </div> + + </div> + </nav> +</div> + + + <div class="post-comment"> + + + + + + + +</div> + + +</article> + </div> + </div> + + <div class="footer"> + <div class="flex-container"> + <div class="footer-text"> + + + 韩暮秋 | + + + 希望路过的人可以添点柴火让这里暖和点 + + </div> + </div> +</div> + + </div> + + + <div class="search-popup"> + <div class="search-popup-overlay"> + </div> + <div class="search-popup-window" > + <div class="search-header"> + <div class="search-input-container"> + <input autocomplete="off" autocapitalize="off" maxlength="80" + placeholder="Search Anything" spellcheck="false" + type="search" class="search-input"> + </div> + <div class="search-close-btn"> + <div class="icon close-btn"></div> + </div> + </div> + <div class="search-result-container"> + </div> + </div> +</div> + +<script> + const searchConfig = { + path : "/search.xml", + top_n_per_article: "1", + unescape : "false", + trigger: "auto", + preload: "false" + } +</script> +<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/search.js"></script> +<script src="/js/search.js"></script> + + + + </body> +</html> diff --git a/archives/2025/12/index.html b/archives/2025/12/index.html new file mode 100644 index 00000000..3f5b154f --- /dev/null +++ b/archives/2025/12/index.html @@ -0,0 +1,243 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> +<meta http-equiv="X-UA-Compatible" content="ie=edge"> + + <meta name="author" content="韩暮秋"> + + + <meta name="subtitle" content="暮秋小屋"> + + + <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处"> + + + <meta name="keywords" content="韩暮秋,MuqiuHan,'Muqiu Han', 'muqiu han', muqiuhan"> + + + + + <title> + + Archive: 2025/12 | + 暮秋小屋 + </title> + + + + <link rel="icon" href="/favicon.ico"> + + + <style> + @font-face { + font-family: CarroisSong; + src: url('/fonts/CarroisSong.ttf'); + } + </style> + + + + <!-- stylesheets list from _config.yml --> + + <link rel="stylesheet" href="/css/style.css"> + + + + + + <!-- scripts list from _config.yml --> + + <script + src="/js/menu.js"></script> + + + + + + <script + src="https://polyfill.alicdn.com/polyfill.js?features=es6"></script> + <script + id="MathJax-script" + async + src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/mathjax/3.2.0/es5/tex-mml-chtml.js"></script> + + + + + <meta name="generator" content="Hexo 6.3.0"></head> + <body> + <div class="mask-border"> + </div> + + <div class="wrapper"> + + <div class="header"> + <div class="flex-container"> + <div class="header-inner"> + <div class="site-brand-container"> + <a href="/"> + + 暮秋小屋 + + </a> + </div> + <div id="menu-btn" class="menu-btn" onclick="toggleMenu()"> + 菜单 + </div> + <nav class="site-nav"> + <ul class="menu-list"> + + + <li class="menu-item"> + <a href="/"> + 主页 + </a> + </li> + + + + <li class="menu-item"> + <a href="/categories/gallery/"> + 日记本 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Medicine/"> + 医学 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Technique/"> + 计算机/互联网 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Life/"> + 生活 + </a> + </li> + + + + <li class="menu-item"> + <a href="/archives"> + 全部 + </a> + </li> + + + + <li class="menu-item"> + <a href="/about"> + 关于 + </a> + </li> + + + + <li class="menu-item search-btn"> + <a href="#">Search</a> + </li> + + </ul> + </nav> + </div> + </div> +</div> + + <div class="main"> + <div class="flex-container"> + <div class="post-list"> + + + + + + + <div class="year-title">2025</div> + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2025/12/02/%E2%80%9C%E7%BC%BA%E9%A1%B5%E2%80%9D-%E5%92%8C-%E2%80%9C%E4%B8%AD%E6%96%AD%E2%80%9D-%E6%9C%AF%E8%AF%AD%E4%B8%8A%E7%9A%84%E5%8C%BA%E5%88%AB/"> + + “缺页” 和 “中断” 术语上的区别 + + </a> + </div> + + <span class="post-date">Dec 2, 2025</span> + </div> + + + <div id="paginator"> + + </div> +</div> + + </div> + </div> + + <div class="footer"> + <div class="flex-container"> + <div class="footer-text"> + + + 韩暮秋 | + + + 希望路过的人可以添点柴火让这里暖和点 + + </div> + </div> +</div> + + </div> + + + <div class="search-popup"> + <div class="search-popup-overlay"> + </div> + <div class="search-popup-window" > + <div class="search-header"> + <div class="search-input-container"> + <input autocomplete="off" autocapitalize="off" maxlength="80" + placeholder="Search Anything" spellcheck="false" + type="search" class="search-input"> + </div> + <div class="search-close-btn"> + <div class="icon close-btn"></div> + </div> + </div> + <div class="search-result-container"> + </div> + </div> +</div> + +<script> + const searchConfig = { + path : "/search.xml", + top_n_per_article: "1", + unescape : "false", + trigger: "auto", + preload: "false" + } +</script> +<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/search.js"></script> +<script src="/js/search.js"></script> + + + + </body> +</html> diff --git a/archives/2025/index.html b/archives/2025/index.html index d29dcb13..e76872d8 100644 --- a/archives/2025/index.html +++ b/archives/2025/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2025/12/02/%E2%80%9C%E7%BC%BA%E9%A1%B5%E2%80%9D-%E5%92%8C-%E2%80%9C%E4%B8%AD%E6%96%AD%E2%80%9D-%E6%9C%AF%E8%AF%AD%E4%B8%8A%E7%9A%84%E5%8C%BA%E5%88%AB/"> + + “缺页” 和 “中断” 术语上的区别 + + </a> + </div> + + <span class="post-date">Dec 2, 2025</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2025/11/27/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> 二〇二五年十一月二十七日 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2025/10/19/Gram-stain/"> - - 什么是 G⁺ - - </a> - </div> - - <span class="post-date">Oct 19, 2025</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/2025/page/2/index.html b/archives/2025/page/2/index.html index 81a6b8bd..8652d6c0 100644 --- a/archives/2025/page/2/index.html +++ b/archives/2025/page/2/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2025/10/19/Gram-stain/"> + + 什么是 G⁺ + + </a> + </div> + + <span class="post-date">Oct 19, 2025</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2025/10/19/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E6%9C%88%E5%8D%81%E4%B9%9D%E6%97%A5/"> 二〇二五年十月十九日 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2025/07/08/dadgad/"> - - DADGAD 定弦 - - </a> - </div> - - <span class="post-date">Jul 8, 2025</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/2025/page/3/index.html b/archives/2025/page/3/index.html index b13ebf32..49b34967 100644 --- a/archives/2025/page/3/index.html +++ b/archives/2025/page/3/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2025/07/08/dadgad/"> + + DADGAD 定弦 + + </a> + </div> + + <span class="post-date">Jul 8, 2025</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2025/06/30/ibs/"> 肠易激综合征 (IBS) 的病理学与药物治疗 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2025/04/03/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%94%E6%9C%88%E4%B8%89%E6%97%A5/"> - - 二〇二五年四月三日 - - </a> - </div> - - <span class="post-date">Apr 3, 2025</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/2025/page/4/index.html b/archives/2025/page/4/index.html index a745629d..43e01dec 100644 --- a/archives/2025/page/4/index.html +++ b/archives/2025/page/4/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2025/04/03/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%94%E6%9C%88%E4%B8%89%E6%97%A5/"> + + 二〇二五年四月三日 + + </a> + </div> + + <span class="post-date">Apr 3, 2025</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2025/04/02/N-1-selects-problem-%E4%B8%8E-Prisma-ORM/"> N+1 selects problem 与 Prisma ORM @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2025/03/13/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E7%9A%84%E2%80%9C%E8%81%9A%E5%90%88%E6%A0%B9%E2%80%9D/"> - - 领域驱动设计中的“聚合根” - - </a> - </div> - - <span class="post-date">Mar 13, 2025</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/2025/page/5/index.html b/archives/2025/page/5/index.html index 5aa37e6c..f1c47f57 100644 --- a/archives/2025/page/5/index.html +++ b/archives/2025/page/5/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2025/03/13/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E7%9A%84%E2%80%9C%E8%81%9A%E5%90%88%E6%A0%B9%E2%80%9D/"> + + 领域驱动设计中的“聚合根” + + </a> + </div> + + <span class="post-date">Mar 13, 2025</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2025/02/24/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/"> 二〇二五年二月二十四日 diff --git a/archives/index.html b/archives/index.html index 17b1f526..3cb629e0 100644 --- a/archives/index.html +++ b/archives/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2025/12/02/%E2%80%9C%E7%BC%BA%E9%A1%B5%E2%80%9D-%E5%92%8C-%E2%80%9C%E4%B8%AD%E6%96%AD%E2%80%9D-%E6%9C%AF%E8%AF%AD%E4%B8%8A%E7%9A%84%E5%8C%BA%E5%88%AB/"> + + “缺页” 和 “中断” 术语上的区别 + + </a> + </div> + + <span class="post-date">Dec 2, 2025</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2025/11/27/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> 二〇二五年十一月二十七日 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2025/10/19/Gram-stain/"> - - 什么是 G⁺ - - </a> - </div> - - <span class="post-date">Oct 19, 2025</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/10/index.html b/archives/page/10/index.html index 756c3741..f2de3484 100644 --- a/archives/page/10/index.html +++ b/archives/page/10/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2023/12/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%80%E6%97%A5/"> + + 二〇二三年十二月一日 + + </a> + </div> + + <span class="post-date">Dec 1, 2023</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2023/11/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/"> 二〇二三年十一月二十九日 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2023/10/13/%E8%82%9D%E5%8A%9F%E8%83%BD%E6%A3%80%E6%9F%A5%E5%8C%96%E9%AA%8C%E5%8D%95/"> - - 肝功能检查化验单阅读指南 - - </a> - </div> - - <span class="post-date">Oct 13, 2023</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/11/index.html b/archives/page/11/index.html index eac67e48..1f4d2df0 100644 --- a/archives/page/11/index.html +++ b/archives/page/11/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2023/10/13/%E8%82%9D%E5%8A%9F%E8%83%BD%E6%A3%80%E6%9F%A5%E5%8C%96%E9%AA%8C%E5%8D%95/"> + + 肝功能检查化验单阅读指南 + + </a> + </div> + + <span class="post-date">Oct 13, 2023</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2023/10/12/%E8%A1%80%E5%B8%B8%E8%A7%84%E5%8C%96%E9%AA%8C%E7%BB%93%E6%9E%9C%E9%98%85%E8%AF%BB%E6%8C%87%E5%8D%97/"> 血常规化验结果阅读指南 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2023/08/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%B8%80%E6%97%A5/"> - - 二〇二三年八月一日 - - </a> - </div> - - <span class="post-date">Aug 1, 2023</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/12/index.html b/archives/page/12/index.html index bbed4721..6120f8b5 100644 --- a/archives/page/12/index.html +++ b/archives/page/12/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2023/08/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%B8%80%E6%97%A5/"> + + 二〇二三年八月一日 + + </a> + </div> + + <span class="post-date">Aug 1, 2023</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2023/07/30/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%83%E6%9C%88%E4%B8%89%E5%8D%81%E6%97%A5/"> 二零二三年七月三十日 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2023/05/03/Rust-NewType-%E6%A8%A1%E5%BC%8F/"> - - Rust NewType 模式 - - </a> - </div> - - <span class="post-date">May 3, 2023</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/13/index.html b/archives/page/13/index.html index 22375334..8ab9098c 100644 --- a/archives/page/13/index.html +++ b/archives/page/13/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2023/05/03/Rust-NewType-%E6%A8%A1%E5%BC%8F/"> + + Rust NewType 模式 + + </a> + </div> + + <span class="post-date">May 3, 2023</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2023/05/02/Rust-Partial-%E8%AF%AD%E4%B9%89/"> Rust Partial 语义 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2023/03/04/%E9%87%91%E5%8C%AE%E8%A6%81%E7%95%A5/"> - - 金匮要略 - - </a> - </div> - - <span class="post-date">Mar 4, 2023</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/14/index.html b/archives/page/14/index.html index 42087c75..37a3002f 100644 --- a/archives/page/14/index.html +++ b/archives/page/14/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2023/03/04/%E9%87%91%E5%8C%AE%E8%A6%81%E7%95%A5/"> + + 金匮要略 + + </a> + </div> + + <span class="post-date">Mar 4, 2023</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2023/03/01/%E6%B0%94%E8%83%B8/"> 气胸 @@ -325,26 +343,6 @@ </div> - - - - - <div class="year-title">2022</div> - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2022/12/31/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%89%E5%8D%81%E4%B8%80%E6%97%A5/"> - - 二零二二年十二月三十一日 - - </a> - </div> - - <span class="post-date">Dec 31, 2022</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/15/index.html b/archives/page/15/index.html index fe2aa117..92dc260b 100644 --- a/archives/page/15/index.html +++ b/archives/page/15/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2022/12/31/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%89%E5%8D%81%E4%B8%80%E6%97%A5/"> + + 二零二二年十二月三十一日 + + </a> + </div> + + <span class="post-date">Dec 31, 2022</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2022/11/03/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E6%9C%88%E4%B8%89%E6%97%A5/"> 二零二二年十一月月三日 @@ -327,24 +345,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2021/02/14/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%BA%8C%E6%9C%88%E5%8D%81%E5%9B%9B%E6%97%A5/"> - - 二零二一年二月十四日 - - </a> - </div> - - <span class="post-date">Feb 14, 2021</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/16/index.html b/archives/page/16/index.html index 77071a30..5e1e04bb 100644 --- a/archives/page/16/index.html +++ b/archives/page/16/index.html @@ -165,6 +165,26 @@ + <div class="year-title">2021</div> + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2021/02/14/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%BA%8C%E6%9C%88%E5%8D%81%E5%9B%9B%E6%97%A5/"> + + 二零二一年二月十四日 + + </a> + </div> + + <span class="post-date">Feb 14, 2021</span> + </div> + + + + + + <div class="year-title">2020</div> diff --git a/archives/page/2/index.html b/archives/page/2/index.html index 918e6285..943baec9 100644 --- a/archives/page/2/index.html +++ b/archives/page/2/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2025/10/19/Gram-stain/"> + + 什么是 G⁺ + + </a> + </div> + + <span class="post-date">Oct 19, 2025</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2025/10/19/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E6%9C%88%E5%8D%81%E4%B9%9D%E6%97%A5/"> 二〇二五年十月十九日 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2025/07/08/dadgad/"> - - DADGAD 定弦 - - </a> - </div> - - <span class="post-date">Jul 8, 2025</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/3/index.html b/archives/page/3/index.html index 943fcdb6..c2130316 100644 --- a/archives/page/3/index.html +++ b/archives/page/3/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2025/07/08/dadgad/"> + + DADGAD 定弦 + + </a> + </div> + + <span class="post-date">Jul 8, 2025</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2025/06/30/ibs/"> 肠易激综合征 (IBS) 的病理学与药物治疗 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2025/04/03/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%94%E6%9C%88%E4%B8%89%E6%97%A5/"> - - 二〇二五年四月三日 - - </a> - </div> - - <span class="post-date">Apr 3, 2025</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/4/index.html b/archives/page/4/index.html index 05ee271d..787565f2 100644 --- a/archives/page/4/index.html +++ b/archives/page/4/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2025/04/03/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%94%E6%9C%88%E4%B8%89%E6%97%A5/"> + + 二〇二五年四月三日 + + </a> + </div> + + <span class="post-date">Apr 3, 2025</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2025/04/02/N-1-selects-problem-%E4%B8%8E-Prisma-ORM/"> N+1 selects problem 与 Prisma ORM @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2025/03/13/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E7%9A%84%E2%80%9C%E8%81%9A%E5%90%88%E6%A0%B9%E2%80%9D/"> - - 领域驱动设计中的“聚合根” - - </a> - </div> - - <span class="post-date">Mar 13, 2025</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/5/index.html b/archives/page/5/index.html index bf2c705b..96fe6b81 100644 --- a/archives/page/5/index.html +++ b/archives/page/5/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2025/03/13/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E7%9A%84%E2%80%9C%E8%81%9A%E5%90%88%E6%A0%B9%E2%80%9D/"> + + 领域驱动设计中的“聚合根” + + </a> + </div> + + <span class="post-date">Mar 13, 2025</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2025/02/24/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/"> 二〇二五年二月二十四日 @@ -327,24 +345,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2024/11/17/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%8D%81%E4%B8%83%E6%97%A5/"> - - 二〇二四年十一月十七日 - - </a> - </div> - - <span class="post-date">Nov 17, 2024</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/6/index.html b/archives/page/6/index.html index 8833db1d..d424ffa1 100644 --- a/archives/page/6/index.html +++ b/archives/page/6/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2024/11/17/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%8D%81%E4%B8%83%E6%97%A5/"> + + 二〇二四年十一月十七日 + + </a> + </div> + + <span class="post-date">Nov 17, 2024</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2024/11/15/%E8%A5%BF%E6%9F%9A%E5%AF%B9%E8%8D%AF%E7%89%A9%E7%9A%84%E5%BD%B1%E5%93%8D/"> 西柚对药物的影响 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2024/09/12/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B9%9D%E6%9C%88%E5%8D%81%E4%BA%8C%E6%97%A5/"> - - 二〇二四年九月十二日 - - </a> - </div> - - <span class="post-date">Sep 12, 2024</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/7/index.html b/archives/page/7/index.html index 46b80e42..faf9577b 100644 --- a/archives/page/7/index.html +++ b/archives/page/7/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2024/09/12/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B9%9D%E6%9C%88%E5%8D%81%E4%BA%8C%E6%97%A5/"> + + 二〇二四年九月十二日 + + </a> + </div> + + <span class="post-date">Sep 12, 2024</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2024/09/08/%E4%B8%AD%E8%80%81%E5%B9%B4%E4%BA%BA%E6%B2%89%E8%BF%B7%E6%89%8B%E6%9C%BA%E7%9A%84%E9%97%AE%E9%A2%98/"> 中老年人沉迷手机的问题 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2024/06/27/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> - - 二〇二四年六月二十七日 - - </a> - </div> - - <span class="post-date">Jun 27, 2024</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/8/index.html b/archives/page/8/index.html index 88b1c824..02c73596 100644 --- a/archives/page/8/index.html +++ b/archives/page/8/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2024/06/27/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> + + 二〇二四年六月二十七日 + + </a> + </div> + + <span class="post-date">Jun 27, 2024</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2024/06/27/OCaml-News-2024-5/"> OCaml News 2024-5 @@ -325,24 +343,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2024/02/26/OCaml-News-2024-3/"> - - OCaml News 2024-3 - - </a> - </div> - - <span class="post-date">Feb 26, 2024</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/archives/page/9/index.html b/archives/page/9/index.html index 8ac4eab5..3e822c8e 100644 --- a/archives/page/9/index.html +++ b/archives/page/9/index.html @@ -170,6 +170,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2024/02/26/OCaml-News-2024-3/"> + + OCaml News 2024-3 + + </a> + </div> + + <span class="post-date">Feb 26, 2024</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2024/02/07/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%B8%83%E6%97%A5/"> 二〇二四年二月七日 @@ -327,24 +345,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2023/12/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%80%E6%97%A5/"> - - 二〇二三年十二月一日 - - </a> - </div> - - <span class="post-date">Dec 1, 2023</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/page/10/index.html b/page/10/index.html index 5d7ecd70..bf2e33ac 100644 --- a/page/10/index.html +++ b/page/10/index.html @@ -65,119 +65,7 @@ - <meta name="generator" content="Hexo 6.3.0"><style>mjx-container[jax="SVG"] { - direction: ltr; -} - -mjx-container[jax="SVG"] > svg { - overflow: visible; -} - -mjx-container[jax="SVG"][display="true"] { - display: block; - text-align: center; - margin: 1em 0; -} - -mjx-container[jax="SVG"][justify="left"] { - text-align: left; -} - -mjx-container[jax="SVG"][justify="right"] { - text-align: right; -} - -g[data-mml-node="merror"] > g { - fill: red; - stroke: red; -} - -g[data-mml-node="merror"] > rect[data-background] { - fill: yellow; - stroke: none; -} - -g[data-mml-node="mtable"] > line[data-line] { - stroke-width: 70px; - fill: none; -} - -g[data-mml-node="mtable"] > rect[data-frame] { - stroke-width: 70px; - fill: none; -} - -g[data-mml-node="mtable"] > .mjx-dashed { - stroke-dasharray: 140; -} - -g[data-mml-node="mtable"] > .mjx-dotted { - stroke-linecap: round; - stroke-dasharray: 0,140; -} - -g[data-mml-node="mtable"] > svg { - overflow: visible; -} - -[jax="SVG"] mjx-tool { - display: inline-block; - position: relative; - width: 0; - height: 0; -} - -[jax="SVG"] mjx-tool > mjx-tip { - position: absolute; - top: 0; - left: 0; -} - -mjx-tool > mjx-tip { - display: inline-block; - padding: .2em; - border: 1px solid #888; - font-size: 70%; - background-color: #F8F8F8; - color: black; - box-shadow: 2px 2px 5px #AAAAAA; -} - -g[data-mml-node="maction"][data-toggle] { - cursor: pointer; -} - -mjx-status { - display: block; - position: fixed; - left: 1em; - bottom: 1em; - min-width: 25%; - padding: .2em .4em; - border: 1px solid #888; - font-size: 90%; - background-color: #F8F8F8; - color: black; -} - -foreignObject[data-mjx-xml] { - font-family: initial; - line-height: normal; - overflow: visible; -} - -.MathJax path { - stroke-width: 3; -} - -mjx-container[display="true"] { - overflow: auto hidden; -} - -mjx-container[display="true"] + br { - display: none; -} -</style></head> + <meta name="generator" content="Hexo 6.3.0"></head> <body> <div class="mask-border"> </div> @@ -3456,6 +3456,43 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </tags> </entry> <entry> + <title>“缺页” 和 “中断” 术语上的区别</title> + <url>/2025/12/02/%E2%80%9C%E7%BC%BA%E9%A1%B5%E2%80%9D-%E5%92%8C-%E2%80%9C%E4%B8%AD%E6%96%AD%E2%80%9D-%E6%9C%AF%E8%AF%AD%E4%B8%8A%E7%9A%84%E5%8C%BA%E5%88%AB/</url> + <content><![CDATA[<p>在计算机体系结构语境中,术语“异常”与“中断”的混用,源于硬件事件分类与操作系统实现策略的视角差异。这种差异并不代表定义不严谨,而反映了从底层硬件信号到上层软件管理的不同抽象层次。关键在于区分事件的内在性质与操作系统对其的处理模型。</p> +<p>从硬件与架构的视角看,“异常”和“中断”有明确界定。异常是同步事件,由当前正在执行的指令直接触发,其发生时刻可精确复现。非法操作码、除零、地址越界等均属此类,因为它们是执行流本身导致的错误或特殊情况。中断则是异步事件,由外部硬件设备在指令执行的任意时刻触发,与当前指令流无关,如时钟中断、I/O完成中断。这种分类基于事件的来源和时序特性,是CPU设计的基础。</p> +<p>缺页事件的性质符合硬件对异常的定义:当一条内存访问指令(如load或store)试图访问的虚拟地址页面不在物理内存中时,由内存管理单元同步检测并触发该事件。从CPU角度看,这是一条指令执行过程中产生的同步故障,本质上是一个“缺页异常”。</p> +<p>因为操作系统在处理缺页时,借用了中断的处理框架,因此常被称为 “缺页中断”。因为现实是:缺页处理过程耗时极长,涉及磁盘I/O。若采用处理一般异常的简单模型(即陷入内核后在同一执行上下文中直接处理直至完成),CPU将在等待磁盘的数百毫秒内被完全阻塞,导致资源利用率极低。</p> +<p>因此,操作系统将缺页处理设计为一个复杂的状态管理过程。其伪流程如下:</p> +<ol> +<li>CPU执行访存指令,触发缺页异常,硬件自动保存当前上下文并跳转到操作系统预设的异常处理入口。</li> +<li>操作系统内核诊断出缺页原因,确认需要从磁盘调入页面。</li> +<li>内核将此进程标记为“等待I/O”状态,并将其从运行队列移出。</li> +<li>内核调用磁盘驱动程序,发起读盘请求,然后立即执行调度程序,切换到另一个就绪进程运行。此时,对原进程而言,其执行流被“中断”并挂起。</li> +<li>磁盘I/O完成后,磁盘控制器产生一个硬件中断。中断处理程序收到页面数据,将其载入物理内存,并更新页表。</li> +<li>内核将之前等待的进程重新标记为就绪状态。在未来某个时刻,调度程序会再次选中该进程,并通过恢复其之前保存的上下文,让导致缺页的那条指令重新执行,此时便能成功访问内存。</li> +</ol> +<p>这一流程的关键在于第 4 步:操作系统主动放弃当前进程的CPU使用权,去执行其他任务。这种行为模式与响应异步硬件中断后执行调度在逻辑上同构。虽然事件源头是同步异常,但操作系统利用中断处理的可抢占和可调度特性,实现了对漫长I/O等待期的资源复用。因此,“缺页中断”这一术语,精准地描述了操作系统 “将其作为一个可延迟调度的事件进行管理” 的软件机制,而非否定其硬件层面的同步异常本质。</p> +<hr> +<p>有人会觉得:“相当于一个人本来应该姓王,结果直接姓林,然后来句合理,没有前因后果,就像数学分成正数负数,结果给 3 取名负三,然后来句,这是正数”</p> +<hr> +<p>在静态、单一层次的分类体系下,将一个A类事物命名为B类,确实构成矛盾。然而,计算机系统是一个多层级协同运行的动态模型,其术语的最终有效性,不仅在于标识事件的 <strong>静态起源</strong> , 更在于描述其在系统 <strong>动态运行中引发的控制流路径和资源管理行为</strong>。</p> +<p>这个比喻可以引申为:一个人根据其血缘被赋予 “王” 姓(硬件本质),但在特定的工作组织(操作系统)中,因其担任的职能、遵循的流程与 “林” 姓团队完全相同,故在日常运营中被纳入 “林” 团队进行调度和管理。组织内部称其为 “林工”,并非否认其血缘,而是为了精确匹配管理流程,实现最高运作效率。</p> +<p>“缺页” 的命名问题正遵循此逻辑。硬件按起源将其分类为 <strong>同步异常(姓王)</strong> ,但操作系统发现,处理此事件所需的行为模式——保存现场、可能挂起当前任务、启动异步I/O、调度其他任务、在事件完成后通过恢复现场来继续——与处理 <strong>异步中断(姓林)</strong> 的完整行为模式完全一致。这套行为模式的关键特征是 <strong>可阻塞与可调度性</strong> 。</p> +<p>为了调用这套成熟、高效的中断管理框架(包含调度器、等待队列、I/O完成回调等复杂机制),操作系统在软件层面将其标识为“中断”。这并非分类错误,而是在更高抽象层上,根据 <strong>行为模型</strong> 而非 <strong>触发原因</strong> 进行的重新映射。其因果链条是清晰且自洽的:</p> +<ol> +<li><strong>因</strong>:缺页由指令同步触发(硬件异常)。</li> +<li><strong>策略决策</strong>:因其处理必然涉及漫长等待,操作系统决定采用异步、可调度的方式处理它。</li> +<li><strong>技术实现</strong>:实现此策略的最直接路径,是复用已为硬件中断设计好的、具备异步抢占与任务调度能力的中断管理和调度框架。</li> +<li><strong>命名结果</strong>:该事件在处理流程上被纳入“中断”路径,故在操作系统软件范畴内,称其为“缺页中断”。这个术语准确指向了“通过中断管理框架处理的缺页异常”这一复杂概念。</li> +</ol> +<p>这不同于给数字 3 取名“负三”。它更接近于:发现一种具有正数性质的粒子,但其在磁场中的偏转行为与负电荷粒子完全相同。物理学家为便于利用已有的、成熟的“负电荷粒子”行为方程进行计算和预测,可能会在动力学分析中临时称其为“负粒子”,同时明确其静态性质为正。这里的命名服务于特定的分析模型和计算框架。</p> +<p>所以 “缺页中断”这一术语的严谨性,不在于它否定了硬件的分类,而在于它精确地描述了操作系统层面所采用的 <strong>处理模型</strong> 。它不是一个分类学错误,而是一个基于行为相似性,为了实现高效资源管理而采用的、精确的工程学术语。它同时指明了事件的起源(异常)和处理的方式(中断框架),是多层次系统设计中一种高效而准确的表述。</p> +]]></content> + <tags> + <tag>Technique</tag> + </tags> + </entry> + <entry> <title>中老年人沉迷手机的问题</title> <url>/2024/09/08/%E4%B8%AD%E8%80%81%E5%B9%B4%E4%BA%BA%E6%B2%89%E8%BF%B7%E6%89%8B%E6%9C%BA%E7%9A%84%E9%97%AE%E9%A2%98/</url> <content><