gpt4 book ai didi

linux - 内核线程和用户线程优先级

转载 作者:太空狗 更新时间:2023-10-29 12:11:46 29 4
gpt4 key购买 nike

我们尝试评估在用户或内核中进行一些与硬件相关的任务是否更好。任务必须响应中断并执行一些将数据复制到物理(映射)内存空间的任务。

根据我的理解,相同的任务可以在用户空间或内核中完成。

唯一 Unresolved 问题是内核线程优先级是否高于用户线程优先级。

我们将使用 pthread 用于用户空间或使用 kthread 用于内核线程。

所以,我的问题是:

当两个线程就绪时,内核线程是否比用户线程具有更高的优先级?

编辑:如果 kthread_create 是使用 SCHED_FIFO 创建的并且被赋予优先级 x,并且 pthread_create 是使用 SCHED_FIFO 创建的并且优先级为 y,并且 pthread 的优先级高于 kthread,kthread 仍然会在用户线程之前进入调度程序吗?

谢谢!

最佳答案

用户线程必须始终被内核模式线程抢占,因为内核模式线程需要响应硬件事件。发生这种情况是因为操作系统设计。

内核线程的优先级高于用户线程,因为内核线程用于为应用程序提供特权服务。

除此之外,内核还使用它们来跟踪系统上正在运行的所有内容、分配给哪个进程的资源量以及调度它们。

如您所知,对于用户空间中存在的每个线程,都有一个相应的内核线程,因此如果系统范围(内核)中的进程线程具有足够高的优先级,它们将同时被调度到多个 CPU 上.意味着其他内核线程将被这个代表用户空间运行的内核线程抢占。

关于linux - 内核线程和用户线程优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41226578/

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