gpt4 book ai didi

windows - 操作系统线程调度和cpu使用关系

转载 作者:行者123 更新时间:2023-12-03 13:16:59 25 4
gpt4 key购买 nike

据我所知,对于线程调度,Linux实现了公平的调度程序,而Windows实现了循环调度(RR)调度程序:每个线程都有一个执行时间片(如果我做错了,请纠正我)。

我想知道,CPU使用率与线程调度有关吗?

例如:有两个线程同时执行,并且系统的时间片为15ms。 CPU只有1个核心。

线程A需要10毫秒才能完成工作,然后休眠5毫秒,然后循环运行。

线程B需要5毫秒才能完成工作,然后在循环中休眠10毫秒。

  • CPU使用率是否为100%?
  • 线程是如何安排的?线程A是否会用尽所有时间,然后再进行调度?

  • 另一种方案:
    如果我正在运行线程A,则该线程会被某些条件(例如网络)阻止。 100%的CPU会影响此线程的唤醒时间吗?例如,线程B可能正在此时间窗口中运行,操作系统是否会抢占线程A?

    最佳答案

    So the CPU usage will be 100%?



    理想情况下为,答案是肯定的,并且理想情况下,我的意思是,您不考虑执行 context switch所浪费的时间。实际上,通过始终保持忙碌状态来提高CPU利用率,但是在进行上下文切换时(从一个进程或线程切换到另一个进程或线程所花费的时间)仍然浪费了一些时间。

    但是我要说的是,在您的情况下,两个线程的时间约束已完全对齐,以具有最大的CPU利用率。

    And how is the thread scheduled? Will thread A use up all its time and then schedule out?



    好吧,实际上这取决于大多数现代操作系统的实现,如果就绪队列中还有另一个进程,则当前进程将在使用CPU完成后立即进行调度,而不管它是否还有时间剩余。是的,如果您正在考虑采用现代OS设计,那么线程A会在10毫秒后立即调度。

    关于windows - 操作系统线程调度和cpu使用关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49531853/

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