腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
2
回答
每个进程的
页
表
是否包含
映射
到内核地址空间的条目?
、
在
Linux
中,每个进程都有一个
页
表
,它将用户地址空间
映射
到物理
页
帧。如果是,则所有进程的
页
表
映射
同一地址中的一个内核镜像。这意味着所有的
表
都包含相同的内核地址条目。是不是很浪费?
浏览 20
提问于2015-10-23
得票数 1
1
回答
Linux
如何在x86-64中支持超过512 in的虚拟地址范围?
、
、
、
Linux
的x86-64用户虚拟地址空间是47位长。这本质上意味着
Linux
可以
映射
大约128TB虚拟地址范围的进程。然而,让我困惑的是,x86-64架构支持ISA定义的每个进程的4级分层
页
表
(排列为基数树)。
页
表
的根只能
映射
最多512 GB的连续虚拟地址空间。那么
Linux
如何支持超过512 So的虚拟地址范围呢?它是否为每个进程使用多个
页
表
?如果是,那么对于一个进程,对于任何给定的进程,CR3
浏览 0
提问于2012-06-28
得票数 6
回答已采纳
1
回答
使用pte_map_offset
映射
页
表
、
我正在做一些
linux
内核的工作,并且我正在同时迭代三个不同页面目录的
页
表
。当我需要
映射
页
表
时,我使用了pte_offset_map。然而,我意识到在启用高内存的情况下,这种方法将不起作用,因为pte_offset_map将尝试使用相同的kmap插槽(在
Linux
2.6.32中,pte_offset_map使用kmap_atomic但是,我需要一次
映射
三个不同的
页
表
。我已经想出了一些解决方案,只需要一次
映射<
浏览 3
提问于2011-11-21
得票数 1
1
回答
Linux
内存
映射
、
、
关于
linux
内存管理,我有几个问题(假设x86 32位平台) 有人能解释一下X86逻辑地址
映射
限制来自哪里吗?在"
linux
设备驱动程序“第15章中,有人说在
映射
逻辑地址方面存在限制,但没有进行深入
浏览 3
提问于2013-08-29
得票数 2
2
回答
Linux
中的虚拟内存管理器
Linux
中的虚拟内存管理器的目的是什么,以及它与
Linux
机器上的传统“交换”有何不同。
浏览 0
提问于2020-06-30
得票数 0
1
回答
使用mmap读取的非惰性文件?
、
、
、
、
当您使用mmap从文件读取时,它执行延迟文件读取,也就是说,它只将您从硬盘使用的数据带到RAM中。现在,有什么方法可以强制将整个文件同时读入RAM吗?
浏览 1
提问于2014-11-26
得票数 1
回答已采纳
2
回答
如何将
页
表
的虚拟地址转换为其实际物理地址?
、
、
如果在OS中启用分页,则使用
页
表
将虚拟地址
映射
到实际物理地址。更具体地说,考虑X86上的
Linux
32位操作系统,cr3寄存器具有页面
表
目录的起始地址。我想这是个虚拟地址。CPU将如何将此虚拟地址
映射
到RAM中
页
表
目录的物理地址。该地址转换将使用哪个
页
表
?
浏览 2
提问于2015-03-12
得票数 1
回答已采纳
1
回答
linux
内核的修复
映射
是如何实现的?
、
、
在1G空间中,低896M部分直接
映射
到物理地址,称为固定
映射
区域。 但我搞不懂它是如何实现的。因为cpu只能访问线性地址,然后被MMU解释为物理地址。当内核访问这个修复
映射
区域时会发生什么?
浏览 0
提问于2021-09-21
得票数 0
回答已采纳
1
回答
在C中为openmp和mpi并行编程分配内存的最佳方法
、
如果要写C代码,而不是C++,并且要使用openmp指令来编写并行程序,那么分配内存的最佳方法是什么?我习惯了传统的malloc()和calloc(),但我也遇到过用来做信号量。其中一个比另一个更好还是更差?
浏览 0
提问于2016-02-26
得票数 1
1
回答
Linux
是否对
页
目录和
页
表
使用自
映射
?
、
、
、
我之所以问这个问题,是因为我很好奇
Linux
内核是如何工作的。根据的说法,Windows在其
页
目录和
页
表
中使用了名为self-map的特殊条目,以便能够操作来自内核虚拟地址空间的
页
目录/
表
内容。如果有人熟悉
Linux
内存管理,请告诉我
Linux
内核处理这个问题的方式是相似的还是不同的。谢谢。
浏览 1
提问于2011-03-11
得票数 3
回答已采纳
2
回答
如何让进程的每一
页
都在页面
表
中呈现?
、
我在
linux
上用gcc编译了一个静态程序,并在kvm下运行。我检查了来宾内存中该进程的每个
页
表
条目,发现一些页面已经
映射
,而一些页面没有
映射
。这是按需分页的功能吗?我的问题是,是否有一个解决方案,使所有的pte存在并
映射
到
页
表
中?例如,我派生了一个新的进程并加载了一个新的elf二进制文件,如何使每个页面都
映射
到这个新进程的
页
表
中。谢谢
浏览 1
提问于2010-07-29
得票数 2
回答已采纳
1
回答
mmap一个10 GB文件并将其加载到内存中
、
、
如果我想要mmap一个10 GB的文件并立即将整个文件加载到物理内存中,我如何才能这样做?有能满足我需求的系统调用吗?
浏览 2
提问于2014-11-04
得票数 6
回答已采纳
1
回答
内核虚拟地址的直接
映射
、
我已经读过如果
Linux
内核虚拟地址在0xC0000000和(0xC0000000 + 896MB)之间。该
映射
被定向到物理地址。这是如何在
Linux
中实现的。是否有人告诉MMU每次虚拟地址在0xC0000000和(0xC0000000 + 896MB)之间时减去偏移量
浏览 1
提问于2014-07-08
得票数 0
2
回答
Linux
中所有分页结构的物理地址会
映射
到
页
表
中吗?
、
、
、
在64位
Linux
中,IA-32E paging与4级分页结构IA-32E paging一起使用。前三个结构中的条目给出了相应的下一个结构的物理地址。我的问题是,所有这些分页结构的物理地址会
映射
到分页
表
中吗?如果
映射
它们,则采用哪种模式(User/Supervisor)?非常感谢! 我捕获了vcpu在KVM期间访问的一些特定内存地址。我想知道这些gfns是在内核还是在用户空间中
映射
的。因此,我遍历了来宾的(虚拟机)分页
表
,以找到对应到这些gfns的页面
表
条目。
浏览 1
提问于2015-05-30
得票数 0
回答已采纳
1
回答
在ARMv7的上下文中,当mmu必须执行
页
表
转换时,
Linux
内核一对一
映射
内存的优点是什么?
、
、
、
Linux
内核虚拟地址是一对一
映射
的.因此,通过将一个PAGE_OFFSET减去虚拟地址,我们将得到物理地址。这就是和是如何在中实现的。我的问题是,这些一对一的
映射
在armv7 mmu上的优势是什么?当存在TLB缺失时,mmu必须执行页面
表
转换?单对一
映射
的唯一优势是S/W只需减去PAGE_OFFSET即可直接获得各自虚拟地址的物理地址,还是ARMV7 MMU页面转换还有其他优势?如果与mmu
页
表
转换相比,1:1
映射
内存没有优势,那么为什么我
浏览 3
提问于2015-10-25
得票数 3
回答已采纳
1
回答
linux
内核中的内存
映射
、
在
linux
内核中,同一物理
页
帧是否可以同时多次
映射
到一个进程的虚拟内存空间? 换句话说,在此过程中有多个
页
表
条目指向同一个物理
页
。
浏览 5
提问于2014-01-24
得票数 2
回答已采纳
1
回答
在使用
页
表
的OSes中,
页
表
是否一直为空?
、
、
、
、
当操作系统运行时,页面
表
变为空(可能是当
页
表
的进程终止时),我认为该页
表
被释放为内存的空闲
页
。当操作系统启动时,--但我的理解是,像
Linux
这样的现代OSes从真正的模式开始,然后切换到分页模式,在此期间,我可以想象process 1得到自己的带有内核
映射
的
页
表
。如果页面
表
中的最后一个有效条目随后被取消
映
浏览 3
提问于2021-02-20
得票数 0
回答已采纳
3
回答
是否有可能从结构页面中找到相应的task_struct?
、
有没有办法根据给定的结构页面找到对应的结构task_struct?我想要做的是,我想知道虚拟化环境中哪个KVM虚拟机正在使用给定的页面。并且task_struct被添加了一个新的数据成员(即vm_id),这样一旦我通过给定的struc页面获得task_struct,我就可以获得vm_id。似乎没有直接的解决方案。但我对此一无所知。
浏览 1
提问于2012-11-08
得票数 2
1
回答
64位
Linux
内核如何在兼容性模式下管理32位应用程序的
页
表
?
、
、
内核通过将页面上目录和
页
中间目录中的条目数量设置为1,并将这两个条目
映射
到的适当条目来为它们保留一个位置。因此,具有4级分页的64位
Linux
内核的
页
表层次结构如下所示:因此,在文本中,有人说两个级别就足够了(比如在正常的32位分
页
中),这就是为什么PUD和PMD被“消除
浏览 0
提问于2018-02-27
得票数 3
1
回答
内核
页
表
是如何在所有进程之间共享的?
、
、
我试图更好地理解,比方说,x86,内核是如何
映射
到每个进程地址空间的,这样就可以在所有进程和所有内核中更改内核地址
映射
。在具体示例中,假设内核地址0xC00004在进程A中发生的syscall过程中
映射
到页面框架1000。我的问题是:如何更新进程B和C的
映射
,这些
映射
可能在多个核上同时运行,对于当前未运行的进程也是如此?我假设必须有某种方法使所有进程“指向”/引用一组核心
页
表
,因此,对该核心位置的更新意味着对所有进程的更改。但是如果每个核心都有自己的MMU,那
浏览 0
提问于2020-07-13
得票数 4
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Linux内存映射mmap原理分析
战略图卡表指导手册下载(共45页)
一篇读懂Linux 是如何管理内存的
漫话:MySQL中的行级锁,表级锁,页级锁
超全的 Linux 机器的渗透测试命令备忘表,共16表128条命令
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券