中断服务程序为什么说是不在进程的上下文,而系统调用却是在进程的上下文?

如题。
中断服务程序为什么说是不在当前进程的上下文,而系统调用却是在当前进程的上下文?
运行中断服务程序的进程和系统调用的进程不都是当前进程吗?

作者: shaohui973   发布时间: 2011-02-11

关键在于 current 指针,在两种不同情况下可不可用。
中断的发生可能造成任意进程的中断,此时的current指针具有任意性,中断就不应该使用current指针,也就不能使用current指针对应得文件描述符,信号量等等。

系统调用是一种异常,带有不可屏蔽性,系统调用是应用程序主动触发的,触发后,current指针还是表示的当前得任务,所以还是可以使用current指针对应的文件描述符,信号量等等。

作者: tuibo   发布时间: 2011-02-11