LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1375|回复: 3

进程切换时如何保存内存里的内容

[复制链接]
发表于 2010-5-25 23:32:10 | 显示全部楼层 |阅读模式
寄存器的我知道,
但是比如该进程在堆上分配了空间,这里面的内容在切换时是如何保存的?

谢谢
发表于 2010-5-26 14:07:05 | 显示全部楼层
寄存器只有一套,所以必须保存,切换。

内存本来就有多套,不存在保存,切换的问题。只是映射表变一变就行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-26 22:13:27 | 显示全部楼层
你意思是多个程序占用不同的物理内存段?
回复 支持 反对

使用道具 举报

发表于 2010-5-26 22:48:23 | 显示全部楼层
如果你说的是x86保护模式(intel 80386处理器及以上)下的Linux系统的话,每个进程拥有各自的4GB地址空间,被称为进程地址空间或者逻辑地址,其中3GB是应用程序地址空间,1GB是操作系统地址空间(也可以设置成2GB:2GB或者其他内存布局)。i386是按4KB每页,将进程逻辑地址内存映射到物理内存中的。不同进程的相同地址,可能被按页映射到不同的物理地址,因此互不影响。机器指令是按逻辑地址内存的地址布局来执行而不是物理内存。进程切换时。。。。。。算了,写一万字都不见得将得全面,楼主用“GDT LDT  TSS 进程切换”关键字上google搜索吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表