为什么在linux中中断服务程序中不能调用可能阻塞的函数

 我来答
kwydwuf
推荐于2016-08-08 · TA获得超过7411个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:2027万
展开全部
任何操作系统,在中断服务函数中,都不能阻塞,另外中断服务函数还应该越短越好,主要原因是:

1、 中断服务函数的执行和一般进程执行某个函数时的上下文环境 (context) 是不一样的,是在一个特定的context中,这个环境不许阻塞,否则系统异常。
2、 中断服务函数过长甚至阻塞,会严重影响整个系统运行效率甚至挂死 (想想看,系统无时无刻不在产生各种各样中断,操作系统本身的运行也依靠某些精确发生的中断,比如定时器靠时钟中断等,如果某个中断处理函数执行了很长时间 【阻塞可以理解成导致函数执行了无限长的时间】,整个系统就无法正常工作了)
Aaron_Lewis
2011-04-25 · TA获得超过453个赞
知道小有建树答主
回答量:413
采纳率:0%
帮助的人:331万
展开全部
你最好看些内核的书。

阻塞函数,就是不能被暂时唤出的程序,必须原子的执行完毕,当然不能被中断函数切换出去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式