day_04_内存管理
来源:互联网 发布:ubuntu查看64位 32位 编辑:程序博客网 时间:2024/06/11 23:42
- 一内存管理
- 1关于进程的内存空间划分
- 1 问题进程和程序的区别
- 2进程在内存中的布局
- 3 产生段错误的原因
- 4 getpid返回调用者所在进程的ID
- 1关于进程的内存空间划分
- 一内存管理
一、内存管理
1、关于进程的内存空间划分
1.1 问题:进程和程序的区别?
1)程序是保存在磁盘上的可执行文件;
2)运行程序时,需要将可执行文件加载到内存形成了进程;
3)一个程序可以同时对应多个进程;
1.2进程在内存中的布局
代 码 段:(code)[代码、const全局变量、字符串字面常量] .可读非写,非法写入会导致段错误;
数 据 段:初始化的全局变量(data)static修饰的变量(如:静态变量)可读可写
B S S 段`:未初始化的全局变量 可读可写
堆 区:malloc申请的空间(heap)[由低地址向高地址]
栈 区:局部变量 函数参数(stack)[由高地址向低地址] 可读可写
- 注意:
- 关于函数的名称和数组的名称属于字面常量,本身不占内存空间
1.3 产生段错误的原因:
1)对内存区域进行没有权限的操作,比如修改只读区;
2)访问未映射的虚拟地址内存空间;
char *p = NULL;*p = ‘a’;
练习:关于字符串的操作
三种形式:字面值“abcdef”
字符指针char *str1
字符数值char str2[]
1.4 getpid():返回调用者所在进程的ID
当一个进程执行期间,会在操作系统/proc目录自动产生一个以对应进程ID命名的文件;
$ cat /proc/进程ID/maps
阅读全文
0 0
- day_04_内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 内存管理
- 5-13 Insert or Merge (25分)
- 【PAT】【Advanced Level】1006. Sign In and Sign Out (25)
- manacher算法--最长回文子串
- AVL平衡树(山东省选 郁闷的小J)
- 事件监听器 java.lang.NoClassDefFoundError
- day_04_内存管理
- hdu 2097 水题
- unity3d打包发布Apk流程
- 6/27作业:多态
- MO CALL流程
- 几种网络协议的定义及区别
- 输出按逆时针方向旋进的n*n螺旋方阵
- 线程池的使用
- N!的位数 【java 高精度处理】