То, что вы спрашиваете, на самом деле совсем не так просто.
Как сказал CajunLuke, вы захотите воспользоваться преимуществами системы POSIX.
Однако проблема в том,заключается в том, что вам нужно будет взять среднее использование ЦП за некоторое время и усреднить его по нескольким выборкам, потенциально отбрасывая выборки, выходящие за пределы некоторого стандартного отклонения.
Проблема заключается в том, что образец использования ЦПобязательно является средним значением за определенный период времени, и, если этот период времени действительно короткий, то вы иногда будете видеть выборки, которые являются дико низкими (или высокими).
Схватите источник на top
команда из репозиториев с открытым исходным кодом (я думаю, что top
будет в релизах Darwin OSS) и посмотрите на это.