![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
页表管理
难选昵称
独学而无友,孤陋则寡闻。学而不思则罔,思而不学则殆。
展开
-
页表管理
页表的管理最近看到一篇很好的关于页表管理的文章,通俗易懂,果断收藏啦喵~o( =∩ω∩= )mhttps://blog.csdn.net/gatieme/article/details/52402861?locationNum=7&fps=1自己一直好奇一个问题,那就是多级页表的作用,我们知道多级页表可以对不连续的4K页进行存储,这也是页目录被提出来的出发点,那么多级页表...原创 2018-11-27 15:16:33 · 312 阅读 · 0 评论 -
1.linux操作系统中程序从创建到加载的流程
ps:其实很早就整理了,但是最近一直很忙,也没来得及发出来,也该给自己的博客拔拔草了,嘿嘿~闲话少说,切入正题:1.linux操作系统中程序从创建到加载的流程布吉岛为什么不能换方向。。。这个图画的丑了点、简略了点,不过道理还是在的。我们理一下整个图的思路流程:当我们写完一段C代码后,程序在哪?答:磁盘。程序被编译会经历什么?答:程序会产生一块独立的虚拟地址空间,从底地址到高地址依次...原创 2019-03-13 22:01:44 · 135 阅读 · 0 评论 -
2.task_struct结构体
那么问题来了,task_struct这个结构体是如何享有代码的?毕竟它可是被存放在辅存中的。物理内存和虚拟内存又是如何建立联系的?其实这两个问题都可以从上一篇博客的图中找到答案,整体的脉络应该要有。不过关于内存描述符还是有必要再细究的,待下篇博客娓娓道来。...原创 2019-03-13 22:12:56 · 110 阅读 · 0 评论 -
3.mm_struct 内存描述符
问题:mm_struct这个结构体管理的是虚拟内存空间还是物理内存空间?答:虚拟内存空间。物理内存空间的管理依赖于页表的映射机制,也是之前博客里分享过的,大佬写的很好,我就不赘述了。堆栈大小固定吗?答:不固定。关于堆栈的数据结构及一些有关内容,引用一篇博客https://blog.csdn.net/langb2014/article/details/79376349来讲述,内容很全,不...原创 2019-03-13 22:24:41 · 100 阅读 · 0 评论 -
4. x86 - 64 的虚拟内存空间管理
前言:之前有写过一篇博客,是关于进程从创建到加载的流程,并给出了一个示意图。今天就慢慢深入,从头再理一下,并给出一些关键的函数调用及代码。一、文件从创建到加载二、x86_64的用户空间布局这一部分,网上看到一个很好的博客,用例子来讲解内容,推荐给大家,参考博客:https://blog.csdn.net/wu_roc/article/details/77203480下图...原创 2019-03-28 10:59:37 · 714 阅读 · 0 评论 -
5. 内存缺页中断处理
前言:前一篇博客提到了虚拟内存的管理,也讲到了如何去获得虚拟内存空间,使用后再返回。但是分配虚拟内存并不代表你就具有了对应的物理内存。从我画的那张有点丑的图里可以看到,pgd在刚创建之初是没有具体的映射关系的,内容都是初始化的结果。当进程去访问这些映射关系的时候,处理器才会去做一系列的处理,直至完成物理页面的创建及读写操作。这个过程就是内存管理中很重要的一个概念:缺页中断处理。自己在这...转载 2019-03-28 11:23:04 · 1347 阅读 · 0 评论 -
32位逻辑地址空间到物理空间映射关系
前言:这篇博文可以在你基本了解逻辑地址空间和物理地址空间的概念后,为增强理解可通过我画的示意图来理解,本文会深入一些概念,以达到全面掌握该映射关系的目的。画图不易鸭,点个赞再走呗(✿◡‿◡)逻辑地址空间及物理地址空间映射关系:一、关系图我们编写的 .c 文件,经过gcc编译后会生成一个 .s 文件,在 linux 环境下可通过 size 命令来查看其逻辑空间布局,也就是说,在你...原创 2019-05-29 16:26:13 · 4393 阅读 · 0 评论