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, 01CJ217
Area Software System
Basic/Advanced 専門科目
Course style Lecture (including exercise)
Term FallAB
Period Fri1,2
Room# 3B303
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.
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
Sequential programs, concurrent programs, parallel programs, distributed programs, synchronization, communication, hardware, polling, interrupts.
2. Multithread programming
Concurrent Pascal, the fork-join model, monitors, mutex, condition variables, Pthreads, Java, barrier synchronization, task bags, thread-specific data, read-write locks, deadlocks.
3. Remote procedure calls
Communication primitives, marshaling, SunRPC, XML Web services, Java RMI, dRuby, Voyager, XMLHttpRequest, REST.
4. Group communications
IP multicast, news systems, ISIS, Jini, mDNS.
5. Distributed shared spaces
Tuple spaces, Linda, JavaSpaces, Ruby Linda (Rinda), distributed hash tables.
6. Concurrent programming languages
Communicating Sequential Processes, Ada, concurrent object-oriented models, Actors, Scala, concurrent logic programming, Guarded Horn Clauses.
7. Transactions
Serializability, optimistic concurrency control, speculative executions, Argus.
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 On the basis of quizzes and reports. No examination.