OnlineJudge判题平台 ——后台流程

本文详细介绍了OnlineJudge判题平台的后台流程,包括judged服务进程和judge_client进程的职责。judged进程负责轮询数据库并启动judge_client进行实际判题,而judge_client则负责准备运行环境、编译、运行目标程序并监控系统调用,确保安全性与效率。整个过程涉及数据库交互、资源限制、编译错误检测、输入输出处理、程序运行监控等环节。
摘要由CSDN通过智能技术生成

判题分两部分

1.judged为服务进程,ddaemon。负责轮询数据库,提取判题队发现新任务时产生judge_client进程

2.judge_client进程为实际判题程序,负责准备运行环境、数据,运行并监控目标程序的系统调用,采集运行指标,判断运行结果。

Judged流程


初始化:

1.创建子进程pid_judged,并设置为会话的领头进程(umask(0),close(0~2)

2.变当前工作目录为“/home/judge

3.pid_judged写入文件“/home/judge/etc/judge.pid,并且加入写锁(用来检查该服务进程是否已经在执行)

4.设置SIGQUIT,SIGKILL,SIGTERM来触发call_for_exit函数结束服务进程的执行

轮询:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值