В ходе выполнения процесса он использует системные ресурсы, такие, как время процессора и память. Ядро отслеживает ресурсы, используемые каждым процессом, и составляет статистику, описывающую это использование. Управляемая ядром статистика доступна процессу во время его выполнения. Когда процесс завершается, статистика становится доступной родителю через семейство системных вызовов wait.
Ресурсы, используемые процессом, возвращаются системным вызовом getrusage. Можно запросить ресурсы, используемые текущим процессом или всеми завершившимися потомками текущего процесса. Включаются следующие сведения:
· количество пользовательского и системного времени, использованное процессом;
· использование памяти процессом;
· деятельность процесса по подкачке и дисковому вводу/выводу;
· число добровольных и принудительных переключений контекста, предпринятых процессом;
· число межпроцессных взаимодействий, осуществленных процессом.
Информация об использовании ресурсов собирается в различных местах по всему ядру. Время использования процессора собирается функцией statclock(), которая вызывается либо системными часами в hardclock(), либо, если доступны альтернативные часы, процессом прерывания альтернативных часов. Планировщик ядра вычисляет использование памяти, замеряя количество используемой активным процессом памяти в то же самое время, когда он пересчитывает приоритеты процессов. Процедура vm_fault() пересчитывает деятельность по подкачке каждый раз, когда она начинает дисковую передачу для выполнения запроса на подкачку. Статистика деятельности по вводу/выводу собирается каждый раз, когда процесс должен начать передачу для выполнения запроса ввода/вывода для файла или устройства, а также когда вычисляется общая статистика для системы. Деятельность по межпроцессному взаимодействию обновляется каждое время, когда эта информация отправляется или получается.
- 02/07/2010 05:18 - Прерывания от часов
- 26/06/2010 01:52 - Программные прерывания
- 24/06/2010 12:26 - Прерывания от устройств ввода/вывода
- 16/06/2010 13:31 - Исключения
- 15/06/2010 08:13 - Состояние процесса
- 11/06/2010 15:57 - Возвращение из системного вызова
- 01/06/2010 19:17 - Обработка результатов
- 01/06/2010 01:09 - Системные вызовы