Linux中的实时流程调度

拉梅什

我一直在学习一些调度概念。目前,到目前为止,我的理解如下。

  • 有实时过程和非实时过程。
  • 非实时进程nice的优先级值可以-20+20的范围内正值越高,表示该进程的优先级越低。
  • 实时处理将列出一个niceness值-,如此答案在此处所述这主要是因为实时过程比非实时过程具有更高的优先级,并且niceness值不适用于它们。
  • 现在,我可以chrt用来查看流程的实时属性。

对于实时过程,chrt给出的输出为

chrt -p 5
pid 5's current scheduling policy: SCHED_FIFO
pid 5's current scheduling priority: 99

正如我们对于流程5所看到的,优先级是最高的99。另外,调度策略是SCHED_FIFO

现在,对于非实时过程,chrt给出的输出为

chrt -p 22383
pid 22383's current scheduling policy: SCHED_OTHER
pid 22383's current scheduling priority: 0

如我们对于进程22383所看到的,优先级为0,调度策略为SCHED_OTHER

问题

  1. 我可以将任何过程都设为实时过程吗?
  2. 除了SCHED_OTHER非实时过程外,我是否可以设置其他调度算法
  3. 这里,我还看到我可以修改正在运行的进程的属性,因为,

    chrt -p prio pid
    

    另外,我看到chrt -m了调度算法列表。该命令给我的输出为

    SCHED_OTHER min/max priority    : 0/0
    SCHED_FIFO min/max priority     : 1/99
    SCHED_RR min/max priority       : 1/99
    SCHED_BATCH min/max priority    : 0/0
    SCHED_IDLE min/max priority     : 0/0
    

    现在,如上所述,如果我设置chrt -p 55 22383将使用哪种算法?

拉梅什

问题1

用户也可以将实时优先级用于流程。可以从/etc/security/limits.conf文件中设置此配置我在该文件中看到以下内容。

# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>

如果我们检查项目部分,我们将看到以下条目,该条目可为用户设置实时优先级。

#        - rtprio - max realtime priority

问题2和问题3

要将调度策略设置为SCHED_FIFO,请输入:

chrt -f -p [1..99] {pid}

要将调度策略设置为SCHED_RR,请输入:

chrt -r -p [1..99] {pid}

因此,要回答问题3,我们应该使用chrt -m命令验证可用的调度算法和优先级,然后使用任何适合我们需求的调度算法。要设置不同的优先级,我们可以使用上面的命令。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Linux中的实时流程调度

来自分类Dev

软实时Linux调度

来自分类Dev

在实时Linux中调度任务时发生运行时错误?

来自分类Dev

实时操作系统中的调度程序

来自分类Dev

在Linux中调度任务

来自分类Dev

实时启动流程

来自分类Dev

Linux中的进程调度程序是什么?

来自分类Dev

流程调度信息提取

来自分类Dev

Linux内核中的TCP调用流程

来自分类Dev

根据消息批大小深度控制BizTalk中的业务流程节流和调度

来自分类常见问题

子流程命令的实时输出

来自分类Dev

在Python中实时更新可执行子流程控制台输出

来自分类Dev

抑制Linux内核调度程序中的进程(不终止)

来自分类Dev

函数参数在Pthread调度API的Linux编程中的含义

来自分类Dev

linux内核调度代码中ttwu的全形式

来自分类Dev

Linux 5.9 内核调度

来自分类Dev

Linux fq_codel中的单独流程是什么?

来自分类Dev

在Windows和Linux中衡量流程的运行时间

来自分类Dev

如何修改流程中的指令?Linux和ARMv7

来自分类Dev

澄清实时工作流向GPU的流程

来自分类Dev

从子流程实时打印输出

来自分类Dev

实时发出拦截子流程输出的信息

来自分类Dev

实时发出拦截子流程输出的信息

来自分类Dev

Linux内核的“过期”队列中可以存在实时进程吗?

来自分类Dev

如何在Linux中运行实时应用程序?

来自分类Dev

无法在UEFI中启动实时Linux多启动USB

来自分类Dev

如何在Linux终端中获得实时的完成/建议?

来自分类Dev

如何在不丢失流程或冻结应用程序的情况下在JavaFX中实时更新textarea(控制台)

来自分类Dev

Linux路由流程