OS 是否在上下文切换中保存内存值?
Does OS save memory values in context switch?
我有一个问题,关于在上下文切换中将保存哪些数据。
我已经搜索过了,但所有链接都只谈到了寄存器。
我的问题是 os 是否也保存进程的内存值?
假设一个进程定义了一个从内存地址0x80000开始的数组。
当发生上下文切换时,这个数组会发生什么?
也许新进程覆盖了内存中的 0x80000 地址,当旧进程继续运行时,它 losts 数组!
谁能解释一下?
一般来说,操作系统不会在上下文切换中节省内存。它只是改变寄存器值。旧进程的内存会一直保留到系统需要它为止。如果发生这种情况,内存将被调出。
在过去的交换时代,是的,当一个新进程进来时,内存经常被保存。
我有一个问题,关于在上下文切换中将保存哪些数据。 我已经搜索过了,但所有链接都只谈到了寄存器。
我的问题是 os 是否也保存进程的内存值?
假设一个进程定义了一个从内存地址0x80000开始的数组。 当发生上下文切换时,这个数组会发生什么? 也许新进程覆盖了内存中的 0x80000 地址,当旧进程继续运行时,它 losts 数组!
谁能解释一下?
一般来说,操作系统不会在上下文切换中节省内存。它只是改变寄存器值。旧进程的内存会一直保留到系统需要它为止。如果发生这种情况,内存将被调出。
在过去的交换时代,是的,当一个新进程进来时,内存经常被保存。