进程--用户地址空间和内核地址空间

16 篇文章 8 订阅
本文深入探讨了操作系统中的内存管理,重点解析了用户态地址空间的组成部分,包括代码段、数据段、BSS段、堆、mmap区域和栈,以及内核态的地址空间布局,如直接映射区、动态内存映射区等。同时,阐述了用户进程与内核空间的访问权限和页表机制。
摘要由CSDN通过智能技术生成

用户态地址空间

  • text:代码段可执行代码、字符串字面值、只读变量

  • data:数据段,映射程序中已经初始化的全局变量

  • bss:存放程序中未初始化的全局变量

  • heap:运行时的堆,在程序运行中使用 malloc 申请的内存区域

  • mmap:共享库及匿名文件的映射区域

  • stack:用户进程栈

内核态地址空间

  • 直接映射区:线性空间中从 3G 开始最大 896M 的区间,为直接内存映射区

  • 动态内存映射区:该区域由内核函数 vmalloc 来分配

  • 永久内存映射区:该区域可访问高端内存

  • 固定映射区:该区域和 4G 的顶端只有 4k 的隔离带,其每个地址项都服务于特定的用途,如:ACPI_BASE 等

进程内存空间

用户进程通常情况只能访问用户空间的虚拟地址,不能访问内核空间虚拟地址
内核空间是由内核负责映射,不会跟着进程变化;内核空间地址有自己对应的页表,用户进程各自有不同额页表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值