记住 tasklet 是一个特殊的函数, 可能被调度来运行, 在软中断上下文, 在一个系统决 定的安全时间中. 它们可能被调度运行多次, 但是 tasklet 调度不累积; ; tasklet 只 运行一次, 即便它在被投放前被重复请求. 没有 tasklet 会和它自己并行运行, 因为它 只运行一 ...
分类:
系统相关 时间:
2019-07-06 13:17:07
阅读次数:
107
一般编译器的堆栈用于保存局部变量、函数的参数、函数的返回值、中断上下文信息等。但Keil对局部变量、函数参数预先分配空间(放在静态全局变量区),Keil的堆栈只是用于保存函数嵌套调用的PC、中断上下文信息。 从主程序进入中断需要入栈字节数:13+PC=15 Byte(ACC,PSW,B,DPH,DP ...
分类:
其他好文 时间:
2019-01-28 01:04:00
阅读次数:
210
cpu上下文就是寄存器和程序计数器。这里记录着指令的位置,他们存在系统内核 系统调用过程叫上下文切换。 进程的上下文切换,线程的上下文切换,中断的上下文切换 一:进程的上下文切换:他与系统调用的不同是,进程中还包括,虚拟内存,全部变量,栈等用户态。也包括寄存器,内核堆栈等内核态 二:线程的上下文切换 ...
分类:
其他好文 时间:
2018-11-30 20:14:11
阅读次数:
146
【一】、中断底半部 1. 软中断 >>> 执行在中断上下文 >>> 会被中断打断,不会被软中断或进程打断 >>> 可以完成耗时操作 2. tasklet >>> 执行在中断上下文 >>> 会被中断打断,不会被软中断或进程打断 >>> 可以完成耗时操作 3. 工作队列 >>> 执行在进程上下文 >>> ...
分类:
系统相关 时间:
2018-10-29 21:28:39
阅读次数:
148
产生这种情况的原因: 1、当中断发生时,出现了调度做法, 2、另一个是spin_lock 里调用sleep, 让出调度, 另外线程又进行spin_lock, 导致死锁。 相关问题的链接 1、为什么在中断上下文中不能休眠? https://blog.csdn.net/wzw88486969/artic ...
分类:
其他好文 时间:
2018-10-17 14:49:41
阅读次数:
176
今天在网上瞎逛,偶然发现一款监控工具:netdata,感到一惊,监控工具竟然可以这么漂亮! 简单了解一下,这款工具还算比较新,监控系统运行状态的功能非常强大,除了监控cpu,网卡,磁盘,内存,进程等等之外,甚至能监控系统的cpu中断,上下文切换等等非常深入的系统运行状态。 新版本还支持监控常用的we ...
分类:
Web程序 时间:
2018-05-07 00:44:07
阅读次数:
4552
<什么是中断> 计算停下当前处理任务,并保存现场,转而去处理其他是任务,当完成任务后再回到原来的任务中去。 <中断的分类> a:软中断 软中断时执行中断指令产生的,软中断不用施加中断请求信号,因此中断的产生的不是随机的而是由程序安排的。内核线程是实现软中断的助手。 b:硬中断 硬中断时由外部硬件产生 ...
分类:
系统相关 时间:
2018-03-17 15:17:53
阅读次数:
233
1、特权级 Intel x86架构的cpu一共有0~4四个特权级,0级最高,3级最低,ARM架构也有不同的特权级,硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查。硬件已经提供了一套特权级使用的相关机制,软件自然要好好利用,这属于操作系统要做的事情,对于UNIX/LINUX来说,只使用了0 ...
分类:
系统相关 时间:
2018-02-27 19:30:29
阅读次数:
528
1、前言 最近在学习linux内核方面的知识,经常会看到用户空间与内核空间及进程上下文与中断上下文。看着很熟悉,半天又说不出到底是怎么回事,有什么区别。看书过程经常被感觉欺骗,似懂非懂的感觉,很是不爽,今天好好结合书和网上的资料总结一下,加深理解。 2、用户空间与内核空间 我们知道现在操作系统都是采 ...
分类:
系统相关 时间:
2018-02-23 11:57:34
阅读次数:
227
一、前言 每一个Linux驱动工程师都知道这样一个准则:在中断上下文中不能睡眠。但是为什么interrupt context中不能调用导致睡眠的kernel API呢?如果驱动这么做会导致什么样的后果呢?这就是本文探讨的主题。为了理解这个主题,我们设计了一些非常简单的驱动程序和用户空间的程序,实际做 ...
分类:
其他好文 时间:
2018-02-21 22:18:21
阅读次数:
216