详细的多任务监控

时间:2012-12-05 13:21:34

标签: monitoring multitasking preemption

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

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

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

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

可用的任何提示,来源,实用程序?

1 个答案:

答案 0 :(得分:0)

我想我自己找到了一个答案,虽然这是一个不可靠的答案。

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

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