Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ポーリングと割り込み
Search
Satoru Takeuchi
PRO
July 16, 2025
Technology
1
150
ポーリングと割り込み
以下動画のテキストです
https://youtu.be/QY1O_XzKN64
Satoru Takeuchi
PRO
July 16, 2025
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
0
59
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
150
様々なファイルシステム
sat
PRO
0
300
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
380
ソースを読むプロセスの例
sat
PRO
22
17k
メモリマップトファイル
sat
PRO
1
140
「Linux」という言葉が指すもの
sat
PRO
4
230
APIとABIの違い
sat
PRO
5
240
ファイルシステムへのアクセス方法
sat
PRO
0
94
Other Decks in Technology
See All in Technology
「O(n log(n))のパフォーマンス」の意味がわかるようになろう
dhirabayashi
0
150
コミュニティと共に変化する 私とFusicの8年間
ayasamind
0
480
大規模プロダクトで実践するAI活用の仕組みづくり
k1tikurisu
4
1.1k
Moto: Latent Motion Token as the Bridging Language for Learning Robot Manipulation from Videos
peisuke
0
150
Post-AIコーディング時代のエンジニア生存戦略
shinoyu
0
280
Flutterで実装する実践的な攻撃対策とセキュリティ向上
fujikinaga
2
410
旧から新へ: 大規模ウェブクローラの Perl から Go への移行 / YAPC::Fukuoka 2025
motemen
3
890
Rubyist入門: The Way to The Timeless Way of Programming
snoozer05
PRO
6
450
コード1ミリもわからないけど Claude CodeでFigjamプラグインを作った話
abokadotyann
1
160
Logik: A Free and Open-source FPGA Toolchain
omasanori
0
300
AIを前提に、業務を”再構築”せよ IVRyの9ヶ月にわたる挑戦と未来の働き方 (BTCONJP2025)
yueda256
1
690
はじめての OSS コントリビューション 〜小さな PR が世界を変える〜
chiroito
4
310
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
970
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Scaling GitHub
holman
463
140k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
118
20k
Why Our Code Smells
bkeepers
PRO
340
57k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Transcript
ポーリングと割り込み Jul. 16th, 2025 Satoru Takeuchi X: satoru_takeuchi 1
おさらい • おさらい: デバイスへのアクセスの流れ 1. CPU: デバイスのレジスタを介してデバイスに処理を依頼 2. デバイス: なんらかの処理をする
3. デバイス: 処理が完了する 4. デバイス: 処理の完了をCPUが認識できるようにする 5. CPUが完了を認識して、結果に応じた処理をする • 本動画のトピック: step4をどのように実現するか 1. ポーリング ▪ 📝 「その 100 デバイスドライバ」の方法 ▪ デバイスがレジスタの値を更新して、 CPUがその値を読む 2. 割り込み ▪ デバイスからCPUに処理の完了を通知する 2
ポーリング: シンプルなもの 3 p0 p1 p 0 デバイスドライバ p 0
時間 p1 p0 … CPU デバイス 依頼された処理を実行中 デバイスドライバに処 理を依頼 デバイスに処理を依頼 処理完了を示す値を レジスタに書き込む レジスタをひたすら読む 処理完了を検出 何もしていない 何もしていない
ポーリング: 他のことをしながら定期的に実行 4 p0 p1 p 0 p 0 時間
p1 CPU デバイス 依頼された処理を実行中 デバイスドライバに処 理を依頼 デバイスに処理を依頼 処理完了を示す値を レジスタに書き込む 所定間隔でレジスタ読み出し 処理完了を検出 デバイスドライバ p1 p1 p1 p1 p1 何もしていない
割り込み 5 p1 p0 p1 p 0 p 0 時
間 p1 p0 … CPU デバイス 依頼された処理を実行中 デバイスドライバに 処理を依頼 デバイスに処理を依頼 処理完了を検出 デバイスドライバ デバイスドライバ 処理完了を通知 デバイスの処理完了まで 他の処理を動かせる 何もしていない 何もしていない
どっちが使われている? • ほとんどの場合は割り込みを使う • 稀にポーリングを使うこともある ◦ 割り込みをサポートしていない ◦ 極めて低いレイテンシを求められる ▪
e.g. NICのパケット処理に専用コアを割り当てる DPDK • 1つのドライバ内で両者を使い分けることもある ◦ 負荷が低いときは割り込み、高いときはポーリング 6
まとめ • デバイスの処理完了を待つしくみ ◦ ポーリング: CPUがデバイスのレジスタを定期的に読み出す ◦ 割り込み: デバイスがCPUに処理の完了を通知する •
主に割り込みを使うが、ポーリングを使う場合もある 7