当前位置:首页 » 软件系统 » pc系统可以处理的中断数量
扩展阅读
荨麻疹可以靠运动来好吗 2024-05-18 22:04:05

pc系统可以处理的中断数量

发布时间: 2023-01-06 17:21:07

❶ 汇编语言的中断服务的中断服务程序是什么

嗯,我猜你问的是PC的,不是单片机
一、汇编语言的中断分以下几种:
1.BIOS中断,这是固化到BIOS程序中的,每次开机BIOS会自动加载到指定内存
2.186下的DOS中断,在DOS系统被加载后,系统会延用BIOS的中断向量,并向里面添加一些新的向量,这些功能便是DOS系统自带的中断服务程序
3.286及以上的系统中断,PC会进入保护模式,在OS被加载后,中断由IDT控制,这一机制类似于中断向量表,只不过中断向量换成了选择子。这样的中断机制对不同型号的CPU有略微的差别,这里不细说了,我自己也没全弄明白。

二、中断实现的方式(8086下的普通中断)
听说过“优先级编码器”没?——如果同时有两个信号被接收,会指定某一个信号的优先级高,先执行它。中断就是类似的处理方法。
当CPU获取到某一高操作优先级的信号时(比如时钟,每固定时间就会触发一次;比如键盘响应,用户希望通过Ctrl+C来退出任何正在执行的DOS程序),CPU会将当前正在执行的程序挂起来,转而去处理该信号(类似于Call,但略有不同,你看的书应该会讲到)。
处理中断时,系统会将其解释为一个标号,比如int 9h、int 21h等等。这个标号是一个序号,在内存某处存放着连续的一个表格,这个标号便是表格中的“行号”,只不过,每一行是两列,包括了该中断的处理程序的段基址和偏移量。中断向量表是从0000:0000开始的,每4字节为一个表项。中断标号x4就是对应的中断向量表项所存的地址,高地址是基地址,低地址是偏移。
这么说不知道你懂不懂。。。
反正总结一下你的问题吧,中断服务程序是加载到内存中的,它在加载前可能是存在BIOS芯片上,也可能是存在硬盘里的;中断向量表里只能写上中断处理程序的入口地址,要知道每个表项只有4字节;具体的中断服务程序,我不信你学汇编的书上不讲,我大概讲一下:CPU的INTR引脚获得了中断信号,得到了标号,比方说是5号,中断向量表项为0000:000A,读取这个内存,得到中断程序入口地址比方说是AAAA:BBBB,那么它会将当前的CS/IP、Flags寄存器入栈,然后转到AAAA:BBBB处去执行一直到iret指令返回原任务(或许该中断结束了这个任务,就不会返回了)。

至于保护模式的中断,相信你暂时还没遇到。到后面还有操控8259A芯片来实现高级中断的,这个就不是一般需要学的了。

❷ 8086中断系统可以管理几种中断啊。。求大神帮忙解答。

这个问题我知道!8086CPU的中断系统具有256个中断,每个中断用一个唯一的中断向量号标识。向量号也称为矢量号或类型号,它用一个字节表示:0~255,对应256个中断。8086的中断可以分成外部中断和内部中断两类。
(1)外部中断
外部中断是来自8086CPU之外的原因引起的程序中断。它又分成两种情况:
·可屏蔽中断——外部的这个中断请求可以在CPU的内部被屏蔽掉,即CPU可以控制它是否引起程序中断。标志寄存器中的中断允许标志IF就是用于控制可屏蔽中断的。
·非屏蔽中断——外部的这个中断请求不能在CPU的内部被屏蔽,CPU必须执行它的处理程序。8086为非屏蔽中断分配了中断向量号02。
(2)内部中断
内部中断是由于8086CPU内部执行程序引起的程序中断。它又分成多种情况:
·除法错中断——在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生除法错中断。8086为它分配的向量号为0。
·指令中断——执行中断调用指令INTn就产生指令中断,也称为软件中断,它的向量号就是n。
INTn指令为2字节指令(机器码为11001101—n—,第2个字节就是中断向量号n),但向量号为3的指令中断(INT3)是1字节指令(11001100),较特殊,常用做程序调试的断点中断。
调试程序DEBUG中的G命令就是利用断点中断(3号中断)中止被调试程序的。使用DEBUG调试程序时,如果在程序段最后加上一条INT3指令,就可以停止程序运行,而不必设置断点了。
·溢出中断——在执行溢出中断指令INTO时,若溢出标志OF为1,则产生溢出中断。它的向量号为4。
·单步中断——若单步标志TF为1,则在每条指令执行结束后都产生单步中断。它的向量号为1。
调试程序DEBUG中的T命令就利用了单步中断。

❸ 中断过程,系统共需几次开中断几次关中断它们中哪些是有硬件实现

