进程虚拟空间

进程虚拟空间

进程

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

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

进程虚拟空间

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

比如说在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.
全部评论

相关推荐

评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
440577次浏览 4493人参与
# 春招别灰心,我们一人来一句鼓励 #
41484次浏览 524人参与
# 阿里云管培生offer #
119864次浏览 2219人参与
# 地方国企笔面经互助 #
7928次浏览 18人参与
# 同bg的你秋招战况如何? #
75577次浏览 552人参与
# 虾皮求职进展汇总 #
114215次浏览 884人参与
# 北方华创开奖 #
107311次浏览 599人参与
# 实习,投递多份简历没人回复怎么办 #
2454001次浏览 34848人参与
# 实习必须要去大厂吗? #
55678次浏览 960人参与
# 提前批简历挂麻了怎么办 #
149825次浏览 1977人参与
# 投递实习岗位前的准备 #
1195707次浏览 18546人参与
# 你投递的公司有几家约面了? #
33180次浏览 188人参与
# 双非本科求职如何逆袭 #
661910次浏览 7394人参与
# 如果公司给你放一天假,你会怎么度过? #
4730次浏览 55人参与
# 机械人春招想让哪家公司来捞你? #
157604次浏览 2267人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11365次浏览 270人参与
# 发工资后,你做的第一件事是什么 #
12418次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35612次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20091次浏览 240人参与
# 我的上岸简历长这样 #
451924次浏览 8088人参与
# 实习想申请秋招offer,能不能argue薪资 #
39235次浏览 314人参与
# 非技术岗是怎么找实习的 #
155850次浏览 2120人参与
牛客网
牛客企业服务