並行システム_E
|
Instructor(s) |
Yasushi Shinjo
|
E-Mail |
yas (AT) cs.tsukuba.ac.jp |
URL |
http://www.cs.tsukuba.ac.jp/~yas/cs/csys-2020/ |
Office hours |
Shinjo: 3E302 Thursday 6 |
Cource# |
01CH303 |
Area |
Software System |
Basic/Advanced |
|
Course style |
Lecture (including exercise) |
Term |
SprAB |
Period |
Fri3,4 |
Room# |
3B302 |
Keywords |
Multithreading, Remote Procedure Calls, Distributed
Shared Spaces, Transactions, and Concurrent Programming Languages. |
Prerequisites |
Knowledge about operating systems, networks, and
parallel architectures will be helpful. |
relation degree program competence |
Knowledge Utilization Skills,Management Skills,Communication Skills,Research Skills,Expert Knowledge |
Goal |
|
Outline |
This lecture describes programming styles and software techniques for building concurrent, parallel, and distributed systems. Students have to submit programming assignments about multithreading, interprocess communication, and distributed shared spaces. |
Course plan |
- 1. Concurrent, parallel and distributed programming
- Overview, sequential programs, concurrent programs, parallel programs, distributed programs, concurrent programming languages, synchronization, communication, hardware, polling, and interrupts.
- 2. Multithread programming (1)
- Concurrent Pascal, the fork-join model, monitors, mutex, and condition variables.
- 3. Multithread programming (2)
- Consistency models, ad hoc synchronization, thread-specific data, coroutines, and deadlocks.
- 4. Interprocess communication
- Communication primitives, marshaling, the socket API, and the client-server model.
- 5. Remote procedure calls
- Stubs, SunRPC, failures, NFS, XML Web services, Java RMI, dRuby, and MessagePack-RPC.
- 6. Multicast
- Distributed algorithms, multicast, ISIS, IP multicast, and the news system.
- 7. Tuple spaces
- Paradigm of concurrent programing, Linda, tuple spaces, JavaSpaces, and Ruby Linda (Rinda).
- 8. Concurrent programming languages (1)
- Concurrent Pascal, Communicating Sequential Processes, Ada,
distributed programming languages, Emerald, Voyager, and Dejay.
- 9. Concurrent programming languages (2)
- Concurrent object-oriented models, Actors, concurrent logic programming, Guarded Horn Clauses, and Jini.
- 10. Transactions
- Serializability, optimistic concurrency control, two phase lock,
two phase commit, Argus, and speculative executions.
|
Textbook |
No text book. Materials will appear on the course Web. |
References |
- 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
- Robert E. Filman and Daniel P. Friedman: "Coordinated Computing: Tools and Techniques for Distributed Software", Mcgraw-Hill College (1984).
|
Evaluation |
Every class has a quiz or report and the score is 10 up. By summing up the scores of 10 classes,
- 90 and over: A+
- 80-90: A
- 70-80: B
- 60-70: C
- less than 60: D
|
TF / TA |
|
Misc. |
Open in 2020, 2021 and following odd number years. |