阅读:2464回复:0
各位大哥帮帮忙,一个很是困扰小弟的问题!
磁盘i/o运行在哪一级上?如果其运行在dispach级,那么就有问题了。磁盘运行完需发出中断,然后中断在派出一个dpc,由于中断前的磁盘i/o驱动过程在dispach级,那么就算是发生dpc也不会响应。而且我感觉一般的文件操作调用的磁盘i/o首先会把数据读入系统空间,那就不必保持上下文不变了。但是对于页面异常,如果是用户空间发生了缺页,那么不保持Dispatch级,页面中断异常过程可能就与原来发生缺页的线程不在同一上下文,那么对于多变的用户空间,就会写错内存位置。如果其低于dispatch级,那么它如何保证磁盘中断发生读取数据时的地址空间还是引发i/o的线程的地址空间呢?如果保证不了,那么当用户空间出现页面故障时,不就会发生将数据写入另一地址空间中了吗? 这不是互相矛盾吗?
|
|