- Количество потоков создаваемое программой;
- Список файлов и сетевых соединений с которыми работает программа
- Карту памяти процесса;
- Содержимое передаваемых по сети данных;
- Построить графики:
- Потребления программой cpu;
- Нагрузки генерируемой программой на подсистему ввода-вывода;
- Нагрузки генерируемой программой на сетевую подсистему.
- Смены состояния исполнения потоков;
- Описание шагов выполненных для сбора информации (включая исходные тексты всех использованных скриптов и вспомогательных программ);
- Полученные графики, результаты выполнения скриптов и вспомогательных программ;
- Выводы по работе.
- Структура процесса;
- Виртуальная память;
- Системные утилиты сбора статистики ядра;
- Основы ввода-вывода (блочный и последовательный ввод-вывод);
- Файловая система procfs;
- Использование утилиты strace, ltrace, bpftrace;
- Профилирование и построение flamegraph'а и stap;
Интерфейс передачи между программой пользователя и ядром и целевая структура задается преподавателем. Интерфейс передачи может быть один из следующих:
- syscall - интерфейс системных вызовов.
- ioctl - передача параметров через управляющий вызов к файлу/устройству.
- procfs - файловая система /proc, передача параметров через запись в файл.
- debugfs - отладочная файловая система /sys/kernel/debug, передача параметров через запись в файл.
- Именем структуры в заголовочных файлах Linux
- Файлом в каталоге /proc. В этом случае необходимо определить целевую структуру по пути файла в /proc и выводимым данным.