Penguin
Diff: InterruptHandler
EditPageHistoryDiffInfoLikePages

Differences between current version 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
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.