Concurrent and Distributed Systems
Objectives:
The course covers aspects of design and programming of Concurrent and Distributed Systems and Applications. The course consists of the following main subject areas: (a) Operating and Distributed Systems: fundamental issues of inter-process communications (b) Inter-networking infrastructures and basic middlware (γ) Environments and techniques for concurrent and distributed programming (d) Current applications and case studies – World Wide Web and Computer Cloud.
Skills:
Development of concurrent and distributed systems and applications
Prerequisites:
Computer Programming, Operating Systems, Computer Networks
Content:
Operating systems and fundamental issues of inter-process communications: Processes, Threads, Inter-Process Communication, Basic Issues and Techniques (Mutual Exclusion, Locks, Semaphores, Monitors, Deadlocks, Starvation), Messages and Message Queues, Client-Server model in Operating Systems. Distributed Systems (Logical Time, Mutual Exclusion, Distributed Deadlocks, Leader Selection, Distributed File Systems, Distributed Name Servives etc.) Virtual Machines and Virtualization.
Inter-Networking and basic moddleware: Internet adn Distributed Systems, TCP/IP Stack – Services, Sockets and Client-Server Model, Basic Protocols and Services, 3-Tier Architecture, Remote Procedure Call, Distributed Objects, Heterogeneous Distributed Systems, Web Protocols, Web Applications and Services. Peer-to-peer Systems, Introduction to Computer Cloud.
Languages, Environments and Programming Techniques: Programming Multithreaded Applications, Concurrent Data Structures, Higher Level Structures and Programming Models, Socket Programming, Distributed Objects Programming, Heterogeneous Distributed Programming, Peer-to-peer Application Programming, Web Applications and Services Programming, Map-Reduce Applications, Cloud Application Programming.
Textbooks:
Distributed Systems: Concepts and Design (5th edition)
George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair
Addisson Wesley, 2011, ISBN 0-13-214301-1
Concurrency - State Models & Java Programs, J. Magee, J. Kramer, Wiley, 1999, ISBN: 0471987107
Distributed and Cloud Computing: From Parallel Processing to the Internet of Things Kai Hwang, Jack Dongarra and Geoffrey C. Fox.
Morgan Kaufmann, 2011, ISBN 9780123858801
Κατανεμημένα Συστήματα με Java, (3η εκδοση)
Κάβουρας ΙΚ, κ.α
Εκδ Κλειδαριθμος, 2011, ISBN 978-960-461-463-9
Παράλληλα και Κατανεμημένα Συστήματα σε Java
Μιχαηλίδης Π. Μαργαρίτης Κ.
Πανεπιστημιακές Παραδόσεις, 2009