UEFI 用定时器中断实现EVENT 方式简单记录

本文探讨了中断和事件(event)的概念,重点介绍了UEFI中的EVENT是如何利用定时器中断来驱动的。每100ns发生一次定时器中断,中断处理函数会检查并操作EVENT结构体。EVENT被组织成链表,通过xxCreateEvent、xxWaitEvent和xxSignalEvent等函数进行管理。当EVENT条件满足时,其回调函数在中断处理过程中执行,实现了异步操作和系统性能提升。
摘要由CSDN通过智能技术生成


 

在学习编程的时候,一直有一些概念很困扰,有些东西一直在用,但是要具体说个所以然,还真是有点说不清楚。比如callback ,中断(interrupt) 和事件(event)的关系,这只是碰到疑问中的其中两个。

 

中断是底层编程必定会遇到的东西,从底层编程来说明的话,芯片上程序在跑,突然芯片引脚来了个信号,芯片接受到了这个信号,把程序跳转到新的一块代码去执行。原先的在跑的代码就不跑了,也是就说被正在执行的代码被这个信号给中断了,这就是中断了。

 

跳转的这个行为是个硬件行为,软件没法控制,把新跳转到的代码块执行完了之后,又回到了刚才被中断的代码块。不考虑中断嵌套的情况,(就是已经在中断中,又来了个中断)。

 

中断来了就跳转这个是硬件行为(硬件电路决定),那中断什么时候返回就是软件行为了,为什么这么说。因为中断跳转的动作是硬件实现,但是跳转的目的地和目的地的代码是什么,这些全是程序员控制。程序猿说,不回去了就回去了,去别的地方也可以。具体看代码实现。这个很复杂了,也很灵活(各种os 就是使用这种机制来实现进程或者线程的切换)。这个需要保存很多状态,反正很复杂,我不懂。

 

说完中断,那么来说说event ,为什么要说event ,书上说事件是异步操作的基础,可以提高系统性能和效率。也就是你在比较复杂点的系统开发,都会对event 进行支持。也就是说,在有OS的环境下编程,你应该会碰到类似的,叫做

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值