全新OIEROJv2.0评测算法

OIEROJv2.0评测\texttt{OIEROJv2.0}评测更新

1.前言

由于Hydro提供的沙箱评测机制无法满足OIER试炼场所提供的超大常数、超长时间,时而出现TLE等问题。

由于诸如此类的问题频繁发生,更高效、安全的评测机制的开发被提上日程。

2.新的调度和新的架构

当用户提交评测任务时,任务首先由网页端通过内部通信,发送到评测后端的处理程序上。在简单检查评测任务的合法性后,便被放入评测队列等待程序编译。

完成编译后,程序的二进制文件被读取放入一个在所有评测机间共享的存储中。所有输入、输出文件,均放置在虚拟内存盘中,因此不存在磁盘速度带来的输入输出速度瓶颈。

同时,评测任务被按照该题的所有测试点打散,安排进入队列,有空余线程的评测机便读取任务,并行进行评测。在评测结束后,评测机将结果发送回网页端,由网页端进行下一步处理。

3.新的沙箱机制

我们在Hydro提供的沙箱技术进行创新。致使沙箱技术不再限制系统调用,对用户程序进行全方位的限制。

程序运行时可申请的内存、磁盘空间等资源受到严格的限制,如有超出则会自动被系统停止运行。

4.新的评测数据管理

所有题目的评测数据被放置在一个统一的中央离线仓库中,评测机通过内网根据需要自行获取。

同时,评测机维护每道题目的评测数据被最后一次使用的时间,当磁盘空间不足时,自动从本地删除最近没有被使用过的缓存评测数据。

当评测机需要使用某个测试点时,系统将对应的测试点从磁盘复制到虚拟内存盘中,同时将输入绑定到用户评测程序的 stdin 上。因此,在评测系统中你是找不到输入文件的————因为它存在于外部的文件系统。

5.总结

这估计也是2025年OIER试炼场唯一一次大更新了(虽然才1月1)。

我们 [OI杯]2025豪华全家桶 见!


  1. 通过检查预处理之后的代码,让隐藏在宏定义中的危险函数调用将无所遁形。 ↩︎

  2. 由64GiBram(8*8GiB)组成的高速虚拟盘。 ↩︎

  3. 防止用户越权读取测试点信息。 ↩︎


__EOF__

  • 本文作者: chan
  • 本文链接: https://www.cnblogs.com/kkkatan/p/18648740/oierojv2
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 除特殊说明外,转载请注明出处~[知识共享署名-相同方式共享 4.0 国际许可协议]
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • posted @   kkkatan  阅读(32)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · [翻译] 为什么 Tracebit 用 C# 开发
    · 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
    · Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
    · DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
    · 深度对比:PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
    点击右上角即可分享
    微信分享提示