当前位置: 首页 > news >正文

wordpress 自助建站西安建网站价格

wordpress 自助建站,西安建网站价格,企业网站建设免备案,app打包公司有哪些目录程序地址空间进程地址空间程序地址空间 我们在学习时,通常会以这样一张表来表示程序布局,我们写的变量,对象,代码数据等就可以和这张图对应,从而区分不同数据的位置。 那么程序加载到内存后的内存布局是这个程序分…

目录

    • 程序地址空间
    • 进程地址空间

程序地址空间

在这里插入图片描述
我们在学习时,通常会以这样一张表来表示程序布局,我们写的变量,对象,代码数据等就可以和这张图对应,从而区分不同数据的位置。

那么程序加载到内存后的内存布局是这个程序分布图吗?

int un_gval;
int init_gval=100;int main(int argc, char *argv[], char *env[])
{printf("code addr: %p\n", main);//代码区const char *str = "hello Linux";printf("read only char addr: %p\n", str);//字符常量区printf("init global value addr: %p\n", &init_gval);//已初始化全局数据区printf("uninit global value addr: %p\n", &un_gval);//未初始化全局数据区char *heap1 = (char*)malloc(100); printf("heap addr : %p\n", heap1);//堆区printf("stack addr : %p\n", &str);//栈区return 0;
}

在这里插入图片描述
可以看到结果的确是按照程序分布图划分区域的

在这里插入图片描述
更细分的话可以看到堆向上增长,栈向下增长

复习一个概念,栈整体向下增长,但局部是向上使用的,就像数组
int a[10] , 遍历数组时通常需要++
在这里插入图片描述
对于struct b{x,y,z} ,struct b obj 中的 &obj.x 、&obj.y 、&obj.z也是遵循这样的规则
在这里插入图片描述
对于一个变量a,用static修饰局部变量之后,其实是把它作为全局变量了,所以函数调用结束不会被释放
在这里插入图片描述
用fork演示一下

int g_val = 100;int main()
{pid_t id = fork();if (id == 0){//childint cnt = 5;while (1){printf("child, Pid: %d, Ppid: %d, g_val: %d, &g_val=%p\n", getpid(), getppid(), g_val, &g_val);sleep(1);if (cnt == 0){g_val = 200;printf("child change g_val: 100->200\n");}cnt--;}}else{//fatherwhile (1){printf("father, Pid: %d, Ppid: %d, g_val: %d, &g_val=%p\n", getpid(), getppid(), g_val, &g_val);sleep(1);}}sleep(100);return 0;
}

在这里插入图片描述
发现对于同一个g_val,同样的地址去读取,父子进程读出了不同的内容,那么我们在C/C++看到的地址,肯定不是物理地址。
我们平时遇到的地址,都是虚拟地址/线性地址

进程地址空间

物理地址,用户一概看不到,由OS统一管理
OS必须负责将 虚拟地址 转化成 物理地址
我们之前说的程序布局表准确来说是叫 进程地址空间

每一个进程运行之后,都会有一个进程地址空间的存在。
在这里插入图片描述
对于每一个进程,只要通过页表,就能用虚拟地址找到,定位到映射的物理地址,从而找到变量数据

创建出子进程之后,子进程要以父进程为模版拷贝PCB,除了自身pid,ppid,优先级等。然后拷贝进程地址空间,让自己的PCB指向自己的进程地址空间,再拷贝页表。
在这里插入图片描述
如果这个时候,子进程想修改g_val的值
每一个进程具有独立性,子进程读取之前会由操作系统 在物理内存中进行写时拷贝
在这里插入图片描述
这个进程地址空间,本质和进程的task_struct一样,是一个结构体
在这里插入图片描述

进程地址空间中的对不同区域划分,代码区、栈区,本质就是赋不同的值:long code_end = 40 ,long data_start =40

http://www.dtcms.com/a/429556.html

相关文章:

  • 行业类网站模板网站开发工程师社交
  • 营销型网站建设申请域名时公司类型的域名后缀一般是老总办公室装修风格
  • 外贸公司建网站一般多少钱编辑制作网页的基础是
  • 犀牛云网站建设公司网站推送
  • 建设网站的命令个体户45万以下免个税
  • 简答题网站建设的主要内容个人站长做导航网站
  • 网站备案在哪个部门手机设计软件拉图
  • 齐河建设局网站哪个网站做平面能兼职
  • 无锡网站建设多少钱WordPress图片生成文章
  • 苏州建行网站首页设置网站404
  • 沈阳网站开发培训多少钱昆明网站制作服务商
  • 太仓网站优化免费自助开通网站
  • 网站套站是什么意思岱山建设局网站
  • 婚恋网站如何做推广建筑网站 国外
  • 网站定制开发合同建设旅游网站
  • 杭州网站建设 博采网络有限公司中卫网站推广公司
  • 门户网站建设的平台搭建广告推广免费
  • 网站建设与制作视频教学好看的网站推荐一下
  • 怎么做创意短视频网站海宁网站网站建设
  • 网站推广的方式包括阿里云 wordpress 500
  • 陕西网站制wordpress首页js怎么添加图片
  • html网页设计期末作业seo域名如何优化
  • 做专业课视频课的网站门户一号wordpress主题
  • 北京公司模板网站好最棒的网站建设
  • 西安电脑网站建设洛阳做网站哪家好
  • 做再生料的网站四川seo技术培训
  • 网站建设奖项有效的网站推广方式
  • 网站中链接怎么做有限公司章程
  • 做网站和做公众号网站首页图片大小
  • 建设企业网站企业网上银行网站规划思想方法有哪些内容