腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
视频
沙龙
1
回答
ARM MMU和ARM Linux页表漫游
、
、
我对linux如何利用ARMv7内存管理单元硬件来实现它的3级页表遍历有点困惑。MMU只有2个寄存器ttbr0和ttbr1 (一个用于内核,另一个用于用户空间)。mmu如何知道linux的多级页表漫游? 谢谢,Hvr
浏览 0
提问于2015-01-19
得票数 1
1
回答
Linux如何在x86-64中支持超过512 in的虚拟地址范围?
、
、
、
Linux的x86-64用户虚拟地址空间是47位长。这本质上意味着Linux可以映射大约128TB虚拟地址范围的进程。 然而,让我困惑的是,x86-64架构支持ISA定义的每个进程的4级分层页表(排列为基数树)。页表的根只能映射最多512 GB的连续虚拟地址空间。那么Linux如何支持超过512 So的虚拟地址范围呢?它是否为每个进程使用多个页表?如果是,那么对于一个进程,对于任何给定的进程,CR3 (x86-64的寄存器,以包含页表基址的地址)应该包含什么?我是不是遗漏了什么?
浏览 0
提问于2012-06-28
得票数 6
回答已采纳
1
回答
Linux是否对页目录和页表使用自映射?
、
、
、
我之所以问这个问题,是因为我很好奇Linux内核是如何工作的。根据的说法,Windows在其页目录和页表中使用了名为self-map的特殊条目,以便能够操作来自内核虚拟地址空间的页目录/表内容。如果有人熟悉Linux内存管理,请告诉我Linux内核处理这个问题的方式是相似的还是不同的。谢谢。
浏览 1
提问于2011-03-11
得票数 3
回答已采纳
1
回答
何时将进程的页表加载到内存中?
、
、
我想知道操作系统何时将特定进程的页表加载到主内存中?是在进程被调度的时候吗?操作系统能够直接将进程页表加载到主存中吗? 我有一个想法:除非处理器生成对应于页面的页面错误,否则任何东西都不会进入主内存。同样的情况也适用于页表吗?或者我的想法是错误的。 PS:如果答案可以具体针对基于Linux的系统,我们会非常感激的。
浏览 0
提问于2016-07-19
得票数 1
1
回答
在使用分页时,DPL和RPL重要吗?
、
、
我可能错了,但根据我所读到的内容,除了CPL之外,DPL和RPL还用于防止或允许进程在使用内存分段时访问某些内存区。 但是现代操作系统(例如: Linux)不使用内存分段,而是使用分页,并且进程的页表允许您指定只有在CPU处于内核模式时才能访问某些内存区域( CPU处于用户模式还是内核模式仅由CPL决定)。 在使用分页时,DPL和RPL无关紧要,只有CPL才是重要的,这对吗?
浏览 5
提问于2019-04-04
得票数 0
1
回答
当我们正在寻找的物理页面位于交换区域时,页表内容
、
、
、
如果这个问题取决于linux发行版,请以“一般方式”(即linux发行版上最常见的实现)回答。 在进程的页表中,我们可以找到我们要查找的页面在主内存中映射的物理方向,或者如果我们要查找的页不在主内存中,并且必须从磁盘中捕获它,则可以找到指向磁盘的指针。但我的问题是:如果我们正在寻找的页面位于交换区域,我们将在该过程的页面表中找到什么?我们会找到一个指向磁盘的指针(但是指向交换区域中的页面),或者我们会找到一个物理方向,但这个物理方向是一个“虚拟方向”,这使得mainMemory + swapArea成为一个统一的内存(也就是说,如果我们有16 2GB主存+2GB交换内存,我们可以在页面表中看到
浏览 0
提问于2020-06-30
得票数 0
回答已采纳
1
回答
Linux页面表管理与MMU
、
、
、
我有一个关于linux内核和MMU之间的关系的问题。现在我明白了,linux内核管理虚拟内存地址和物理内存地址之间的页表。同时,在x86体系结构中存在MMU,它管理虚拟内存地址和物理内存地址之间的页表。如果MMU出现在CPU附近,内核还需要处理页面表吗? 这个问题可能很愚蠢,但另一个问题是,如果MMU负责内存空间,谁来管理高内存和低内存?我相信内核将从MMU (32位中的4GB)接收虚拟内存的大小,然后内核将区分虚拟地址中的用户空间和内核空间。我说的对吗?还是完全错了? 提前谢谢!
浏览 3
提问于2014-09-24
得票数 10
回答已采纳
1
回答
如何在Linux中获取进程的页表内容?
、
、
、
、
我正在尝试显示我创建的进程的顶层页面表。 如何在我用Linux编写的模块中获取进程的页表内容? 我在64位英特尔架构的Windows 8主机上使用Ubuntu14.04LTS虚拟机。
浏览 0
提问于2015-04-25
得票数 0
回答已采纳
1
回答
在unix系统中分页是如何工作的?
、
、
、
我正在学习“理解Linux内核”这本书,但我停在了“常规分页”一节。现在,我理解了为什么需要分页,它背后的概念是什么,但是...很多事情我都不能理解。为什么表分页是分页的?我记不起来了)有必要吗?它是如何工作的?加上,它必须在ram中的某个地方找到整个表页集,所以...如果空间已经浪费了,为什么不做一个巨大的表页呢?然后,书中说表页中每个条目的维度是32位,但是...如果页面大小为4kb,为什么不使用这个事实呢?我们知道最后12位是0,所以为什么不隐式地保留它们呢?我知道我说的这些话都是错的,我说这些话只是为了更好地解释我的疑虑。(对不起,我的英语很烂)
浏览 0
提问于2020-05-11
得票数 0
2
回答
ARM Linux页面表布局
、
、
、
、
我读过多篇关于这个主题的文章,包括下面的文章,但我仍然不太清楚: ARM硬件在L1转换表中有4字节的4096个条目。每个条目在内存中转换一个1MB的区域。在第二级,它有256个条目,每个条目有4个字节。每个二级条目在内存中翻译一个4KB的页面。因此,根据这一点,任何虚拟地址都必须划分为12-8-12才能映射到上述方案。 但是在32位ARM linux方面,这个部门是11-9-12。其中,L1转换表由2048个条目组成,每个条目为8个字节。在这里,两个4个字节的条目被合并在一起,并且在内存中一个一个地排列出指向的第二级转换表,这样在第二级而不是256个级别上就有512个条目。此外,由于Lin
浏览 0
提问于2016-07-13
得票数 3
回答已采纳
2
回答
如何将页表的虚拟地址转换为其实际物理地址?
、
、
如果在OS中启用分页,则使用页表将虚拟地址映射到实际物理地址。更具体地说,考虑X86上的Linux32位操作系统,cr3寄存器具有页面表目录的起始地址。我想这是个虚拟地址。CPU将如何将此虚拟地址映射到RAM中页表目录的物理地址。该地址转换将使用哪个页表?
浏览 2
提问于2015-03-12
得票数 1
回答已采纳
1
回答
查找新进程的页表和页目录(在上下文切换之后)
、
、
当有进程切换,并且必须使用新进程的页表和页目录时,内核从哪里知道新进程的页目录的位置? 我知道新进程的页面目录存储在物理内存中。但是内核如何知道在哪里可以找到它呢?
浏览 1
提问于2012-03-28
得票数 0
回答已采纳
1
回答
64位Linux内核如何在兼容性模式下管理32位应用程序的页表?
、
、
目前,我正在读“理解Linux内核”一书。在此,据说: 对于没有物理地址扩展的32位架构,两个分页级别就足够了.Linux本质上消除了和字段,因为它们包含零位。但是,页面上目录和页中间目录在指针序列中的位置保持不变,以便相同的代码可以在32位和64位架构上工作。内核通过将页面上目录和页中间目录中的条目数量设置为1,并将这两个条目映射到的适当条目来为它们保留一个位置。 因此,具有4级分页的64位Linux内核的页表层次结构如下所示: PML4 (Linux: PGD) -> 512 * PDPT (Linux: PUD) -> 512 * PD (Linux: PMD) ->
浏览 0
提问于2018-02-27
得票数 3
1
回答
在x86-64体系结构中分页
、
、
、
、
在操作系统的32位实现中,页表具有固定的结构(页面目录和页表两级)。但是在x86_64系统中,通常有多个层次的页面表实现(4在Linux中)。系统如何知道使用了多少级别?这需要什么命令?我们如何让CPU知道全局页面目录和其他结构?
浏览 2
提问于2015-05-02
得票数 2
1
回答
内存管理单元(MMU)如何通知操作系统页面表已经更新?
、
我正在探索Linux操作系统中的内存管理。 据我所知,MMU是一种集成在现代CPU中的处理地址转换的硬件。如果虚拟地址不在TLB中,MMU将首先通过页表基寄存器(PTBR)获取进程页表的地址,然后从位于物理内存中的页表中检索物理地址。 我的问题是: MMU如何通知操作系统物理页面已被访问或修改,因为操作系统负责页面替换?我在Linux/mm/swap.c中看到了一个函数。但是,我不确定是否每次更新页面表时都调用此函数。 void mark_page_accessed(struct page *page) { if (!PageActive(page) && !PageU
浏览 0
提问于2016-07-21
得票数 2
回答已采纳
5
回答
如何查找或计算Linux进程的页表大小和其他内核记帐?
、
、
、
如何才能知道Linux进程的页表有多大,以及其他任何可变大小的进程记帐?
浏览 0
提问于2009-05-12
得票数 7
1
回答
linux分页,使用了大量的页表目录
、
、
我读了一本关于Linux虚拟内存的书Mel Gorman。我读到过,Linux支持3级页表: PGD,PMD和PTE。如果我没有记错的话,在较新版本的内核中,有四个页表级别: PUD,但这无关紧要。我有一个合理的问题。为什么Linux开发人员选择3(或4)级页表而不是使用1级?只使用一个全局页表(我指的是每个进程的全局页表)将减少内存引用的数量。 对不起,我的英语不好。
浏览 2
提问于2015-12-21
得票数 0
1
回答
虚拟内存中页面的保护
、
我在一篇教程中读到,虽然intel分段不在linux中使用,但在虚拟内存教程中,代码段选择器和数据段选择器.And中存在保护或模式信息--我在虚拟内存教程中阅读了关于使用页表保护页面的信息,这取决于它们运行的模式。 我想知道这两种机制有什么关系? 在什么阶段,页面上的保护信息被添加到页面表中? CPU是否检查代码段选择器,并根据它设置页表标志?
浏览 2
提问于2012-07-30
得票数 0
回答已采纳
1
回答
x86平台中KVM卷影页表的处理
、
、
、
、
据我所知,在没有硬件支持来宾虚拟到主机物理地址转换的处理器上,KVM使用影子页表。 当来宾操作系统修改其页表时,会构建并更新影子页表。硬件中是否有修改页表的特殊指令(以x86为例)?除非有特别指示,否则VMM不会有陷阱。在软件中由Linux内核维护的页表不就是另一种数据结构吗?为什么它需要特殊的指令来更新它? 谢谢!
浏览 2
提问于2013-01-06
得票数 8
回答已采纳
1
回答
KVM/QEMU和来宾操作系统如何处理页面错误
、
、
、
、
例如,我有一个启用KVM的主机操作系统(例如,Ubuntu)。我用QEMU启动虚拟机来运行客户操作系统(例如,CentOS)。据说,对于主机操作系统来说,这个VM只是一个过程。因此,从主机的角度来看,它像往常一样处理页面错误(例如,根据需要分配页面帧,必要时根据活动/非活动列表交换页面)。 这是问题和我的理解。在客户操作系统中,由于它仍然是一个成熟的操作系统,我猜想它仍然拥有处理虚拟内存的所有机制。它看到了一些由QEMU提供的虚拟化物理内存。所谓虚拟物理内存,我的意思是来宾操作系统不知道它在VM中,并且仍然像在真正的物理机器上那样工作,但是它所拥有的确实是QEMU给出的抽象。因此,即使将页面框
浏览 4
提问于2020-03-15
得票数 3
回答已采纳
2
回答
内核空间和用户空间的管理页表条目(PTE)有什么不同?
在Linux操作系统中,启用页表后,内核将只映射一次属于内核空间的PTE,而不会再重新映射它们?此操作与用户空间中的PTE相反,每次发生进程切换时都需要重新映射。 所以,我想知道在内核和用户空间对PTE的管理有什么不同。 此问题是问题的扩展部分,网址为: 致以敬意, 汤乐
浏览 3
提问于2013-05-24
得票数 1
1
回答
Linux内存映射
、
、
关于linux内存管理,我有几个问题(假设x86 32位平台) 默认情况下,对于所有进程,虚拟地址的前1G映射到内核区域。理论上,内核可以使用vmalloc从高内存映射额外的内存。我的问题是,所有用户进程的页面表会发生什么情况,我假设它们应该得到内核内存分配的更新?(可能是当内核处于进程上下文中时,内存就会被使用)。 有人能解释一下X86逻辑地址映射限制来自哪里吗?在"linux设备驱动程序“第15章中,有人说在映射逻辑地址方面存在限制,但没有进行深入的解释: 在许多情况下,即使32位处理器也能处理超过4GB的物理内存.然而,对于可以用逻辑地址直接映射多少内存的限制仍然存在。只
浏览 3
提问于2013-08-29
得票数 2
3
回答
Linux内核ARM转换表库(TTB0和TTB1)
、
、
编译的Linux kernel 2.6.34.3 for ARMv7 (Cortex-a8) 我查看了内核代码,发现Linux内核为TTB1 (转换表基)上的内核地址空间(大于0xC0000000的所有内容)和ttb0 (低于0xC0000000的所有内容)上的用户进程设置了硬件页表,每次进程上下文切换时,这些页表都会发生变化。这是正确的吗?我仍然不明白MMU是怎么知道要看哪个ttb来翻译的? 我读到TTBCR (转换表基址控制寄存器)决定在未找到MVA时遍历哪个ttb寄存器,但该寄存器始终读0,这意味着在ARM架构参考手册中始终使用TTBR0。那件事怎么可能?谁能给我解释一下Linux内核是
浏览 6
提问于2013-01-22
得票数 11
回答已采纳
1
回答
建立Oracle JDBC数据源
、
、
我正在尝试使用JDBC在ColdFusion Linux服务器上设置CLSE5 8数据源。我已经从Oracle下载了10g和11g的JDBC驱动程序,并将JAR文件放在%CF_INSTALL_Folder%/runtime/lib中。我验证了这个文件夹在CF管理设置摘要页的类路径中。根据这个,JDBC应该是: jdbc:oracle:thin:@[HOST][:PORT]:SID 如果要为不同的连接使用不同的驱动程序,如何在数据源连接表单上区分它们?
浏览 3
提问于2013-11-18
得票数 1
回答已采纳
3
回答
是否可以通过修改页表来移动内存页?
、
、
是否有可能(在任何合理的操作系统上,最好是Linux上)通过只修改页表而不实际移动任何数据来交换两个内存页的内容? 动机是密集的矩阵转置。如果数据是按页大小阻塞的,那么可以转置页内的数据(在缓存中),然后交换页以将块移动到它们的最终位置。一个大的矩阵会有很多很多的页面被移动,所以希望刷新TLB不会造成麻烦。
浏览 2
提问于2010-04-21
得票数 3
回答已采纳
2
回答
如果CPU看到虚拟地址,那么页面错误处理程序如何用物理地址填充页表条目?
、
、
、
我正在阅读有关页面错误的内容,从我所读到的内容来看,MMU参考页面表将虚拟地址转换为物理地址。操作系统(通过页面错误处理程序)有责任填充这些页面表条目。 令我困惑的是,页面错误处理程序首先是如何获得物理地址的?在我看到的图表和说明中,CPU似乎使用虚拟地址,MMU透明地将它们转换为物理地址。CPU是否专门使用物理地址而不是虚拟地址来处理页面错误? 如果访问内存中不存在的某个4K页,并且页错误处理程序成功地定位了磁盘上相应的4K页,那么它如何获得4K页物理内存并计算物理内存4K页的物理地址?
浏览 3
提问于2021-07-30
得票数 1
回答已采纳
2
回答
为什么每次从内核模块读取时,CR3注册内容都会有所不同?
、
、
、
、
我编写了一个内核驱动程序,目的是剖析Linux内核页表。我发现,每当我从驱动程序内部读取CR3寄存器时,CR3的内容每次读取时都会有所不同! 这一切为什么要发生?由于驱动程序在内核模式下执行,CR3需要指向内核页目录(对吗?),那么为什么每次CR3都会改变呢? 如果CR3不断变化,那么驱动程序如何按预期正确地进行内存访问?
浏览 2
提问于2012-10-26
得票数 5
回答已采纳
1
回答
在私人区域,抄写是如何工作的?
、
、
我读了一本关于Linux如何管理私有对象的教科书,如下图所示: 📷 图中显示了两个进程将私有对象映射到虚拟内存的不同区域,但共享对象的物理副本的情况。对于映射私有对象的每个进程,对应的私有区域的页表条目被标记为只读,区域结构被标记为私有的随写复制。一旦进程试图写入私有区域中的某个页面,该写入将触发一个保护fault.When故障处理程序注意到,保护异常是由于进程试图写入私有写副本区域中的页而引起的,它在物理内存中创建页的新副本,更新页表条目以指向新副本,然后恢复对页的写入权限。 我们知道Linux使用vm_area_struct (区域结构)将当前虚拟地址空间的区域定性为: 📷 我认为vm_f
浏览 0
提问于2020-09-21
得票数 0
1
回答
是否可以在linux计算机上查看页表
、
、
最近我读到页表是每个进程的实体,我在想在Linux机器上查看特定进程的页表是可能的吗?我读到在一些寄存器中有对页表的引用?
浏览 3
提问于2014-04-03
得票数 0
1
回答
内核地址空间和内核页表
、
、
、
、
我正在学习专业Linux内核架构,我在第三章内存管理中。在研究内核地址空间的同时,将其划分为直接映射区域、vmalloc区域、kmap区域和固定映射区域。 📷 我想知道的是如下所示。 32位机内核地址空间的直接映射区(896 be )可以通过__va、__pa等函数访问吗? 如果1为真,那么主内核页表(Swapper_pg_dir)只管理128 is? 在研究内核代码时,我发现32位和64位之间的paging_init函数不同。在32位中,我在pagetable_init函数中找到了初始化内核页表和主内核页表的寻呼_初始化函数. 32位函数paging_init void __init pag
浏览 0
提问于2017-12-20
得票数 2
回答已采纳
1
回答
页表总是在内存中吗?页表会被换出吗?
、
、
我认为页表是由Linux内核维护的,所以页表所需的内存不应该被换出,因为内核没有页故障的事情。但是,如果pgd、pmd、pte表都在主存中并且不会被换出,那么多级分页的意义并不能节省任何内存。 因此,我对页表本身的管理方式感到困惑。
浏览 18
提问于2014-09-10
得票数 3
2
回答
在“分叉”进程的同时,为什么Linux内核要为每个新创建的进程复制内核页表的内容?
、
、
、
、
下面的讨论适用于32位ARM Linux内核。 我注意到在分叉过程中,Linux内核将内核页表(母版页表,即swapper_pg_dir) )的内容复制到每个新创建的进程的页表中。 问题如下: 为什么要费心这么做呢? 为什么所有进程都不能共享内核页表的一个副本(对于32位ARM Linux的higer 1G部件),而不能为每个新创建的进程共享一个交换页表? 这是在浪费记忆吗? 相关源代码(“->”表示函数调用): do_fork -> copy_process --> copy_mm -> dup_mm --> mm_init --> m
浏览 4
提问于2014-12-01
得票数 3
回答已采纳
2
回答
在页面错误上,Unix如何确定故障地址是否位于交换空间中?
、
、
当任何进程的虚拟地址发生页错误时,linux/unix操作系统如何确定该页(该虚拟地址)是否已被交换到内存中并交换到磁盘(即该页当前处于交换空间中),还是该页以前从未加载到内存(即该页不存在于交换空间中)?
浏览 0
提问于2015-09-02
得票数 0
回答已采纳
1
回答
如何在django管理中更改模型中字段的display_list标签
、
、
我有一个带有verbose_name字段的模型。这个冗长的名称适用于管理编辑页面,但对于列表页来说显然太长了。 如何设置在list_display管理页面中使用的标签?
浏览 1
提问于2022-11-08
得票数 2
1
回答
我能用一个过程中的PTEs来表示物理记忆的片段,在另一个过程中创建合适的PTEs吗?
、
、
、
、
当我们在Linux中使用函数mmap (,,, MAP_ANON | MAP_SHARED);时,对于同一区域的物理内存(在进程之间分配的)是分配虚拟内存页(PTEs)。这些PTE从一个进程的页表复制到另一个进程的页表(具有相同的物理地址分配内存片段序列),这是真的吗? 但是mmap ()需要在fork ()之前完成。如果我们已经有了两个工作过程(即fork ()之后),那么我们需要为mmap()使用一个文件。哪些函数用于在两个已经建立的进程之间复制PTE的机制以创建共享内存? 我能用PTEs /SGL(分散-聚集-列表)来指示物理内存的碎片,这些内存被分配给使用linux内核在其他进程中创建
浏览 1
提问于2013-12-01
得票数 1
1
回答
虚拟内存页表增长
、
、
当允许进程大于内存时,页表也会变得非常大。我们如何组织页表和TLB,以使具有良好局部性的代码的访问时间尽可能快?例如,假设物理内存为512K,每个页为1K,TLB大小为128。如果我们假设大多数进程是256K或更少,那么我们可以分配一个具有256个条目的固定大小的页表。现在在意想不到的情况下,当页表增长超过256个条目时,我们应该如何组织它?您的设计对程序的平均访问时间和最大虚拟内存大小有什么影响?
浏览 6
提问于2015-08-29
得票数 3
2
回答
每个进程的页表是否包含映射到内核地址空间的条目?
、
在Linux中,每个进程都有一个页表,它将用户地址空间映射到物理页帧。 每个进程的页表是否包含映射到内核地址空间的条目? 如果是,则所有进程的页表映射同一地址中的一个内核镜像。这意味着所有的表都包含相同的内核地址条目。是不是很浪费?
浏览 20
提问于2015-10-23
得票数 1
1
回答
Linux分页模型是一种抽象吗?
、
、
、
、
我目前正在阅读理解Linux内核第三版的,我正在阅读关于内存寻址的第2章。首先,这本书涵盖了32位分页、PAE 32位和PSE (我们在这里讨论的是x86 )。更具体地说,线性地址的剖析和什么位是什么表,偏移等.我开始对Linux中的分页模型感到困惑。有一次,这本书谈到了目录、表和偏移位的线性地址(用于PAE的PDPT表),然后我被抛到了"Linux“分页的世界里。现在,在Linux分页中,他们谈到了带有表和偏移量的全局表、上层表和中间表?我不认为x86 MMU分页与这个新的Linux模型有什么关系。如果MMU负责转换(分页)地址,为什么内核也需要这个分页模型?看起来内核应该把它留给M
浏览 9
提问于2022-02-05
得票数 2
回答已采纳
1
回答
如何编辑螳螂中的报表发布页字段
、
我是螳螂的初学者,请帮我解决 我想编辑报告问题页中的某些字段。 在“记者报告”发布时在“类别”列中设置默认值 在组合框中设置platform/ OS /OS版本,并设置默认值,就像操作系统中的Windows/Linux 请帮帮忙
浏览 8
提问于2017-07-18
得票数 0
回答已采纳
1
回答
硬件虚拟化-虚拟机管理程序查询
、
、
、
、
每当来宾操作系统的来宾页表发生更改时,虚拟机管理程序将如何反映更改。如何维护来宾页面映射和阴影页面映射之间的对应关系? 一种方式是对存储器地址进行写保护。每当要写入客户页表时,都会有一个适当的处理程序,该处理程序将确保对影子页表的相应更改。我可以在这个领域有更多的输入吗?
浏览 6
提问于2010-11-23
得票数 0
2
回答
查找内核的内存页所有权
、
、
、
、
我正在linux机器上写一个C程序,它需要分配一个10到20 GB的巨大数组。 分配空间后,我想知道哪个内核拥有该数组的哪些页。所谓“拥有”,是指哪个核心负责哪个页面的连贯性。 有没有什么函数或shell命令来获取此信息? 注意:我使用的是带有gcc4.7的Debian。
浏览 4
提问于2012-09-14
得票数 0
回答已采纳
1
回答
Linux分页: linux如何折叠页面上目录和页中间目录?
、
、
我正在阅读“理解Linux内核”一书,我想知道Linux如何在3级或2级分页系统中折叠paging或Page中间目录。 根据我的理解: Linux有4级分页功能:页面全局目录、页面上层目录、页面中间目录和页面表。(分页单元)通过分析线性地址中的相应字段并查询相应的页表条目,在页面全局目录中自动定位页面帧。用于2级寻呼系统的、page和Page中间目录都在page中获得一个特定条目。。 这在我看来是自相矛盾的:如果上述三个假设是正确的,就意味着地址翻译将通过以下条目进行: Page Global Directory Entry -> (Singleton) Page Upper Direc
浏览 1
提问于2020-11-28
得票数 0
回答已采纳
1
回答
如何使页面在全局页面替换中无效?
、
、
、
、
让我们假设有两个过程A和B。B需要在其页表中插入一个新的框架。由于没有免费的帧,我们必须交换一个帧,并从磁盘中引入B的帧。假设操作系统遵循全局页面替换方案,并获取一个框架,其中我们有A的数据。现在,要将此帧交换出去,我们需要更改A的页面表,其中相应的帧无效。要在general.we中做到这一点,需要知道内存中某个特定帧中存在哪个进程的数据,以便我们可以转到它的页面表,并将位更改为无效。这感觉如何?内存中的每个帧是否也存储相应进程的进程id,该进程所拥有的数据是谁的?
浏览 3
提问于2016-04-11
得票数 0
回答已采纳
2
回答
活动副本页属性容器jcr:在推出过程中没有从主服务器获得同步
我在我的项目中发现了一个问题。以jcr:为前缀的页属性:不被展开。 复制步骤: 打开香草AEM 6.3实例。打开页/内容/we-零售/语言-母版/en/men的页属性 更改属性页标题、描述的值。保存并关闭 We.Retail英语硕士蓝图控制中心。 展开“男人”页面。然后打开活动副本页面/内容/we-零售业/ca/en/men的页面属性,检查页面属性。 预期:页面标题和描述都应该推出 实际:页面标题被展开,但是描述无法展开。 我的期望是所有的页面属性都应该被推出。我错过了什么或者做错了什么?
浏览 0
提问于2019-06-28
得票数 1
回答已采纳
1
回答
文件/套接字描述符表
、
我很想知道每进程文件/套接字描述符表在Linux中是如何实现的。具体地说,使用哪种数据结构和算法来实现它并保持它的效率。 提前感谢!
浏览 0
提问于2015-10-19
得票数 1
1
回答
如何确保分配缓冲区在内存中
、
、
假设我在C中使用mmap分配了一个缓冲区,我是否可以使用任何linux操作来确保这个缓冲区已被分页到内存中,并且该缓冲区在页表中有一个条目。我希望这样做,因为我看到我的应用程序有一些页面错误,甚至我的内存也比应用程序要求的要大得多。我正在使用CentOS 7。
浏览 2
提问于2015-11-18
得票数 0
回答已采纳
1
回答
linux中使用分页的最大进程数
、
我听说linux中的最大进程(任务)数是这样计算的 “线程数=总虚拟内存/(堆栈大小*1024*1024)” 然而,我很好奇,因为页表不能被页出 而且每个进程都需要自己的页表(包括页目录)。 我认为这可能是限制操作系统中进程数量的一个因素。 我是对还是错?
浏览 2
提问于2012-07-16
得票数 0
1
回答
内存中的程序及其内存映射
、
、
我对内存中程序的地址空间映射感到有点困惑,这里有一个链接,它处理正在执行的程序的虚拟地址映射,并标记为内核模式为1 GB,用户模式为3 GB,并提到使用页表访问内存段。 Linux使用的页面文件在x86架构上只有4KB,如果我没有错,那么一个进程如何使用内存中3 KB的映射地址空间(如链接中所给出的,每个进程为4 KB ).This对我来说有点违反直觉,或者我的理解在某些地方是错误的?
浏览 2
提问于2013-01-11
得票数 0
1
回答
Linux进程的跟踪页表访问
、
、
、
、
我写信询问追踪普通Linux用户应用程序的页表访问(根据每个页表访问的“索引”)的可行性。基本上,我所做的是重新生产这篇研究文章()中提到的开发.特别是,需要记录数据页访问,以用于程序机密的使用和推断。 我了解Linux系统的64位x86架构,页面表的大小是4K.我使用pin ()记录所有虚拟内存访问的地址跟踪。因此,我可以简单地计算每个数据表访问的“索引”,使用以下转换规则吗? index = address >> 15 从4KB = 2 ^ 15开始。这是正确的吗?谢谢您的任何建议或意见。 另外,我想我要指出的一点是,在概念上,我不需要每个数据页表ID的“精确”标识符,而只需
浏览 7
提问于2020-05-05
得票数 0
回答已采纳
2
回答
在操作系统中分页和分块有什么不同?
、
我了解到,在操作系统(Linux)中,内存管理单元(MMU)可以通过页表数据结构将虚拟地址(VA)转换为物理地址(PA)。页面似乎是虚拟机管理的最小数据单元。但是这个区块呢?它是否也是在磁盘和系统内存之间传输的最小数据单元?
浏览 0
提问于2014-03-03
得票数 22
回答已采纳
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
描述下linux中经常使用的网络拷贝命令
上石藝術“如何为您的产品详情页创建有效的产品描述”
超全的 Linux 机器的渗透测试命令备忘表,共16表128条命令
超全的 Linux 机器的渗透测试命令备忘表
实验室管理系统LIMS系统中的功能描述
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
实时音视频
活动推荐
运营活动
广告
关闭
领券