首页 理论教育 提高进程优先级:嵌入式Linux编程入门

提高进程优先级:嵌入式Linux编程入门

时间:2023-10-31 理论教育 版权反馈
【摘要】:可以通过设置进程的优先级来保证进程的优先运行。参数prio介于-20~20之间,代表进程执行优先权。此优先权默认是0,只有超级用户才允许降低此值。参数which和问候组合确定返回哪一组进程的优先级。getpriority()函数如果调用成功,则返回指定进程的优先级;如果调用出错,将返回-1,并设置errno的值。

提高进程优先级:嵌入式Linux编程入门

可以通过设置进程的优先级来保证进程的优先运行。相关的函数有setpriority()、getpriority()和nice()。setpriority()函数的原型为

setpriority()函数可用来设置进程、进程组和用户的进程执行优先权。参数which有3种数值。参数who依which值的不同有不同的定义。whichwho代表的意义如下:

●PRIO_PROCESSwho为进程识别码。

●PRIO_PGRPwho为进程的组识别码。

●PRIO_USERwho为用户识别码。

参数prio介于-20~20之间,代表进程执行优先权。参数prio的值越低,代表有较高的优先次序,执行会较频繁。此优先权默认是0,只有超级用户(root)才允许降低此值。

若执行成功,则返回0。如果有错误发生,则返回值为-1,错误原因存于errno。可能产生的错误有下面4种。

●ESRCH:参数which或who可能有错,而找不到符合的进程。

●EINVAL:参数which值错误。

●EPERM:权限不够,无法完成设置。

●EACCES:该调用可能降低进程的优先级。(www.xing528.com)

getpriority()函数的原型为

该函数返回一组进程的优先级。参数which和问候组合确定返回哪一组进程的优先级。which的可能取值以及who的意义如下。

●PRIO_PROCESS:一个特定的进程,此时参数who的取值为进程ID。

●PRIO_PGRP:一个进程组的所有进程,此时参数who的取值为进程组ID。

●PRIO_USER:一个用户拥有的所有进程,此时参数who的取值为实际用户组ID。

getpriority()函数如果调用成功,则返回指定进程的优先级;如果调用出错,将返回-1,并设置errno的值。errno的取值如下。

●ESRCH:参数which或who可能有错,而找不到符合的进程。

●EINVAL:参数which值错误。

nice()函数的原型为

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