University of Tsukuba | Grad. Scho. Syst. and Info. Eng. | Dept. Comp. Sci. | List of Courses
Yasushi Shinjo
E-Mail yas (AT)
Office hours Shinjo: 3E302 Thursday 6
Cource# 01CH303
Area Software System
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
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.
  1. Andrew S. Tanenbaum, Maarten Van Steen: "Distributed Systems: Principles And Paradigms", Prentice Hall (2006). ISBN-13: 978-0132392273
  2. Doug Lea: "Concurrent Programming in Java: Design Principles And Patterns", Addison-Wesley, (2009). ISBN-13: 978-0321256171
  3. Marko Boger: "Java in Distributed Systems: Concurrency, Distribution and Persistence", John Wiley & Sons Inc Print (2001). ISBN-13: 978-0471498384
  4. 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
Misc. Open in 2020, 2021 and following odd number years.