加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

多个进程的Linux内核逻辑地址

发布时间:2020-12-13 23:03:56 所属栏目:Linux 来源:网络整理
导读:据我所知,“每个进程的地址空间分为3G / 1G用于用户空间/内核空间,1G(少一点)用一对一映射到物理地址,称为内核逻辑地址”. ??现在,我的问题是,系统上运行了多个进程,并且所有进程如何与物理地址进行一对一映射? ????例如,当内核访问进程A的上下文中的内核逻
据我所知,“每个进程的地址空间分为3G / 1G用于用户空间/内核空间,1G(少一点)用一对一映射到物理地址,称为内核逻辑地址”.
??现在,我的问题是,系统上运行了多个进程,并且所有进程如何与物理地址进行一对一映射?
????例如,当内核访问进程A的上下文中的内核逻辑地址时,现在抢占发生了,当内核访问进程B上下文中的逻辑地址时会发生什么?

在类似的产品线上,只有512MB RAM的PC会发生什么?对于那些PC来说,1G内核空间的一对一映射是如何发生的?

解决方法

首先要考虑的是,总虚拟地址空间的内核部分(比如1GB)并未全部被使用.并且总物理内存并非都映射到内核空间.

内核空间将为其使用的物理RAM以及定义的任何内存映射外设提供虚拟内存映射.那些没有被分页.

用户空间中的每个进程可以为其代码数据提供多达3 GB的虚拟内存.对于物理记忆有两个极端,它可能会让每个人都看清楚.

大物理内存:如果处理器支持大物理寻址,例如36位,可能有64 GB的物理内存.您可以拥有多个进程,每个进程都有3 GB的代码数据,甚至不必将页面交换到辅助存储.每个上下文切换都会设置MMU以将新执行进程的物理内存映射回用户空间.

小物理内存:假设有512 MB,内核使用128 MB.剩下的384 MB将保存用户进程的代码数据.如果用户进程需要更多,页面将根据需要在辅助存储和RAM之间交换.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读