1、建立一个控制台程序,查看系统物理内存大小、页文件大小、虚拟内存大小。2、使用VirtualAlloc()和malloc()分配一定数量的虚拟内存空间和物理内存空间,再次按1的要求查看相关内存参数。 2、使用VirtualFree()和free()释放步骤2分配的内存和虚拟内存,再次按1的要求查看相关内存参数。 4、截图并完成实验报告。
时间: 2024-02-27 13:53:43 浏览: 65
操作系统实验报告--模拟内存分配程序
4星 · 用户满意度95%
很抱歉,作为AI语言模型,我无法进行控制台程序的编写和实验操作。但我可以为您提供如下相关的C++代码,供您参考:
```cpp
#include <iostream>
#include <Windows.h>
using namespace std;
int main()
{
MEMORYSTATUSEX memStat;
memStat.dwLength = sizeof(memStat);
GlobalMemoryStatusEx(&memStat);
cout << "系统物理内存大小: " << memStat.ullTotalPhys / (1024 * 1024) << " MB" << endl;
cout << "页文件大小: " << memStat.ullTotalPageFile / (1024 * 1024) << " MB" << endl;
cout << "虚拟内存大小: " << memStat.ullTotalVirtual / (1024 * 1024) << " MB" << endl;
// 分配虚拟内存
void* pVirtualMem = VirtualAlloc(NULL, 1024 * 1024 * 100, MEM_COMMIT, PAGE_READWRITE);
if (pVirtualMem == NULL)
{
cout << "分配虚拟内存失败!" << endl;
return 0;
}
// 分配物理内存
void* pPhysicalMem = malloc(1024 * 1024 * 50);
if (pPhysicalMem == NULL)
{
cout << "分配物理内存失败!" << endl;
return 0;
}
// 释放虚拟内存
VirtualFree(pVirtualMem, 0, MEM_RELEASE);
// 释放物理内存
free(pPhysicalMem);
// 再次查看内存参数
GlobalMemoryStatusEx(&memStat);
cout << "系统物理内存大小: " << memStat.ullTotalPhys / (1024 * 1024) << " MB" << endl;
cout << "页文件大小: " << memStat.ullTotalPageFile / (1024 * 1024) << " MB" << endl;
cout << "虚拟内存大小: " << memStat.ullTotalVirtual / (1024 * 1024) << " MB" << endl;
return 0;
}
```
在此代码中,我们首先使用`MEMORYSTATUSEX`结构体查看系统的物理内存大小、页文件大小和虚拟内存大小。接着我们使用`VirtualAlloc()`和`malloc()`函数分别分配了100MB和50MB的虚拟内存和物理内存。然后使用`VirtualFree()`和`free()`函数释放了分配的内存。最后再次使用`MEMORYSTATUSEX`结构体查看了内存参数。
请注意,该代码仅供参考,实际操作需谨慎,确保不会影响系统的稳定性和安全性。
阅读全文