4章割込みと例外Chapter 4. Interrupts and Exceptions

An interrupt is usually defined as an event that alters the sequence of instructions executed by a processor. Such events correspond to electrical signals generated by hardware circuits both inside and outside the CPU chip.

割込みはいつもプロセッサに実行される過程の命令をアレーとエベントに定義される。両方の内部と外部のCPUチープのハードウェアサーキットに発生される電子信号に従ってイベントなどである。

Interrupts are often divided into synchronous and asynchronous interrupts :

割込みはよく同期および非同期割込みに分類されます:

  • Synchronous interrupts are produced by the CPU control unit while executing instructions and are called synchronous because the control unit issues them only after terminating the execution of an instruction.

  • 同期割り込みは命令を実行中のうちにCPU制御部に発生されるし、命令実行終了の後だけに制御部が発行して同期と呼ばれます。
  • Asynchronous interrupts are generated by other hardware devices at arbitrary times with respect to the CPU clock signals.

  • 非同期割込みは他のハードウェアディバイスにCPUクロック信号を重視して、発生される。

Intel microprocessor manuals designate synchronous and asynchronous interrupts as exceptions and interrupts, respectively. We’ll adopt this classification, although we’ll occasionally use the term “interrupt signal” to designate both types together (synchronous as well as asynchronous).

Intel マイクロプロセッサマニュアルは同期割り込みと非同期割り込みがそれぞれに例外と割込みを明示します。私たちはこの分類を採用しますが時おき、両方型(同期と非同期)を明示するのに”割込み信号”概念を使います。

Interrupts are issued by interval timers and I/O devices; for instance, the arrival of a keystroke from a user sets off an interrupt.

割込みはインタバルタイムーやI/Oディバイスに発行され;例えば、ユーザのキー打ちから一つの割込みを成立します。

Exceptions, on the other hand, are caused either by programming errors or by anomalous conditions that must be handled by the kernel. In the first case, the kernel handles the exception by delivering to the current process one of the signals familiar to every Unix programmer. In the second case, the kernel performs all the steps needed to recover from the anomalous condition, such as a Page Fault or a requestvia an assembly language instruction such as int or sysenter for a kernel service.

例外、言い換えると、プローグラムリングエラーや異常な条件などの原因となって、カーネルにハーンドルされなければなりません。最初のケースの中で、カーネルはカレントプロセスに格Unixプログラムと同じな一つの信号を発達することで例外をハーンドル。二番目のケースの中で、カーネルは異常な条件から回復するために全くの必要なステップを実行し、

We start by describing in the next section the motivation for introducing such signals. We then show how the well-known IRQs (Interrupt ReQuests) issued by I/O devices give rise to interrupts, and we detail how 80 x 86 processors handle interrupts and exceptions at the hardware level. Then we illustrate, in the section “Initializing the Interrupt Descriptor Table,” how Linux initializes all the data structures required by the 80×86 interrupt architecture. The remaining three sections describe how Linux handles interrupt signals at the software level.

次の章で信号などの説明始めます。どうやってよく知名IRQs(割込み要求)I/Oディバイスに発行されて割り込みを挙げる、また、どうやって80x86プロセッサがハードウェアレバーで割込みと例外をハーンドルすることを示します。次に”Initializing the Interrupt Descriptor Table,”章で、どうやってLinuxが80x86割込みアーキテクチャにより要求される全部のデータ構造を初期化することについて説明します。残る三つの章でどうやってLinuxがソフトウェアレバーで割込み信号をハーンドルするのとを記述します。

One word of caution before moving on: in this chapter, we cover only “classic” interrupts common to all PCs; we do not cover the nonstandard interrupts of some architectures.

一つの注意:この章で全部のPCに一般的な”Classic”割込みだけをカバー;標準外割り込みのアーキテクチャをカバーしていない。

Leave a Reply