虚拟地址空间的布局

3G用户空间

保留区:位于虚拟地址空间的底层,存放的C的库,不可访问 大小为128M

. text 存放程序执行代码,也叫代码段(可读、可执行)

. data 数据段,用来存放已初始化且初始化不为0的全局变量和静态局部变量  (可读、可写)

. bss 未初始化数据段,用来存放未初始化或者初始化为0的全局变量和静态局部变量

 栈 又称堆栈,由编译器自动分配释放

  • 用函数内部声明的非静态局部变量提供空间
  • 记录函数调用过程中相关的维护信息
  • 临时存储区,用于暂时存储长算式表达式部分计算结果或alloc()函数分配的栈内内存

用于存放程序运行时动态分配的内存段,可以动态的扩张或缩减。堆中内容是匿名的,不能按名字直接访问,只能通过指针间接访问。当进程调用malloc(C)/new(C++)等函数分配内存时,新分配的内存动态添加到堆上(扩张);当调用free(C)/delete(C++)等函数释放内存时,被释放的内存从堆中剔除(缩减) 

共享库:存放的C的库,防止保留区不够大

1G内核空间

ZONE_DMA  直接内存访问区,CPU直接访问,不用通过寄存器提高了CUP的效率

ZONE_NORMAL 常用内存,虚拟地址空间与内存的映射关系,PCB就在这里

ZONE_HIGHMEM  高端内存,内核中映射文件超过1G时使用

相关文章:

  • 2022-12-23
  • 2021-04-05
  • 2021-09-25
  • 2021-05-03
  • 2021-11-23
  • 2022-01-20
  • 2021-11-05
  • 2022-01-01
猜你喜欢
  • 2021-12-25
  • 2021-09-24
  • 2021-06-10
  • 2021-08-21
  • 2021-11-08
相关资源
相似解决方案