<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/rss/stylesheet/" type="text/xsl"?>
<rss xmlns:content='http://purl.org/rss/1.0/modules/content/' xmlns:taxo='http://purl.org/rss/1.0/modules/taxonomy/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:itunes='http://www.itunes.com/dtds/podcast-1.0.dtd' xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0" xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:atom='http://www.w3.org/2005/Atom' xmlns:podbridge='http://www.podbridge.com/podbridge-ad.dtd' version='2.0'>
<channel>
  <title>苏迟但到的主页</title>
  <language>zh-cn</language>
  <generator>microfeed.org</generator>
  <itunes:type>episodic</itunes:type>
  <itunes:explicit>false</itunes:explicit>
  <atom:link rel="self" href="https://kexohproject.pages.dev/rss/" type="application/rss+xml"/>
  <link>https://kexohproject.pages.dev</link>
  <description>
    <![CDATA[<p>你好，欢迎访问个人主页！</p><p>擅长密码学，安全分析，数字水印等技术。</p><p>你可以联系我通过:findmykexin@gmail.com或者知乎私信。</p><p>我的知乎链接：<a href="https://www.zhihu.com/people/su-chi-dan-dao" rel="noopener noreferrer" target="_blank">苏迟但到 - 知乎 (zhihu.com)</a></p><p>我的github链接：<a href="https://github.com/kexinoh" rel="noopener noreferrer" target="_blank">kexinoh</a></p>]]>
  </description>
  <itunes:author>苏迟但到</itunes:author>
  <itunes:image href="https://kexohcdn.gptapi.cyou/kexohproject/production/images/channel-2e54d141ee195646ca12a9d16507a908.jpg"/>
  <image>
    <title>苏迟但到的主页</title>
    <url>https://kexohcdn.gptapi.cyou/kexohproject/production/images/channel-2e54d141ee195646ca12a9d16507a908.jpg</url>
    <link>https://kexohproject.pages.dev</link>
  </image>
  <copyright>©2024</copyright>
  <itunes:category text="Education">
    <itunes:category text="Language Learning"/>
  </itunes:category>
  <itunes:category text="Technology"/>
  <item>
    <title>有大牛知道中断会改变TLB/Cache吗？</title>
    <guid>MW8XxheSrmz</guid>
    <pubDate>Sat, 27 Aug 2022 08:53:43 GMT</pubDate>
    <itunes:explicit>false</itunes:explicit>
    <description>
      <![CDATA[<p data-pid="oZp986cc">中断有很多种类，如下图</p><figure data-size="normal"><noscript><img src="https://pic3.zhimg.com/v2-3c2c815420a0fa254402091ac94da456_b.jpg" data-rawwidth="1315" data-rawheight="283" data-size="normal" data-caption="" data-original-token="v2-c01bb1eb753331b295c7514243fb268a" data-default-watermark-src="https://pic3.zhimg.com/v2-594ed807ad3d6f64458eec889d2c315a_b.jpg" class="origin_image zh-lightbox-thumb" width="1315" data-original="https://pic3.zhimg.com/v2-3c2c815420a0fa254402091ac94da456_r.jpg"/></noscript><img src="data:image/svg+xml;utf8,&lt;svg xmlns=&#39;http://www.w3.org/2000/svg&#39; width=&#39;1315&#39; height=&#39;283&#39;&gt;&lt;/svg&gt;" data-rawwidth="1315" data-rawheight="283" data-size="normal" data-caption="" data-original-token="v2-c01bb1eb753331b295c7514243fb268a" data-default-watermark-src="https://pic3.zhimg.com/v2-594ed807ad3d6f64458eec889d2c315a_b.jpg" class="origin_image zh-lightbox-thumb lazy" width="1315" data-original="https://pic3.zhimg.com/v2-3c2c815420a0fa254402091ac94da456_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-3c2c815420a0fa254402091ac94da456_b.jpg"/></figure><p data-pid="gPYo_nCv">只有缺页中断（硬中断）会引起TLB和cache改变。极少数情况下会产生软中断，例如双开等等</p><p data-pid="czAmVPLo">缺页中断发生时的事件顺序如下：</p><p data-pid="OHOyZRj8">1) 硬件陷入内核，在内核<span class="nolink">堆栈</span>中保存<span class="nolink">程序计数器</span>。大多数机器将当前指令的各种状态信息保存在特殊的CPU<span class="nolink">寄存器</span>中。</p><p data-pid="XPFVVZda">2) 启动一个汇编代码例程保存<span class="nolink">通用寄存器</span>和其他易失的信息，以免被操作系统破坏。这个例程将操作系统作为一个函数来调用。</p><p data-pid="iV_X6Fzi">3) 当操作系统发现一个缺页中断时，尝试发现需要哪个虚拟页面。通常一个硬件寄存器包含了这一信息，如果没有的话，操作系统必须检索程序计数器，取出这条指令，用软件分析这条指令，看看它在缺页中断时正在做什么。</p><p data-pid="F5tGFKwO">4) 一旦知道了发生缺页中断的<span class="nolink">虚拟地址</span>，操作系统检查这个地址是否有效，并检查存取与保护是否一致。如果不一致，向进程发出一个信号或杀掉该进程。如果地址有效且没有保护错误发生，系统则检查是否有空闲<a href="https://link.zhihu.com/?target=https%3A//baike.baidu.com/item/%25E9%25A1%25B5%25E6%25A1%2586" class=" wrap external" target="_blank" rel="nofollow noreferrer">页框</a>。如果没有空闲页框，执行<span class="nolink">页面置换算法</span>寻找一个页面来淘汰。</p><p data-pid="l8EKNhch">5) 如果选择的页框“脏”了，安排该页写回磁盘，并发生一次<span class="nolink">上下文切换</span>，挂起产生缺页中断的进程，让其他进程运行直至磁盘传输结束。无论如何，该页框被标记为忙，以免因为其他原因而被其他进程占用。</p><p data-pid="sMNH8pQK">6) 一旦页框“干净”后（无论是立刻还是在写回磁盘后），操作系统查找所需页面在磁盘上的地址，通过磁盘操作将其装入。该页面被装入后，产生缺页中断的进程仍然被挂起，并且如果有其他可运行的用户进程，则选择另一个用户进程运行。</p><p data-pid="-b1ZN9vy">7) 当磁盘中断发生时，表明该页已经被装入，<a href="https://link.zhihu.com/?target=https%3A//baike.baidu.com/item/%25E9%25A1%25B5%25E8%25A1%25A8" class=" wrap external" target="_blank" rel="nofollow noreferrer">页表</a>已经更新可以反映它的位置，<a href="https://link.zhihu.com/?target=https%3A//baike.baidu.com/item/%25E9%25A1%25B5%25E6%25A1%2586" class=" wrap external" target="_blank" rel="nofollow noreferrer">页框</a>也被标记为正常状态。</p><p data-pid="z3IEw5Py">8) 恢复发生缺页<span class="nolink">中断指令</span>以前的状态，<span class="nolink">程序计数器</span>重新指向这条指令。</p><p data-pid="SnOq-trL">9) 调度引发缺页中断的进程，操作系统返回调用它的汇编语言例程。</p><p data-pid="yH0bN5U4">10) 该例程恢复寄存器和其他状态信息</p>]]>
    </description>
    <itunes:title>New Article Title for iTunes</itunes:title>
  </item>
</channel>
</rss>