Учебная лаборатория НГУ-Parallels - Написать нам Печать
LogoГлавнаяЛетняя практикаПроектыСеминарыСпецкурсыПубликацииДокументация
W Publikacii / 2009 / akirovmicrosoft
ИЗОЛИРУЮЩАЯ СРЕДА ДЛЯ ЗАПУСКА ТЕСТОВЫХ
ПРИКЛАДНЫХ ПРОГРАММ
УДК
А. В. Киров
Иртегов Д. В. доцент; Чурина Т. Г. канд. физ.-мат. наук, доцент
Новосибирский государственный университет


This article is about creation of the isolating environment for collegiate programming contests. The isolating environment is used to ensure that execution of one program (team submitted solution) can not affect in any way performance and behavior of other runs. It supervises the work of the program, establishes limits on used resources and access to the operating system services.


Автоматические проверяющие системы (системы тестирования) активно используются для проведения и проверки олимпиад по информатике и программированию. [1] Система тестирования принимает исходный код решений участников олимпиады, компилирует его и запускает. Полученной программе подаются входные данные (тесты), заранее подготовленные жюри олимпиады. После завершения работы решения, выходные данные сравниваются с ответом жюри.

Условия проверки всех решений участников олимпиады должны быть идентичны; в частности, это означает, что решения не должны иметь возможности сохранять где бы то ни было свое состояние между запусками. [2] Также накладываются ограничения на время выполнения решения, максимальный объём занимаемой памяти и доступу к другим ресурсам компьютера (например, запуску дополнительных процессов или открытию произвольных файлов). Тестирующая среда должна контролировать работу решений, управлять параметрами среды исполнения (процессорным временем, памятью, общим временем работы программы), правами доступа к директориям и системным функциям. В распространенных системах тестирования для олимпиад эта задача решена неидеально. Это может поставить участников олимпиад в неравные условия, а также подвергает риску сервера проведения олимпиад.

Целью настоящей работы является разработка системы, которая осуществляет изолированный запуск решений участников олимпиады, для платформы Windows.

Разработанная изолирующая среда представляет собой часть комплекса тестирования олимпиад NSUTS, а также может использоваться совместно с другими тестирующими системами. Изолирующая среда не допускает использования потенциально опасных функций для работы с операционной системой на уровне средств Win 32? API, а также ассемблерных вставок. Она следит за состоянием запущенного приложения в момент исполнения и ресурсными ограничениями. Если приложение попытается выйти за порог ограничений, то среда немедленно завершит его работу. Чтобы приложение не могло уйти в бесконечное ожидание при вызове блокирующих системных функций, изолирующая среда контролирует общее время его работы. Запуск приложения осуществляется с ограниченными правами доступа. Это позволяет закрыть доступ приложению к изменению параметров изолирующей среды.[3] Также она отлавливает все исключения и ошибки выполнения. После завершения приложения, изолирующая среда приходит в исходное состояние.

С сентября 2008 года изолирующая среда используется при проведении всех олимпиад НГУ по информатике и программированию.


ЛИТЕРАТУРА
1. Васильева В.Н., Парфенова В.Г. – Командный чемпионат мира по программированию ACM 2004–2005. -С: СПбГУ ИТМО, 2004 — C 185–190.
2. Чурина Т.Г., Боженкова Е.Н., Нестеренко Т.В., Методика подготовки Открытой Всесибирской олимпиады по программированию им. И.В. Поттосина., конф. «Перспективы систем информатики». – Новосибирск:НГУ 2006.
3. Система безопасного запуска программ из Lock Win? [Электронный ресурс]. Режим доступа: http://pisoft.ru/locker/artik/createproc.htm, свободный