现代操作系统和CPU硬件提供内存保护,防止进程访问除分配给进程的内存以外的内存。
鉴于此,如何编写像Windows资源管理器这样的实用程序来报告有多少内存可用,正在使用,保留等等;或基本的内存转储实用程序等?通过使这样的程序成为具有内核权限的操作系统的一部分,这是在这样的系统上执行此操作的唯一方法吗?
有些操作系统API可以允许访问另一个进程的内存。但即使您使用这些,您的内存读取程序仍然需要特权。是否通过操作系统找出内存和CPU寄存器的内容?
情况与磁盘监控程序类似吗?
答案 0 :(得分:0)
内存是一堆单独标记的内存位置,可以是1或0,高或低,开或关。这些都是比特。 使用这些位需要一定的电流,将它们打开或关闭,所以也许你可以读出内存使用了多少电流,找到设置基准的最小值和最大值,并查看内存使用量是多少电流不一。
用软件完成这项任务是非常重要的。它位于内核级别甚至上游。
使用磁盘监视系统,计算来自和将要的实际位数。
答案 1 :(得分:0)
鉴于此,如何编写像Windows资源管理器这样的实用程序来报告有多少内存可用,正在使用,保留等等;或基本的内存转储实用程序等?
此类应用程序调用操作系统中的系统服务来获取此类数据。这些可以是文件记录的,也可以是未记录的。