谁能解释中断如何从最低级别(硬件)传递到应用程序。

因此,在下图中,我知道处理器之后发生了什么。 在此处输入图片说明

但是我想从键盘按下到处理器的中断过程在硬件中会发生什么,例如它如何传递扫描代码,中断控制器的作用是什么,简而言之是一些寄存器,它如何从下图传递出去? 在此处输入图片说明

===============>>#1 票数:0

尝试http://en.wikipedia.org/wiki/Programmable_Interrupt_Controllerhttp://en.wikipedia.org/wiki/Keyboard_controller_%28computing%29

键盘控制器声明一个信号,该信号被路由到中断控制器,该控制器依次声明一个连接到处理器的中断输入的信号。 操作系统内核中有特定于键盘的驱动程序软件,它知道如何访问键盘控制器中的寄存器以获取实际的扫描代码,从而使它们可用于用户模式应用程序。

在图中,键盘控制器和中断控制器通常都是南桥芯片的一部分。 (在早期的PC中,所有各种功能都是作为分立的组件实现的,但是现在很多功能通常都组合为“超级I / O”芯片。)

  ask by eswaat translate from so

未解决问题?本站智能推荐:

1回复

驱动程序和用户应用程序之间的主要区别是什么?

我知道用户应用程序只能在用户模式下运行,这是为了系统安全。 相反,大多数驱动程序以内核模式运行,以访问I / O设备。 但是,某些驱动程序在用户模式下运行,但允许访问I / O设备。 所以我有以下问题。 驱动程序和用户应用程序之间的主要区别是什么? 不能像某些驱动程序一样,允许用户应用
3回复

硬件定时器中断在哪里?

这是“英特尔架构软件开发人员手册”中的异常和中断表(我理解为IDT) 定时器中断在哪里使上下文切换成为可能? (用于多任务处理) 如果这是一个愚蠢的问题,请解释我的理解。 先感谢您
2回复

操作系统(内核)对程序指令的影响(二进制级别)

如果我们没有在处理器上运行操作系统 - 它将运行二进制程序(用它的机器语言)我们提供它。 例如,如果它是一个指令序列(假设没有跳转): ABCD ; 那么这四条指令将一个接一个地运行。 现在,当我们谈论操作系统时,通常的谈话方式通常是 - 操作系统/内核会注意一个进程的指令不会干扰另一
1回复

Linux内核是处理请求的进程还是线程或某些被动的东西来自应用程序?

看来linux内核正在运行一个进程。 但是我读到一些回答说Linux内核既不是进程也不是线程。 所以我希望有人可以解释这个概念。
2回复

将按键发送到应用程序

当按下一个键时,键盘会向设备驱动程序发送信号,从而中断CPU并运行中断处理程序。 按下的键存储在映射到键盘中断的地址处。 我的问题是:如果有多个进程(例如,编辑器和shell),内核如何确定接收到的按键属于哪个进程? 我的意思是该按键如何到达目的地? 当按键进入多个过程时,还有办法吗
1回复

多个进程的多个中断向量表

我的想法: 假设两个应用程序在Linux x86(多任务)中并行运行,并且它们都共享键盘外围设备。 如果我按下键盘上的按钮,则会发生中断,并且控制必须切换到相应的中断例程。 中断源的中断例程的起始地址从中断向量表中获取,该向量表已从0x0000定义。 但是对于同一个键盘中断,两个应用
3回复

操作系统内核是否适用于所有其他程序?

因此,根据我的理解,有两种类型的程序,即解释的程序和编译的程序。 解释程序由解释程序执行,解释程序是其所在平台的本机应用程序,而编译程序本身就是它们所在平台的本机应用程序(或系统软件)。 但我的问题是:除了内核以外的任何东西实际上是由CPU直接运行的吗? Windows可执行文件是“W
2回复

如何编写I / O绑定的C程序?

我必须编写I / O界限的程序,这将使我的I / O调度程序像以前从未完成的操作系统作业一样工作,但我不知道该怎么做。 我已经尝试编写一个简单的C程序来计算大文本文件的行数,但它执行得太快,我无法用它来衡量我的调度程序的有效性。 这是我的成绩的25%,任何帮助将不胜感激。
1回复

仅在debian中为我的应用程序覆盖系统调用

我对在运行线程中拦截系统调用并记录该信息的位置有要求。 我的内核版本是3.15.10 我知道一种获取系统调用地址,然后从该地址跳转到其他系统调用号的方法。 但是,这种方法的问题是,如果出现问题,我的系统将崩溃。 我想要的是仅对我的应用程序覆盖系统调用
1回复

用于嵌入式C应用程序中实时内核的Micro Scheduler?

我正在处理微秒级的时间紧迫的应用程序。 我对使用非裸机方法(我的所有项目共有的某种框架或基础)开发应用程序的更便捷方法感兴趣。 在我的条款(或根据电子工程师的条款)下,RTX,Xenomai,Micrium或VXWorks之类的实时操作系统并不是真正的实时操作系统。 所以我更喜欢谈论软