商品コード:
RLB220503
JCSPプログラミング技法~Cloud Computing / Manycore時代のプログラミング
販売価格(税込):
49,500
円
ポイント:
0
Pt
■体裁:B5判、155ページ
■発刊:2013/01
■ISBNコード:978-4886574022
■トリケップス
*JCSPサンプルプログラム付
JavaプログラミングはWebサーバからCloud Computing だけでなく、組み込みシステムにも広く採用されています。アプリケーションが大規模化し複雑化するに従って、アーキテクチャ設計との効率の良いネットワーク通信と高度で性能の良い並行処理技法が要求されます。
ところが、Javaの並行処理プログラミング技法はマルチスレッドが中心であります。このマルチスレッドによる並行処理はメモリでの競合問題があり、スレッドは非決定的な振る舞いをすることは広く認識されています。そこで注目されていますのが、1996年以来英国ケント大学で継続して開発されています、CSPモデルに基くJava並行プログラミング技法です。CSPとは、Communicating Sequential Processの略で1978 年にオックスフォード大学のTony Hoareによって、考案されたプロセス代数であり、体系化された並行処理の代表的な手法です。
本書の構成は、第1章でJCSPについて歴史的な背景、マルチスレッドの問題点、プロセスとチャネルについて述べます。第2章ではCSP/occamプロセスの代数的法則について述べます。第3章でJCSPプログラミングの基本的なクラスライブラリとそれを使ったCSPプロセスのデザインパターンについて述べます。このデザインパターンは比較的小さな規模のものですが、さらに大きなプロセスを構築する際の基本構造になります。第4章ではJCSPのプログラムをLAN上で動作させる方法について述べます。第5章では簡単な応用例を説明いたします。
【執筆者】
松井和人(まついかずと)
NPO 法人CSP コンソーシアム 理事 <略歴> 米国ミネソタ大学コンピュータ科学科卒業。1987 年に英国半導体メーカInmos 社に入社し産業界、大学などに並列処理プロセッサTransputer、occam のプログラミングの指導をする。その後、仏伊STMicroelectronics 社に買収されてからCSP モデルのSoC(System-on-Chip)、高速シリアルリンク(IEEE1394/1355) などのテクノロジーを推進する。 WoTUG 委員会(http://www.wotug.org/) のメンバーとして1989 年から1996 年までのTransputer/occam国際会議において東京大学國井利泰名誉教授、東北大学野口正一名誉教授の下で会議の運営に携わり、オランダのIOS Press社より、論文集を作成した。1989年に英国大使館の協力でOxford大学のJeff Sanders他数名の先生方をUKから招聘し、東京大学山上会館にて3日間のCSPの講義を開催した。2001 年から独立し、現在NPO 法人CSP コンソーシアム理事、2011 年より法政大学大学院情報科学科の兼任講師を務める。CSP 研究会の幹事として会議の運営とCSP/occam モデルによる並行プログラミング技法の啓蒙を行っている。
【目次】
まえがき
第1章 JCSPについて
1.1 歴史的経緯
1.2 Java モニタについて
1.3 マルチスレッドの問題点に対する提案
1.4 JCSPとjava.util.concurrentの違い
1.5 JCSPの利点
1.6 ダウンロード
1.7 プロセスとチャネルの基本構造
1.8 設計方法
1.9 同期通信
1.10 状態遷移との関係
第2章 CSPプロセスと代数的法則
2.1 CSPプロセスの表記
2.2 occamプロセス
2.3 代数的法則
2.4 occamプログラミングの法則
2.4.1 代入
2.4.2 交換法則(Commutativity)
2.4.3 結合法則(Associativity)
2.4.4 単一法則(Singurality)
2.4.5 分配法則(Distributivity)
2.4.6 詳細化(Refinement)
2.5 JCSPのクラス
第3章 JCSP Base Edition
3.1 Parallelクラス
3.2 簡単な並行処理
3.2.1 Stop-and-Waitプロトコル
3.2.2 単一バッファ
3.2.3 キュー(Queue)
3.2.4 Proc1to3
3.2.5 Proc3to1
3.2.6 One2Any
3.2.7 Any2One
3.3 階層化した並行処理
3.3.1 パイプ(Pipe)
3.3.2 100段のパイプ(Pipe100)
3.3.3 階層化プログラム
3.3.4 パイプ(Newton法)
3.3.5 パイプ(Sort)
3.3.6 パイプ(同期型入出力)
3.4 同期した送受信
3.4.1 同期送信(parSend)
3.4.2 同期受信(parRead)
3.5 CSTimerクラス
3.6 Alternativeクラス
3.6.1 一般的な例(Select)
3.6.2 複数のチャネルがReady の場合
3.6.3 priSelectメソッドの場合
3.6.4 fairSelectメソッドの場合
3.6.5 アクティブゲート(Active Gate) の制御
3.7 ガード(Guard)
3.7.1 タイムアウト
3.8 Barrierクラス
3.9 Bucketクラス
3.10 Poisonクラス
第4章 JCSP Network Edition
4.1 概要
4.2 ネットワークプログラムの基本
4.3 JCSP Network Editionのプログラム
4.3.1 Proc1to3のNET版
4.3.2 Proc3to1のNET版
4.3.3 パイプ(Pipe4)のNET版
4.3.4 Any2OneのNET版
4.3.5 One2AnyのNET版
4.3.6 AlternativeのNET版
第5章 応用編
5.1 アクティブなAWT
5.1.1 DisplayList
5.1.2 ActiveCanvas
5.1.3 WhiteBoard
5.1.4 Scrollbar
5.1.5 ScrollbarNet
参考文献