概念
Virtual Address(VA):虚拟地址,实际上不存在,是对物理地址的抽象,CPU通过虚拟地址访问内存。
Physical Addrss(PA):物理地址,内存真实的地址。
Memory mangagement unit(MMU):地址转换单元,将虚拟地址转换成物理地址.
虚拟内存重要特性
1.虚拟内存存放在磁盘中,缓存在物理内存中。虚拟内存使得每个进程好像可以独占物理内存一样,这样简化了系统为进程分配内存的过程,同时各个进程都拥有的自己的内存,无不干扰。比如在32位的系统中,每个进程的拥有的虚拟内存是4G(2**32).
2.虚拟内存可以提供内存访问保护,可以在页表中设置权限位,控制进程访问的权限。
3.虚拟内存按页划分,每个页大小为4KB,称为Virtual Page(VP)。
4.操作系统按照页表(Page Table)管理虚拟内存,页表由VP的地址组成的。
5.每个进程都有自己的页表。
6.操作系统经常使用多级页表来减少页表的占用空间.
7.不同进程共享相同的数据和代码(比如共享库)时,只要设置在不同进程的页表中映射到相同的物理内存即可,这样街节省了物理内存的分配.
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
### Linux虚拟内存管理知识点 #### 一、过程地址空间(Process Address Space) 在Linux系统中,每个用户进程都被赋予一个独立的过程地址空间(Process Address Space, PAS),它为进程提供了一个虚拟视图,使得每个...
Linux虚拟内存设置详解 在 Linux 系统中,虚拟内存(也称 swap 空间)是一种重要的内存管理机制。当物理内存不足时,虚拟内存可以提供额外的内存空间,以确保系统的稳定运行。下面我们将详细介绍 Linux 虚拟内存的...
#### 七、小结 内存映射是Linux设备驱动开发中不可或缺的技术,它允许应用程序直接访问物理内存或硬件设备,极大地提高了数据处理效率。通过深入理解mmap()函数及其背后的机制,开发者可以更好地设计和优化设备驱动...
**3.1.13 lowmem小结** Lowmem机制主要应用于较小的内存环境,在这种情况下,内核使用Buddy系统和其他分配器来有效地管理内存。 **3.1.14 highmem的使用** Highmem机制允许内核管理超过低内存限制的大内存环境,...
- 高端内存并不直接映射到内核虚拟内存(VM)中,而是在后续的步骤中进行处理。 6. **初始化启动时的内存分配器** - `setup_arch`接下来调用`init_bootmem`函数以初始化启动时的内存分配器。此分配器仅在系统启动...
Linux操作系统采用虚拟文件系统(VFS),它提供了一个统一的接口,让Linux可以访问内核支持的任何文件系统,无需关心它们的具体类型。随着Linux内核的发展,它已经支持了众多的文件系统,包括VFAT、NTFS等,尽管一些...
本章小结 70 动手练练 70 第3章 构建嵌入式linux系统 71 3.1 嵌入式系统开发环境的构建 71 3.1.1 嵌入式交叉编译环境搭建 71 3.1.2 minicom和超级终端配置及使用 76 3.1.3 宿主机服务配置 83 3.2...
1.4 小结 14 第2章 shell程序设计 15 2.1 为什么使用shell编程 15 2.2 一点哲学 16 2.3 什么是shell 16 2.4 管道和重定向 18 2.4.1 重定向输出 18 2.4.2 重定向输入 19 .2.4.3 管道 19 2.5 作为程序设计...
- `vmstat`报告虚拟内存状态,包括空闲、缓冲、缓存等; - `dmidecode | grep -i mem`获取内存模块的详细信息。 6. **网卡信息**: - `dmesg | grep -i eth`查看网络接口(eth)的相关日志; - `lspci | grep -...
1.4 小结 14 第2章 shell程序设计 15 2.1 为什么使用shell编程 15 2.2 一点哲学 16 2.3 什么是shell 16 2.4 管道和重定向 18 2.4.1 重定向输出 18 2.4.2 重定向输入 19 .2.4.3 管道 19 2.5 作为程序设计...
#### 小结 《Linux内核开发》(第三版)是一本不可或缺的手册,对于想要深入了解Linux内核工作原理及其开发流程的技术人员来说,这本书提供了宝贵的资料。通过阅读本书,不仅可以学到内核级别的编程技巧,还能够获得...
1.10 课时小结 13 1.11 专家答疑 13 1.12 练习题 13 第2学时 安装Linux操作系统 14 2.1 开始安装 14 2.2 完成Linux操作系统安装过程 20 2.2.1 登录到Linux操作系统 22 2.2.2 重新启动和关机 24 2.3 课时小结 25 2.4 ...
1.8 小结 13 第2章 Linux编程环境 14 2.1 Linux环境下的编辑器 14 2.1.1 vim使用简介 14 2.1.2 使用vim建立文件 15 2.1.3 使用vim编辑文本 16 2.1.4 vim的格式设置 18 2.1.5 vim配置文件.vimrc 19 ...
1.8 小结 13 第2章 Linux编程环境 14 2.1 Linux环境下的编辑器 14 2.1.1 vim使用简介 14 2.1.2 使用vim建立文件 15 2.1.3 使用vim编辑文本 16 2.1.4 vim的格式设置 18 2.1.5 vim配置文件.vimrc 19 ...
#### 五、小结 通过以上步骤,用户可以在VMware Workstation中成功安装Red Hat Linux。这种方法不仅适用于希望尝试Linux的新手,也适用于需要在不同操作系统之间快速切换的高级用户。通过利用虚拟化技术,用户可以...
- **Cortex-A5**:这是一个高性能的ARM内核,同样支持L1缓存系统,并提供了全面的虚拟内存管理。它实现了ARMv7架构,支持32位ARM指令集、16位/32位Thumb指令集以及Jazelle模式下的8位Java字节码执行。 - **Cortex-...