イベント
【英】event
イベントとは、システム内で偶発的あるいは非計画的に生じる操作や挙動・状態の変化およびそれらを非同期的に特定のモジュールに通知するための仕組みのことである。
コンピュータシステムは、外部にキーボード、マウス、その他各種の周辺機器、さらにはセンサーなどを持つことがある。これらの装置からシステムの内部へと、様々な入力がやってくる。またシステム内部の状態は、処理を進めるごとに変化していく。このような入力や状態の変化を、捕捉して伝達する仕組みがイベントである。捕捉されたイベントは、システム内部で非同期なデータとして扱われ、発生順にキュー(待ち行列)に格納され、処理を待つ。処理されたイベントはキューから取り除かれる。イベントデータ(またはイベントオブジェクト)は、その種類と内容を持つ。たとえば「キーボードイベント」はキーボードからの入力を意味し、そのデータを参照することにより、ユーザーがどのキーを押したか、ということが分かる。システムはそのイベントデータを処理する時、イベントの種類に応じて、イベントハンドラと呼ばれる制御プログラムを起動する。キューに処理が溜まっていくと、一般的には、どのイベントがどのタイミングで処理されるかは予想ができない。このような場合でもCPU時間の割り当てが計画的に制御可能であり、タイミングが予想可能なOSは、リアルタイムOSと呼ばれる。組み込みシステムでは、イベントの一定時間内での処理の保証が重要となるため、リアルタイムOSが用いられる。
イベントという概念を用いるシステムの構築方法はイベントドリブン(イベント駆動)と呼ばれる。ユーザーによるインタラクティブな操作を可能とするWindowsのGUI(グラフィカルユーザーインターフェース)は、イベント駆動の例である。一般的に、イベント駆動の仕組みはインタラクティブなシステム、特にウィンドウシステムのようなGUIとの親和性が高い。また、組み込みシステムでセンサー情報を元にリアルタイムな制御を行うシステムにおいても、イベント駆動の構成を持つものが多い。自動車のエンジンコントロールやエコドライブ制御、航空機の姿勢制御といった、さまざまな制御系でイベント駆動が用いられている。
Webブラウザ上で動作するJavaScriptもイベント概念を持っている。例えば「マウスを押す」という操作に対して、Webブラウザはマウスイベントを発生させ、JavaScriptに通知する。JavaScript上に「OnClick()」というイベントハンドラを定義しておくと、このハンドラが呼ばれ、定義した処理が実行される。このような仕組みによって、動きの乏しかったWebアプリケーションに、インタラクティブで見栄えの良い、ダイナミックな処理をさせることが可能となっている。
|