进程-2:进程上下文和中断上下文

1.     CPU的状态

CPU总是处于以下3种状态的一种:

a)       内核态,运行于进程上下文,内核代表进程运行于内核空间;

b)       内核态,运行于中断上下文,内核代表硬件运行于内核空间;

c)       用户态,运行于用户空间。

2.     进程上下文

它是一种内核所处的操作模式,此时内核代表进程执行系统调用或运行内核线程。既然代表进程,那么就用前面“进程定义及其结构”中一文中提到的task_struct保存进程所需的资源,只不过堆栈变成了stack(0)。用此结构保存现在进程的状态,在进程上下文中可以睡眠,也可以调用调度程序。

3.     中断上下文

硬件通过触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。所谓的“中断上下文”,其实也可以看作就是硬件传递过来的这些参数和内核需要保存的一些其他环境。(以上来自网络,没有找到更权威的说法)。由于中断处理程序与程序没有联系,也就没有相应的task_struct结构,那就不能保持状态。而进程是系统调用的单元,一旦睡眠或者让出CPU,就不能重新调度了。这也就是为什么中断上下文中不能让出CPU。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值