例如,一个过程等待   磁盘I / O完成将睡在   缓冲区头的地址   对应于该数据是   转移。当中断   对于常规的磁盘驱动器指出,   转让完成后,它会调用   唤醒的缓冲区头。的的   中断使用的内核堆栈   不管过程正好是   在运行的时候,并且是唤醒   从该系统过程中完成的。

能否请您解释一下在我所强调的段落中的最后一行。它是关于醒来已等待某一事件的发生,因此已经睡了的过程。这对从高尔文。顺便说一句,你可以推荐一些好书或链接,学习UNIX操作系统?

感谢。

有帮助吗?

解决方案

有是一些过程在接收到中断时正在运行。内核不超过更改为其他进程上下文来处理它 - 这将需要时间 - 它只是做了什么是在目前情况下有必要,并让调度知道在下一次进度,等待的过程是准备以继续。

有一些很好的内部书籍周围。我喜欢的各种McKusick 的等人书,如 FreeBSD操作系统的设计与实现。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top