终于搞懂用户态内核态以及中断、信号的上下文切换关系了,处于内核态的时候用户态的上下文保存在内核栈中,此时如果发生中断或者切换,是不会区分进程处于用户态还是内核态的,直接切之,软中断导致的是内核态和用户态的转化,也即是用户上下文到内核上下文的转化,而中断导致的是用户态或者内核态上下文到中断上下文的转化,进程切换导致的是用户态/内核态上下文到用户态/内核态上下文的转化。关键是每个进程都对应一个用户栈和内核栈。
扩展阅读:
http://19880512.blog.51cto.com/936364/274610内核栈和用户栈
http://baike.baidu.com/view/197370.htm?fr=aladdin 软中断,其中关于硬中断上下段的概念还没搞懂,kouu的博客中有介绍
http://www.2cto.com/os/201212/177668.html 三个上下文:内核、中断以及用户
http://www.embedu.org/Column/Column240.htm
搜linux进程上下文会看到关于进程上下文和中断上下文讨论
关于内核态用户态和信号的思考(其中中断上下段没有看懂),布布扣,bubuko.com
原文:http://www.cnblogs.com/johnnyflute/p/3855515.html