外部中断与内部中断

时间:2022-09-13 18:26:25
外部中断与内部中断
 
 
中断基本概念
    什么是中断?先打个比方。当一个经理正处理文件时,电话铃响了(中断请求),不得不在文件上做一个记号(返回地址),暂停工作,去接电话(中断),并指示“按第二方案办”(调中断服务程序),然后,再静下心来(恢复中断前状态),接着处理文件……。计算机科学家观察了类似实例,“外师物化,内得心源”,借用了这些思想、处理方式和名称,研制了一系列中断服务程序及其调度系统。
    中断是CPU处理外部突发事件的一个重要技术。它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。引起中断的原因或者说发出中断请求的来源叫做中断源。根据中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断 两类。
    外部中断一般是指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备 的中断请求。
    内部中断是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、运算 溢出、单步中断等)所引起的中断。内部中断是不可屏蔽的中断。
    软件中断其实并不是真正的中断,它们只是可被调用执行的一般程序。例如:ROM BIOS中的各种外部设备管理中断服务程序(键盘管理中断、显示器管理中断、打印机管理 中断等,)以及DOS的系统功能调用(INT 21H)等都是软件中断。 CPU为了处理并发的中断请求,规定了中断的优先权,中断优先权由高到低的顺序是: (1)除法错、溢出中断、软件中断 (2)不可屏蔽中断 (3)可屏蔽中断 (4)单步中断。

  2. 中断与计算机病毒 计算机操作系统是开放的,用户可以修改扩充操作系统,在计算机上实现新的功能。 
    修改操作系统的主要方式之一是扩充中断功能。计算机提供很多中断,合理合法地修改中断会给计算机增加非常有用的新功能。如 INT 10H是屏幕显示中断,原只能显示西文,而在各种汉字系统中都可以通过修改INT 10H使计算机能够显示中文。另一方面,计算机病毒则篡改中断为其达到传染、激发等目 的服务,与病毒有关的重要中断有: INT 08H和INT 1CH定时中断,每秒调用18.2次,有些病毒利用它们的记时判断 激发条件。 INT 09H键盘输入中断,病毒用于监视用户击键情况。 INT 10H屏幕输入输出中断,一些病毒用于在屏幕上显示字符图形表现自己。 INT 13H磁盘输入输出中断,引导型病毒用于传染病毒和格式化磁盘。 INT 21H DOS功能调用,包含了DOS的大部分功能,已发现的绝大多数文件型病毒 修改INT 21H中断,因此也成为防病毒的重点监视部位。 INT 24H DOS的严重错误处理中断,文件型病毒常进行修改,以防止传染写保护磁 盘时被发现。
    中断子程序的入口地址存放在计算机内存的最低端,病毒窃取和修改中断的人口地 址获得中断的控制权,在中断服务过程中插入病毒的“私货”。

  总之,中断可以被用户程序所修改,从而使得中断服务程序被用户指定的程序所替代。这样虽然大大地方便了用户,但也给计算机病毒制造者以可乘之机。病毒正是通过修 改中断以使该中断指向病毒自身来进行发作和传染的。