memory-management - 是否有任何机制可以交换内存中操作系统的内核部分?

标签 memory-management operating-system

我最近在学习操作系统的I/O缓冲部分,根据我使用的书,

When a user process issues an I/O request, the OS assigns a buffer in the system portion of main memory to the operation.

我了解这种方法如何能够避免非缓冲情况下的交换问题。但是否假设为进程创建的操作系统缓冲永远不会被换出?

为了扩展我的问题,我想知道是否有任何机制可以交换内存中操作系统的内核部分?

最佳答案

操作系统调出部分内核的情况很常见。内核必须定义哪些部分可以被调出,哪些部分不能被调出。例如,通常情况下,分页池和非分页池会有单独的内存分配器。

请注意,在大多数处理器上,系统页面和用户页面的页表格式相同,因此支持内核分页。

确定内核的哪些部分可以调出是系统设计的一部分,并且是预先完成的。您无法调出系统中断表。大多数情况下您可以调出系统服务代码。大多数情况下您无法调出中断处理代码。

关于memory-management - 是否有任何机制可以交换内存中操作系统的内核部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49217904/

相关文章:

c++ - 如果我的 C++ “new” 内存分配失败,如何找出返回值?

c++ - 从 C++ 中的函数返回动态分配的缓冲区的最佳模式是什么?

objective-c - unsafe_retained 属性

operating-system - 操作系统对页面错误的响应

macos - 从另一个基于 C 的可执行文件获取 MAC os 中的进程命令行

vba - 从网络主机(LAN 连接的 PC)获取操作系统信息

node.js - Node.js 的默认内存限制是否已更改?

c++ - 安全移动 C++ 对象

基于操作系统版本的 C# 条件编译变量

assembly - 如何在 NASM 程序集中使用 BIOS int 13h 从磁盘加载内核?