gpt4 book ai didi

linux - 为什么 Linux 允许线程设置调度策略和优先级?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:37 27 4
gpt4 key购买 nike

我以前一直认为线程的调度策略和优先级是由Linux内核决定的,我们在编写运行在Linux上的应用程序时不能通过代码更改它们,直到我看到像sched_setscheduler。我想知道为什么Linux会为应用程序提供这种接口(interface),如果开发人员希望他的应用程序有更好的用户体验,以便他通过像这样的接口(interface)让他的应用程序中运行的线程具有更高的调度优先级怎么办>sched_setscheduler 这将使在同一操作系统上运行的其他应用程序处于饥饿状态。

最佳答案

反过来想一想:如果操作系统没有为您提供方法,您将如何设置调度策略和优先级?任何供用户/管理员执行这些操作的工具都需要这样的 API。

当然,许多操作都需要权限,例如设置实时调度策略和更高的优先级。与往常一样,root (uid 0) 可以做任何事情,但是通过 capabilities 可以进行更细粒度的控制(具有 CAP_SYS_NICE 的进程允许执行任何操作)和资源限制,以允许访问达到给定的优先级。详情请阅读sched(7) ,“权限和资源限制”部分。

如果您尝试更改您没有权限的任何内容,sched_setscheduler() 将只返回 -1 end set errnoEPERM

关于linux - 为什么 Linux 允许线程设置调度策略和优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46036805/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com