Università degli Studi di Napoli "Parthenope"

Teaching schedule

Academic year: 
2016/2017
Belonging course: 
Course of Master's Degree Programme on APPLIED COMPUTER SCIENCE (MACHINE LEARNING AND BIG DATA)
Disciplinary sector: 
INFORMATICS (INF/01)
Credits: 
6
Year of study: 
2
Teachers: 
Cycle: 
Second semester
Hours of front activity: 
48

Language

Italian

Course description

The aim of the course DISTRIBUTED OPERATING SYSTEMS and LAB S.O.D. is to provide the basic knowledge required for proper design, installation, configuration, management and use of “Distributed Operating Systems”. To this end, after a brief introduction to the basic principles of computer networks and to the issues concerning the inter process communication, the course provides a detailed discussion of the distributed operating systems’ modules design techniques. For a better understanding of the discussed issues, the course also includes laboratory activities aimed at exemplifying, through important case studies, the adopted technological solutions and to provide basic knowledge about the techniques as well as the systems, the techniques and the tools currently employed in the use of distributed systems.
Knowledge and understanding: The student must demonstrate the knowledge and understanding of the theoretical and practical aspects of network infrastructures, the possible limitations that these aspects bring about the services they offer, with particular regard to modern programming paradigms, development environments and SW tools necessary for the development of efficient distributed applications.
Applying knowledge and understanding: The student must demonstrate to be able to use the acquired knowledge to correctly identify and produce solutions to real-world problems often found in the management/use of distributed operating systems.
Making judgements: In addition to being able to independently design and implement solutions based on distributed systems, the student must also be able to evaluate and validate their effectiveness.
Communication skills: The student must be able to participate actively in workgroups both in design/management activities and in the deployment/testing/documentation of distributed systems. In particular, with reference to the ability to write an appropriate documentation, it is crucial to know the correct technical terminology used in distributed systems.
Learning skills: The student must be able to update and deepen his/her knowledge by accessing sources of information, documentation and software that are also present on the Internet, as well as stay adjourned about HW and SW technology innovations of distributed systems.

Prerequisites

The student must have adequate knowledge of the topics covered in the courses of Computer Architecture and Laboratory, Programming I, II, II and Programming Laboratory I, II, II Operating Systems and Laboratory.

Syllabus

Introduction to distributed systems: Distributed architecture models and their programming. Principles, key characteristics, pro and cons. Design choices and related issues. Topologies, types of communication networks. Communication medium. Protocol and services. Performance.
Communication: client-server paradigm and IPC. Group communication. Multicast. Types of calls and remote calls: Remote Method Invocation (RMI); Remote Procedure Call (RPC). Semantics types. Examples.
Time and state in a distributed system: time; state; clock. Clock synchronization. Priority between events. Global state recording.
Distributed control algorithms: synchronization and coordination algorithms. Deadlocks. Scheduling. Leader election. Processes allocation in distributed systems. Termination detection algorithm.
Processes: allocation, migration and load balancing.
Distributed file systems: file service model and design issues. Case studies: NFS, AFS e CODA.
Distributed Shared Memory
Security: consistency, consistency models. Replication architectural models. Transactions and concurrency control in distributed systems.
Apache Hadoop. Hadoop ecosystem: Zookeeper, Spark, Storm.

Introduction to distributed systems: Distributed architecture models and their programming. Principles, key characteristics, pro and cons. Design choices and related issues. Topologies, types of communication networks. Communication medium. Protocol and services. Performance.
Communication: client-server paradigm and IPC. Group communication. Multicast. Types of calls and remote calls: Remote Method Invocation (RMI); Remote Procedure Call (RPC). Semantics types. Examples.
Time and state in a distributed system: time; state; clock. Clock synchronization. Priority between events. Global state recording.
Distributed control algorithms: synchronization and coordination algorithms. Deadlocks. Scheduling. Leader election. Processes allocation in distributed systems. Termination detection algorithm.
Processes: allocation, migration and load balancing.
Distributed file systems: file service model and design issues. Case studies: NFS, AFS e CODA.
Distributed Shared Memory
Security: consistency, consistency models. Replication architectural models. Transactions and concurrency control in distributed systems.
Apache Hadoop. Hadoop ecosystem: Zookeeper, Spark, Storm.

Teaching Methods

Traditional teaching in the presence, held in a suitable computing lab to analyze and practice with the algorithms and architectures.

Textbooks

[1] D. Dhamdhere, “Operating Systems: A Concept-Based Approach”, McGraw-Hill Companies, 2008.
[2] A. S. Tanenbaum, M. Van Steen, “Distributed Systems: Principles and Paradigms”, Prentice Hall, 2002.
[3] G. Coulouris, J. Dollimore, T. Kindberg, G. Blair, "Distributed Systems: Concepts and Design", 2009.
[4] P. K. Sinha, " Distributed Operating Systems: Concepts and Design ", 1997.
[5] A. S. Tanenbaum, "Distributed Operating Systems", 1997.
[6] T. White, "Hadoop: The Definitive Guide, 4th Edition", O’Reilly, 2015.
[7] B. Reed, F. Junqueira, "ZooKeeper. Distributed Process Coordination", O’Reilly, 2013.
[8] M. Zaharia, H. Karau, A. Konwinski, P. Wendell, "Learning Spark Lightning-Fast Big Data Analysis", O’Reilly, 2015.
[9] G. Eisbruch, J. Leibiusky, D. Simonassi, "Getting Started with Storm", O’Reilly, 2015.

Teaching material is available on elearning web site od Department of Science and Technology.

Learning assessment

The assessment of the knowledge consists in a final exam that quantifies the level of achievement with respect to the goals previously indicated.
The verification procedure, as indicated on the e-learning platform of the Department of Science and Technology, provides two distinct parts. First, the student presents/discusses a self-developed project using a distributed system. In the second part, he/she takes an oral exam with the aim of assessing the ability to identify, analyze and find solutions to the typical issues of distributed systems.

More information