summaryrefslogtreecommitdiff
path: root/2025/12
diff options
context:
space:
mode:
authormuqiuhan <[email protected]>2025-12-29 13:46:18 +0000
committermuqiuhan <[email protected]>2025-12-29 13:46:18 +0000
commit00222ef9930f02532a9e09444f879239a326d558 (patch)
treeb8482cf1c66b95cc93cff1922d325ad5710b5666 /2025/12
parent45938bfd13474d86fd6c0bafbc08e68d3e1d79aa (diff)
downloadblog-00222ef9930f02532a9e09444f879239a326d558.tar.gz
deploy: d8c233aa6fda8be9138dc58fdd3c9464e4dc587b
Diffstat (limited to '2025/12')
-rw-r--r--2025/12/02/“缺页”-和-“中断”-术语上的区别/index.html319
-rw-r--r--2025/12/19/二〇二五年十二月十九日/index.html2
2 files changed, 1 insertions, 320 deletions
diff --git a/2025/12/02/“缺页”-和-“中断”-术语上的区别/index.html b/2025/12/02/“缺页”-和-“中断”-术语上的区别/index.html
deleted file mode 100644
index 56a5823c..00000000
--- a/2025/12/02/“缺页”-和-“中断”-术语上的区别/index.html
+++ /dev/null
@@ -1,319 +0,0 @@
-<!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 class="icon arrow-left"></div>
- <div class="post-link">
- <a href="/2025/12/19/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E5%8D%81%E4%B9%9D%E6%97%A5/">Prev</a>
- </div>
-
- </div>
- <div class="next-item">
-
- <div class="icon arrow-right"></div>
- <div class="post-link">
- <a href="/2025/11/29/FDA-%E4%BB%BF%E5%88%B6%E8%8D%AF%E6%B5%81%E7%A8%8B/">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/2025/12/19/二〇二五年十二月十九日/index.html b/2025/12/19/二〇二五年十二月十九日/index.html
index beefe7f4..0522ea18 100644
--- a/2025/12/19/二〇二五年十二月十九日/index.html
+++ b/2025/12/19/二〇二五年十二月十九日/index.html
@@ -242,7 +242,7 @@
<div class="icon arrow-right"></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/">Next</a>
+ <a href="/2025/11/29/FDA-%E4%BB%BF%E5%88%B6%E8%8D%AF%E6%B5%81%E7%A8%8B/">Next</a>
</div>
</div>