标签: multithreading operating-system cpu scheduling scheduler
我听说如果一个线程没有消耗 OS的线程调度程序分配的整个时间片,那么余数就会浪费掉:例如:如果时间片是10ms并且线程在5ms之前结束,则剩余的5ms将丢失。
因此,如果您有许多小型快速任务总是花费的时间少于最初分配的时间片,那么浪费在整个系统范围内都很重要。
如果这是真的,我认为对于标准工作负载而言,影响可以忽略不计,并且仅在运行单一类型任务的服务器等特定用例时才会引起关注。
你确认了吗?
您有更多信息吗?
答案 0 :(得分:2)
我听说如果一个线程没有消耗整个时间片 由操作系统的线程调度程序分配剩余部分是浪费的
我认为并非如此。对于linux,正在运行的任务在退出时进入终止状态,从而释放处理器:
...但是如果操作系统的调度程序只是"醒来"在固定的时间(例如 频率为10ms / 100次/秒)
只要需要安排任务,就会调用调度程序。当为正在运行的任务分配的时间已过期(这不是必需的平均修复频率)时,也会发生在IO /事件,退出和其他情况下。