毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 教学论文 >> 正文

php在线判题系统设计+ACM在线评判系统+用例图 第9页

更新时间:2011-10-29:  来源:毕业论文
 系统管理员模块
只提供给系统管理员对比赛日程计划的控制,题库录入,参赛队员信息管理,比赛期间系统管理员没有任何的操作控制权限。
 用户验证
文护用户比赛过程中各个页面操作的权限控制,身份验证。
 排名统计
根据竞赛规则(如前)对用户进行排名。
 问题浏览,提交,查看运行状态
展示后台数据库,与数据库的交互
 程序运行器
程序运行器执行编译产生的可执行代码,并事先设置该程序的权限和运行限制,准备输入输出重定向,然后产生解答输出。 判断程序运行的状态。其中要保证被执行的程序不能危害系统的安全,不能访问非授权信息,不能占用超过规定量的资源。
程序运行器是实现自动评判和保证系统安全的关键模块。如何自动限制用户程序的资源占用,获取用户程序执行信息,以及防止恶意用户的破坏都是值得重视的问题。
 守护进程
管理比赛例程,监控 Judge 服务器的运行状态,帮助程序运行器完成对用户进程的监控,必要时终止用户进程。守护进程还负责与数据库耦合,取出数据库中尚未评判的程序,然后将程序的评判结果信息写回数据库。
 编译模块
用于统一多个编译器的编译调用过程,支持多种程序设计语言,负责检查用户提交的程序语法,并编译产生可执行代码。如果编译器发现源程序语法错误,需要立即指出,不再继续该题的评判工作。
 用例测试器
用例测试器对产生的解答输出对比标准测试数据进行测试,给出评判结论。
用例测试器需要注意的一个重要问题是,如何合理区分结果错误和格式错误。通常认为,只是空白字符的不同,以及字母大小写的不同就是格式错误,其它的就是结果错误。
 数据库
用户基本信息表、比赛信息表、解题信息表,题目列表,测试数据等。
5.2 判题内核设计
 
图5-2  判题内核设计原理图
5.2.1 守护进程
 特征和编写规则
1. 因为守护进程是在后台运行,所以首先调用fork()生成一个子进程,然后使父进程exit()。
2. 调用setsid()创建一个新的对话期。
3. 设定其工作目录。(chdir())
4. 将文件创建屏蔽字设置为0 。(umask(0))
5. 关闭不再需要的文件描述符。(close(int))
 判题内核的守护进程每隔一定时间对数据库进行扫描,寻找出状态为running的未编译的程序集合,调用判题程序开始判题:
 守护进程的开始:原文请+QQ324,9114辣.文^论,文'网h
void daemonize(){
 int i,fd0,fd1,fd2;
 pid_t pid;
 struct rlimit rl;
 struct sigaction sa;毕业论文http://www.751com.cn/
 umask(0);
 if (getrlimit(RLIMIT_NOFILE, &rl)<0){
  syslog(LOG_DAEMON|LOG_ERR,"can't get file limit");
  exit(1);
 }
 if ((pid = fork()) < 0){
  syslog(LOG_ERR|LOG_DAEMON, "Can't fork!");
  printf("Could not daemonize!\n");
  exit(1);
 }
 else if (pid != 0) /* parent */
  exit(0);
 setsid();

 sa.sa_handler = SIG_IGN;
 sigemptyset(&sa.sa_mask);
 sa.sa_flags = 0;
 if (sigaction(SIGHUP, &sa, NULL) < 0){
  syslog(LOG_ERR|LOG_

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] 

php在线判题系统设计+ACM在线评判系统+用例图 第9页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。