Доклады

Построение формальной грамматики системных вызовов

21 октября, 10:30
III зал

Рассмотрена задача восстановления Линукс-процесса цепочками системных вызовов из пространства пользователя. Проведен обзор профилирующих и эвристических решений, комбинаторная оценка числа генерируемых при прямом восстановлении различных деревьев процессов. Предложено решение на основе разбора строчной записи дерева в специальной нотации, для которой построена формальная грамматика с выводящими правилами для fork, setsid, setpgid,exit. Построен прототип, проведены экспериментальные сравнения с двумя profile-based решениями, сделаны выводы и отмечены пути дальнейшего развития.

Доклад рассчитан на специалистов, работающих на стыке дискретной математики, операционных систем, технологий виртуализации, и будет интересен как архитекторам и разработчикам, использующим в своих проектах checkpoint-restore для процессов, ВМ, контейнеров, так и прикладным математикам, работающим с математическими моделями в информатике. Слушатели получат информацию о том, как относительно быстро восстанавливать состояние дерева процессов, не прибегая к прямой генерации с огромным числом вариантов, профилировке и зоопарку эвристик; узнают множество информации, специфичной для checkpoint-restore задач, например, как компактно записать дерево процессов в строку и как механизм стекового кадра помог эффективнее разбирать строчную запись дерева процессов, чтобы восстановить последовательности системных вызовов, какие случаи конфигурации дерева из N процессов наиболее тривиальны и трудозатратны, где тот предел, после которого даже решения на базе ptrace кажутся не такими тяжеловесными.

Знание подходов к восстановлению и анализу последовательностей системных вызовов – важный шаг к эффективному решению различных задач виртуализации, живой миграции и поиска уязвимостей ПО.

Спонсоры и партнёры

Организаторы

Software Russiai-Help