进程空间-徐明伟
来源:互联网 发布:微信小程序 php服务端 编辑:程序博客网 时间:2024/06/08 02:51
•应用程序:
• 简单的说,可以执行的文件,叫做应用程序,在磁盘上保存
• 我们所写的程序,叫做源程序,编译以后变成应用程序以后可执行。
•
•进程:
• 是一个具有独立功能的程序。它可以申请和拥有系统资源,
是一个动态的概念,是一个活动的实体
•进程是正在运行的应用程序,在内存中
•内存中的一个进程,所占的内存空间被划分为以下几个区域:
•1、代码区(代码段,text)
•2、全局区(全局静态区、bss段)
•3、堆区(自由区,heap)
4、栈区(stack)代码区:
•存放程序代码的区域,最大的特点是只读。在代码区中,也有可能包含一些 只读的常数变量 ,例如字符串常量等
•受系统的保护,如果对该区域进行修改,会直接导致操作系统的保护机制启动,进程会被强制终止。
全局区:
• 存放全局变量区域,静态变量的空间也会在此分配,可读可写。空间不会释放,除非进程结束。
• bss段:存放未初始化过的全局变量,程序开始执行前,会被全部清0.
堆区:
• 程序员想什么时候分配空间就什么时候分配空间,想什么时候释放空间就什么时候释放。可读可写。
栈区:
• 局部变量分配空间的地方,在栈区中的变量也叫自动变量,内存空间的分配和释放都是自动的,不受程序员的控制,可读可写。
示例代码:
•
•#include<stdio.h>
•#include<stdlib.h>
•
•int i1 = 100;//全局区
•int i2 = 200; //全局区
•int i3; //全局区
•const int i4 = 400; //代码区
•static int i5 = 500; //全局区
•
•
•void fa(int i6){ //栈区
• int i7 = 700; //栈区
• static int i8 = 800;//全局区
• char* str = “abcdef”; //代码区
• printf("&i6=%p\n", &i6);
• printf("&i7=%p\n", &i7);
• printf("&i8=%p\n", &i8);
• printf("str=%p\n", str);
•}
•int main()
•{
• printf("&i1=%p\n", &i1);
• printf("&i2=%p\n", &i2);
• printf("&i3=%p\n", &i3);
• printf("&i4=%p\n", &i4);
• printf("&i5=%p\n", &i5);
• fa(100);
• return 0;
•}
0 0
- 进程空间-徐明伟
- 进程空间
- Linux - 进程(一) 进程空间
- 内核空间创建进程
- 进程地址空间
- 进程地址空间[1]
- 进程地址空间[2]
- 进程地址空间[3]
- 进程地址空间[4]
- 进程地址空间
- 进程的地址空间
- 进程地址空间
- DLL的进程空间
- 进程地址空间
- 8. 进程地址空间
- 进程的堆栈空间
- 进程地址空间
- linux进程空间
- IM推送Android客户端之重连策略
- python 在不同层级目录import 模块的方法
- [Spring]web.xml中配置ContextLoaderListener监听器的作用
- 三范式
- HTML第四章 上机5
- 进程空间-徐明伟
- Sublime Text 格式化代码
- Android DIY之路 (一) 指定区域多图片合成 放大 缩小 镜像 旋转 等
- 初学python的小知识
- 04上机练习4
- Java NIO和IO的主要区别
- 安卓设计模式之工厂模式
- cvQueryFrame
- web项目短信配置