虚拟内存技术
来源:互联网 发布:mac命令行终端软件 编辑:程序博客网 时间:2024/06/05 12:49
1 虚拟内存技术
1.1虚拟地址(逻辑地址)
操作系统中申请的物理空间,都会映射到虚拟地址上。然后可通过虚拟地址访问物理空间。
1.2 内存页面
操作系统分配(映射)物理空间时,以页为单位
malloc申请的空间后台会用一定的数据结构来管理
brk/sbrk申请的空间后台会维护一个位置
mmap申请的空间由程序员自己管理
1.3 sbrk(int n);
返回值:永远是移动之前的位置。
n>0 申请n个字节的空间,将当前位置向后移n个字节
n<0 释放n个字节的空间,将当前位置向前移n个字节
n=0 返回当前位置,如果程序中第一次调用sbrk(0),返回一个未使用过的虚拟地址,以后用sbrk,brk分配空间时,就使用这个虚拟地址。
1.4 brk(void *p);
返回值:0:成功,-1:失败
将当前位置移动到指定位置(p),如果这样的移动是向前,相当于释放空间,向后移动相当于分配空间
1.5 mmap
内存映射,mmap向操作系统申请一片内存空间,由程序员自己管理
mmap(void *p, size_t sz, int port, int flags, int fd, off_t offset)
p:指定映射好的空间的首地址,一般为NULL,让系统指定首地址
sz:大小,以页面对其
prot:
PROT_READ,PROT_WRITE,PROT_EXEC
flags:
MAP_SHARED和MAP_PRIVATE必选其一,对于内存映射没有区别,区别主要在文件映射。
MAP_ANONYMOUS,匿名映射,专门用于映射内存。如果没有此选项,默认为映射文件。
fd:文件描述符
off:文件偏移量
返回值:映射好的内存空间的首地址
(void *)-1或 MAP_FAILED 代表失败
解除映射:
相当于释放内存空间
munmap(首地址, 大小)
0 0
- 虚拟内存技术
- 虚拟内存技术
- 虚拟内存管理技术
- 虚拟内存技术原理和使用方法
- 虚拟内存技术原理和使用方法
- 给windows增加虚拟内存技术
- 虚拟内存技术原理和使用方法
- 【转帖】虚拟内存技术原理和使用方法
- 虚拟内存
- 虚拟内存
- 虚拟内存
- 虚拟内存
- 虚拟内存
- 虚拟内存
- 虚拟内存
- 虚拟内存
- 虚拟内存
- 虚拟内存
- Ajax跨域get出现的Not allowed by Access-Control-Allow-Origin
- Centos6如何更改yum源为163
- UML(十)构件图
- SharePoint中的一些常量
- Apk如何调用非系统jar包
- 虚拟内存技术
- Android 如何将非系统jar包打入系统包
- spring定时器及cron表达式
- 人生与黑苹果2014
- SQL Server 学习笔记③ 备份、还原语句
- podofo文档——名称空间参考
- ajax 调用的封装
- MFC - 网络编程 (孙鑫C++第十四讲笔记整理)
- UINavigateController到指定层数,退到指定层数