Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ポーリングと割り込み

 ポーリングと割り込み

以下動画のテキストです
https://youtu.be/QY1O_XzKN64

Avatar for Satoru Takeuchi

Satoru Takeuchi

July 16, 2025
Tweet

More Decks by Satoru Takeuchi

Other Decks in Technology

Transcript

  1. おさらい • おさらい: デバイスへのアクセスの流れ 1. CPU: デバイスのレジスタを介してデバイスに処理を依頼 2. デバイス: なんらかの処理をする

    3. デバイス: 処理が完了する 4. デバイス: 処理の完了をCPUが認識できるようにする 5. CPUが完了を認識して、結果に応じた処理をする • 本動画のトピック: step4をどのように実現するか 1. ポーリング ▪ 📝 「その 100 デバイスドライバ」の方法 ▪ デバイスがレジスタの値を更新して、 CPUがその値を読む 2. 割り込み ▪ デバイスからCPUに処理の完了を通知する 2
  2. ポーリング: シンプルなもの 3 p0 p1 p 0 デバイスドライバ p 0

    時間 p1 p0 … CPU デバイス 依頼された処理を実行中 デバイスドライバに処 理を依頼 デバイスに処理を依頼 処理完了を示す値を レジスタに書き込む レジスタをひたすら読む 処理完了を検出 何もしていない 何もしていない
  3. ポーリング: 他のことをしながら定期的に実行 4 p0 p1 p 0 p 0 時間

    p1 CPU デバイス 依頼された処理を実行中 デバイスドライバに処 理を依頼 デバイスに処理を依頼 処理完了を示す値を レジスタに書き込む 所定間隔でレジスタ読み出し 処理完了を検出 デバイスドライバ p1 p1 p1 p1 p1 何もしていない
  4. 割り込み 5 p1 p0 p1 p 0 p 0 時

    間 p1 p0 … CPU デバイス 依頼された処理を実行中 デバイスドライバに 処理を依頼 デバイスに処理を依頼 処理完了を検出 デバイスドライバ デバイスドライバ 処理完了を通知 デバイスの処理完了まで 他の処理を動かせる 何もしていない 何もしていない
  5. どっちが使われている? • ほとんどの場合は割り込みを使う • 稀にポーリングを使うこともある ◦ 割り込みをサポートしていない ◦ 極めて低いレイテンシを求められる ▪

    e.g. NICのパケット処理に専用コアを割り当てる DPDK • 1つのドライバ内で両者を使い分けることもある ◦ 負荷が低いときは割り込み、高いときはポーリング 6