0

我正在尝试组装一个计算机模型并在其上运行一些模拟(学校作业的一部分)。这是一个非常简单的模型 - 一个 CPU、一个磁盘和一个进程生成器,它生成轮流使用 CPU 和访问磁盘的用户进程(我决定省略各种系统进程,因为根据 Process Explorer 他们使用下一个没有 CPU 时间 - 我基于在 Windows 7 上运行的 Microsoft Process Explorer 工具)。这就是我停下来的地方。

我不知道如何获取有关各种进程读/写磁盘的频率、一次有多少数据以及它们使用 CPU 的时间的相关数据。假设我想获得一些关于 PC 上一些典型操作的统计数据——播放音乐/电影、浏览互联网、玩游戏、使用 Office、视频编辑等等……有没有办法收集这些数据?

我正在使用 RR 模拟抢占式多任务处理,时间量为 15 毫秒以切换进程​​,这就是它的外观:
-> 进程到达 CPU
-> 进程在 0-15 毫秒内完成工作,放弃 CPU 或被切断
现在,出现了两种选择:
a)进程只是在它再次获得 CPU 之前或在它获得一些用户输入之前(如果无事可做)就坐下来等待 b)从磁盘处理请求的数据,并且在所述数据之前不重新加入队列可用

我希望模型中a)和b)之间的决定基于概率来完成,例如a)为90%,b)为10%。但我不知道如何让这些百分比对于某种类型的流程至少有点现实。此外,一个进程通常可以同时访问多少数据?

有任何可用的提示、资源、实用程序吗?

4

1 回答 1

0

我想我自己找到了答案,尽管答案并不可靠。

适用于 Windows 的 Process Explorer 实用程序测量磁盘 I/O - 按容量和出现次数。因此,有一个粗略的方法可以得到答案:假设一个进程在 30 分钟内执行 3 000 次读取,同时在此期间使用 2% 的 CPU(假设是单核 CPU)。因此,该进程使用了​​ 36000 毫秒的 CPU 时间,分为约 5200 个块(这是不可靠的部分 - 该进程很可能不会使用整个时隙,所以我将只除以一半的时隙)。3000/5200 在使用 CPU 后有 57% 的机会读取数据。

我希望我没有误解 Process Explorer 中的“读取”统计信息。

于 2012-12-11T10:25:14.860 回答