目次
- 並列プログラミング
- 講義資料
- 並列プログラミング
- 身の回りの並列プログラミング
- Webと並列プログラミング
- 並列と並行
- プリエンティティブと非プリエンティティブ
- ノンプリエンプティブなシステム
- 並列プログラミングの難しさ
- 並列プログラミングの嬉しいところ
- 簡単な並列プログラミング
- 8-Queen
- 8-Queenプログラム例
- queentest1.rbの実行
- 実行結果
- 8-Queenの実行 (サーバ)
- 8-Queenの実行 (クライアント)
- インタフェースと並列プログラミング
- 半二重通信 = 極端な同期通信
- 大型計算機のキーボード
- 現在の端末
- 全二重通信
- プロセスとスレッド
- プロセス
- スレッド
- スレッドライブラリ
- コルーチン
- コルーチン利用例
- プロセスの同期の必要性
- 計算が失敗する例
- プログラム実行結果
- 成功例
- 失敗例
- 危険な領域 (Critical Section)
- 修正したもの
- 修正したものの実行
- 同期が必要な場合
- 有名な同期問題
- 哲学者の食事問題
- 発生する可能性のある問題
- ソフトウェアによる同期プリミティブサポート
- ハードウェアによる同期サポート
- プロセスの待ち方
- 同期基本命令
- mutex
- セマフォ
- セマフォの構造
- セマフォの特徴
- モニタ
- モニタの例 (Ruby)
- CSP
- 並列処理言語
- 一般言語+並列化
- プロセス間通信
- 同期と通信の一体化
- Linda
- Linda
- Rinda
- Rindaによるプログラミング
- LindaRocketIO
- RocketIO
- 特殊な入力装置でブラウザを使う
- 並列プログラミングと他パラダイム
- まとめ
- 参考文献
- End