ulimit 中的实时选项

Ara*_*joe 5 linux real-time 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
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*iae 1

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

罗嗦解释

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

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

进程可以根据其资源使用情况(I/O 密集型CPU 密集型,取决于它们主要使用 I/O 还是 CPU 资源)进行分类,或者更相关的是,根据其紧急程度进行分类(非技术性表达)。有 像shell这样的交互过程:由于我们人类又慢又笨,所以电脑浪费了很多时间等待我们甚至举起一根手指。然而,一旦按下某个键,这些进程就需要被赋予高优先级,除非我们感觉系统变得无响应;平均延迟必须为 50 毫秒左右,并且方差很小。

还有批处理进程,它们不需要用户交互,主要在后台运行,因此调度程序的优先级较低。一个典型的例子是科学计算。

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

ulimit报告的优先级为0的事实并不意味着这一定是0 0硬限制,您可以将限制设置为较小的值,并且可以将优先级增加到限制,但在这种情况下也与系统中可用的最大值一致。