Linux进程上下文和中断上下文总结

在Linux系统下,CPU总是处于下面三种状态之一:

1、内核态,运行进程上下文。

2、内核态,运行于中断上下文。

3、用户态,运行进程上下文。

进程上下文和中断上下文是Linux系统一个比较重要的概念,下面从程序的角度总结一下各属于哪种上下文:

1、中断处理程序处于中断上下文。

2、异常处理程序通常从用户空间的进程发起,处于进程上下文,可以切换到其他进程。

3、软中断(softirq)、tasklet等可延迟函数通常运行在中断上下文,而工作队列运行在进程上下文。

4、系统调用属于异常处理程序,运行在进程上下文。

注:系统调用是通过叫software interruppt的软件中断(一种异常)来实现的,跟软中断(softirq)没有关系。

5、信号处理函数属于异常处理程序,运行在进程上下文,在函数运行过程中可发生进程切换。

(完)

进程上下文是指在一个进程执行期间,CPU的所有寄存器中的值、进程的状态以及堆栈中的内容的总和。它包括用户级上下文和系统级上下文。用户级上下文包括用户的程序块、数据块、运行时的堆和用户栈等组成的用户空间信息。而系统级上下文包括进程标识信息、进程现场信息、进程控制信息(包含进程表、页表、打开文件表等)和系统内核栈等组成的内核空间信息。 线程上下文进程上下文类似,但是线程之间共享同一进程的地址空间,所以在切换线程上下文时,不需要切换地址空间,只需要切换线程的寄存器状态即可。一次线程上下文切换发生在一个进程内的不同线程之间。 中断上下文是发生在CPU响应硬件中断时,保存当前正在执行的上下文,然后切换到中断处理程序的上下文中断上下文保存了中断前的进程上下文信息,以及中断处理程序执行所需要的寄存器和堆栈等。 中断上下文的切换是由硬件自动完成的,它会保存当前正在执行的进程或线程的上下文,切换到中断服务程序的上下文,等中断处理完成后再切换回原来的上下文。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Linux上下文进程上下文中断上下文概念,上下文切换](https://blog.csdn.net/W546556/article/details/126300300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [系统调用,上下文切换(cpu上下文进程上下文,线程上下文中断上下文进程切换,线程切换)](https://blog.csdn.net/aa541850383/article/details/125363264)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值