講座の目的 | 大規模システムでは、並列処理や分散処理により構築されています。本講義では、並列処理、分散処理の基礎概念からプロセス間通信まで取り扱います。さらに、それらを用いたJava言語によるプログラミング構造までを習得していただきます。 |
---|---|
身に付ける ことができる 知識・技術 技能・能力等 |
並列処理、分散処理で必須となる排他制御や同期制御、プロセス間通信に関して、その理論、及びJavaでの実践的な実装方法が身に着けられます。 |
講座概要 | スターバックスでの接客システム等の現実世界での並列処理、分散処理を対象に、解決すべき課題を説明し、それをオブジェクト指向によりどのように解決できるかを解説します。実際にJavaで排他制御や同期制御、プロセス間通信の実装方法を説明後、銀行口座を対象とした排他制御や同期制御やチャットを対象としたプロセス間通信の実装を行います。本講座は、座学、及び実践的実習により行います。 |
講座内容 |
1回:並行プログラミング1(排他制御の必要性を説明できる)
2回:並行プログラミング2(臨界領域、協調型逐次プロセスといった術語が説明できる) 3回:プロセスとfork(forkシステムコールを使ったプログラムの意味を説明できる) 4回:スレッド(OS1の知識に基づきプロセスとの違いを説明できる) 5回:Java言語の基礎 (スレッドを持つ言語であるJavaの基礎概念を理解する) 6回:Javaでのスレッド (Java言語でスレッドを使ったプログラムの読み書きができる) 7回:プロセスの同期(1) (安全性や生存性といった用語を説明できる) 8回:プロセスの同期(2)(Dekkerのアルゴリズムを正確に記述できる) 9回:プロセスの同期(3) (セマフォについて説明できる) 10回:プロセスの同期(4) (モニタについてセマフォとの違いを説明できる) 11回:Java言語でのモニタに関する演習 (Java言語でモニタを使ったプログラムを作成できる) 12回:プロセス間通信(1)(通信を複数の観点から分類して説明できる) 13回:プロセス間通信(2) (ソケットを使ったプログラム、クライアントサーバモデルの説明ができる) 14回:プロセス間通信(3) (Java言語でソケットを使った通信プログラムの読解・作成ができる) 15回:Javaによる通信プログラム演習 |