Occam言語による マルチプリエンプティブシステムの 実装と検証 首都大学東京 理工学研究科 数理情報科学 福永研究室 田中 和人 目次 本研究の背景 開発環境 研究テーマ 並列プロセッサTPCORE 並列プログラミング言語Occam リアルタイムシステムとは TPCOREの問題点 マルチプリエンプティブシステム 検証とまとめ、今後の課題 2008/1/28 首都大学東京 修士論文発表会 2 本研究の背景(1) 当研究室では、並列プロセッサTPCOREを用いて 研究を行っている。 並列処理においては、処理する順番と処理を 切り替えるタイミングが重要であり、 このアルゴリズムをスケジューリングという。 このTPCOREで並列処理を実行する際、その処理に 時間的制限が加わると、スケジューリングの問題 からその制限を満たせない場合がある。 2008/1/28 首都大学東京 修士論文発表会 3 本研究の背景(2) これを解決するためのアルゴリズムがいくつか 提案されている。 本研究は、これらのアルゴリズムをTPCORE上で実行 させると共に、性能の検証を行ったものである。 2008/1/28 首都大学東京 修士論文発表会 4 並列プロセッサTPCORE 当研究室の過去の研究で開発した並列プロセッサ である。 英Inmos社の並列プロセッサTransputerをモデルに して開発されており、互換性を持っている。 2008/1/28 首都大学東京 修士論文発表会 5 並列プログラミング言語Occam(1) Transputerのために 開発された言語であり、 TPCORE上でも動作可能 逐次プロセスと並列プロセス の記述が可能 チャンネルを用いてプロセス 間の同期通信の記述が可能。 2008/1/28 CHAN OF INT ch1; PAR SEQ ‥‥‥‥ 逐 次 a := b+c プ 並 ch1 ! a ロ 列 ‥‥‥‥ セ プ ス SEQ ロ 逐 セ ‥‥‥‥ 次 ス ch1 ? x プ y := x ロ ‥‥‥‥ セ 首都大学東京 修士論文発表会 ス 例1 6 並列プログラミング言語Occam(2) プロセスには優先度を与える ことができ、重要なプロセスは 優先的に処理される。 優先度は二種類であり、 例2のように高優先度プロセス を指定する事ができる。 TPCORE、Transputerでは 複数プロセスの並列処理を 1台で行うことができる。 2008/1/28 PRI PAR p0 p1 p2 首都大学東京 修士論文発表会 高 低 低 例2 7 リアルタイムシステム システム : 入力に対して、いくつかのプロセス(処理)を経て出力する 主体 リアルタイムシステム: プロセスの完了に制限時間が加えられたシステム 2008/1/28 首都大学東京 修士論文発表会 8 TPCOREのスケジューリング プロセス実行順序 優先度順 (但し、同優先度の場合は起動要求順) 実行するプロセスの切り替え 実行プロセスが待機状態になったとき 低優先度プロセス実行時に高優先度プロセスが起動した 高優先度待ち行列 p1 p2 低優先度待ち行列 p0 p3 2008/1/28 p4 首都大学東京 修士論文発表会 9 TPCORE上でリアルタイムシステム 構築時の問題点 例) 同優先度のプロセス1、プロセス2が並列処理 プロセス2の 制限時刻超過 プロセス1: 起動時刻= 0[μs] 実行時間= 400[μs] 制限時刻=1000[μs] プロセス2: 起動時刻= 100[μs] 実行時間= 200[μs] 制限時刻= 500[μs] プロセス1 プロセス1実行中 プロセス2 0 100 200 300 プロセス2起動要求 2008/1/28 首都大学東京 修士論文発表会 400 500 600 時間 [μs] プロセス2制限時刻 10 マルチプリエンプティブシステム 全プロセスに異なる優先度を付加させる → 高優先度プロセスによる多重割り込み (マルチプリエンプト)が可能である Occam環境において提案されている アルゴリズムが3つあり、それらを使用した。 2008/1/28 首都大学東京 修士論文発表会 11 CFS(Central Fixed Scheduling) P0,P1,P2・・・の順に高優先度 制限時間の短い順に高優先度を与える セントラル方式 優先度付加機構 Kernel : 制御プロセス 各Pに優先度を付加 kernel P : システムに与えられた処理(タスク) を実際に行うプロセス P0 P1 2008/1/28 P2 ・・・ Pn-1 首都大学東京 修士論文発表会 12 CFS~P1が起動し実行される様子~ 1.「P1が起動」 → 「Kernelにシグナル送信」(起動を知らせる) 2.「下位Pからのシグナル受信を拒否」 3.「P1は実行を続ける」 4.「P1の実行が完了」→「Kernelに実行結果送信」(完了を知らせる) 5.「下位Pからのシグナル受信を許可」 下位Pは起動しても 同期通信のため、 シグナルを送信できないので 待機する Kernel P0 P1 P2 ・・・ Pn-1 実行 2008/1/28 首都大学東京 修士論文発表会 13 CFS~P0による割り込み時の様子~ 1.「P1が実行中、上位のP0が起動」 2.「P0より下位Pのシグナル受信を拒否」 3.「P0は実行を続ける」 4.「P0の実行が完了」→「Kernelに実行結果送信」(実行完了を知らせる) 5.「P1は実行再開」 P1は シグナル送信ができるようになる 2008/1/28 P1は実行の際の シグナル送信が できないので待機する。 Kernel P0 P1 実行 実行 P2 ・・・ Pn-1 首都大学東京 修士論文発表会 14 PFS (Pararell Fixed Scheduling) CFSを改良したもの 優先度の付加をKernelでなく各Pで行う パラレル方式 Kernel : 制御プロセス kernel P0 P1 P2 ・・・ Pn-1 P : システムに与えられた処理(タスク) を実際に行うプロセス。 優先度付加機構 2008/1/28 首都大学東京 修士論文発表会 15 PFS~ P1が起動し実行される様子~ 1.「P1が起動」→「下位Pへシグナル送信」 2.「P1は実行と上位Pからのシグナル受信待機を繰り返す」 3.「P1は実行完了」→「下位Pへシグナル送信」 4.「Kernelへ結果送信」 Kernel P0 P1 P2 ・・・ Pn-1 実行 2008/1/28 首都大学東京 修士論文発表会 16 PFS~上位Pによる割り込み時の様子~ 1.「P1が実行中、P0が起動」→「P0から下位Pへシグナル送信」 2.「P0実行完了」→「Kernelへ結果送信」 3.「下位Pへシグナル送信し、P1は実行再開」 Kernel P0 P1 P2 ・・・ Pn-1 実行 2008/1/28 首都大学東京 修士論文発表会 17 CDS(Central Deadline Scheduling) プロセスの構成はCFSと同様 Kernelに優先度を変更するための プログラムを追加している あるPが実行を完了した際、制限時間の近い順に 優先度を並べ替える 2008/1/28 首都大学東京 修士論文発表会 18 CDS~P0が起動し実行後、P1が起動~ 1.「P0が起動」 → 「Kernelにシグナル送信」(起動を知らせる) 2.「下位Pからのシグナル受信を拒否」 3.「P0は実行を続ける」→ 「P0の実行が完了」 4.「P1が起動」→ 「下位Pのシグナル受信を拒否」 5.「P1は実行を続ける」 P0は完了したため、制限時間 は延びた。次の制限時間まで の時間によって優先度が変わる Kernel 0 2 P0 実行 2008/1/28 1 0 2 1 P1 n-1 P2 Pn-1 実行 首都大学東京 修士論文発表会 19 CFS,CDS,PFSの検証 これらのシステムは3つとも問題点を解決できるが、 この中でより優れたシステムを検証する。 検証方法 プロセスPの個数を増やし、スケジューリング処理による負荷 の変化を観察し、その負荷がより少ないシステムが優れてい るといえる。 負荷 : その処理がプロセッサを使用する割合 2008/1/28 首都大学東京 修士論文発表会 20 検証結果(1) 40 X軸はプロセスPの個数 Y軸はプロセッサにかける負荷 35 30 25 CFS CDS PFS 20 15 10 5 0 1 2 3 4 5 6 このグラフはそれぞれのシステムにおいて 並列処理プロセスPを変えたとき(1~6個)の スケジューリングによる負荷の変化を計測したものである。 2008/1/28 首都大学東京 修士論文発表会 21 検証結果(2) PFSが最もスケジューリング処理による 負荷が少なく、優れたシステムであった。 → PFSではKernelを介さず、P同士のやりとりだけで どのPが起動しているかを知ることができる。 これにより、Kernel部分の負担が減ったと考えられる。 2008/1/28 首都大学東京 修士論文発表会 22 まとめ TPCOREへのリアルタイムシステム実装において、 優先度が足りなくなり、制限時間内に完了できな いプロセスが出てくるという問題を解決できる システムをいくつか実装した それらのシステムの中でプロセッサ負荷の観点 から最適なシステムがPFSであるという検証を 行い、ハードウェア実装の指針を提案した。 2008/1/28 首都大学東京 修士論文発表会 23 今後の課題 1. PFSよりもさらに最適なシステムの設計 2. 最適なシステム(のアルゴリズム)を ハードウェア的に実現 2008/1/28 首都大学東京 修士論文発表会 24
© Copyright 2024 ExpyDoc