pythonのお勉強(割り込みとポーリング)

〜〜〜〜〜〜〜〜〜〜

ポーリング制御(polling )と割り込み制御

〜〜〜〜〜〜〜〜〜〜

参考サイト

https://www.uquest.co.jp/embedded/learning/lecture02.html

ラズパイで電子工作をやり時初めてすぐの時に作ったジャンケンゲームで。

キーボードの入力を待ちながらブレボ上の押しボタンスイッチの入力を見ると言うのをやろうとして失敗した経験がある。

input関数では入力のときに待ち「が発生してそこで処理が止まってしまった。

じゃあそれを解決するにはどうしたらいいのよ?

で、今回のお勉強。

参考サイトに詳しく載っているが

ポーリング制御は見回り制御で、例えばキーを押されてるかを見回って押されてなければ見回りを続ける。

inputの場合は、早くしろよゴルァ!と待ってる状態

http://i.imgur.com/4iYDWaG.gif

こんな感じ。だから止まっちゃう。

ポーリング制御のメリット

ハードウエアに依存しない。ソフトウエアだけで実現できる。

ループするだけなので、簡単に実装できる。

割り込みを発生できないイベントも監視できる。

ポーリングのデメリット

チェック周期が長いとイベントの発生からタイムラグが出たり見逃したりする恐れがある

で、次に割り込み制御

割り込みのイベントをあらかじめ決めておいてそれがはじまると先にそれをこなして元のワーク情報を元に元の処理を実行する

家で作業をしている #プログラム実行中

やきうが始まる #あらかじめ決めていた割り込みイベントが実行される

せや、スレ立てしながらやきう見たろ! #割り込みの作業開始

やきうが終わる #割り込み作業の終了

なにやってたんやっけ・・・? #元やっていた作業戻る

こんな感じ。

割り込み制御にはハードウェア(CPU)とソフトウェア(OS)(イベントドリブン)がある。

割り込みは一種のマルチタスク

割り込み制御のデメリット

ハードとソフトに依存する

割り込みパンドラにはご法度がある

メリットとデメリットによって使い分けようね!