ulimit 中的实时选项

ulimit 中的实时选项

调用ulimit -a返回以下内容:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 1895
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1895
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

-r(实时)选项有什么作用?

答案1

TL-DR:这是调度程序可以为 shell 生成的进程分配的最高(=最紧急)优先级。

冗长的解释

限制控制可用的资源:它报告和/或设置此类限制。

-r标志报告分配给调度到由 shell 生成的进程。由于优先级从0(最紧急)99(最不紧急),这意味着由 shell 生成的进程(属于实时应用程序类的进程)实现最高调度优先级。

流程可根据其资源使用情况进行分类(I/O 密集型或者CPU 密集型,取决于它们主要使用 I/O 还是 CPU 资源),或者更确切地说,根据它们的紧急程度(非技术性表达)。 交互过程:由于我们人类反应迟钝,电脑浪费了大量时间等待我们动动手指。然而,一旦按下一个键,这些进程就需要被赋予高优先级,除非我们觉得系统已经变得没有反应;平均延迟必须在50毫秒左右,并且方差很小。

还有批处理不需要用户交互,大部分在后台运行,因此调度程序赋予其较低的优先级。典型的例子是科学计算。

最后,还有实时进程这对调度程序施加了最严格的约束。此类别包括视频和音频录制和播放、物理传感器的数据收集、机器人控制器。必须赋予这些过程最高优先级,以允许它们执行任务。

事实上,正如所报告的那样,这种优先权限制, 是0并不意味着这一定是00是硬限制,你可以设置一个柔软的限制在较小的值,你可以增加优先级,直到达到难的限制,但在这种情况下也与系统中可用的最大值相吻合。

相关内容