gpt4 book ai didi

operating-system - 如何区分 I/O 绑定(bind)和 CPU 绑定(bind)作业?

转载 作者:行者123 更新时间:2023-12-04 07:23:11 24 4
gpt4 key购买 nike

长期调度程序如何决定哪个作业受 I/O 限制,哪个作业受 CPU 限制?

听说使用 cpu burst 可以区分 I/O bound 和 CPU bound 的作业,但是不处理程序如何计算 CPU burst?

最佳答案

通常,CPU 调度程序会为进程/线程分配时间片,并在 a) 时间片用完或 b) 用于 I/O 的进程/线程 block 时在它们之间切换。

一个 I/O-bound 作业会经常阻塞 I/O,而一个总是利用其全部时间片的进程/线程可以被假定为 CPU-bound。因此,通过区分进程/线程是否在时间片结束时阻塞或通过调用一些 wait_for_io_completion() 函数,您可以有效地表征这些类型的进程。

请注意,在现实生活中,事情变得更加复杂,因为大多数时候应用程序既不受 I/O 限制,也不受 CPU 限制,而是一直在切换角色。这就是为什么调度是关于启发式而不是正确的解决方案的原因,因为你不能(总是)预测 future 。

关于operating-system - 如何区分 I/O 绑定(bind)和 CPU 绑定(bind)作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6166169/

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