进程虚拟空间

进程虚拟空间

进程

进程是我们经常提到的一个概念,那么它究竟是什么?它和程序又有什么区别呢?

程序是一个静态的概念,它是一些预先编译好的指令和数据集合的文件。
进程则是一个动态的概念,它是程序运行时的一个过程。
如果程序是剑谱的话,进程就是你舞剑的过程,函数是你的一个剑招。

进程虚拟空间

每个程序运行起来之后,都会有自己独立的虚拟地址空间。这个虚拟地址空间的带下由计算机平台决定,硬件决定了地址空间的最大理论上限,即硬件的寻址大小空间。

比如说在32位平台下,地址空间最大可达到2^32bit = 4G,而这也是我们常说的1G内核空间+3G用户空间的概念来源。
在C语言中,如果平台是32位地址空间,那么指针大小就是4字节,可以表示4G的空间。
地址扩展——PAE

在32位硬件平台下,程序使用的空间是否能够超过4GB呢?
答案是肯定的。

Intel通过修改页映射的方式,使得新的映射方式可以访问到更多的物理内存,这种地址扩展方式就叫PAE。

操作系统通过提供一个窗口映射的方法,把这些额外的内存映射到进程空间。

比如应用程序0x1000000~0x2000000这一段256M的物理空间做窗口。
程序可以冲高于4G的物理空间中申请多个大小为256M的空间,轮流来使用这个窗口。
在windows下,这种访问内存的操作方式叫AWE。
在linux则通过mmap()系统调用来实现。

关于进程是怎样加载到内存中,我将在下一篇博客:进程的装载中介绍

参考文献

[1] 俞甲子 石凡 潘爱明.程序员的自我修养.电子工业出版社,2009.4.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenmingik

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值