大规模程序评判系统的设计与实现  被引量:5

Design and implementation of large scale program judging system

在线阅读下载全文

作  者:黄洪波[1] 宋鸿陟[1] 彭红星[1] 司国东[1] 

机构地区:[1]华南农业大学信息学院人机交互研究中心,广东广州510642

出  处:《计算机工程与设计》2016年第3期825-831,共7页Computer Engineering and Design

基  金:国家自然科学基金项目(60875045)

摘  要:为满足大规模程序设计竞赛及计算机编程考试需求,对ACM-ICPC(association for computing machinery-international collegiate programming contest)在线评判系统进行研究,设计并实现基于ActiveMQ消息中间件和多级安全沙箱的大规模程序评判系统。基于生产者-消费者模型解决大规模考试的热伸缩和灾备需求,根据系统负载在线调整节点个数,容许若干个评判器节点意外离线。通过setUID、LXC(Linux container)、全虚拟化和操作系统用户权限机制实现多级安全沙箱,确保评判环境的安全性,兼顾运行效率,简化部署。优化磁盘IO(input/output)效率和编译器启停时间,提升评判器吞吐量。实验结果表明,评判器可随时联机和离线,具有很好的容错性,通过简单地增加评判器个数就可实现大规模的程序评判。To meet the requirement of large scale programming contests and examinations,a large scale program judging system was designed and implemented based on the ActiveMQ message middleware and multi-level safe sandbox after analyzing the existing ACM-ICPC(association for computing machinery-international collegiate programming contest)online judge systems.The needs of scaling and fault tolerance of large scale examinations were satisfied based on the producer and consumer model.The number of judging nodes was dynamically adjusted online according to the system load,and the unexpected offline of judging nodes was tolerated.By using setUID,LXC(Linux container),full virtualization and user permission mechanism of the operating system,the multi-level sandbox simplified the deployment and secured the judging environment with affordable performance costs.To increase throughput,the disk IO(input/output)and start-stop time of compilers were also optimized.Results of experiment show that the judging nodes can go online or offline at any time,which ensures good fault tolerance.As a result,large scale program judging is supported by simply adding judging nodes.

关 键 词:大规模 程序评判 在线伸缩 容错 安全沙箱 

分 类 号:TP314[自动化与计算机技术—计算机软件与理论]

 

参考文献:

正在载入数据...

 

二级参考文献:

正在载入数据...

 

耦合文献:

正在载入数据...

 

引证文献:

正在载入数据...

 

二级引证文献:

正在载入数据...

 

同被引文献:

正在载入数据...

 

相关期刊文献:

正在载入数据...

相关的主题
相关的作者对象
相关的机构对象