| 
       
	並行システム       
     | 
  
  
    | 担当教員 | 
    
       
	新城靖、追川修一       
     | 
  
  
    | 電子メール | 
    
      新城靖:yas (AT) cs.tsukuba.ac.jp,追川修一:shui (AT) cs.tsukuba.ac.jp     | 
  
  
    | URL | 
    
      http://www.cs.tsukuba.ac.jp/~yas/sie/csys-2011/     | 
  
  
    | オフィスアワー | 
    
      新城: 3E302 木曜日6限     | 
  
  
    | 科目番号 | 
    
      01CH303     | 
  
  
    | 分野 | 
    
      ソフトウェアシステム     | 
  
  
    | 授業形態 | 
    
      講義(演習を含む)     | 
  
  
    | 学期 | 
    
      第3学期     | 
  
  
    | 時限 | 
    
      木2,4     | 
  
  
    | 教室 | 
    
           | 
  
  
    | 授業概要 | 
    
       並行システム、並列システム、分散システムを構築す
るためのプログラミングのスタイルとソフトウェア技術
について論じる。スレッド、プロセス間通信、および、
分散共有空間等を使ったプログラミングを課す。     | 
  
  
    | キーワード | 
    
      並行・並列・分散システム、マルチスレッド、同期・通
信パタン、遠隔手続き呼び出し、分散共有空間、並行プ
ログラミング言語、トランザクション。     | 
  
  
    | Keyword | 
    
      Concurrent, Parallel, and Distributed Systems,
Multithreading, Synchronization and Communication
Patterns, Remote Procedure Calls, Distributed
Shared Spaces, Concurrent Programming Languages,
and Transactions.     | 
  
  
    | 予備知識 | 
    
       オペレーティング・システム、ネットワーク通信、並
列アーキテクチャに関する基本的な知識を有することが
望ましい。     | 
  
  
    | 授業内容 | 
    
      
	- 1.並行・並列・分散プログラミングとは
	
 - 概要、逐次プログラム、並行プログラム、並列プ
ログラム、分散プログラム、並行プログラミング言語、
同期、通信、ハードウェア、ポーリング、割込み
	
 - 2.マルチスレッド・プログラミング
	
 - Concurrent Pascal、fork-joinモデル、モニタ、
mutex、条件変数、 Pthread、Java、マスタ・スレー
ブ、バリア同期、タスクバッグ、スレッド固有データ,
読み書きロック, デッドロック
	
 - 3.遠隔手続き呼出し
	
 - SunRPC、障害対策, NFS, 無状態、冪等性、XML
Web サービス、Java RMI、dRuby
	
 - 4.分散共有空間
	
 - タプル空間、Linda、JavaSpaces、Ruby
Linda(Rinda) 、名前サービス、分散ハッシュ表
	
 - 5.並行プログラミング言語
	
 - Communicating Sequential Processes, Ada,
Emerald, Voyager, Dejay, 並行オブジェクト指向モデ
ル, Actors, Scala, 並行論理プログラミング, Guarded
Horn Clauses, Jini
	
 - 6.トランザクション
	
 -  直列化可能, 楽観的並行性制御, Argus, 投機的実行
  
     | 
  
  
    | 教科書 | 
    
      なし(講義資料をweb上で配布)。     | 
  
  
    | 参考書 | 
    
      
-  Andrew S. Tanenbaum, Maarten Van Steen:
"Distributed Systems: Principles And Paradigms",
Prentice Hall (2006).
ISBN-13: 978-0132392273
 -  Doug Lea: "Concurrent Programming in Java:
Design Principles And Patterns", Addison-Wesley,
(2009). ISBN-13: 978-0321256171
 -  Marko Boger: "Java in Distributed Systems:
Concurrency, Distribution and Persistence", John
Wiley & Sons Inc Print (2001). ISBN-13:
978-0471498384
 -  R.E. フィルマン, D.P. フリードマン: "協調型計
算システム -- 分散型ソフトウェアの技法と道具立て",
マグロウヒルブック (1986). ISBN-13: 978-4895010306 
  
     | 
  
  
    | 成績評価 | 
    
      各回のクイズ(小テスト)、または、レポートの結果を
合算して行う。     | 
  
  
    | TF・TA | 
    
           |