Postgraduate Course: Distributed Systems (Level 11) (INFR11022)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 11 (Year 4 Undergraduate)
||Availability||Available to all students
|Summary||A distributed system is broadly categorised as a collection or network of loosely coupled, autonomous computers that can communicate with each other and execute logically separate computations, though these may be related to concurrent computations on other nodes.
* The nodes are relatively loosely coupled.
* Each node is a self-contained autonomous computer with its own peripherals.
* The system can survive various categories of node and network failures.
* The nodes may execute logically separate computations, though these may be related to concurrent computations on other nodes.
* The system may be modeled as synchronous or asynchronous.
Distributed systems have become pervasive-many applications now require the cooperation of two or more computers-yet the design and implementation of such systems remain challenging and complex tasks. Difficulties arise from the concurrency of components, the lack of a global clock and the possibility of independent failure of components. Moreover designs must aim to provide inter-operability, transparency and autonomy.
The emphasis of this module is on gaining understanding of the principles and concepts that are used to design distributed systems and how network and communication facilities can be leveraged to achieve efficient distributed computing.
2. Fundamental Concepts of Distributed Systems: Architecture models; communication; complexity of communication; basic algorithms.
3. Time and Global States: Clocks and concepts of time; Event ordering; Synchronization; Global states
4. Coordination: Distributed mutual exclusion; Multicast; Group communication; Byzantine problems (consensus)
5. Distribution and Operating Systems: Processes and threads; Networked OS
6. Mobile Computing: Mobility, Mobile communication and networking.
7. Distributed Algorithms.
8. Legal and social issues in distributed computing.
Relevant QAA Computing Curriculum Sections: Distributed Computer Systems
Entry Requirements (not applicable to Visiting Students)
||Other requirements|| This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser (lecturer).
Some prior programming ability is assumed.
Information for Visiting Students
|Pre-requisites||Visiting students are required to have comparable background to that assumed by the course prerequisites listed in the Degree Regulations & Programmes of Study.
If in doubt, consult the course organiser (lecturer).
|High Demand Course?
Course Delivery Information
|Academic year 2017/18, Available to all students (SV1)
|Learning and Teaching activities (Further Info)
Lecture Hours 20,
Summative Assessment Hours 2,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
|Assessment (Further Info)
|Additional Information (Assessment)
||You should expect to spend approximately 40 hours on the coursework for this course.
If delivered in semester 1, this course will have an option for semester 1 only visiting undergraduate students, providing assessment prior to the end of the calendar year.
||Hours & Minutes
|Main Exam Diet S1 (December)||2:00|
On completion of this course, the student will be able to:
- Develop an understanding of the principles of distributed system and be able to demonstrate this by explaining them
- Being able to give an account of the trade-offs which must be made when designing a distributed system, and make such trade-offs in their own designs
- Develop practical skills of implementation of distributed algorithms in software so that they will be able to take an algorithm description and realise it in software
- Being able to give an account of the theoretical models used to design distributed systems and to manipulate those models to reason about such systems
- Being able to design efficient algorithms for distributed computing tasks
|* George Coulouris, Jean Dollimore and Tim Kindberg, Distributed Systems: Concepts and Design, 4th edition, Addison-Wesley, 2005. (Main textbook).|
* Vijay Garg, Elements of Distributed Computing, Wiley, 2002.
* Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996.
* Kurose and Ross, Computer Networking: A top-down approach, Pearson.
|Course organiser||Dr Rik Sarkar
Tel: (0131 6)50 4444
|Course secretary||Mr Gregor Hall
Tel: (0131 6)50 5194