我正在编写一个非常小的守护进程,即使系统处于严重压力下也必须保持响应.我正在研究SCHED_FIFO和SCHED_RR之间在调度方面的差异,以及尝试确定合理的优先级.
哪个调度程序适用于小型但关键的监控守护程序,哪个优先级相当安全?在试图理解两者之间的差异时,我仍然有点模糊.
我的程序在3k以下分配(并使用mlockall()),它向xenbus写入大约600个字节然后休眠,但是我不可能告诉实际写入数据需要多少时间(以ms为单位).编写取决于配置文件.
提前感谢任何建议/解释.
臭名昭着的pchdtvr
程序捕获数字电视信号,用于SCHED_FIFO
确保无论如何将电视数据包写入磁盘.它可以在旧计算机上播放Doom时一次捕获4个节目.
该程序臭名昭着,因为它是根据GPL发布的,作者试图追溯撤销GPL.这一举动引发了一场小小的风暴.无论如何,您可以在http://frequal.com/pmn/pchdtvr.html找到最新版本.
除非在执行队列中显示另一个具有更高优先级的进程,否则不能抢占SCHED_FIFO(上下文切换到另一个进程).
SCHED_RR可以被时间量子(给予执行的进程的延迟)抢占.
它们都是基于Linux的调度程序的"实时"优先级.