2.0 単位, 1・2 年次, 春AB 金3,4
新城 靖
並行システムについて紹介し、並行分散アプリケーションの構築に必要なソフトウェア技術につい て論じる。具体的には、マルチスレッド・プログラミングにおけるモニタと条件変数、遠隔手続き呼出し、グループ通信、分散共有空間、および、トランザク ションについて述べる。また、歴史的に重要な並行プログラミング言語を紹介する。具体的には、Concurrent Pascal、Communicating Sequential Processes、Ada、 並行オブジェクト指向モデル、Actors、Emerald、Scala、 並行論理プログラミング, Guarded Horn Clauses、Argus 等を紹介する。プログラミングを通じて、理解を確認する。具体的には、スレッド、遠隔手続き呼出し、分散共有空間を使った並行プログラムの作成を課題とす る。
01CH303と同一。
講義
知の活用力, マネジメント能力, コミュニケーション能力, 研究力, 知識力。
並行システムを構築する基本的な手法、および、歴史的に重要な概念を理解する。プログラミングを通じて、理解を確認する。
並行・並列・分散システム, マルチスレッド, 同期・通信パタン, 遠隔手続き呼び出し, 分散共有空間, 並行プログラミング言語, トランザクション。
並行システム、並列システム、分散システムを構築するためのプログラミングのスタイルとソフトウェア技術について論じる。スレッド、プロセス間通信、および、分散共有空間等を使ったプログラミングを課す。
第1回 | 並行・並列・分散プログラミングとは: 概要、逐次プログラム、並行プログラム、並列プログラム、分散プログラム、並行プログラミング言語、同期、通信、ハードウェア、ポーリング、割り込み | ||
---|---|---|---|
第2回 | マルチスレッド・プログラミング(1): ConcurrentPascal、fork-joinモデル、モニタ、mutex、条件変数 | ||
第3回 | マルチスレッド・プログラミング(2): 一貫性モデル、アドホック同期、スレッド固有データ、コルーチン、デッドロック | ||
第4回 | プロセス間通信: 通信プリミティブ、マーシャリング、SocketAPI、クライアントサーバモデル | ||
第5回 | 遠隔手続き呼び出し: スタブ、SunRPC、障害対策、NFS、XMLWebサービス、JavaRMI、dRuby、MessagePack-RPC | ||
第6回 | マルチキャスト: 分散アルゴリズム、マルチキャスト、ISIS、IPマルチキャスト、ニュース・システム | ||
第7回 | タプル空間: 並行プログラミングのパラダイム、Linda、タプル空間、JavaSpaces、RubyLinda(Rinda) | ||
第8回 | 並行プログラミング言語(1): ConcurrentPascal、CommunicatingSequentialProcesses、Ada、分散型プログラミング言語、Emerald、Voyager、Dejay | ||
第9回 | 並行プログラミング言語(2): 並行オブジェクト指向モデル、Actors、並行論理プログラミング、GuardedHornClauses、Jini | ||
第10回 | トランザクション: 直列化可能、楽観的並行性制御、2相ロック、2相コミット、Argus、投機的実行 |
オペレーティング・システム、ネットワーク通信、並列アーキテクチャに関する基本的な知識を有することが望ましい。
毎回のクイズ(小テスト)、または、レポートにより評価を行う。基準を満たさなかったレポートは、再提出を求めることがある。
授業毎に示す課題についてレポートを作成し、締切までに提出すること。
教科書を用いない。講義資料をwebで配布する。
http://www.cs.tsukuba.ac.jp/~yas/cs/csys-2020/
参考書
1. Andrew S. Tanenbaum, Maarten Van
Steen,"Distributed Systems: Principles And Paradigms", Prentice Hall
(2006). ISBN-13: 978-0132392273
2. Doug Lea,"Java in Distributed
Systems: Concurrency, Distribution and Persistence", John Wiley &
Sons Inc Print (2001). ISBN-13: 978-0471498384
3. Marko Boger,"Java
in Distributed Systems: Concurrency, Distribution and Persistence", John
Wiley & Sons Inc Print (2001). ISBN-13: 978-0471498384
4. Robert
E. Filman and Daniel P. Friedman,"Coordinated Computing: Tools and
Techniques for Distributed Software", Mcgraw-Hill College (1984).
金曜6限
3E303 yas@cs.tsukuba.ac.jp http://www.cs.tsukuba.ac.jp/~yas/
2020年度開講。2021年度より奇数年度開講。