每日阅读12内核设计与实现——中断处理程序与中断上下文

中断处理程序是不会重入的,当中断发生时,所有处理器上同一中断线上的其它中断被禁止,绝不会出现同一中断线的嵌套中断。。。

而其它中断线则是打开的,能被处理的。。

这些准则,极大的简化了中断处理程序的编写。。


当内核接受到一个中断后,将依次调用在该中断线上注册的每一个处理程序(从这一点看,一个中断可能会有很多中断处理程序要执行。。)

每一个处理程序必须知道它是否与这一中断相关,因此它要去检测与自己对应的硬件的状态寄存器以确定是否相关,若不相关,立即退出。。。


RTC是一个从系统定时器中独立出来的设备,用于设置系统时钟,提供报警器或周期性的定时器。。

系统时钟的设置,一般只需要向寄存器或I/O地址写入时间即可

而报警器和定时器则要依靠中断来实现,中断发生时,定时器或报警器就会启动。。


自旋锁spin_lock用的比较多,主要是防止一些变量在SMP机器中被其它处理器访问。。


中断上下文,不允许睡眠,与进程没有什么关系,但会共享中断进程的内核栈(2 pages)。。。



中断部分还剩下

(1)linux中断处理系统的实现

(2)linux虚拟系统目录/proc/interrupts记录中断相关的各种统计信息

(3)中断控制相关系统调用,<asm/system.h>,<asm/irq.h>


OVER!!!

一直想研究下linux内核中的并发,同步机制,下一节看看。。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值