1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/power-PowerJudge

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

PowerJudge

Judge Core for PowerOJ на платформе Linux.

Основан на ядрах UESTC и HUST judge core.

##Функции##

  • Автоматическое получение файлов данных из каталога данных и сортировка по имени.
  • Установка ограничений процесса для компилятора, исполнителя и spj.
  • Запуск в качестве службы upstart.
  • Компиляция/выполнение с пользовательским судьёй для обеспечения безопасности.
  • Быстрый судья для Python, который не использует chroot или копирует среду выполнения.
  • Поддержка 32-битной и 64-битной версий Linux:
    • Ubuntu 14.04 Server 32bit
    • Ubuntu 14.04 Server 64bit
    • Linux Mint 14 32bit
    • Linux Mint 14 64bit
    • Debian 7.5 32bit
    • Debian 7.1 64bit.
    • Redhat 5.5 не поддерживается
    • CentOS 4.8 не поддерживается.

##Загрузка## git clone https://github.com/power721/PowerJudge.git

##Зависимости## sudo apt-get update && sudo apt-get install -y fpc openjdk-8-jdk python2.7 gcc g++ libbsd-dev libcurl4-openssl-dev.

sudo yum install glibc-devel glibc-static gcc gcc-c++ java-1.7.0-openjdk java-1.7.0-openjdk-devel gpm libbsd-dev
sudo rpm -ivh fpc-2.6.0-5.1.i686.rpm.

Не поддерживается Eclipse Java Compiler или gcj-jdk.

##Сборка## make

или make -e FAST_JUDGE=true make -e LOG_LEVEL=LOG_NOTICE.

##Тестирование## make test.

##Установка## sudo ./install.sh.

##Использование клиентом## /usr/local/bin/powerjudge -s 10000 -p 1000 -t 1000 -m 65536 -l 2 -D ./data -w ./temp.

  • -s — идентификатор решения;
  • -p — идентификатор проблемы;
  • -t — ограничение по времени (необязательно, по умолчанию 1000 мс);
  • -m — ограничение памяти (необязательно, по умолчанию 65536 КБ);
  • -l — идентификатор языка: 1 — C; 2 — CPP; 3 — Pascal; 4 — Java; 5 — Python;
  • -D — корневой каталог данных, например, ~/oj/data/;
  • -w — рабочий корневой каталог, например, ~/oj/temp/.

Краткий процесс:

  1. Инициализация.
  2. Анализ параметров:
    • проверка полноты параметров;
    • получение каталогов данных и рабочих каталогов;
    • проверка исходного кода файла;
    • установка временных и пространственных ограничений программы.
  3. Проверка действительного пользователя.
  4. Изменение текущего каталога.
  5. Установка часов судьи.
  6. Регистрация обработчика сигнала тайм-аута.
  7. Компиляция:
    • настройка ограничений компиляции;
    • перенаправление ввода-вывода программы компиляции;
    • вызов внешнего компилятора;
    • обработка состояния возврата внешнего компилятора и сигналов.
  8. Запуск оценки:
    • сканирование каталога данных для получения файлов данных;
    • оценка каждой группы данных:
      • перенаправление ввода и вывода;
      • установка безопасных ограничений;
      • настройка ограничений ресурсов;
      • установка таймера тайм-аута;
      • мониторинг системных вызовов;
      • запуск пользовательской программы;
      • инициализация таблицы системных вызовов главного процесса;
      • проверка состояния выполнения дочернего процесса главным процессом:
        • проверка сигналов;
        • проверка памяти;
        • проверка системных вызовов.
      • проверка результатов нормального завершения дочернего процесса: a) запуск программы spj или b) сравнение файлов вывода.
      • обновление промежуточного состояния оценки.
  9. Очистка рабочего каталога.
  10. Вывод результатов оценки.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Джадж кор фор пауэр оу джей на линукс платформе. Расширить Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/power-PowerJudge.git
git@gitlife.ru:oschina-mirror/power-PowerJudge.git
oschina-mirror
power-PowerJudge
power-PowerJudge
master