其中介绍了虚拟内存的机制以及mmap系统调用的实现。mmap允许直接将设备内存映射到用户进程的地址空间中。物理内存的管理,包括缓存的分配及回收,请页机制,交换空间等。 1)交换模块(swap) 这个模块负责控制内存内容的换入换出,它通过替换机制,使得物理内存的页框(RAM页)中保留有效的逻辑页,即从 ...
分类:
系统相关 时间:
2018-02-13 17:52:30
阅读次数:
224
高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。 为什么? 因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 1G 的物理内存,无能为力。 实际上,“内核直接映射空间”也达不到 1G, 还得留点线性空间给“内核 ...
分类:
系统相关 时间:
2018-02-12 18:32:47
阅读次数:
220
前言 内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容,无论市面上或是网上都充 斥着大量涉及内存管理的教材和资料。因此,我们这里所要写的Linux内存管理采取避重就轻的策略,从理论层面就不去班门弄斧,贻笑大方了。我们最想做的 和可能做到的是从开发者的角度谈谈对内存管理的理解,最终目的是把我们在内 ...
分类:
系统相关 时间:
2018-02-12 16:56:03
阅读次数:
200
Linux将它的物理内存虚拟化。进程并不能直接在物理内存上寻址,而是由Linux内核为每个进程维护一个特殊的虚拟地址空间(virtualaddressspace)。这个地址空间是线性的,从0开始,到某个最大值。虚拟空间由许多页组成。系统的体系结构以及机型决定了页的大小(页的大小是固定的),典型的页的大小包括4K(32位系统)和8K(64位系统)。每个页面都只有无效(invalid)和有效(vali
分类:
系统相关 时间:
2018-02-06 20:16:39
阅读次数:
276
下面是Linux内存管理学习的一些资料。 博客 mlock() and mlockall() system calls. All about Linux swap space 逆向映射的演进 Linux kernel内存管理的基本概念 页面回收的基本概念 文档 Linux DMA from User ...
分类:
系统相关 时间:
2017-12-27 17:57:22
阅读次数:
187
2012-10-12 16:01 by 至上, 20381 阅读, 7 评论, 收藏, 编辑 一 为什么需要使用虚拟内存 大家都知道,进程需要使用的代码和数据都放在内存中,比放在外存中要快很多。问题是内存空间太小了,不能满足进程的需求,而且现在都是多进程,情况更加糟糕。所以提出了虚拟内存,使得每个进 ...
分类:
系统相关 时间:
2017-12-10 16:56:12
阅读次数:
193
简单介绍内存管理的基本概念和Linux上分配内存机制。 1 基本概念 1.1 地址 *) 逻辑地址: 指由程序产生的与段相关的偏移地址部分。在C语言指针中,读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址。而数据段的基地址保存在全局描述符表/局部描述符表中。 ...
分类:
系统相关 时间:
2017-12-06 21:49:10
阅读次数:
260
https://www.cnblogs.com/onlyforcloud/articles/4473981.html https://www.cnblogs.com/lcw/p/3505503.html http://baijiahao.baidu.com/s?id=1563367253016382 ...
分类:
系统相关 时间:
2017-12-06 14:32:35
阅读次数:
203
Linux的进程和内存是两座大山,没有翻过这两座大山对于内核的理解始终是不完整的。 关于Linux内存管理,在开始之前做些准备工作。 首先bing到了Quora的《How can one really learn Linux Kernel Memory Management?》,这也是大部分初学者, ...
分类:
系统相关 时间:
2017-12-04 17:38:57
阅读次数:
240
作者 彭东林 pengdonglin137@163.com 平台 TQ2440 Qemu+vexpress-ca9 Linux-4.10.17 正文 继续分析head.S: 第1行将__mmp_switched标号的虚拟地址赋给r13,后面从__turn_mmu_on返回时会用到 第3行将1f标号的 ...
分类:
系统相关 时间:
2017-11-11 22:57:41
阅读次数:
290