シラバス参照

 
 

0AL5434   Concurrent Systems

2.0 Credits, 1, 2 Year, SprAB Fri3,4
Yasushi Shinjo

Overview

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.

Remarks

Open in odd number academic years.
face-to-face

Course Type

lectures

Relation to Degree Program Competences

Knowledge Utilization Skills, Management Skills, Communication Skills, Research Skills,Expert Knowledge.

Course Objectives(Learning Outcomes)

Students understand essential methods for constructing distributed systems and historic important concepts. Students confirm their knowledge with programming.

Course Keywords

Concurrent, parallel, and Distributed Systems, Multithreading, Synchronization and Communication Patterns, Remote Procedure Calls, Distributed Shared Spaces, Concurrent Programming Languages, and Transactions.

Class Schedule

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.

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

Course Prerequisites

Knowledge about operating systems, networks, and parallel architectures will be helpful.

Grading Philosophy

Every class has a quiz or report.

Course Hours Breakdown and Out-of-Class Learning

Students have to submit a report for each class by its deadline.

Students must not include other people's reports, web search results, or outputs from generative AI in their submitted reports. Students use reports to confirm their understanding of the course. If students understand the course content, they can easily create the reports. Even if the answers in the reports are generally considered correct, they may be deemed incorrect as the responses for this course.

Requiring statements about generative AI on individual syllabus is likely an overreaction.  Even if instructors include guidelines on using generative AI in their individual course syllabi, it seems unlikely that students will respond accordingly.  With the emergence of generative AI, the question arises as to why students are attending university.  It is tedious for humans to do things generative AI can answer, or to have humans check outputs from generative AI.  Having graders check outputs of generative AI is disrespectful.  The  lecturer of this course hopes that the contents of this course will satisfy the intellectual curiosity of the students.

Textbooks, References,and Supplementary Materials

No text book. Materials will appear on the Web.

http://www.cs.tsukuba.ac.jp/~yas/cs/csys-2023/

1. Andrew S. Tanenbaum, Maarten Van Steen "Distributed Systems: Principles And Paradigms", Prentice Hall (2006). ISBN-13: 978-0132392273 https://tsukuba.summon.serialssolutions.com/advanced#!/search? q=ISBN:9780132392273
2. Doug Lea "Concurrent Programming in Java: Design Principles And Patterns", Addison-Wesley, (2009). ISBN-13: 978-0321256171 https://tsukuba.summon.serialssolutions.com/advanced#!/search? q=ISBN:9780321256171
3. Marko Boger "Java in Distributed Systems: Concurrency, Distribution and Persistence", John Wiley & Sons Inc Print (2001). ISBN-13: 978-0471498384 https://tsukuba.summon.serialssolutions.com/advanced#!/search? q=ISBN:9780471498384
4. Robert E. Filman and Daniel P. Friedman "Coordinated Computing: Tools and Techniques for Distributed Software", Mcgraw-Hill College (1984). https://tsukuba.summon.serialssolutions.com/advanced#!/search? q=ISBN:0070224390
5. R.E. フィルマン, D.P. フリードマン "協調型計 算システム-- 分散型 ソフトウェアの技法と道具立て", マグロウヒルブック (1986). ISBN-13: 978-4895010306 https://tsukuba.summon.serialssolutions.com/advanced#!/search? q=ISBN:9784895010306

Office Hours and Contact Information

Yasushi Shinjo Friday 6th hour. 3E302
yas@cs.tsukuba.ac.jp http://www.cs.tsukuba.ac.jp/~yas/

Other(Behavioral expectations and points to note for students during coursework)

Open in 2020, 2021 and following odd number years.

Relation to Other Courses

Teaching Fellow and/or Teaching Assistant