内存管理--内存的简介
来源:互联网 发布:ios阿里云 身份证识别 编辑:程序博客网 时间:2024/05/22 13:01
1.程序内存
32位机器具有4G的程序内存,这个内存并不是指实际的物理内存,而是虚拟内存这个虚拟内存并不是实际存在的。
2.虚拟内存
我们知道一个虚拟空间由一组页映射函数将虚拟空间的各个页映射至相应的物理空间,那么创建一个虚拟空间实际上并不是创建空间而是创建映射函数所需要的相应的数据结构,在i386 的Linux下,创建虚拟地址空间实际上只是分配一个页目录(Page Directory)就可以了,甚至不设置页映射关系,这些映射关系等到后面程序发生页错误的时候再进行设置。程序装入内存,实际就是映射到了虚拟内存。
3.内存中布局
栈:栈用于维护函数调用的上下文,离开了栈函数调用就没法实现。栈通常在用户空间的最高地址处分配,通常有数兆字节的大小。
堆:堆是用来容纳应用程序动态分配的内存区域,当程序使用malloc或new分配内存时,得到的内存来自堆里。
可执行文件映像:这里存储着可执行文件在内存里的映像。
保留区:保留区并不是一个单一的内存区域,而是对内存中受到保护而禁止访问的内存区域的总称,例如,大多数操作系统里,极小的地址通常都是不允许访问的,如NULL。通常C语言将无效指针赋值为0也是出于这个考虑,因为0地址上正常情况下不可能有有效的可访问数据。
阅读全文
1 0
- 内存管理--内存的简介
- android的内存管理简介
- IOS 内存管理简介
- JVM内存管理简介
- php内存管理简介
- Linux 内存管理简介
- Linux操作系统的内存管理特性简介
- C语言内存管理的简介
- 内存管理:03高端内存简介
- linux下内存管理简介
- .Net Framework内存管理简介
- Object-c内存管理简介
- JVM内存管理------GC简介
- JVM内存管理------GC简介
- JVM内存管理------GC简介
- Intel CPU的保护模式和段式内存管理简介
- IOS中Cocoa对象的内存管理初探(简介)
- 内存管理的读书笔记
- kmeans聚类
- css细节总结
- JAVA初学笔记---控制台输入:错误scanner
- 贝塞尔曲线扫盲
- 简易的解决方式linker command failed with exit code 1 (use -v to see invocation)
- 内存管理--内存的简介
- Java提高篇(三六)-----Java集合细节(二):asList的缺陷
- angularjs grunt build
- HashMap的N种迭代方式
- RCNN\fastRCNN\fasterRCNN
- git高阶
- 记录资源 解决软键盘遮挡问题
- 无xml的springmvc实现登陆功能
- Java提高配(三七)-----Java集合细节(三):subList的缺陷