1. 第6回:並列プログラミング
  2. 並列プログラミング
  3. 身の回りの並列プログラミング
  4. Webと並列プログラミング
  5. 並列と並行
  6. プリエンティティブと非プリエンティティブ
  7. ノンプリエンプティブなシステム
  8. 並列プログラミングの難しさ
  9. 並列プログラミングの嬉しいところ
  10. 簡単な並列プログラミング
  11. 8-Queen
  12. 8-Queenプログラム例
  13. 実行結果
  14. 8-Queenの実行(サーバ)
  15. 8-Queenの実行(クライアント)
  16. 8-Queenの実行(サーバ)
  17. 8-Queenプログラム例
  18. 8-Queenの実行(サーバ)
  19. インタフェースと並列プログラミング
  20. 半二重通信 = 極端な同期通信
  21. 大型計算機のキーボード
  22. 現在の端末
  23. 全二重通信
  24. プロセスとスレッド
  25. プロセス
  26. スレッド
  27. スレッドライブラリ
  28. コルーチン
  29. コルーチン利用例
  30. プロセスの同期の必要性
  31. プログラム実行結果
  32. 成功例
  33. 失敗例
  34. 危険な領域(Critical Section)
  35. 失敗例
  36. 危険な領域(Critical Section)
  37. 失敗例
  38. 修正したもの
  39. 修正したものの実行
  40. 同期が必要な場合
  41. 有名な同期問題
  42. 哲学者の食事問題
  43. 発生する可能性のある問題
  44. ソフトウェアによる同期プリミティブサポート
  45. ハードウェアによる同期サポート
  46. プロセスの待ち方
  47. 同期基本命令
  48. mutex
  49. セマフォの構造
  50. セマフォの特徴
  51. モニタの例(Ruby)
  52. CSP
  53. 並列処理言語
  54. 一般言語+並列化
  55. プロセス間通信
  56. 同期と通信の一体化
  57. プロセス間通信
  58. 同期と通信の一体化
  59. Linda(1)
  60. Linda(2)
  61. Linda(1)
  62. Rinda
  63. Rindaによるプログラミング
  64. RocketIO
  65. 特殊な入力装置でブラウザを使う
  66. 並列プログラミングと他パラダイム
  67. まとめ
  68. 参考文献