我想知道是否例如。 Windows完全锁定了所有可用的内存,因此,一些手忙脚乱的真正无聊的人无法开始从其他进程删除内存(以某种方式)。

这个问题源自在C ++中使用delete函数时发生了什么(是C ++告诉OS操作系统现在可以释放内存以供覆盖,还是C ++告诉硬件解锁内存)……然后产生对我来说,我想到了创建特定硬件以在硬件级别与RAM交互并开始删除内存块的乐趣。即黑客。

我的想法是:Windows内存管理程序被告知可以自由写入内存,对吗?但这是否还意味着内存地址仍设置为锁定在硬件级别,因此只能由Windows而不是其他OS来控制该内存。还是就像在硬件级别上狂野的西部...如果Windows没有锁定内存,那么其他任何人都可以使用现在免费的部件。

我想真正的问题是,操作系统是否可以触发内存地址上的硬件级别锁定...,以便内存已锁定自身,因此无法重新分配?

最佳答案

我想知道Windows是否完全锁定了所有可用的RAM


Windows与其他任何操作系统一样,都使用所有可用的RAM。


  这样一来,那些手头上有太多时间的无聊的人就无法开始从其他进程中删除内存(以某种方式)。


不合逻辑的推论。之所以这样做,是因为它应该这样做。它是一个操作系统,应该控制所有硬件资源。


  问题源自在C ++中将内存标记为删除时发生的情况。


我不知道“标记要在C ++中删除的内存”的含义是什么,但是如果引用delete运算符或free()函数,它们通常不会将内存释放给操作系统。


  我的想法是:Windows内存管理程序被告知可以自由写入内存,对吗?


错误,请参见上文。


  但这是否还意味着内存地址仍设置为锁定在硬件级别,因此只能由Windows而不是其他OS来控制该内存。


还有什么其他操作系统?除非您在虚拟环境中,否则就没有其他操作系统,即使您在虚拟环境中,虚拟环境也会将所有指定的RAM控制权移交给来宾操作系统。


  还是就像在硬件级别上狂野的西部...如果Windows没有锁定内存,那么其他任何人都可以使用现在免费的部件。


还有其他诸如此类的东西吗?


  我想真正的问题是,操作系统可以触发的内存地址上是否存在硬件级别锁定?


通常,是的,存在定义访问每个内存段所需特权级别的硬件定义。例如,操作系统自身的内存不受应用程序进程的影响,而应用程序进程也不受彼此的影响:但这全都与硬件有关。

您的问题实际上没有多大意义。

关于c++ - 操作系统是否将计算机中的全部RAM锁定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29984934/

10-12 16:14