阅读:1526回复:2
关于进程的用户态和核心态的疑问?
应用程序通过win32子系统提供的API接口来进行设备IO,当进行这样的调用的时候,进程会通过I/O管理器来调用设备驱动程序,进入核心态运行,这个时候是没有进程上下文切换的,也就是还在一个进程中,不过特权级发生了变化。我们知道进程有两种I/O模式,同步和异步。进程在发出调用请求后如果不能立刻得到满足,如果是同步调用,进程调度器会将进程挂起,等待I/O完成,如果是异步调用则进程调度器继续调度该进程。不管是哪种调用方式,代表进程执行I/O操作的驱动程序都在内核态执行。
我的问题是:就算是我们认为的普通的单线程应用程序,如果执行异步I/O操作,也是有两个调度单元在接受调度(用户态和内核态),是否是可以认为它有两个线程呢?如果不是,为什么? |
|