Я просматриваю исходный код программы GNU/Linux top
. Я пытаюсь понять, как он вычисляет использование ЦП каждым процессом, но мне не очень повезло.Как «сверху» вычисляет использование ЦП?
Исходный код указан в GitHub.
Я просматриваю исходный код программы GNU/Linux top
. Я пытаюсь понять, как он вычисляет использование ЦП каждым процессом, но мне не очень повезло.Как «сверху» вычисляет использование ЦП?
Исходный код указан в GitHub.
Как и все остальное в утилите procps, данные поступают из виртуальной файловой системы /proc
, управляемой ОС и ядром Linux. В этом нет никакого «расчета».
Я считаю, что он вычисляет процент использования различных ЦП (путем вычисления дельта из предыдущих данных '/ proc' и размера каждого поля), но я согласен с тем, что вся учетная информация о том, какой процессор и какой процесс выполняет то, что все обрабатывается в ОС. –
@Josten: Затем «сообщать» вместо того, чтобы быть грубым. На самом деле, давайте остановимся на том, чтобы не использовать высокомерный термин, как «сообщить», не так ли? Я не согласен с тем, что ответ неверен. Мы просто интерпретируем вопрос по-разному. Я полагаю, что OP ссылался на более низкий уровень абстракции, который вам нужен, чтобы он хотел знать, как 'top' получает данные об использовании ЦП для каждого процесса, беря некоторые другие данные и применяя к ним вычисления. Ответ: это не так. ОС сообщает об использовании ЦП. Да, 'top' запускает некоторую пост-обработку этих значений, чтобы представить их по-разному, но это одни и те же данные. –
Мы не здесь для «указателей» или «советов». Это Q & A, а не чат или форум. Задайте конкретный вопрос по теме. –
Возможно, вам стоит задать вопрос на интересующем вас Linux Distro или что-то в этом роде. – Dzyann