Chinaunix

标题: 问个操作系统进程方面的问题 [打印本页]

作者: simonsoft    时间: 2007-11-02 23:41
标题: 问个操作系统进程方面的问题
最近在看操作系统概念 有个地方不懂。
进程那一章,有个地方说,进程先进入就绪对列,开始执行,然后可能需要请求磁盘IO,于是进程进入磁盘IO队列,等完成磁盘IO后,进程再回到就绪队列。
书上图大概是:
--->ready queue --------->cpu
|                                          |
----<----IO ------<IO queue<--

问个弱点的问题 , IO的时候不需要CPU吗?cpu 只从ready queue选进程执行,如果IO需要CPU,那图的循环不是错了?这里搞不懂,希望有人帮忙解答下

[ 本帖最后由 simonsoft 于 2007-11-2 23:54 编辑 ]
作者: bluesky_jxc    时间: 2007-11-03 09:04
标题: 回复 #1 simonsoft 的帖子
这里所说的就绪队列是指可以运行的进程队列,IO队列是指等待IO任务完成的进程队列
由于IO很慢(相对CPU),因此进程等待IO时都会把自己的状态置为不可运行状态,然后将自己移到IO 等待队列。这个时候进程仅仅是等待IO完成,不需要CPU参与的。
当IO完成(中断信号通知),中断处理函数将相应的进程唤醒,然后这个进程再将自己的状态置为可运行状态,并且再加入到就绪队列中,等待调度程序调度执行
作者: simonsoft    时间: 2007-11-03 17:21
那就是说IO操作时不需要CPU?是不是忘磁盘写文件什么的都不用CPU参与?
作者: Solaris12    时间: 2007-11-04 21:15
原帖由 simonsoft 于 2007-11-3 17:21 发表
那就是说IO操作时不需要CPU?是不是忘磁盘写文件什么的都不用CPU参与?



楼主要知道有DMA这回事地....
作者: mjdcl    时间: 2007-11-05 07:58
DMA+中断完成磁盘操作。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2