hebothu 2015-04-19 05:07 采纳率: 0%
浏览 1764

Linux如何管理内核的数据段?

我目前知道的或自以为知道的(以32位Linux、3G+1G的配置为例):
1. Linux里的每个进程都有4G的地址空间,其中0至3G是用户空间,3G至4G是内核。内核被共享在每个进程的地址空间中。
2. 每个进程的地址空间内大约有4个段,即内核代码段、内核数据段、用户代码段、用户数据段。
3. 我以为属于内核的物理内存,是不能被交换(swap)到硬盘上的,也就是常驻在内存中的。

但是我现在在看一篇文献,上面大约这样说:
...上面提到的那种设计不好(注:具体这个设计是什么就不讨论了),因为物理内存页会频繁地在属于kernel data segment和属于user space之间切换。而属于kernel code segment的物理内存页则没有这个问题。

这好像和我之前理解的不符啊?求高手解惑:kernel data segment的物理页如何变成user space的物理页?以及user space的物理页如何变成kernel data segment的物理页?

  • 写回答

2条回答

  • threenewbee 2015-04-19 05:09
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题