gpt4 book ai didi

在用户空间实现的线程库可以支持超线程吗?

转载 作者:行者123 更新时间:2023-11-30 15:30:45 24 4
gpt4 key购买 nike

假设一个多处理器架构,其操作系统可能支持也可能不支持内核级线程

纠正我错误的地方:

  • 如果线程库完全在用户空间中实现,则线程的管理是在用户空间中完成的(创建、线程表、堆栈信息等)。
  • 因此,即使一个进程可能有多个用户线程,内核也只能看到 1 个单内核线程进程。
  • 因此,内核调度程序将CPU使用时间分配给整个进程;用户空间线程库负责在其用户线程之间对 CPU 时间进行时间切片。
  • (推论 1)具有 20 个用户线程的进程 A 将获得与具有 1 个用户线程的进程 B 相同的优先级,因此进程 A 中的线程大约获得线程的 1/20 CPU 时间进程B中
  • (推论 2)同一进程中的用户线程永远不会是超线程的(即 2 个线程同时在不同的 CPU 上执行)

最佳答案

您的前三个假设是正确的。

推论 1 取决于操作系统调度程序。调度只能基于线程,而不是进程,因此不能固有地保证具有不同线程数的进程获得相同的总时间。

许多用户空间调度程序采用混合路线,并将 m 个用户空间线程调度到 n 个操作系统线程(其中 m >> n) ,从而避免了操作系统线程创建的一些开销。如果不借助操作系统机制来引导并发,就不可能神奇地实现并发。

关于在用户空间实现的线程库可以支持超线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25392222/

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