gpt4 book ai didi

linux - 进程崩溃时操作系统是否刷新 CPU 缓存?

转载 作者:太空狗 更新时间:2023-10-29 12:12:49 24 4
gpt4 key购买 nike

当操作系统(假设是 Linux)通过 GPF 或 SIGKILL 或类似方式突然终止进程时,操作系统是否会将进程的修改后的 CPU 缓存行刷新到主内存?是否有不同的行为取决于 CPU 或操作系统?

我正在评估非 volatile 内存功能,想知道在发生崩溃时应用程序写入内存的状态。特别是它是否缺少当前修改的 CPU 缓存行。我还没有找到关于此的官方声明。

感谢您的帮助!

最佳答案

一般来说,。 “崩溃”进程不会导致最近的内存写入丢失。

从 CPU 的角度来看,“正常”事件和致命事件引发异常的频率一样高。例如,通过 GPF/SEGV 访问未映射的内存页并不总是会导致崩溃;许多操作系统将使用此事件来实现动态内存分页(例如,读取内存映射文件的页面;为零填充内存区域分配物理内存;复制 COW 内存页面)。类似地,其他 CPU 异常,例如软件中断或软件模拟指令,可能会被操作系统解释并传回进程而不杀死它。

(另外:考虑核心转储生成和调试器的情况。被杀死的进程并不总是立即被销毁;操作系统可能出于各种目的将其状态保留在内存中。)

大多数操作系统要么在上下文切换时刷新缓存,要么允许 CPU 从缓存中正常写出页面。无论哪种情况,最近的写入肯定不会被忽略。

关于linux - 进程崩溃时操作系统是否刷新 CPU 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36166746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com