程序载入内存后的结构

本文详细介绍了Linux系统中进程的内存结构,包括用户空间和系统空间的划分,以及页表机制如何实现虚拟内存管理。每个进程都有独立的4GB地址空间,其中用户空间3GB,系统空间1GB。进程切换涉及用户栈和内核栈的转换,而PCB(进程控制块)用于存储和控制进程运行所需信息。在多进程环境中,通过复制页目录实现了内核空间的共享。对比之下,DOS系统采用实地址模式,没有固定内存结构。
摘要由CSDN通过智能技术生成

首先我们以Linux为例来研究,这代表了现在操作系统的有多进程的处理方式(后面我们会分析dos的处理方式)


来看一幅很经典的内存结构图:

------------------------------低地址

代码区                        |

------------------------------

全局数据区                 |

------------------------------

堆                               |

↓                                 |

                                   |

↑                                 |

栈                               |

------------------------------

系统空间                     |                    

------------------------------高地址


  这幅图你可能看过好多次了,但需要搞明白的是,这个结构不是针对整个内存而言的,而是针对一个进程而言的,每个进程都对应这样一个结构。


  在Linux中,从代码区到栈称为用户空间,大小为3G,剩下的系统空间大小为1G。你可能会疑问&#x

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值