百科问答小站 logo
百科问答小站 font logo



会不会有两个中断绝对同时发出,cpu会如何处理? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

题主的问题表达的不太正确,不过要问的内容还是很清晰的,先回答一下:

1. 整个一个键盘共一个中断,甚至是跟别的设备共用一个中断,不管是什么键盘。

机械键盘,并不是一个键位对应着一个中断。如果是PS/2的,只有一个中断。如果是USB的,那么实际上是USB控制器轮询的(虽然叫中断传输),所以从操作系统驱动的层面上,根本看不到“同时来了两个中断”的事件。

由于主流的机械键盘都是USB的,USB-HID类型的设备,单次只能上报8字节的报文,处理6-9个按键,所以,同时按下两个键,那么操作系统在某个轮训周期内,看到的是一个HID report里新包含了两个键。

但是即使这样,驱动也是从前往后扫描report然后依次上报的(从keycode1到keycode6),所以从驱动到操作系统软件这个层次上,按键时间是依次上报的。

2. 不管键盘同时按下几个键,键盘硬件是可以处理的。

这个解释起来比较长,我在这个问题里回答过:

电路扫描动作也是从上到下的,所以,即使同时按下两个键,硬件也是依次上报。

3. 不谈键盘,只说两个中断,中断控制器不会同时上报两个中断。

以x86上最古老的8259控制器来说,它的中断是有优先级的:

没配置优先级的情况下,从IRQ0到IRQ7依次排列,所以即使硬件上同时来了两个中断,那么8259A也是按照优先级依次上报的,不会同时上报两个中断。

(4)优先权判别器PR
若某中断请求正在被处理,8259A外部又有新的中断请求,则由优先权判别器将新进入的中断请求和当前正在处理的中断进行比较,以决定哪一个优先级更高。若新的中断请求比正在处理的中断级别高,由PR通过控制逻辑向CPU发出中断申请INT,正在处理的中断自动被禁止,先处理级别高的中断

对于高级一点的LoAPIC,建议看Intel的手册,配置过于复杂,但也是有优先级的。

所以,对于题主的问题,答案就是:不会有两个中断同时发出。


user avatar   lu-luce 网友的相关建议: 
      

你以为你的外设是直接用一根导线连接到CPU的吗?

不,他们是连接到总线的,俗称南北桥,南北桥上的中断控制器会根据优先级选择。


user avatar   windoze 网友的相关建议: 
      

这次舆论的重点在于警察到底是多久赶到的。

没拜码头,收保护费,打砸门面这种原因我们都知道,也不怕;

但是公权力私用或者黑白勾结这种事,就会让人非常害怕;

如果西安公权力真的黑白勾结,还睁眼说瞎话,那就需要处理整顿了。

我朝的治安也不是一直这么好的,人民也不是软弱无比的,60年代西安打的也很凶的。难不成西安各公司以后都要雇佣保安公司保护经营?

这次出警距离1公里,走路10分钟都到了,所以就坐等这次真实的出警时间是多少了。





  

相关话题

  Yoga14s 2021作为二奶机选酷睿还是锐龙? 
  2021年「矿难」什么时候来临? 
  如何评价Intel 的IDM 2.0模式? 
  最近几年 Intel 处理器的架构进步不大,是遇到了技术困难,还是 Intel 在有意控制节奏? 
  为什么大学C语言课不用linux的gcc编译器上,而是用vs呢? 
  为什么基于Android深度定制的系统有的叫UI有的叫OS? 
  如果我能生产出假 CPU(i9),国家会处罚我卖假货吗? 
  为什么我国的计算机科技领域发展了十几年水平依旧落后国外这么多? 
  都说操作系统难开发,那为什么微软在90年代就能开发出Windows呢? 
  从操作系统内存管理来说,malloc申请一块内存的背后原理是什么? 

前一个讨论
世界上不用公元纪年的国家都使用什么纪年方法?
下一个讨论
为什么51单片机编程喜欢用unsigned(无符号)类型定义变量呢直接用 int.char..不好吗?





© 2024-11-08 - tinynew.org. All Rights Reserved.
© 2024-11-08 - tinynew.org. 保留所有权利