综合问题的一个 疑问谢谢老师!

来源:2-7 计算机的层次与编程语言

苦瓜苦也

2019-09-06

IOWAIT指的是CPU等待IO完成的CPU时间占比,因为外围设备IO效率低,所以经常需要CPU等待IO,因而IOWAIT指标是非常重要的,一个系统如果IO过多,说明还有优化空间。

CPU为什么一定要等待IO?如果不等,可不可以运行其他的程序?有什后果

是可以运行的,只是操作系统没有把等待的进程调度出去,而且让其空等待,取决于调度策略,所以才有IOWAIT相关指标。

这些等待的进程是什么?什么是调度出去?不理解。

大学上操作系统就懵懵懂懂 好像懂又不懂 谢谢老师?

写回答

1回答

咚咚呛

2019-09-06

  1. CPU为什么一定等待IO?这里可以等,可以不等,取决于CPU的调度,如果CPU觉得很快就完成了,不用等待太久,相比切换进程,等待的开销更小,这个时候就可能选择等待;如果不等待,是可以把等待的线程切换出去,调度进新的运行线程的。

  2. 操作系统会同时运行多个进程,有些进程正在运行、有些进程正在等待、有些进程正在准备,在操作系统内部的数据结构里面,就会把不同状态的进程保存在不同的队列里面,所谓调度出去,就是把正在运行的进程请出CPU,把它放在等待队列,等待下一次CPU的调度去执行。

2
4
咚咚呛
回复
苦瓜苦也
对于磁盘IO是通过SPOOLing技术去实现的,写磁盘不是直接有进程写的,进程会把数据写到一个缓冲区,然后再由缓冲区写到磁盘,对于数据到缓冲区的过程,是可以中断的,SPOOLing技术可以学习后面的内容理解这个知识。
2019-09-06
共4条回复

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程