1. 相关概念: 用户态:当一个进程在执行用户自己的代码时处于用户运行态(用户态) 内核态:当一个进程因为系统调用陷入内核代码中执行时处于内核运行态(内核态),引入内核态防止用户态的程序随意的操作内核地址空间,具有一定的安全保护作用。这种保护模式是通过内存页表操作等机制,保证进程间的地址空间不会相互 ...
分类:
其他好文 时间:
2019-04-21 15:52:33
阅读次数:
140
为什么使用多级页表? https://blog.csdn.net/ibless/article/details/81275009 计算机系统的多级页表的结构. 我一直存在一个误区 应该是一个进程就应该有一个 页表的 这样每次进行CPU 的 进程切换 应该是姜 内存页表也给切换过来 进行使用, 操作系 ...
分类:
其他好文 时间:
2019-04-05 00:29:34
阅读次数:
176
Swap介绍: Linux 将物理内存分为内存段,叫做页面。交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放对于页面的内存。物理内存和交换空间的总大小是可用的虚拟内存的总量。 Swap即:交换分区,类似于Windows的虚拟内存,但物理内存不足时,把部分硬盘空间当成虚拟 ...
分类:
其他好文 时间:
2019-03-21 17:15:36
阅读次数:
227
1)由于进程的虚拟地址空间比物理内存大很多,linux还提供了一系列的机制,来应对内存不足的情况回收缓存:使用LRU算法,回收最近使用最少的内存页面回收不常访问的内存,把不常的内存通过交换分区直接写到磁盘中oom,杀死进程2)什么时候会触发oom进程在申请内存时,如果申请的虚拟内存加上服务器实际已用的内存之和比总的物理内存还大,就会触发oom3)解决方案方法一:oom机制按照oom_score给进
分类:
其他好文 时间:
2019-03-18 19:56:19
阅读次数:
185
Linux虚拟内存三级页表 Linux虚拟内存三级管理由以下三级组成: ??PGD: Page Global Directory (页目录) ? PMD: Page Middle Directory (页目录) ? PTE: Page Table Entry (页表项) 每一级有以下三个关键描述宏: ...
分类:
系统相关 时间:
2019-01-21 12:06:57
阅读次数:
1152
在内核初始化完成之后, 内存管理的责任就由伙伴系统来承担. 伙伴系统基于一种相对简单然而令人吃惊的强大算法. Linux内核使用二进制伙伴算法来管理和分配物理内存页面, 该算法由Knowlton设计, 后来Knuth又进行了更深刻的描述. 伙伴系统是一个结合了2的方幂个分配器和空闲缓冲区合并计技术的 ...
分类:
系统相关 时间:
2018-12-16 19:32:23
阅读次数:
290
Transparent Huge Pages (THP) are enabled by default in RHEL 6 for all applications. The kernel attempts to allocate hugepages whenever possible and an ...
分类:
其他好文 时间:
2018-11-13 23:51:20
阅读次数:
557
HugePage 普通的内存页面大小是 4 KB 1. Hugepage的引入 而系统的内存管理一般是通过虚拟地址到物理地址的映射。虚拟地址一般是在磁盘虚拟出的一块逻辑内存。这部分磁盘空间Windows下称之为虚拟内存,Linux下被称为交换空间(Swap Space)。 CPU必须将虚拟地址转换成 ...
分类:
其他好文 时间:
2018-11-04 00:26:39
阅读次数:
805
一、概述 内存管理涵盖领域: 内存中的物理内存页管理; 分配大块内存的伙伴系统; 分配较小块内存的slab、slub和slob分配器; 分配连续内存块的vmalloc机制; 进程的地址空间。 Linux内核一般将处理器的虚拟地址分为两个部分,以IA-32为例,地址空间在用户进程和内核之间的划分比例为 ...
分类:
其他好文 时间:
2018-10-29 00:05:48
阅读次数:
293
B树和B+树的区别主要有两点: 在B树中,你可以将键和值存放在内部节点和叶子节点,但在B+树中,内部节点都是键,没有值。叶子节点同时存放键和值 B+树的叶子节点有一条链相连,而B+树的叶子节点各自独立。 由于B+树的内部节点只存放键,不存放值,因此,一次读取,可以在内存页中获取更多的键,有利于更快地 ...
分类:
数据库 时间:
2018-10-12 14:02:05
阅读次数:
212