Differences between version 9 and revision by previous author of InterruptHandler.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 9 | Last edited on Monday, October 18, 2004 2:09:18 pm | by AristotlePagaltzis | Revert |
Older page: | version 8 | Last edited on Monday, October 18, 2004 9:57:24 am | by PerryLorier | Revert |
@@ -1,10 +1,5 @@
-A section of code invoked by the hardware whenever an [IRQ] occurs. It is generally part of the [Kernel] and usually contained in a device driver. Because they occur asynchronously, invoked by hardware rather than through normal control flow, InterruptHandler~s are notoriously hard to write (see RaceCondition). They are also commonly written in AssemblyLanguage because [IRQ]s tend to happen __very__ frequently.
+A section of code invoked by the hardware whenever an [IRQ] occurs. It is generally part of the [Kernel] and usually contained in a device driver. Because they occur asynchronously, invoked by hardware rather than through normal control flow, InterruptHandler~s are notoriously hard to write (see RaceCondition). They are also commonly written in AssemblyLanguage because [IRQ]s tend to happen __very__ frequently (try <tt>procinfo -n 1 -D</tt> on [Linux] to see counts of the number of interrupts that your [Kernel] receives; <tt>-n 1</tt> means 1 second intervals, <tt>-D</tt> shows only the differences from one interval to the next)
.
One specific InterruptHandler is of paramount importance in modern OperatingSystem~s: the timer [IRQ] invokes a handler which drives the scheduler that distributes [CPU] time among tasks. Without this [IRQ] and its handler, preemptive multitasking would not be possible.
Note that this is different from a [Signal] handler, which is called by the [Kernel] through normal control flow means. Note that software can trigger interrupts, and InterruptHandler~s sometimes send [Signal]s. The concepts remain distinct, though, despite having many things in common. In general an interupt ([IRQ] on x86) is to the kernel as a signal is to an application.
-
-----
-On linux, try running
- procinfo -n 1 -D
-to see counts of the number of interrupts that your kernel receives, and other things such as the number of context switches. the "-n __1__" means update the display every second. The "-D" makes it show the differences from second to second, making the display much easier to read.