Personal tools
You are here: Home LTS 並行システムの表現手法 クリティカルセクション
Document Actions

パターン2: クリティカルセクション

by takeuchi last modified 2008-11-24 20:10

このパターンは,クリティカルセクションを扱うモデルをわかりやすく表現します.クリティカルセクションとは,計算機上において単一のリソースに対して,複数の処理が同時期に実行されると破綻をきたす部分を指します.

このパターンで表せる例として,"複数人がリソースを共有する問題"や,"Mutex" などがあげられます.

サンプル

太郎と花子が1台のプリンタを共有する,という問題の FSP と LTS を以下に表します.

RESOURCE = (acquire->release->RESOURCE).
USER = (acquire->use->release->USER).
||RESOURCE_SHARE = (tarou:USER || hanako:USER || {tarou,hanako}::RESOURCE).

流れは以下のとおり.

  1. USER が資源を要求する.
  2. 使用する.
  3. 資源を解放する.

しかし,上の LTS ではどこがクリティカルセクションなのかがわかりにくい.よって,以下の図のように配置しなおすことによって,リソースを共有するアクション,開放するアクション,クリティカルセクション部のアクションをわかりやすくなる.