ROOP:ベアメタルプログラム向けオンラインジャッジプラットフォーム

説明

本論文では,ベアメタルで動作するプログラムを対象にしたオンラインジャッジプラットフォーム ROOP(Ring-0(O) Online judge Platform)を提案する.ROOP は Web インターフェースを備え,それを経由して問題に解答するとすぐに正誤の判定を試み,結果を Web で通知する.これにより大学の OS の講義に導入することで課題の採点補助や学生が試行錯誤を補助するといった活用や,OS 分野を対象としたプログラミングコンテストの開催が可能になった.実際に提案システムは大学の講義演習で使用され,講義後のアンケートでは 19 名中 17 名が使いやすかったとの回答を得た.ROOP は提出されたコードをコンパイル及び実行する際に Docker や QEMU を使用ポータビリティとセキュリティを向上させている.これらは大量にメモリを消費するため,システムの安定動作のためにはメモリリソースの管理が必要となる課題が存在するが,提案システムにおいて同時に起動する Docker コンテナや QEMU のインスタンスの数を制御することでそれを解決した.また,Docker や QEMU の起動にはオーバヘッドが生じるため,コードが提出された後にそのような処理を行うと,ジャッジ完了までの待ち時間が長くなってしまうという欠点がある.そこで,ROOP は全ての解答に対して必要な処理を抽出し,予めコードが提出されるまでに終わらせることで,正誤判定の待ち時間を最大 28% 短縮した.

収録刊行物

詳細情報 詳細情報について

問題の指摘

ページトップへ