スレッド
実行制御の流れ(threads of control)を略してスレッドと呼ぶ。UNIXシステムではプログラムを実行すると,それは1つのプロセスと呼ばれる単位で実行される。最近ではアプリケーションプログラムの複雑化・肥大化,そしてマシンの複数プロセッサ化による並列処理が現実のものとなってきたために,従来のプロセス単位でのプログラム制御よりも,より小さい単位での実行が最適とされている。これがスレッドで,スレッド単位でのプログラム実行によってアプリケーションやOSの分散・高速化が容易となる。通常のプロセスは,プロセスの中に1つの実行制御の流れしかないが,1つのプロセスの中に複数の実行制御の流れをつくって,あたかも1つのプロセスを複数のCPUで実行するかのように複数の並行した動作を行わせることができる。この複数の制御の流れを,マルチスレッドと呼ぶ。全く同じプログラムを複数個立ち上げて複数のプロセスを動作させることに似ているが,このときは,プロセス間では別々なメモリ領域が利用される。マルチスレッドの場合は,プロセス全体のメモリ領域をすべて共有するという違いがある。
◆ 《固定優先度プリエンプティブ(Fixed Priority Preemptive)法》
スレッド(実行制御の流れ)ごとに固定の優先度を割当て,実行中のスレッドよりも優先度の高いスレッドが実行可能となった場合,実行中のスレッドからCPUを横取り(プリエンプション)してそのスレッドを実行させるようなCPUスケジューリング法。起動されるスレッドの組が固定の場合のリアルタイムでよく用いられる方法。
◆ 《マルチスレッド》
マルチタスク処理を行うOSに関して,CPUが行う処理の単位をスレッドという。1つのプログラムで,データを共有しながら複数の処理(スレッド)を並行して実行する機能。1つのプログラムが複数のスレッドを発行し,CPUは複数のプログラムが発行したスレッドを次々に処理することによって,同時に複数のプログラムが稼働しているように見せる。ただし,スレッドはOSが直接に管理するので,ユーザ側で気にすることはない。
◆ 《レートモノトニック(Rate monotonic)法》
スレッド(実行制御の流れ)に優先度を割り当てる方法の1つ。起動されるスレッドの組が固定で,各スレッドが周期的に動作し,その周期が固定である場合,周期の短いものから順に高い優先度を割り当てる方法。この方法を用いれば,プログラムを動作させる前に,スレッドが指定された周期を守って正しく動作するかどうかを理論的に検証することができる。
◆ 《最迫期限優先(Earliest deadline first)法》
レートモノトニック法と同様に,スレッドの実行優先度を決めるための方法。条件はレートモノトニック法と同様であるが,実行するためのデッドラインを次の実行の周期の開始時としたとき,デッドライン(期限)が最も迫っているものから順に高い優先度を与える方法。この方法でも,プログラムを動作させる前に,スレッドが指定された周期を守って正しく動作するかどうかを理論的に検証することができる。