システムプログラミング 演習5:巡回バッファ
2011年10月24日
巡回バッファ
スレッド版の巡回バッファでは,条件変数を利用し,
- バッファが一杯のとき,enqueueするスレッドをenqueueできるまで待たせ,
- バッファが空のとき,dequeueするスレッドをdequeueできるまで待たせる
ことができる.
演習問題
- スライドショウのプログラムを参考に,
時間のかかる処理を隠蔽するスレッドプラグラムを作成し,
動作の確認を行いなさい.
時間のかかる処理についてはなんでも良い.
- mutexを利用して,銀行口座に関する入金,引き出し,
残高確認のライブラリを作成し,動作の確認を行いなさい.
動作確認にあたり,入金するスレッドを3つ,引き出しを行うスレッドを3つ作成し,
それらのスレッドが同時に実行されても預金額が正しいことの確認を行いなさい.
- スレッド版巡回バッファを複数スレッドで利用し,
動作の確認を行いなさい.
動作確認にあたり,例えば30エントリを追加するスレッドを2つ,
10エントリを取り出すスレッドを6つ作成し,
それらのスレッドが同時に実行されても正しく動作することの確認を行いなさい.
適宜printf(3)などで状態を出力させるようにするとよい.
提出締切は 10/30(日) 20:00とする.
レポートには,プログラム,実行結果,考察,授業の感想を必ず含めること.
課題は筑波大学 e-Lerning システム
にアップロードすること.
Osamu Tatebe
Last modified: Mon Oct 18 12:24:47 JST 2010