unix中,程序的的空间分配
来源:互联网 发布:不属于云计算的价值 编辑:程序博客网 时间:2024/04/28 02:47
通常情况下,往往忽视程序运行的细节,而内核却是严格的控制程序的运行空间,而我们却经常的忽视它的细节,如果在多线程编程中,这些细节确实不能忽视的,那么内核是怎么管理程序的运行空间的?
内核会给每个运行的程序一个自己的运行空间,也就是内存中的一段区域,这段区域的大小是由程序的代码量和程序的数据量决定的,程序需要存放要运行的代码、数据、堆、栈。
test段/code段:,这里的正文区,就是存放代码的地方,而
DATA段: 初始化数据区,就是存放我们平常说的全局变量,需要注意的是这里存储的全局变量必须是带有初始化值的全局变量,也就是在任何函数外边定义的变量。
BSS段:而未初始化的全局变量会存储在BSS段,同时平常定义的static型的数据也存储在BSS段,如果你在函数中使用exec函数族,那么调用函数的一些信息也会存放在这块区域,
而堆区,就是是用malloc()、ralloc()此类函数的时候,申请的存储区域。
至于栈区,这个大家都比较熟悉了,如果你要在函数内调用函数,在执行被调用函数前,主函数的相关信息换放在这块区域。最顶部的命令行和环境变量区,这个在linux系统中,是非常重要的,我们平常写的程序不太符合内核的要求,内核需要每个函数都要返回值,通过这个返回值,来知道这个函数的执行情况,对与每个main()函数,定义应该为 : int main( int argv,void *argv);main函数的这两个参数就会存放在这块区域,同时,调用函数的shell 相关信息也会在这块区域中找到。 总结下,栈区存放的主要定义的局部变量、保存运行的上下文信息、和一些函数调用的行参。
DATA段: 初始化数据区,就是存放我们平常说的全局变量,需要注意的是这里存储的全局变量必须是带有初始化值的全局变量,也就是在任何函数外边定义的变量。
BSS段:而未初始化的全局变量会存储在BSS段,同时平常定义的static型的数据也存储在BSS段,如果你在函数中使用exec函数族,那么调用函数的一些信息也会存放在这块区域,
而堆区,就是是用malloc()、ralloc()此类函数的时候,申请的存储区域。
至于栈区,这个大家都比较熟悉了,如果你要在函数内调用函数,在执行被调用函数前,主函数的相关信息换放在这块区域。最顶部的命令行和环境变量区,这个在linux系统中,是非常重要的,我们平常写的程序不太符合内核的要求,内核需要每个函数都要返回值,通过这个返回值,来知道这个函数的执行情况,对与每个main()函数,定义应该为 : int main( int argv,void *argv);main函数的这两个参数就会存放在这块区域,同时,调用函数的shell 相关信息也会在这块区域中找到。 总结下,栈区存放的主要定义的局部变量、保存运行的上下文信息、和一些函数调用的行参。
0
上一篇:pthread_create
下一篇:三月的最后一周
相关热门文章
- 万维网之父:警惕政府正在接管...
- 宅急送代收货款 慢性湿疹...
- 神经性皮炎 麻将
- 骰子 邮政代收货款的好处...
- www.fenghuangyulepingtai.com...
- linux 常见服务端口
- 什么是shell
- linux socket的bug??
- linux的线程是否受到了保护?...
- 一个适用于windows和linux的抓...
- debian7系统与ATI X2300显卡...
- ubuntu sysklogd之配置文件介...
- 自己用的ubuntu环境搭建(一)...
- linux 学习心得
- 用户输入操作和数据的显示...
给主人留下些什么吧!~~
评论热议
- unix中,程序的的空间分配
- 程序运行的空间分配
- Linux中进程空间的分配
- C#中数组的空间分配问题
- C中几个变量的区别:(特别是有程序分配空间的解释)
- 可分配的空间分配
- 把keilC51中不使用的代码禁止分配空间,为程序瘦身!
- 指针分配的空间
- 可恢复的空间分配
- 类的空间分配
- Unix/Linux的内存分配
- C中程序的内存分配
- 【转】程序中内存空间的分配
- C++:编写一个程序,用动态分布分配空间的方法计算Fibonacci数列的前二十项并存储到动态分布的空间中
- Java程序运行时,没有赋值的基本类型变量会在内存中分配空间吗?
- c语言中二级指针空间的分配
- 在C51中变量的空间分配几个方法
- 结构体中成员大小的空间分配
- printf特效输出
- sprintf能干什么?
- ANSI C 中,IO的缓存方式
- pthread_create
- Mac OS 环境变量配置
- unix中,程序的的空间分配
- 三月的最后一周
- Javascript----语法
- 2410GPIO输出4路频率
- 2410通过信号量线程同步
- 消息队列实现聊天室功能
- GPIO解析
- GPIO全解
- 关于PHP中文件上传中的post_max_size与upload_max_filesize
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
幼儿园区域布置娃娃家
农村区域发展专业
区域活动观察记录
小班区域活动反思
幼儿园招生区域
幼儿园大班区域材料制作
大班区域活动计划
幼儿园区域活动教案
中班区域活动反思
幼儿园区域活动目标
区域观察记录大班
中班区域材料的投放
小班区域娃娃家教案
幼儿园大班区域角图片
大班科学区域材料
幼儿园大班区域角布置
中班各区域活动目标
幼儿园区域活动图片
区域经济一体化
区域农业发展
小班区域活动观察记录表
自制区域玩具
区域协调发展
中班区域材料
幼儿园中班区域角图片
幼儿园区域进区卡图片
区域经济理论
数学区域材料
区域经济政策
区域地理试题
羽毛球单打发球区域图解
命运2土卫六遗失区域
2015小明台湾永远免费区域
区姓
区庄地铁站
区庄
环球雅思 区庄校区
广州市区庄附近宾馆
区时
区时计算
48星区配对