分配额外的空间来处理

时间:2012-08-21 04:07:46

标签: c++

除了操作系统提供的以外,我可以为进程提供额外的空间。 可以使用额外的可拆卸内存用于此目的。

3 个答案:

答案 0 :(得分:2)

  

我可以为进程提供额外的空间,而不是由提供的空间   操作系统。

不,你不能,因为每一块内存你都要请求你的操作系统。
malloc(),新的和其他的内存分配函数和操作符解析为系统调用,请求操作系统将内存提供给程序

答案 1 :(得分:0)

每个进程都有一个明确的最大内存空间,这取决于机器架构。在32位机器上,最大可寻址空间为2 ^ 32字节〜= 4GB。因此,一个进程通常应能够处理4 GB的内存。但是这个空间分为两部分,1。内核空间和2.进程空间。内核空间用于OS驱动程序等,而进程空间是可以分配数据的空间。因此,可用的内存只是进程空间。

在典型的Windows XP计算机上,它是平分的。即2 GB用于处理空间(但是,有一些方法可以修改它。例如,/ 3G选项)。超过2 GB的任何分配都会导致内存不足错误。当您从32位应用程序迁移到64位应用程序时,此进程空间会变得更多。这是迁移到64位应用程序的主要动机之一。

因此,为了回答您的问题,进程可用的最大内存超出了该进程,操作系统拒绝对进程进行内存分配。

答案 2 :(得分:0)

有一些不起眼的方法。例如。如果要将Windows CE设备连接到Windows PC,则可以通过“RAPI”界面访问该设备的内存。 Windows操作系统不会知道此设备内存;这是通过ActiveSync服务处理的。但是,记忆并不是很快。