web-dev-qa-db-ja.com

割り込みの定義に関して、「非同期」および「同期」という用語はどういう意味ですか?

http://en.wikipedia.org/wiki/Interrupt からの引用:

割り込みは、注意の必要性を示す非同期信号または同期です。実行の変更の必要性を示すソフトウェアのイベント。

「非同期」と「同期」とはどういう意味か疑問に思いました。

7
Tim

その ウィキペディアの記事 が非同期割り込みについて言及している場合、彼らはデジタル回路に適用される(a)同期の古典的なクロック定義と非クロック定義を使用しています。

ロジックのすべての部分が(CPUのように)共通のクロックに接続されている場合、デジタル回路は同期していると言われます。すべてのクロックサイクルの立ち上がりまたは立ち下がりで、回路の状態が更新されます。一方、非同期デジタル回路はクロックされませんではなく、次の状態は現在の状態に依存します(そしてできるだけ早く切り替わります)。 同じ共通クロックを共有しない他の回路からのロジックの読み取りも非同期として定義できますが、他の回路に関して

非同期割り込みがトリガーされた場合、それはプロセッサが(おそらく次のクロックサイクルで)現在の実行環境を保存し、割り込み要求を処理することを意味します。これは、ハードウェア割り込み(プロセッサへの外部接続によってトリガーされる割り込み)の例です。記事に記載されているように、すべてのソフトウェア割り込みは、同期回路であるCPU自体によって開始されるため、技術的に同期しています。

CPUと同じ共通クロックを共有する外部デバイスはないため、すべての外部割り込みは非同期であると言えます。割り込みをトリガーしたデバイス may は同期回路である場合でも、CPUの観点から、これらの割り込みは非同期でトリガーされます(デバイスと共通のクロック信号を共有していません)。


実際の外部割り込み signal 自体は非同期ですが、すべてのCPU割り込みハンドラーは同期しており、割り込みのみを検出します次のクロックティックで同期システムのポイント(システムの状態を一緒に変更することのみを許可するため)。プロセッサが割り込みを処理する方法について知りたい場合は、 Intelのこの優れたリソース (具体的には、第3巻、第1部)を参照してください。

10
Breakthrough

Synchronous の語源辞典から、

1660年代、「存在するか、同時に起こっている」
L.L。同期から "同時"
Gkから。同期「同時に起こっている」
fromsyn-"together" +khronos "時間。"
「同じ連続する瞬間に繰り返される」という意味は、1670年から証明されています

asynchronousは「同期していない」ことを意味します。

ここで、interruptsのコンテキストですべてをもう一度読みます。

非同期割り込みは、手元のアクティビティに直接関係しているわけではありません。これを読んでいて、突然背後にノイズが聞こえると考えてください。あなたは振り返ります-それはあなたがそうするために非同期的に中断されたからです:-)

さて、ウィキペディアのページで割り込みを読んでいて、Word asynchronousが表示されている場合は、(上記のように)それを調べます。これは思考の流れの同期割り込みです。この割り込みの原因はあなたが読んだものでした-その結果、あなたは読むのをやめ、Wordを調べ、そして最終的にこれを読むことに戻りました。

3
nik

基本的に、これはカーネルまたはプログラムの注意を引く方法です。

例:プログラムにファイルをダウンロードさせたとしましょう。ファイルのダウンロード中もプログラムが応答するようにしたいので、プログラムに完了したことを伝える必要があります。ただし、その間、ダウンロードしたファイルの完了によって**中断**されるまで、プログラムは必要な処理を続行する必要があります。その後、必要なことは何でもします。事前定義された時間または事前定義された順序では発生しないため、非同期です。

同期とは、次に発生すると予想したことを意味します。非同期とは、いつ、またはそれが発生するかどうかがわからなかったことを意味します。

1
soandos