当前位置:  技术问答>linux和unix

kernel 什么时候可以中断 什么时候不可以中断

    来源: 互联网  发布时间:2016-08-24

    本文导语:  比如 wait_event_interruptible 和wait_for_completion 两者区别是一个可以中断,另一个不可以中断,那什么时候要可以被中断,什么时候要不可以被中断呢? 谢谢大家了。 | 楼主貌似对中断理解错...

比如 wait_event_interruptible 和wait_for_completion 两者区别是一个可以中断,另一个不可以中断,那什么时候要可以被中断,什么时候要不可以被中断呢?



谢谢大家了。

|
楼主貌似对中断理解错了。

中断在本质上说是任何时刻都会发生的。比如按一下键盘,移动一下鼠标。

wait_event_inerruptible本意是说在等事件的时候 ,如果发生中断,那么立即就从这个函数返回,同时返回值是-E_RESTARTSYS.这个时候系统调用收到这个错误消息的时候,一般会重头重新开始调用驱动的服务代码。这样保证了驱动的服务可以被“事务性”的处理。

而后面那个是说一旦在等事件的时候,即使有外设中断了,中断也不会被响应了。

不过这2个函数我没深入理解过。
反正 down_interruptable() 是这样的。

|
wait_event(queue, condition)/*不可中断休眠,不推荐*/ 
wait_event_interruptible(queue, condition)/*推荐,返回非零值意味着休眠被中断,且驱动应返回 -ERESTARTSYS*/ 
wait_event_interruptible_timeout(queue, condition, timeout) /*有限的时间的休眠;若超时,则不管条件为何值返回0,*/

void wait_for_completion(struct completion *c);/* 等待completion */ 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于制作只用ramdisk+kernel的linux系统,也可以不用ramdisk,只要加载后全部在内存中运行
  • java命名空间java.awt.image类kernel的类成员方法: kernel定义及介绍
  • lock_kernel unlock_kernel编译不通过
  • java命名空间java.awt.image类kernel的类成员方法: getheight定义及介绍
  • linux-3ES-13.9.5安装oracle10g时更改/etc/sysctl.conf没有kernel.shmmax,kernel.shmmni
  • java命名空间java.awt.image类kernel的类成员方法: getwidth定义及介绍
  • ▲求助:kernel panic:No init found.try passing init=option to kernel.
  • java命名空间java.awt.image类kernel的类成员方法: getkerneldata定义及介绍
  • kernel too old , kernel panic原因
  • java命名空间java.awt.image类kernel的类成员方法: getyorigin定义及介绍
  • 区分uboot和kernel的宏
  • java命名空间java.awt.image类kernel的类成员方法: clone定义及介绍
  • kernel升级问题,初学,大家指教。
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞
  • 关于www.kernel.org结构
  • CentOS 6.5 下载地址及如何升级内核(kernel)版本到 3.10.28
  • __kernel_vsyscall 是什么?
  • 急!怎么没有/usr/src/kernel目录啊?
  • Uncompressing Linux... done, booting the kernel
  • Come in please! About the kernel.3X
  • 一个Kernel panic的问题怎么解决?
  • [救命]安装Ubuntu 时的Kernel Panic - not syncing 错误~


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3