ISSN 2305-5626. Вестник МГТУ им. Н.Э. Баумана: электронное издание. 2013
12
воспользоваться планировщиком задач ядра ОС. Действия, которые
следует выполнить созданному методу в контексте планировщика,
показаны на рис. 10.
Программная реализация метода.
Программный комплекс, реа-
лизующий разработанный метод, состоит из модулей (рис. 11): об-
новления состояний сокетов; отслеживания состояния процесса; ана-
лиза; пользовательского интерфейса; связи пользовательского ин-
терфейса с модулем анализа.
Первые два модуля отслеживают изменения системных объектов и
предоставляют информацию о них модулю анализа. Задачей модуля
анализа является выявление ошибок мультиплексирования. Первые
три модуля работают с объектами ядра Linux и поэтому должны нахо-
диться в пространстве ядра ОС. Для обмена данными с пользователь-
ским приложением будет использоваться файл в файловой системе
/proc. Такие файлы служат для того, чтобы сделать сведения об опре-
деленных системных компонентах доступными пользователю [4].
Рис. 11. Структура программной реализации
Остановимся подробнее на реализации части комплекса, работа-
ющего в режиме ядра ОС. Метод использует ядро Linux версии 3.2.0.
Процесс и потоки в ядре Linux описываются дескриптором за-
дачи — экземпляром структуры
task_struct
, определенной в заго-
ловочном файле
sched.h
[4]. На рис. 12 показано расширение этой
структуры необходимыми для работы метода полями. Каждый флаг,
отслеживающий состояние процесса, представлен одним битом в
поле
stest_flags
. Для работы с ним используются атомарные би-
товые операции, определенные в заголовочном файле
bitops.h
.
Файлы, открытые процессом, представляются объектом структу-
ры
file
, которая определена в заголовочном файле
fs.h
. Сокет явля-