腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
视频
沙龙
1
回答
Linux是否对页目录和页表使用自映射?
、
、
、
我之所以问这个问题,是因为我很好奇Linux内核是如何工作的。根据的说法,Windows在其页目录和页表中使用了名为self-map的特殊条目,以便能够操作来自内核虚拟地址空间的页目录/表内容。如果有人熟悉Linux内存管理,请告诉我Linux内核处理这个问题的方式是相似的还是不同的。谢谢。
浏览 1
提问于2011-03-11
得票数 3
回答已采纳
2
回答
Linux中的页表
、
、
、
问题1 :-在引导过程中,Linux创建页表。但是,当执行新进程时,它也有自己的页表。这两个表有什么不同? 问题2:在linear上,x86使用定义良好的方案(包括页目录、页表项等)将线性地址转换为物理地址。假设我们在进程地址空间A中有一个线性地址X,当使用页表进行转换时,它对应于物理地址Y。还有一些其他进程B,它也具有属于它自己的地址空间的有效线性地址X。现在,如果进程B想要访问X,X会再次对应于相同的物理地址Y吗?
浏览 1
提问于2011-01-25
得票数 1
回答已采纳
2
回答
如何将页表的虚拟地址转换为其实际物理地址?
、
、
如果在OS中启用分页,则使用页表将虚拟地址映射到实际物理地址。更具体地说,考虑X86上的Linux32位操作系统,cr3寄存器具有页面表目录的起始地址。我想这是个虚拟地址。CPU将如何将此虚拟地址映射到RAM中页表目录的物理地址。该地址转换将使用哪个页表?
浏览 2
提问于2015-03-12
得票数 1
回答已采纳
1
回答
共享内存分页和分叉
、
如果父进程与另一个进程共享一些页面,而我们派生了父进程。据我所知,孩子复制页表,我们将页面设置为只读,并执行写入时复制。但如果我们写入共享内存页,这将创建一个共享内存页的副本,这是错误的。Linux内核如何避免这种情况?
浏览 1
提问于2012-11-16
得票数 4
回答已采纳
1
回答
页表的条目是表示页面还是线性地址?
我读了“理解linux内核”一书,关于地址转换的话题让我非常困惑。书上说,每个线性地址有三个字段:目录、表和偏移量。“目录”字段与“目录表”相关,“表”字段与“页表”相关。 它没有指出,或者我可能会遗漏的一点是,表中的每个条目是与一页有关,它是一组线性地址,还是与单个线性地址有关。 有人能帮我吗?
浏览 6
提问于2015-04-24
得票数 1
回答已采纳
1
回答
linux内核是否使用虚拟内存(用于其数据)?
、
、
linux内核是否为其数据结构(页表、描述符等)使用虚拟内存?更具体而言: 内核空间地址是否在MMU (可分页步行)中被翻译? 内核内存会被交换掉吗? 内存对内核数据结构的访问会导致页面错误吗? linux和其他unix在这方面有区别吗?
浏览 0
提问于2021-11-19
得票数 9
回答已采纳
1
回答
linux分页,使用了大量的页表目录
、
、
我读了一本关于Linux虚拟内存的书Mel Gorman。我读到过,Linux支持3级页表: PGD,PMD和PTE。如果我没有记错的话,在较新版本的内核中,有四个页表级别: PUD,但这无关紧要。我有一个合理的问题。为什么Linux开发人员选择3(或4)级页表而不是使用1级?只使用一个全局页表(我指的是每个进程的全局页表)将减少内存引用的数量。 对不起,我的英语不好。
浏览 2
提问于2015-12-21
得票数 0
2
回答
MMU和页面表
、
、
、
页表是程序员创建的数据结构。那么MMU如何知道如何访问页面表呢?我知道MMU从页面表基寄存器中获取页面表的地址,但是它后来如何读取页面表呢?MMU不知道程序员创建的页面表的数据结构。 谢谢
浏览 1
提问于2016-09-23
得票数 1
1
回答
我能用一个过程中的PTEs来表示物理记忆的片段,在另一个过程中创建合适的PTEs吗?
、
、
、
、
当我们在Linux中使用函数mmap (,,, MAP_ANON | MAP_SHARED);时,对于同一区域的物理内存(在进程之间分配的)是分配虚拟内存页(PTEs)。这些PTE从一个进程的页表复制到另一个进程的页表(具有相同的物理地址分配内存片段序列),这是真的吗? 但是mmap ()需要在fork ()之前完成。如果我们已经有了两个工作过程(即fork ()之后),那么我们需要为mmap()使用一个文件。哪些函数用于在两个已经建立的进程之间复制PTE的机制以创建共享内存? 我能用PTEs /SGL(分散-聚集-列表)来指示物理内存的碎片,这些内存被分配给使用linux内核在其他进程中创建
浏览 1
提问于2013-12-01
得票数 1
2
回答
为什么每次从内核模块读取时,CR3注册内容都会有所不同?
、
、
、
、
我编写了一个内核驱动程序,目的是剖析Linux内核页表。我发现,每当我从驱动程序内部读取CR3寄存器时,CR3的内容每次读取时都会有所不同! 这一切为什么要发生?由于驱动程序在内核模式下执行,CR3需要指向内核页目录(对吗?),那么为什么每次CR3都会改变呢? 如果CR3不断变化,那么驱动程序如何按预期正确地进行内存访问?
浏览 2
提问于2012-10-26
得票数 5
回答已采纳
2
回答
什么数据结构使用128 1GB的1GB Linux内核空间?
、
、
在我所读过的关于Linux内核中的HIGHMEM的几乎所有书籍和文章中,他们说,虽然使用3:1拆分,但并不是所有的1GB都可供内核进行映射。通常它的896 or左右,其余的用于内核数据结构、内存映射、页表等。 我的问题是,这些数据结构到底是什么?页面表通常是通过页面表地址寄存器访问的,对吗?页面表的基地址通常作为物理地址存储。现在,为什么需要为整个表预留虚拟地址空间? 类似地,我读到了内核代码本身占用空间的文章。这和虚拟地址空间有什么关系?难道不是用来存储代码的物理内存吗? 最后,这些数据结构为什么要保留128 to的空间呢?为什么不能按照要求将它们从整个1GB地址空间中使用,就像内核中任何其
浏览 6
提问于2012-07-18
得票数 5
回答已采纳
1
回答
非聚集索引是否包含任何数据?
、
、
因此,在线上的每个资源似乎只是复制粘贴相同的短语,即“非聚集索引不解析数据,而是包含指向实际数据的指针”。 但在这种情况下- rdbms如何知道如何对其进行排序?对我的大脑来说是没有意义的。假设我有ID和LastName的雇员表。如果我在LastName上创建NCI,叶页不是会包含这个名称、值和指向表中行的指针吗?神秘的索引页实际上包含了什么? employee ID, LastName 1, CrookedTeeth 2, Bob Index Bob, pointer ->2 CrookedTeeth, pointer -> 1
浏览 3
提问于2022-10-12
得票数 0
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机器上查看特定进程的页表是可能的吗?我读到在一些寄存器中有对页表的引用?
浏览 3
提问于2014-04-03
得票数 0
2
回答
在页面错误上,Unix如何确定故障地址是否位于交换空间中?
、
、
当任何进程的虚拟地址发生页错误时,linux/unix操作系统如何确定该页(该虚拟地址)是否已被交换到内存中并交换到磁盘(即该页当前处于交换空间中),还是该页以前从未加载到内存(即该页不存在于交换空间中)?
浏览 0
提问于2015-09-02
得票数 0
回答已采纳
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
回答已采纳
1
回答
CPU如何知道它是否正在访问未分配的内存位置?
、
、
根据我的理解,当CPU访问某些内存位置时(例如,如果它用4的地址设置内存位置为值100 ),它将地址4作为虚拟地址,并找出该虚拟地址指向使用当前加载的进程页表的物理地址。 这是一个处理页表的示例: 📷 因此,在我们的示例中,CPU将使用12346的物理地址将内存位置设置为100的值。 但是CPU如何知道它是否正在访问一个没有物理地址映射到它的虚拟地址,一个进程页表是否有一个标志来表示这个事实,例如,一个进程页表是否有类似于“已分配”的东西?国旗: 📷
浏览 0
提问于2019-03-31
得票数 2
1
回答
ARM MMU和ARM Linux页表漫游
、
、
我对linux如何利用ARMv7内存管理单元硬件来实现它的3级页表遍历有点困惑。MMU只有2个寄存器ttbr0和ttbr1 (一个用于内核,另一个用于用户空间)。mmu如何知道linux的多级页表漫游? 谢谢,Hvr
浏览 0
提问于2015-01-19
得票数 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
回答已采纳
2
回答
每个进程的页表是否包含映射到内核地址空间的条目?
、
在Linux中,每个进程都有一个页表,它将用户地址空间映射到物理页帧。 每个进程的页表是否包含映射到内核地址空间的条目? 如果是,则所有进程的页表映射同一地址中的一个内核镜像。这意味着所有的表都包含相同的内核地址条目。是不是很浪费?
浏览 20
提问于2015-10-23
得票数 1
1
回答
x86平台中KVM卷影页表的处理
、
、
、
、
据我所知,在没有硬件支持来宾虚拟到主机物理地址转换的处理器上,KVM使用影子页表。 当来宾操作系统修改其页表时,会构建并更新影子页表。硬件中是否有修改页表的特殊指令(以x86为例)?除非有特别指示,否则VMM不会有陷阱。在软件中由Linux内核维护的页表不就是另一种数据结构吗?为什么它需要特殊的指令来更新它? 谢谢!
浏览 2
提问于2013-01-06
得票数 8
回答已采纳
1
回答
rails mysql记录页面的印象
、
、
,我将把我的问题变得很简单。 我有一个红宝石rails应用程序,支持mysql。 I将单击第1页中的一个按钮,它将进入第2页,并列出一个包含10家公司名称的表。现在,这10家公司的名单是从公司表中随机生成的(根据页面-1中单击的按钮背后的逻辑),该表中有10k个公司名称。如何计算一天在页面-2上显示公司名称的次数数。 例句:在第一天结束时 COMPANY_NAME _ COUNT A\x{e76f} 2300 B/ 100 C- 500 D= 10000 现在,从我所做的研究,原始插入将是昂贵的,我了解到有两种常见的方法来做它。 打开unix文件,写入其中。最后,将内容插入数据库。否定:如果
浏览 2
提问于2012-05-10
得票数 0
1
回答
我如何让它读取我的所有页面,而不仅仅是一个PDF.JS
、
、
、
大家晚安,我告诉你们..。我是在节点和表达式工作,我得到以下错误,结果是,我的pdf在目前有3页,但它可以改变。我需要做的是找到一种方法来读取PDF文件的数量,我正在使用pdf.js。 总之:我需要做的是,如果pdf有3页,给我读3页,如果它有4页,读4页等等,我读的信息是 /pdf.js/示例/但它并没有真正修正太多。这是我所做的事的一张照片。 doc.numpages --它返回工作表的数量,但当我将它传递给它时(在本例中,numPages = 3 ),它只读取第三个工作表
浏览 3
提问于2022-10-31
得票数 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
3
回答
修复损坏的备份GPT表?
在成功安装了双重引导环境之后,将Ubuntu13.10添加到预装的Windows 8配置中,在阅读了过度配置的好处后,我决定增加未分配的SSD磁盘空间。因此,在Windows中使用miniTools分区向导,我稍微缩小了NTFS分区。似乎已经成功完成了。但是,当我启动Linux并启动GParted时,它会在启动时给出以下错误消息: 备份GPT表已损坏,但主表显示为OK,因此将使用该表。 系统看起来一切都很好,但我担心如果主要的GPT表由于某种原因而变得腐败,我会有问题。 我已经使用gdisk将GPT表备份到文件中,但是有方法创建新的备份GPT表吗?
浏览 0
提问于2013-12-05
得票数 46
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
回答
linux中使用分页的最大进程数
、
我听说linux中的最大进程(任务)数是这样计算的 “线程数=总虚拟内存/(堆栈大小*1024*1024)” 然而,我很好奇,因为页表不能被页出 而且每个进程都需要自己的页表(包括页目录)。 我认为这可能是限制操作系统中进程数量的一个因素。 我是对还是错?
浏览 2
提问于2012-07-16
得票数 0
1
回答
Linux进程的跟踪页表访问
、
、
、
、
我写信询问追踪普通Linux用户应用程序的页表访问(根据每个页表访问的“索引”)的可行性。基本上,我所做的是重新生产这篇研究文章()中提到的开发.特别是,需要记录数据页访问,以用于程序机密的使用和推断。 我了解Linux系统的64位x86架构,页面表的大小是4K.我使用pin ()记录所有虚拟内存访问的地址跟踪。因此,我可以简单地计算每个数据表访问的“索引”,使用以下转换规则吗? index = address >> 15 从4KB = 2 ^ 15开始。这是正确的吗?谢谢您的任何建议或意见。 另外,我想我要指出的一点是,在概念上,我不需要每个数据页表ID的“精确”标识符,而只需
浏览 7
提问于2020-05-05
得票数 0
回答已采纳
1
回答
谁决定页表和页面大小?OS还是MMU?
、
随着物理内存容量的变化,页表大小也随之变化,随着进程数的变化,页表大小也随之变化。到底是谁决定的呢?OS还是MMU?如果是操作系统,LINUX和Windows之间有什么不同?
浏览 1
提问于2013-03-21
得票数 1
回答已采纳
2
回答
为什么页表条目的大小仅由主存大小决定?
、
排除有效的、脏的和引用的位,仅考虑从虚拟地址空间到物理地址空间的实际“映射”,为什么说页表条目的大小取决于从主内存引用页面所需的位数(如此处:) 我的论点是,由于物理地址也可以在辅助存储中(这是使用虚拟内存的点),页面表条目的大小应该仅仅等于在虚拟内存中的所有页面中引用任何页所需的位数。 给出一个示例,如果虚拟地址空间可寻址64位,主存可寻址48位,页大小为16 34 (可寻址14位),则页表应将(64 - 14) 50位地址映射到(64 - 14) 50位地址,而不是(48 - 14) 34位地址。 如果页面存在于主内存中,它可以映射到34位地址,但否则,上限应该是50位,在计算页表的大小时
浏览 2
提问于2015-04-26
得票数 2
回答已采纳
1
回答
wkhtmltopdf复制下一页的表行
我使用Linux上的wkhtmltopdf (AWS )将包含表的HTML转换成一个PDF文件。通常情况下,当表在第1页结束之前开始,到第2页结束时,它工作得很好,但是它有问题。表标题在第2页的一行上重复。 我能做些什么来防止这个问题? $ ./wkhtmltopdf --version wkhtmltopdf 0.12.3-dev-79ff51e (with patched qt)
浏览 0
提问于2018-08-29
得票数 0
1
回答
使用pte_map_offset映射页表
、
我正在做一些linux内核的工作,并且我正在同时迭代三个不同页面目录的页表。当我需要映射页表时,我使用了pte_offset_map。然而,我意识到在启用高内存的情况下,这种方法将不起作用,因为pte_offset_map将尝试使用相同的kmap插槽(在Linux2.6.32中,pte_offset_map使用kmap_atomic )。我看到有一个使用另一个kmap_atomic插槽的pte_offset_map_nested。 但是,我需要一次映射三个不同的页表。我已经想出了一些解决方案,只需要一次映射两个页表(我可以来回交错,同时只映射两个,或者在映射其他两个时临时复制一个页表,等等)但
浏览 3
提问于2011-11-21
得票数 1
1
回答
具有两个不同核心和单个查询的Solr
我在RDBMS中有两个表 表结构 表: tblUser UserId AvatarURL 表: tblSchedule Id UserId (ForeignKey) StartTime EndTime 场景 tblUser表中总共有100个用户,其中20个是今天的计划用户。10名用户为上午10点至下午12点2名用户为下午1点至4点,其余时间为下午4点至11点59分。我想显示来自solr核心的10个用户(基于分页的重置)(应该有两个不同的核心,一个用于tblUser,另一个用于tblSchedule,这是为了将来的参考)。首先,基于tblSchedule的两条记录显示是
浏览 0
提问于2016-06-13
得票数 1
1
回答
linux内核中的内存映射
、
在linux内核中,同一物理页帧是否可以同时多次映射到一个进程的虚拟内存空间? 换句话说,在此过程中有多个页表条目指向同一个物理页。
浏览 5
提问于2014-01-24
得票数 2
回答已采纳
1
回答
在vfork()系统调用中不复制页表条目有什么好处?
、
vfork()系统调用的效果与copied.Today ()相同,只是父进程的页表条目不是entries.If,具有复制即写和子运行的优先语义,vfork ()的唯一好处是没有一天复制页表entries.If Linux获得复制到写入页面的表条目,这样就不再有任何好处了。 以下是罗伯特·洛夫( Robert )关于“Linux内核开发”()一书中的几句话。我不明白的是,不复制页面表条目有什么好处? 还有一行内容是:“在copy_process()中,task_struct成员vfork_done设置为NULL”。 这是什么vfork_done?它的功能是什么?
浏览 0
提问于2017-09-09
得票数 0
1
回答
Linux内核对物理内存的了解
、
我了解到,对于每个进程,虚拟地址映射到物理pages.The,相应的物理页号将在页面表条目中可用。 但是我很想知道这个映射是如何由内核完成的。内核在将该页分配给虚拟页号之前如何知道哪个物理页是空闲的。它是否跟踪物理内存中所有可用的空页?
浏览 0
提问于2014-03-05
得票数 1
回答已采纳
1
回答
linux中的三层页表
、
我知道linux在内存管理中使用三个级别的页面表。 我对页面的内容感到困惑,table.Does页面表包含下一级页面表、基地址还是包含页面帧号? 如果它包含页帧号,那么如何获得该特定页表的基地址?它存储在哪里? 如果有人向我澄清了这件事,那就太好了。
浏览 1
提问于2012-09-03
得票数 1
回答已采纳
1
回答
访问不是ram但磁盘上的i/o的文件系统缓存已经发出。
、
、
Linux有一个文件系统缓存,它将尽可能多的数据作为缓冲区保存在RAM中。 线程试图读取文件系统中的页面块。如果页面在缓存中,它将从缓存(缓存命中)获取数据。否则,它会发出页面的磁盘i/o请求并等待(缓存丢失)。 但是,当多个线程(或处理器)读取同一个页面块时,我认为还有一种情况;该页不在缓存中,但页的i/o请求已经发出。在这种情况下,不会再次发出磁盘i/o,但是线程应该等待从磁盘读取页面。 Linux的文件缓存是否具有此属性?你这是什么意思?
浏览 0
提问于2016-07-29
得票数 1
1
回答
如何扩展(4MB)和常规分页(4KB)共存?
、
、
在x86体系结构中,“扩展分页”允许页帧(物理内存)为4MB而不是4KB。 “理解Linux内核,第3章”第2章“内存寻址”一书“Linux中的寻呼”一节“内核页表”解释说,对于RAM小于896 MB的最终内核页表: ...内核可以通过使用大页面来处理内存(请参阅本章前面的“扩展分页”一节)。 然而,在“扩展寻呼”一节(“硬件分页”)中写着: 扩展分页与常规分页共存。 实际上,我不明白扩展分页和常规分页是如何共存的。请有人解释一下这些问题: 在何种情况下,内核使用4MB页?还是4 KB页? 哪些页面帧大小将用于kmalloc操作?为了vmalloc? 如果我们假设初始代码和数据(内核的段、临时
浏览 0
提问于2012-06-13
得票数 6
1
回答
在x86-64体系结构中分页
、
、
、
、
在操作系统的32位实现中,页表具有固定的结构(页面目录和页表两级)。但是在x86_64系统中,通常有多个层次的页面表实现(4在Linux中)。系统如何知道使用了多少级别?这需要什么命令?我们如何让CPU知道全局页面目录和其他结构?
浏览 2
提问于2015-05-02
得票数 2
1
回答
linux中关于线程的混淆
我知道在线程和处理linux之间没有什么特别的区别,除了在线程切换期间保持cr3寄存器不变,在进程切换期间保持tlb刷新。 由于groud中的线程共享相同的地址空间,并且没有改变pgd(页表),这意味着整个内存布局是共享的,因此堆栈空间也被共享,但根据通用定义线程拥有自己的堆栈,这在linux中是如何实现的。 如果它像threadA一样有来自x-y范围的堆栈,那么在第一个页面缺省发生时,页表被更新,类似地,使用u-v范围的threadB将更新相同的页表。因此,可能会把threadA中的threadB堆栈搞乱。 我只想弄清楚这一点,帮我out.Is一下线程的安全实现?
浏览 1
提问于2011-06-14
得票数 0
2
回答
基于内存管理的linux内核x86分页
、
、
、
、
在linux arch中,x86内核2.6.x,32位系统 我知道虚拟地址0xC0000000 ~ 0xFFFFFFFF 是为内核保留的。 并且该虚拟地址可以被转换为物理地址 减去0xC0000000。 然而,我认为即使结果是一样的,MMU也会翻译 通过遍历页表将内核虚拟地址(如0xC0851000)转换为物理地址。 比如 CR3 ->页目录->页表-> PFN. 我是对的还是错的?如果我错了,请纠正我。 我需要在x86,Linux32位系统中开发基于硬件的内核监视器。 所以我需要知道这个问题 请帮帮忙。
浏览 0
提问于2012-07-23
得票数 2
回答已采纳
1
回答
何时将进程的页表加载到内存中?
、
、
我想知道操作系统何时将特定进程的页表加载到主内存中?是在进程被调度的时候吗?操作系统能够直接将进程页表加载到主存中吗? 我有一个想法:除非处理器生成对应于页面的页面错误,否则任何东西都不会进入主内存。同样的情况也适用于页表吗?或者我的想法是错误的。 PS:如果答案可以具体针对基于Linux的系统,我们会非常感激的。
浏览 0
提问于2016-07-19
得票数 1
1
回答
fork产生的唯一开销是页表复制和进程id创建。
、
、
、
、
fork()产生的惟一开销是复制父进程的页表并为子进程创建唯一的进程描述符。在Linux中,fork()是通过使用写时复制页面实现的。写时复制( COW)是一种延迟或完全阻止数据复制的技术。 那么为什么需要复制页表呢?只要进程以只读模式共享页面,或者直到它们写入某些内容,就不需要复制页表,因为父进程和子进程的转换是相同的。 有人能解释一下..。 提前感谢
浏览 2
提问于2013-05-24
得票数 8
2
回答
linux内核出现分段故障后会发生什么?
、
、
当我考虑进行网络分页(从远程节点请求出错的分页)时,我得到了这个问题: 首先,让我们考虑以下步骤: 1)用户空间程序试图访问内存X。 2) MMU遍历页表,查找X的物理地址。 3)在遍历页表时,注意到页表条目无效。 4) CPU陷阱并被Linux陷阱向量捕获。(在ARM情况下,但我认为x86也是一样的,对吧?) 5)此时,我可以从远程节点检索适当的数据,复制到某个物理地址,并将其映射到页表中。 6)这里有一个问题:在这一点之后,在X处有页错误的程序是否可以安全地读取数据?那么,这是否意味着MMU或CPU以某种方式记住了有页错误的页表条目,并返回到该条目并继续页表的遍历? 如果有任何步骤不正确,
浏览 8
提问于2013-08-09
得票数 0
1
回答
是否可以将页表的位置更改为另一个NUMA节点?
、
、
、
、
您好,我正在学习linux内核的内存管理。 我的机器有多个NUMA节点,我想知道是否可以将页表的位置从NUMA0更改为NUMA。我研究了一下,在页表初始化时,CR3寄存器有指向页表初始化位置的指针。位置在NUMA 0(第一个NUMA节点)的内存(内核空间)上。 那么在初始化时,我可以将页表的位置设置为NUMA N吗? 如果可能,内核修改是我应该做的全部工作,还是需要做更多的工作? 我使用的是x86_64处理器和centos7.7
浏览 19
提问于2020-10-29
得票数 0
2
回答
PHP:防止Mysql中的重复标记
、
我有这样的标签的MySql表: | id | name | | 1 | Linux | | 2 | Windows | | 3 | Unix | | 4 | Dos | | 5 | FreeBSD | 在“新闻页”中,用户添加如下新标记: Linux,OpenBSD,Test 现在,Linux之前添加了,所以我需要添加ONLY OpenBSD和Table。我的意思是:如果用户标签是新的,如何标记INSERT?!
浏览 5
提问于2014-05-27
得票数 2
回答已采纳
5
回答
如何查找或计算Linux进程的页表大小和其他内核记帐?
、
、
、
如何才能知道Linux进程的页表有多大,以及其他任何可变大小的进程记帐?
浏览 0
提问于2009-05-12
得票数 7
3
回答
如何在经典的ASP中进行有效的分页?
、
我正在尝试对一个表进行分页,虽然我已经可以分页了,但它在一行中显示每一页以及上一页/下一页链接,如果有很多结果(通常都有),就会导致HTML页面断开。 我想要做的是分批显示10个页面,例如1...10,如果你在第10页,点击“下一步”,它就会变成11-20,以此类推。我该怎么做呢?
浏览 3
提问于2009-01-16
得票数 1
回答已采纳
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
数据结构—线性表
数据结构-线性表
数据结构之线性表
数据结构详解——线性表
数据结构之顺序表实现2.1
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
即时通信 IM
活动推荐
运营活动
广告
关闭
领券