Автоматизированная система для проведения практических занятий по программированию - page 4

С.Ю. Скоробогатов
4
ся описание ошибок, которое добавляется в базу в качестве коммен-
тария к решению.
Запуск решения на каждом тесте выполняется в защищенном
изолированном окружении. Запущенное решение не имеет доступа
ни к сетевым интерфейсам, ни к файловой системе сервера. Более то-
го, сервер тестирования контролирует время работы и количество
использованной памяти для процесса, в котором запущено решение,
а также для всех дочерних процессов, которые может породить ре-
шение. Сервер тестирования знает предельные значения времени ра-
боты и объема памяти для каждой задачи. В случае превышения этих
предельных значений он прерывает выполнение решения и всех его
дочерних процессов и посылает web-серверу сообщение с указанием
номера теста, на котором произошло превышение.
Решение, написанное на небезопасном с точки зрения работы с
памятью языке, например C, C++ и Pascal, дополнительно запускает-
ся в отладчике valgrind. Это позволяет выявить такие трудноулови-
мые ошибки, как выход за границы массива, неправильная работа с
указателями, утечки памяти, использование неинициализированных
переменных. При обнаружении этих ошибок решение отклоняется
сервером тестирования, даже если оно выдает правильный ответ.
Содержимое стандартного потока вывода, получаемое в резуль-
тате проверки решения на очередном тесте, сравнивается сервером
тестирования с правильным ответом. По умолчанию сравнение осу-
ществляется с точностью до пробельных символов. Однако автор за-
дачи может оформить сколь угодно изощренный способ сравнения в
виде отдельной программы, и тогда сервер тестирования будет деле-
гировать сравнение этой программе.
Для упрощения развертывания сервера тестирования он оформ-
лен в виде виртуальной машины в формате VirtualBox. На этой вир-
туальной машине установлена операционная система Linux и создано
защищенное окружение, содержащее все библиотеки, которые могут
потребоваться для выполнения решений. Тем самым сервер тестиро-
вания можно за несколько минут запустить на любом компьютере
под управлением любой операционной системы, если для них суще-
ствует версия VirtualBox.
Сервер обнаружения некорректных заимствований
выполняет
интеграцию системы T-BMSTU с внешним программным обеспече-
нием, которое ведет поиск некорректных заимствований. Сервер ра-
ботает на том же компьютере, что и web-сервер, и реализован в виде
скрипта на языке Ruby. Он запускается по расписанию и осуществля-
ет выемку решений из базы данных. Если с момента последнего за-
пуска сервера в базе данных появились новые решения некоторой за-
дачи, то все решения этой задачи передаются на вход установленным
1,2,3 5,6,7,8,9,10
Powered by FlippingBook