期刊封面
基于模式的在线评测系统的设计与实现(2)
daemon flow chart图5.判题守护进程流程图
kernel flow chart图6.判题内核流程图
3.2.2.管道
用于进程间的通信,在指定文件夹下保存一份用户提交的代码,视情况而定调用不同编译器并利用exec族函数执行文件可以达到目的,编译时由父进程监视子进程的执行,若执行完,则在队列中执行下一个子进程。在结果对比中,判题程序每次从管道中读取一个字符,并与样式输出进行比对,直到匹配结束,一致则说明结果正确。
3.2.3.安全性相关
为了避免用户提交的恶意代码对判题机产生危害,需要从几个方面对用户代码生成程序加以限制。1)输入输出
由于禁止用户程序开启文件,需要通过freopen函数重定向输入输出流,主要指用户程序stdin(标准输入)、stdout(标准输出)、stderr(标准错误输出)三个流。
2)权限
通过setuid系统调用限制用户进程的权限(设置为持有最低权限的用户ID,本系统采用了nobody这个操作系统内置的、权限最低的用户)。在资源限制方面,进程的时间、内存、栈空间和输出文件大小都需要受到限制。这些资源限制通过setrlimit和setitimer等系统调用结合来完成。
3)运行时检测
使用 ptrace函数,主要监测以下几点:① 监测程序是否安全退出。② 监测程序是否收到了如SIGALRM、SIGVTALRM、SIGXCPU、SIGXFSZ、SIGSEGV、SIGFPE、SIGBUS、SIGABRT等异常信号。③ 监测资源是否超出了最大限度。④ 监测是否合法地进行了系统的调用。若任一项出现问题,一定是因为子进程的某些错误所致,必须即刻终止子进程。
4.系统展示
4.1.界面展示
篇幅所限,这里只给出系统部分运行截图(如图7~10)。
图7.用户登陆
display图8.题目显示
result display图9.判题结果显示
analysis图10.统计分析
4.2.功能测试
对系统功能制定了严格的测试计划,编写了完备的测试用例表对系统进行功能测试,并在测试的基础上进行修改,重新测试,最终所有功能模块均能满足期望目标。
5.结束语
本文设计并实现了一个基于LAMP架构的在线评测系统,提供了一个开放的自动判题的平台,通过网络技术,帮助学校更快更好地完成程序设计选拔和日常训练工作。
[1]赵凯,贾海峰.以国际大学生程序设计竞赛为载体推进高校计算机教育改革的探索与实践[J].黑龙江科技信息,2010(36): 275.
[2]张浩斌.我国高校计算机专业产学研相结合研究[J].经济师,2017(1): 205+207.
[3]Freeman,A.精通ASP.NET MVC 5 [M].张成彬,徐燕萍,李萍,林逸,译.北京: 人民邮电出版社,2016.
[4]Weiss,M.A.数据结构与算法分析:Java语言描述[M].第2版.北京: 机械工业出版社,2009.
[5]Spaanjaars, 4.5入门经典[M].第7版.刘楠,陈晓宇,译.北京: 清华大学出版社,2015.
[6]王飞飞,等.MySQL数据库应用从入门到精通[M].第2版.北京: 中国铁道出版社,2014.
[7]秦小波.设计模式之禅[M].北京: 机械工业出版社,2014.
[8]张素琴,吕映芝.编译原理[M].北京: 清华大学出版社,2012.
[9]李刚.轻量级Java EE企业应用实战[M].第三版.北京: 电子工业出版社,2013.
[10]吴舜歆,梁宝兰.Online Judge的设计与实现[J].福建电脑,2012,28(2): 166-167.
[11]尤枫,史晟辉,赵瑞莲.编译程序在线评测系统的实现[J].实验室研究与探索,2010,29(12): 69-72.
[12]曾台盛.基于B/S模式的程序设计在线评测系统设计[J].长江大学学报,2014,11(34): 40-43.
[13]董文永.基于 LAMP架构的在线评测系统设计[C]//智能信息技术应用学会.Third International Conference on Education Technology & Training: 第7卷.2010: 244-247.
[14]刘畅,黄晓宇.基于WEB的分布式在线程序自动评测系统的设计与实现[J].企业技术开发,2010,29(1): 23-25.
南京中医药大学教师教学发展专项课题(编号:nzyjsfz-)。
随着信息技术的迅猛发展,传统的试卷考核学生算法编程能力的方式已经淡出人们的视野,由于数据量大、主观性强、算法思路好坏不一,这种方式显得尤为耗时且容易出错,给老师带来很大的负担。一套完整而在线评测系统必将取代传统的纸质形式的测试。本文设计并实现了基于LAMP的在线评测系统,在普通Web项目的基础上嵌入判题内核,确保提交的程序能够平稳运行。
With the rapid development of information technology,the traditional method of assessing student's algorithmic programming ability has faded people's method is particularly time-consuming and error-prone because of the large amount of data,subjectivity,and mixed algorithm ideas,bringing a great burden to the complete and online judge system will replace the traditional paper form paper designs and implements an online judge system based on LAMP.It embeds the judgment kernel on the basis of common Web projects to ensure the smooth running of submitted programs.
文章来源:《水力采煤与管道运输》 网址: http://www.slcmygdys.cn/qikandaodu/2021/0728/669.html
上一篇:品管圈活动在降低住院患者留置管道固定缺陷发
下一篇:
矿业工程论文_水力采煤与管道运输