腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
3
回答
如何在
虚拟地址
空间中确定页面大小?
、
、
、
Linux使用虚拟内存系统,其中所有地址都是
虚拟地址
,而不是物理地址。这些
虚拟地址
由处理器转换为物理地址。一些页面大小可以是2KB,4KB等等。但是如何确定这个页码呢?它是否受建筑尺寸的影响?例如,32位总线将有4GB的地址空间.
浏览 0
提问于2014-05-06
得票数 55
回答已采纳
1
回答
对页表进行地址/索引
、
、
、
我知道我们可以使用
虚拟地址
作为索引来查找页表,并从相应的条目中获取物理地址(准确地说是页帧
编号
)。页表在内存中的位置由页表基址寄存器(PTBR)提供。对于大型页表,表本身可能被分页并使用虚拟内存寻址,那么当页表中的相应条目被分页并存储在其他地方时,我们如何将
虚拟地址
转换为物理地址?或者,我们如何寻址分页的页表? 非常感谢。
浏览 0
提问于2015-08-17
得票数 0
1
回答
ARM中的页面漫游
、
、
、
、
下面是将用户
虚拟地址
转换为在ARMV7架构上运行的页帧
编号
的代码: static inline uint user_va_to_pfn( unsigned long address ) /} } 有时,这些代码失败,pte = 0x00000000,这是否意味着
虚拟地址
被换出我也观察到)); printk(KERN_ERR "pud:%02x\n", pud_val(*pud));
浏览 34
提问于2021-09-13
得票数 1
1
回答
每个级别的页面表的一个条目覆盖的虚拟内存总量是多少?
、
、
以下参数适用于使用40位
虚拟地址
和1G字节物理(主)内存的系统。字大小为64位(8字节)。地址指向字节并在字节边界上对齐。
虚拟地址
由V39-V0表示,物理地址由P29-P0表示。这就是我到目前为止发现的, 由于它是一个40位
虚拟地址
,页面大小为64 we (2^ 16 ),16位用于偏移,我们从40中减去16。其余24位用于虚拟页面
编号
(VPN)。
浏览 1
提问于2017-04-09
得票数 0
回答已采纳
1
回答
如何使用页表基寄存器(PTBR)来使用页码来定位正确的帧?
、
例如:
虚拟地址
为16位,每页的大小为1KB。第1页->从
虚拟地址
1024开始等等..。因此,如果CPU想从第1页读取数据,那么页面
编号
是"1024“,然后将这个值添加到PTBR中的值中?
浏览 0
提问于2021-02-13
得票数 4
1
回答
有一个比有效地址更大的
虚拟地址
有什么意义?
、
、
我熟悉虚拟内存和
虚拟地址
与物理地址的概念。我也熟悉多层次的页面翻译方案。不过,我新发现的一件事是,一个“有效”的地址。查看它,它用于索引到分段地址空间,您需要将它转换为线性化地址空间中的
虚拟地址
。再加上2^16不同的页面索引值,意味着您实际上只能访问2^52个不同的虚拟页面
编号
,而不是像您期望的80位VAddr那样的2^68。 那么,为什么这个系统会费心去做这些呢?
浏览 1
提问于2021-10-06
得票数 5
3
回答
CPU如何知道哪个物理地址被映射到哪个
虚拟地址
?
、
、
、
根据我的理解,每个进程通过
虚拟地址
而不是物理地址访问内存,CPU有责任通过MMU单元将这些
虚拟地址
转换为物理地址,两个或多个进程可以具有相同的
虚拟地址
。假设进程A试图访问
虚拟地址
12345,进程B也试图访问
虚拟地址
12345。MMU将如何将每个进程的
虚拟地址
转换为物理地址,它是否为每个将
虚拟地址
映射为物理地址的进程设置了映射表(因为我认为CPU甚至不知道什么是“进程”,它的唯一责任是执行指令,而不关心哪个指令属于哪个进程,而
浏览 0
提问于2017-05-12
得票数 6
回答已采纳
1
回答
当我在GDB中运行一个程序时,GDB如何显示程序的
虚拟地址
?
、
、
、
当我在GDB中运行我的简单程序时,GDB会向我显示程序的
虚拟地址
(在我的程序的可执行对象文件中定义)。但GDB没有给我那个地址。相反,GDB显示我的简单程序的
虚拟地址
,它定义在我的简单程序的可执行对象文件中。 怎么会出这事?GDB有
虚拟地址
表吗?
浏览 1
提问于2017-09-19
得票数 2
回答已采纳
1
回答
基于Tanenbaum的现代操作系统的页面大小练习
、
、
并遇到以下问题: 我们每页需要一个条目,或者2^24 = 16×1024×1024条目,因为页面
编号
字段中有36 = 48−12位。
浏览 0
提问于2018-08-27
得票数 0
1
回答
图像基地址、
虚拟地址
和相对
虚拟地址
有什么区别?
、
、
、
图像基地址、
虚拟地址
和相对
虚拟地址
有什么区别?这两个有什么区别?图像基地址到底是什么?图像基地址、
虚拟地址
和相对
虚拟地址
有什么区别?我们什么时候使用图像基地址?
浏览 4
提问于2016-06-05
得票数 3
回答已采纳
3
回答
我们看到一个进程的
虚拟地址
(在分页系统中),这些
虚拟地址
在哪里?
、
、
、
、
我们看到与任何指令对应的
虚拟地址
,所以我的问题是这些
虚拟地址
在哪里?如果我们看到gdb中的反汇编,我们就会看到
虚拟地址
,这些地址位于哪里?请不要说它只是
虚拟地址
,它必须按页映射到物理地址,我知道,但是我们在gdb中看到的
虚拟地址
在哪里存在呢?在RAM里还是在硬盘里?
浏览 2
提问于2016-09-17
得票数 2
回答已采纳
1
回答
虚拟内存地址驻留在哪里?
、
、
、
因此,如果
虚拟地址
没有对应的物理地址,CPU将从磁盘获取该地址。因此,
虚拟地址
的映射可以在以下两个位置之一:它在物理内存或磁盘中。我的问题是
虚拟地址
本身驻留在哪里?因为CPU需要这个
虚拟地址
来执行映射。CPU从哪里获得这个地址?当我们使用gdb查看
虚拟地址
空间时,gdb将所有这些
虚拟地址
放在哪里?对于ex:页表20这里20 (页表条目)驻留在RAM中。0x800000 (物理地址)驻留在RAM中。0x420000信
浏览 5
提问于2013-10-30
得票数 2
1
回答
x86程序集中的地址是虚拟的还是物理的?
、
此地址0x123456789指的是
虚拟地址
还是物理地址?读取时,它声明“
虚拟地址
空间由CPU的内存管理单元(MMU)实现”。那么,是否有一个独立于操作系统的CPU
虚拟地址
空间?除了内核
虚拟地址
空间之外,为什么还需要这样做呢?如果没有操作系统,CPU将如何执行虚拟到物理的转换?
浏览 0
提问于2017-01-02
得票数 8
回答已采纳
1
回答
如何在保留
虚拟地址
范围的同时释放内存?
、
、
、
我在一个内存大小和
虚拟地址
空间都非常紧张的设备上工作。我试图通过更频繁地回收内存,而不是更频繁地回收
虚拟地址
来解决这个问题,例如,提前保留
虚拟地址
但延迟提交内存,同时提前回收内存并延迟释放
虚拟地址
。解决了第一个问题:使用mmap和PROT_NONE来获取
虚拟地址
范围,在使用之前使用mprotect和PROT_READ|PROT_WRITE,这样页面在使用时就会出错。但是,我找不到相反的方法:使用PROT_NONE的mprotect似乎不会释放页面,而调用munmap则会丢失
虚拟地址
范围。
浏览 1
提问于2018-04-12
得票数 1
1
回答
如何跟踪在Linux内核中调用memcpy()的时间?
、
、
、
、
我知道一个进程可以(1)从它的缓冲区写入页面缓存,或者(2)它可以使用Mmap将页面缓存直接映射到它的
虚拟地址
空间。在(1)中,一些函数将被调用,如generic_perform_write。还有一个问题,当我查看写回函数时,我发现了一些写回磁盘的文件,其inode
编号
为0。我也真的对此感到困惑。我认为inode
编号
应该从1开始。谢谢您的帮助。
浏览 10
提问于2016-07-21
得票数 0
2
回答
ARM体系结构中
虚拟地址
与修改
虚拟地址
的区别
、
、
、
在ARM-Cortex A8的文档中,我看到了一些命令,如缓存刷新、接受输入地址作为MVA (修改后的
虚拟地址
)。“修改
虚拟地址
”和“
虚拟地址
”之间有任何区别,如果是的话,如何将32位长的
虚拟地址
转换为MVA。
浏览 0
提问于2019-07-29
得票数 2
回答已采纳
1
回答
为什么ELF的
虚拟地址
在映射到虚拟空间之前就可以确定?
、
、
、
对象文件被链接以生成ELF文件,并确定其
虚拟地址
。例如,.text的
虚拟地址
是0x8048000。当ELF文件要映射到虚拟空间时,另一个ELF已经映射到此地址。操作系统应该做什么?为什么在将ELF的
虚拟地址
映射到虚拟空间之前就可以确定其
虚拟地址
。
浏览 3
提问于2015-10-02
得票数 5
回答已采纳
1
回答
windows中的
虚拟地址
空间
、
、
、
、
文件上说 如果一个进程需要分配2g
虚拟地址
空间,我可以说如果系统中有4
浏览 4
提问于2013-08-21
得票数 0
回答已采纳
2
回答
系统如何定义进程获得的虚拟内存的部分?
、
、
、
如果存在32位系统(假设为Windows),则
虚拟地址
空间为4GB。因此,CPu可以在此范围内生成任意地址。那么,一个进程难道也不能解决这个范围内的任何地方吗?据说每个进程都有自己的专用
虚拟地址
space.Then,系统如何方便这一点呢?假设一个进程从其私有
虚拟地址
空间中寻址一个地址,会发生什么?
浏览 1
提问于2013-12-31
得票数 1
回答已采纳
3
回答
指向另一个进程的内存位置的指针。
当我们说A有一个指向B中变量V的指针时,A是持有与V对应的
虚拟地址
(进程B)还是物理地址?(ii)。如果A包含
虚拟地址
,因为A和B都可能具有相同的
虚拟地址
,则A的分页包含A持有的
虚拟地址
的映射(实际上是进程B中变量V的
虚拟地址
)。然后,当A试图访问和修改该
虚拟地址
时,它会在自己的地址空间中修改某些内容(这种访问将被允许,因为A访问自己的地址)。当我们试图从一个进程访问一些随机
虚拟地址</e
浏览 3
提问于2012-01-19
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
什么是虚拟地址注册?合法吗?
可以使用虚拟地址注册公司吗?
上海园区虚拟地址注册公司是啥意思呢?
47 为什么要对数据编号及快速编号的方法
wiringPi引脚编号方式
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
即时通信 IM
活动推荐
运营活动
广告
关闭
领券