1. |
Concurrent, parallel and distributed programming: Overview, sequential
programs, concurrent programs, parallel programs, distributed programs,
concurrent programming languages, synchronization, communication,
hardware, polling, and interrupts.
|
Instructor:
|
Shinjo Yasushi |
2. |
Multithread programming (1): Concurrent Pascal, the fork-join model,
monitors, mutex, and condition variables.
|
Instructor:
|
Shinjo Yasushi |
3. |
Multithread programming (2): Consistency models, ad hoc synchronization,
thread-specific data, coroutines, and deadlocks.
|
Instructor:
|
Shinjo Yasushi |
4. |
Interprocess communication: Communication primitives, marshaling, the
socket API, and the client-server model.
|
Instructor:
|
Shinjo Yasushi |
5. |
Remote procedure calls: Stubs, SunRPC, failures, NFS, XML Web services,
Java RMI, dRuby, and MessagePack-RPC.
|
Instructor:
|
Shinjo Yasushi |
6. |
Multicast: Distributed algorithms, multicast, ISIS, IP multicast, and the news system. |
Instructor:
|
Shinjo Yasushi |
7. |
Tuple spaces: Paradigm of concurrent programing, Linda, tuple spaces,
JavaSpaces, and Ruby Linda (Rinda).
|
Instructor:
|
Shinjo Yasushi |
8. |
Concurrent programming languages (1): Concurrent Pascal, Communicating
Sequential Processes, Ada, distributed programming languages, Emerald,
Voyager, and Dejay. |
Instructor:
|
Shinjo Yasushi |
9. |
Concurrent programming languages (2): Concurrent object-oriented models,
Actors, concurrent logic programming, Guarded Horn Clauses, and Jini.
|
Instructor:
|
Shinjo Yasushi |
10. |
Transactions: Serializability, optimistic concurrency control, two phase
lock, two phase commit, Argus, and speculative executions.
|
Instructor:
|
Shinjo Yasushi |