Ядро Linux в комментариях

       

Update_times


В основном, эта функция обновляет статистические данные: она вычисляет среднюю загрузку системы, обновляет глобальную переменную, которая отслеживает текущее время, и обновляет вычисленный ядром объем времени центрального процессора, который потребуется текущему процессу.

Получает количество тиков таймера, произошедших с момента последнего выполнения нижней половины, и сбрасывает счетчик.

Если данное количество не равно 0 (нормальная ситуация), update_times определяет, сколько из этих тиков произошло в системном режиме.

Обращение к calc_load (строка ) для обновления приближения показателя загрузки системы, необходимого ядру.

Обращение к update_wall_time (строка ) для обновления xtime, которая отслеживает граничное время.

Обращение к update_process_times (строка ), которая вместе со вспомогательной функцией update_one_process (строка ) обеспечивает обновление общего времени выполнения текущего процесса. Подобного рода статистика выдается такими общеиспользуемыми программами, как time, top и ps. Несложно заметить, что выдаваемая программами статистика не настоль точна, как этого хотелось бы: если процесс запланирован как такой, который никогда не выполняется в течение прерывания от таймера, он может потреблять циклы ЦП безо всякого отражения в статистических данных. Однако, очень трудно понять, почему и как таким «злостным» процессам удается это делать; для процессов «с хорошими намерениями» статистика естественным образом усредняется.



Содержание раздела