Memory management 内存中操作系统的内核部分是否也可以交换?

Memory management 内存中操作系统的内核部分是否也可以交换?,memory-management,operating-system,Memory Management,Operating System,我最近在学习操作系统的I/O缓冲部分,根据我使用的书 当用户进程发出I/O请求时,操作系统会在主存的系统部分为操作分配一个缓冲区 我理解这种方法如何能够避免非缓冲情况下的交换问题。但是,是否假定为进程创建的操作系统缓冲永远不会被交换掉 为了扩展我的问题,我想知道是否有任何机制可以使内存中操作系统的内核部分也可以交换 我想知道是否有任何机制可以将操作系统的内核部分存储在内存中 IIRC一些旧版本的AIX可能已经能够交换(即分页)一些内核代码。也可能是较旧的操作系统(甚至可能是多操作系统) 然而,它

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

当用户进程发出I/O请求时,操作系统会在主存的系统部分为操作分配一个缓冲区

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

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

我想知道是否有任何机制可以将操作系统的内核部分存储在内存中

IIRC一些旧版本的AIX可能已经能够交换(即分页)一些内核代码。也可能是较旧的操作系统(甚至可能是多操作系统)

然而,它在今天实际上是无用的,因为内核内存只是当前(桌面和服务器)计算机上RAM的一小部分。总的内核内存只有几十兆字节,而大多数计算机有几十千兆字节的RAM

顺便说一句,系统(例如GNU Hurd)可以在分页过程中使用服务器程序


请参见

操作系统通常会分页显示内核的各个部分。内核必须定义哪些部分可以被调出,哪些部分不能被调出。例如,通常,分页池和非分页池将有单独的内存分配器

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


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

在这个问题中,操作系统这个术语非常模糊。例如,您是否将图形界面作为操作系统的一部分?你包括实用程序吗?@v010dya是的……我是说操作系统的内核。我将更新我的问题。在旧时代(大型机时代,早在Unix之前),甚至操作系统内存也被分为驻留类和非驻留类。现在没有内核交换,所以只有在系统重新启动或关闭时才交换到磁盘