转载请注明出处:jiq?钦's
technical Blog
首先解释一些容易混淆的概念:
中断上下文:正在执行ISR或者下半部。没有进程背景(只是暂停CPU去内存中其他地方执行一段快速代码),所以不能被切换(比如睡眠,被其他进程抢占等都不行)。
进程上下文:非中断上下文(比如执行系统调用或者内核线程的时候)。此时内核代表线程在执行,所以允许睡眠,被抢占等(被切...
分类:
系统相关 时间:
2015-06-21 18:33:33
阅读次数:
178
很多资料上都写分用户栈、内核栈、中断栈,主要问题就是系统安全和健壮性考虑,用户栈处于用户空间,内核栈处于内核空间,权限不一样。
系统调用 :内核态,运行于进程上下文,内核代表进程运行于内核空间
硬件中断 :内核态,运行于中断上下文,内核代表硬件运行于内核空间;
异常
:...
分类:
系统相关 时间:
2015-04-16 17:37:01
阅读次数:
153
http://blog.csdn.net/weiqing1981127/article/details/8298585中断处理程序是被内核调用来响应中断的,它运行在中断上下文,中断处理程序是上半部,当接收到一个中断,它就立即开始执行,但只做有严格时限的工 作,例如对接收的中断进行应答或复位硬件,这些...
分类:
系统相关 时间:
2015-04-02 18:48:39
阅读次数:
195
三个接收队列 tcp协议栈数据接收实现了三个接收缓存分别是prequeue、sk_write_queue、sk_backlog。之所以需要三个接收缓存的原因如下:tcp协议栈接收到数据包时struct sock *sk 可能被进程下上文或者中断上下文占用:1、如果处于进程上下文sk_lock.ow....
分类:
其他好文 时间:
2015-04-02 13:19:47
阅读次数:
423
在Linux中,任何时候,处理器都处于以下三种状态之一:1)在用户空间,在某个进程中执行用户代码2)在内核空间,处于进程上下文中,执行某个特定的进程3)在内核空间,处于中断上下文中(与进程无关),进行中断处理应用程序、内核与硬件的关系图如下:
分类:
系统相关 时间:
2015-04-01 15:16:48
阅读次数:
152
这是我对于中断上下文的理解,希望有一些帮助,在以后的时间里在做一些补充。...
分类:
其他好文 时间:
2015-03-22 00:32:42
阅读次数:
135
转载:http://www.cnblogs.com/Anker/p/3269106.html1、前言 最近在学习linux内核方面的知识,经常会看到用户空间与内核空间及进程上下文与中断上下文。看着很熟悉,半天又说不出到底是怎么回事,有什么区别。看书过程经常被感觉欺骗,似懂非懂的感觉,很是不爽,今天....
分类:
系统相关 时间:
2015-03-11 18:49:16
阅读次数:
259
寒假Linux学习笔记 2015年1月25日 晚 20:00 一、内核中断处理 进程上下文:应用程序主动调用内核驱动的程序的跳转 中断上下文:中断由硬件产生的,与应用程序无关 1、注册中断 Int request_irq(unsigned int irq, //中断号 void (*handler)...
分类:
其他好文 时间:
2015-02-05 13:25:18
阅读次数:
134
一,中断处理函数中断处理函数运行在中断上下文,不可抢占、调度。中断上下文编程需要注意以下几点: 不能睡眠或调用 schedule 放弃CPU 不能调用任何可能睡眠的函数,例如:获取信号量 不能访问用户空间数据,例如:copy_from_user,因为它不是在进程上下文中执行的。 执行时间尽可能短in...
分类:
系统相关 时间:
2015-01-20 21:51:44
阅读次数:
207