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

物流网站建设方案营销渠道策划方案

物流网站建设方案,营销渠道策划方案,宁波俄语网站建设,网站建设卖给别人可以吗【Linux进程七】程序地址空间 1.进程的地址空间分布2.类型的本质是偏移量3.什么是进程地址空间4.页表的映射和访问权限字段5.地址空间的作用 1.进程的地址空间分布 堆是向上扩展的,栈是向下扩展的 因为字符常量区和代码区相邻,受到同样的保护&#xff0c…

【Linux进程七】程序地址空间

  • 1.进程的地址空间分布
  • 2.类型的本质是偏移量
  • 3.什么是进程地址空间
  • 4.页表的映射和访问权限字段
  • 5.地址空间的作用

1.进程的地址空间分布

在这里插入图片描述
堆是向上扩展的,栈是向下扩展的
因为字符常量区和代码区相邻,受到同样的保护,字符常量区和代码区一样不允许修改
通过代码验证:
在这里插入图片描述
在这里插入图片描述

2.类型的本质是偏移量

栈整体向下扩展,局部向上读取
堆整体向上扩展,局部向下读取
用栈举例:
在这里插入图片描述

所以类型的本质是偏移量

3.什么是进程地址空间

我们用下面的代码可以查看到一个事实

#include <stdio.h>    
#include <unistd.h>    
#include <sys/types.h>    
#include<stdlib.h>    int main()    
{    int id = fork();    int tmp = 100;    if(id == 0)//子进程执行的代码    {    tmp = 200;    while(1)    {    printf("子进程tmp: %d,&tmp: %p\n",tmp,&tmp);    sleep(1);    }    }    if(id > 1)//父进程执行的代码    {    while(1)    {    printf("父进程tmp: %d,&tmp: %p\n",tmp,&tmp);    sleep(1);    }    }                                                                                                                                                                   return 0;    
}    

在这里插入图片描述

子进程和父进程的地址一样,但却有两个值

所以是事实:平时看见的地址并不是真实的地址而是虚拟地址,真实的地址空间被称为物理地址(物理内存)

在这里插入图片描述
每个进程都有自己的进程地址空间

操作系统想管理进程,就一定要先描述,再组织
所以进程地址空间是一个数据结构struct用于描述进程

在这里插入图片描述

程序地址空间有多个区域结合而成,而区域之间的划分就是区域开头begin和区域结尾end
说明进程地址空间就是一个线性区域
就像下面代码一样:

struct mm_struct
{int code_begin;//代码区起始int code_end;//代码区结束int init_begin;//初始化区起始int init_end;//初始化区结束int heap_begin;//堆区起始int heap_end;//堆区结束......
};

4.页表的映射和访问权限字段

OS为每一个进程配对一个虚拟地址空间和一张页表,要访问物理地址时,需要先在页表进行映射(若访问的是非法地址,则会在页表层阻止你的访问)

在这里插入图片描述
所以父进程和子进程之间的关系是这样的:
在这里插入图片描述

创建子进程,就要创建子进程的PCB,及地址空间和页表结构 子进程的相关内核数据结构的属性字段会继承父进程
正常来说,子进程要对tmp对修改,把tmp变成200,父进程通过映射关系找到tmp,读到200
但因为进程具有独立性,子进程对数据的修改,不影响父进程,所以当子进程要对tmp修改时,在内存中重新申请一块空间,拷贝tmp值给新空间,重新映射指向新开辟的空间,不影响父进程的tmp值,最终将新开辟的空间tmp值改成200
所以二者虚拟地址相同,但物理地址不同

更详细的页表:
在这里插入图片描述

常量字符串不能修改,正是因为映射时的访问权限字段里没有修改权限

5.地址空间的作用

  1. 让进程已统一的视角看待内存(物理地址):无序变有序
    任意一个进程都可以通过地址空间和页表将内存中乱序的内存数据变为有序
  2. 虚拟地址有效保护了物理地址
    操作系统通过虚拟地址的映射过程,用页表的权限访问字段阻止了非法访问
  3. 将进程管理和内存管理解耦
    因为有进程地址空间和页表的存在,物理内存的分配就可以和进程的管理互不打扰
  4. 保证进程的独立性
    操作系统通过虚拟地址的映射过程,用页表将进程映射到不同的物理内存,实现进程间的独立
    进程=内核数据结构+进程的代码和数据
http://www.dtcms.com/wzjs/228267.html

相关文章:

  • 土耳其网站后缀百度投诉中心
  • 政府机构的网站怎么做的那么差今日油价最新
  • 手机网站智能管理系统朋友圈广告推广平台
  • 免费网络电话排行优化大师手机版下载
  • 做篮球网站用的背景图片百度信息流推广技巧
  • 厦门网站建设阳哥千锋教育培训机构学费
  • 做网站哪个语言快个人怎么创建网站
  • 花生壳做网站有流量限制网络优化培训骗局
  • 7免费网站建站安徽百度seo公司
  • 长春网站推广长沙网站推广seo
  • 唐山高端网站建设优化关键词排名软件
  • 泉州做网站价格灰色行业seo
  • 手机代理ip海外免费seo和sem是什么
  • 网站运营管理的内容有哪些百度导航下载2022最新版官网
  • 做一个网站做少多少钱制作网站首页
  • 做钢材的都用什么网站百度首页排名优化公司
  • 淘客cms建站系统搜索引擎优化实训
  • 公司做一个网站内容如何设计怎么查看域名是一级还是二级域名
  • 装饰公司网站建设效果腾讯竞价广告
  • 甘肃省5g网站建设中标单位国际时事新闻2022最新
  • 东莞石排做企业网站seo专业培训课程
  • 代做原创毕业设计网站长沙做搜索引擎的公司
  • 做网站的费用记哪个科目百度seo优化招聘
  • 做调查问卷的网站上海做关键词推广企业
  • wordpress底下固定seo站长工具查询系统
  • b站网址多少廊坊seo推广公司
  • tk域名网站加盟
  • 旅游电子商务网站的建设方案阳东网站seo
  • 做网站抽奖系统搜索引擎优化方案案例
  • 大方网站制作百度竞价推广属于什么广告