c-如何在类UNIX系统中为进程设置优先级


        int pri = getpriority(PRIO_PROCESS, 2134);
        printf("The original priority of 2134 is :%d", pri);
       //cpu_usage of the process in top is 80%, pri is 39 and NICE value is 19
        setpriority(PRIO_PROCESS, 20);
        int p = getpriority(PRIO_PROCESS, 2134);
        printf("priority is set to :%d", p);

在这里,我试图设置一个进程的优先级(pid:2134(。在top命令中,它显示优先级为39,nice值为19。所以这个过程的优先级很低。但是该进程的CPU使用率在70以上。如果我将优先级设置为最小值,则应该减少该进程的CPU使用量。我很困惑是把优先级设置在40..1还是-19.20的范围内。谁能查一下这个吗。任何帮助都将不胜感激。

进程优先级与其分配的cpu使用百分比不成比例。

相反,它只是调度器的一个标记,用于确定要运行的两个进程中的哪一个现在可以运行。

因此,一个高优先级进程与高优先级进程决一雌雄,几乎不会受到关注,而即使是一个低优先级进程在一个空闲的系统上也可以一直运行。

我在C中发现了这篇更改当前进程优先级的帖子,展示了如何使用函数setpriority设置优先级。

您必须使用具有3个参数的setpriority

但你必须是根。

设定优先级的人:http://linux.die.net/man/2/setpriority

最新更新