ИЗОЛИРУЮЩАЯ СРЕДА ДЛЯ ЗАПУСКА ТЕСТОВЫХ ПРИКЛАДНЫХ ПРОГРАММ
А. В. Киров
Новосибирский государственный университет
Cистемы тестирования активно используются для проведения и проверки олимпиад по информатике и программированию. Система тестирования принимает исходный код решений участников олимпиады, компилирует его, запускает. Далее полученной программе автоматически подаются входные данные (тесты), заранее подготовленные жюри олимпиады. После завершения работы этой программы (решения), выходные данные автоматически сравниваются с ответом жюри.
Условия проверки всех решений участников олимпиады должны быть идентичны; в частности, это означает, что решения не должны иметь возможности сохранять где бы то ни было свое состояние между запусками. Также накладываются ограничения на время выполнения решения, максимальный объём занимаемой памяти и доступу к другим ресурсам компьютера, например, запуску дополнительных процессов или открытию произвольных файлов. Тестирующая система (среда) должна контролировать работу решений участников, управлять параметрами среды исполнения, такими как процессорное время и память, правами доступа к директориям и системным функциям. В распространенных системах тестирования для олимпиад эта задача решена неидеально. Это может поставить участников олимпиад в неравные условия, а также подвергает риску сервера проведения олимпиад.
Целью настоящей работы является разработка системы, которая осуществляет изолированный запуск решений участников олимпиады.
Разработанная изолирующая среда представляет собой часть комплекса тестирования олимпиад NSUTS, а также может использоваться совместно с другими тестирующими системами. Изолирующая среда не допускает использования потенциально опасных функций для работы с операционной системой на уровне средств
Win 32? API. Она контролирует состояние запущенного приложения в момент исполнения и ресурсные ограничения. При попытке выйти за порог ограничений, происходит немедленное завершение работы этого приложения. Также изолирующая среда обнаруживает исключения и ошибки выполнения. После завершения приложения, изолирующая среда приходит в исходное состояние.
На данный момент изолирующая среда используется при проведении всех олимпиад НГУ по информатике и программированию.
Научные руководители – доцент Д. В. Иртегов; канд. физ.-мат. наук, доцент Т. Г. Чурина