Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取pthread_setschedparam的权限 我需要在Angstrom Linux版本3.2.18上的BeaBeBeon上运行一个实时优先级的C++程序。程序调用pthread_setschedparam以尝试提升其优先级。以root用户身份登录时,出现“不允许操作”错误。但是,如果我首先在shell提示符下提升为超级用户“su”,那么对pthread_setschedparam的调用就成功了_Linux_Real Time_Beagleboard - Fatal编程技术网

如何获取pthread_setschedparam的权限 我需要在Angstrom Linux版本3.2.18上的BeaBeBeon上运行一个实时优先级的C++程序。程序调用pthread_setschedparam以尝试提升其优先级。以root用户身份登录时,出现“不允许操作”错误。但是,如果我首先在shell提示符下提升为超级用户“su”,那么对pthread_setschedparam的调用就成功了

如何获取pthread_setschedparam的权限 我需要在Angstrom Linux版本3.2.18上的BeaBeBeon上运行一个实时优先级的C++程序。程序调用pthread_setschedparam以尝试提升其优先级。以root用户身份登录时,出现“不允许操作”错误。但是,如果我首先在shell提示符下提升为超级用户“su”,那么对pthread_setschedparam的调用就成功了,linux,real-time,beagleboard,Linux,Real Time,Beagleboard,如果不先运行“su”,如何才能获得相同的结果?我需要运行这个程序作为一个服务,在启动时自动启动 在forpthread_setschedparam(我想这就是你的意思)中,它在注释下声明: 有关更改线程的调度策略和优先级所需的权限和效果的说明,以及每个调度策略中优先级的允许范围的详细信息,请参阅sched_setscheduler(2) 在中,在特权和资源限制下详细说明: 在2.6.12之前的Linux内核中,只有特权(CAP_SYS_NICE)进程才能设置非零静态优先级(即设置实时调度策略)。

如果不先运行“su”,如何才能获得相同的结果?我需要运行这个程序作为一个服务,在启动时自动启动

在for
pthread_setschedparam
(我想这就是你的意思)中,它在注释下声明:

有关更改线程的调度策略和优先级所需的权限和效果的说明,以及每个调度策略中优先级的允许范围的详细信息,请参阅sched_setscheduler(2)

在中,在特权和资源限制下详细说明:

在2.6.12之前的Linux内核中,只有特权(CAP_SYS_NICE)进程才能设置非零静态优先级(即设置实时调度策略)。非特权进程可以进行的唯一更改是设置SCHED_OTHER策略,并且只有当SCHED_setscheduler()调用方的有效用户ID与正在更改策略的目标进程(即pid指定的进程)的真实或有效用户ID匹配时,才能进行此更改

自Linux2.6.12以来,RLIMIT_RTPRIO资源限制为SCHED_RR和SCHED_FIFO策略定义了非特权进程的静态优先级上限。更改调度策略和优先级的规则如下:

  • 如果非特权进程具有非零RLIMIT_RTPRIO软限制,则它可以更改其调度策略和优先级,但必须遵守以下限制,即优先级不能设置为高于其当前优先级和RLIMIT_RTPRIO软限制的最大值

  • 如果RLIMIT_RTPRIO软限制为0,则唯一允许的更改是降低优先级或切换到非实时策略

  • 根据相同的规则,另一个非特权进程也可以进行这些更改,只要进行更改的进程的有效用户ID与目标进程的真实或有效用户ID匹配

  • 特殊规则适用于SCHED_IDLE:在此策略下运行的非特权进程不能更改其策略,无论其RLIMIT_RTPRIO资源限制的值如何

特权(CAP_SYS_NICE)进程忽略RLIMIT_RTPRIO限制;与旧内核一样,它们可以对调度策略和优先级进行任意更改。有关Rlimitrtprio的更多信息,请参见getrlimit(2)

在for
pthread_setschedparam
中(我想这就是您的意思),它在注释下声明:

有关更改线程的调度策略和优先级所需的权限和效果的说明,以及每个调度策略中优先级的允许范围的详细信息,请参阅sched_setscheduler(2)

在中,在特权和资源限制下详细说明:

在2.6.12之前的Linux内核中,只有特权(CAP_SYS_NICE)进程才能设置非零静态优先级(即设置实时调度策略)。非特权进程可以进行的唯一更改是设置SCHED_OTHER策略,并且只有当SCHED_setscheduler()调用方的有效用户ID与正在更改策略的目标进程(即pid指定的进程)的真实或有效用户ID匹配时,才能进行此更改

自Linux2.6.12以来,RLIMIT_RTPRIO资源限制为SCHED_RR和SCHED_FIFO策略定义了非特权进程的静态优先级上限。更改调度策略和优先级的规则如下:

  • 如果非特权进程具有非零RLIMIT_RTPRIO软限制,则它可以更改其调度策略和优先级,但必须遵守以下限制,即优先级不能设置为高于其当前优先级和RLIMIT_RTPRIO软限制的最大值

  • 如果RLIMIT_RTPRIO软限制为0,则唯一允许的更改是降低优先级或切换到非实时策略

  • 根据相同的规则,另一个非特权进程也可以进行这些更改,只要进行更改的进程的有效用户ID与目标进程的真实或有效用户ID匹配

  • 特殊规则适用于SCHED_IDLE:在此策略下运行的非特权进程不能更改其策略,无论其RLIMIT_RTPRIO资源限制的值如何

特权(CAP_SYS_NICE)进程忽略RLIMIT_RTPRIO限制;与旧内核一样,它们可以对调度策略和优先级进行任意更改。有关Rlimitrtprio的更多信息,请参见getrlimit(2)