1.关中断:由硬件自动实现,让CPU进入不可再次相应中断的过程;2.保存断点:将当前的程序计数器PC中的内容保存起来;3.识别终端源,转向中断服务程序:在多个中断源同时请求中断的情况下,实际响应的只能是优先权最高的那个;4.保存现场,交换屏蔽字:现场信息一般是指程序状态字、中断屏蔽寄存器和CPU中某些寄存器的内容;5.开中断:开中断将允许更高级的中断请求得到响应,实现中断嵌套;6.执行中断服务程序主体:7.关中断:为了在回复现场和屏蔽字时不要被中断打断;8.恢复现场和屏蔽字:9.开中断:10.中断返回:有一条IRET指令实现。

❹ 电脑系统中断cpu过高

何为“系统中断”
虽然“系统中断”与其它 Windows 进程一样出现在任务管理器中,但它却不是一个真正意义上的进程,它仅代表 Windows 中较低系统级别的所有“中断”的 CPU 使用率。
中断可来自软件、硬件,甚至处理器本身,Wikipedia 对系统中断的专业解释如下:

在计算机科学中,中断是指处理器接收到来自硬件或软件的信号,提示发生了某个事件,应该被注意,这种情况就称为中断。

通常,在接收到来自外围硬件(相对于中央处理器和内存)的异步信号,或来自软件的同步信号之后,处理器将会进行相应的硬件/软件处理。发出这样的信号称为进行中断请求(interrupt request,IRQ)。硬件中断导致处理器通过一个运行信息切换(context switch)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为CPU指令集中的一个指令,以可编程的方式直接指示这种运行信息切换,并将处理导向一段中断处理代码。中断在计算机多任务处理,尤其是即时系统中尤为有用。这样的系统,包括运行于其上的操作系统,也被称为“中断驱动的”(interrupt-driven)。

简单地来理解,中断是软件、硬件和 CPU 之间进行通信的一种形式,例如:当你在键盘上执行输入操作时,相应的硬件和软件便会向 CPU 发送中断以通报任务并触发必要的处理。在中断处理程序任务完成后,处理器便会恢复到它被中断时的状态。

打开 Windows 任务管理器,盯着“系统中断”的 CPU 使用率,狂敲一通键盘,观察 CPU 占用率的变化即可验证上述说法,你的理解也会加深。

当硬件或驱动程序出现错误时,可导致向 CPU 发送错误的中断信号,就会造成在任务管理器里看到“系统中断”的 CPU 使用率过高的问题。通常一个健康、运行良好的 Windows 系统,系统中断的 CPU 使用率大约会在 0.1% 至 2% 之间浮动,峰值不超过 7% 也被认为在可接受的正常范围,当然这也取决于你所使用的 CPU 频率、运行的软件和所连接的相关硬件。

解决“系统中断”CPU使用率高
如果系统中断对 CPU 的占用长期超过 5% – 10%,就可以怀疑当前系统涉及驱动程序或硬件问题。如果该问题不是长时间出现的普遍现象,可以先尝试重启操作系统进行解决。

1. 检查硬件驱动
要想快速确认是否由驱动程序造成的问题,可以使用 DPC Latency Checker 这个小工具进行检查。延迟过程调用(DPC)与系统中断的处理相关, 当中断处理程序需要延迟一个低优先级的任务时,便会调用 DPC。

DPC Latency Checker 可以通过实时音、视频流来分析当前系统是否能妥善处理内核态设备驱动的延迟,它是快速找出驱动问题的好帮手,而且无需安装,如果你看到出现红条则表示有高延迟。

fix-high-cpu-usage-system-interrupts-3

要找到驱动程序中断问题的根源,你得逐个回滚或更新驱动程序到最新版本,并不断通过 DPC Latency Checker 进行测试。此外,大家也可以安装 LatencyMon 这款延时监控软件,以帮助快速发现高 DPC 计数的驱动程序文件。

fix-high-cpu-usage-system-interrupts-4

具有高 DPC 计数的驱动可能导致大量中断。

2. 禁用硬件设备
在不更新驱动的情况下,我们也可以通过逐个禁用硬件设备的“排除法”来快速定位问题硬件或驱动。

使用 Windows + R 打开“运行”— 执行 devmgmt.msc 打开设备管理器,对硬件进行逐个禁用并在 DPC Latency Checker 或任务管理器中观察“系统中断”的情况,进行逐一排除。

可能出问题的硬件主要有:

网卡
内置调制解调器
内置声卡设备
其它外置设备,如电视调谐卡、ISDN 或 DSL 适配器等
千万不要在设备管理器里禁用或卸载系统必要的设备和驱动程序哦,如果连处理器、显示适配器、IDE 控制器或显示器等必需品都禁掉,麻烦可就大了。

3. 拔下或禁用外设
如果 DPC Latency Checker 什么都没发现,那问题很可能是由 USB 硬件造成的。此时,大家可以尝试拔除所有外设的连接或在设备管理器中尝试禁用“通用串行总线控制器”中的所有“USB Root Hub”

❺ 系统处理中断源的最大数量

8086中断包含一个0到255之间的编号,所以 是D. 256,在现代计算机系统中,中断源的数目很多,一般有几十个至几百个。为了在响应中断后处理机能够尽快找到中断入口,以便为中断源提供服务,因此必须对这些中断源进行分类。