长期调度程序如何确定哪个作业受I / O限制,哪个作业受CPU限制?
我听说通过使用cpu burst我们可以区分I / O绑定和CPU绑定作业,但是如何在不处理程序的情况下计算CPU突发?
答案 0 :(得分:2)
通常,CPU调度程序为进程/线程分配时间片,并在a)时间片用完或b)I / O的进程/线程块时在它们之间切换。
I / O绑定作业将经常阻塞I / O,而始终使用其全时片的进程/线程可以假定为CPU绑定。因此,通过区分进程/线程是否在时间片的末尾阻塞或通过调用一些wait_for_io_completion()函数,您可以有效地表征这些类型的进程。
请注意,在现实生活中,事情变得更加复杂,因为大多数时候应用程序既不受I / O限制,也不受CPU限制,但始终切换角色。这就是调度是关于启发式而不是关于正确解决方案的原因,因为你不能(总是)预测未来。
答案 1 :(得分:1)
CPU绑定使用更多的时间进行计算而不是I / O绑定。
答案 2 :(得分:1)
由tumaini kami david回答 答案。通常,CPU调度程序会为进程/线程分配时间片,并在以下情况之间进行切换:a)时间片用完或b)I / O的进程/线程块。 ... CPU绑定比I / O绑定花费更多的时间进行计算。
答案 3 :(得分:0)
IO绑定流程: Io绑定进程花费更多时间做io而不是计算,许多短cpu突发。 COU绑定过程: 进程花费更多时间进行计算;很少有很长的cpu突发。