CSCU9V7 - Concurrent and Distributed Systems
Professor Evan Magill, Room 4B84, email firstname.lastname@example.org
Dr. Marwan Fayed, Room 4B72, email email@example.com
CSC9V4 (basic OS principles, and programming in JAVA using threads)
CSC9W6 (principles of data communications, communications architectures, services & protocols.)
The students will understand:
- the concepts underlying concurrent systems
- the concepts underlying distributed systems
- how concurrent & distributed systems may be constructed using a variety of tools and approaches
Students will be able to design, and implement distributed software systems in Java using:
- remote procedure call mechanisms
- JAVA RMI
Students will demonstrate an ability to apply theory and techniques to unseen problems (without reference to notes), to work independently, and to work under a time constraint.
The unit will develop skills in systems implementation and distributed software engineering. Furthermore, students will advance their Java programming skills
- Process & thread management - as needed in the context of the aspects below.
- Basic Process Model, Scheduling
- Critical Sections and Synchronisation
- Mutual exclusion: Semaphores, Conditional variables, Monitors
- Modelling concurrent activity starting with JAVA threads
- Forms of communication, architectures
- Means of communication (Shared memory, Direct communication between processes)
- Case study: Unix (Fork processes, Communication using signals, pipes, sockets, shared memory)
- Distributed Systems
- Client-server model
- Naming and binding
- RPC General principles
- Protection and Security
- Java RMI
There are four assessment components for this module:
- Laboratory checkpoints worth 10%
- Concurrency class test worth 20%
- Distributed assignment worth 20%
- Examination worth 50%
In order to be considered for a pass grade for the module you must:
- Submit the assessed coursework
- Attend the examination
Non-submission of the assessed coursework will result in the award of No Grade for the module as a whole. Assessed coursework submitted late will be accepted up to seven days after the submission date (or expiry of any agreed extension) but the grade will be lowered by three points (on a 100 point scale) per day or part thereof. After seven days the piece of work will be deemed a non-submission, and will result in the award of No Grade for the module as a whole. This rule (regarding coursework) may be relaxed for students who can show good cause for failure to submit. ‘Good cause’ may include illness (for which a medical certificate or other evidence will be required).
Laboratory checkpoints must be completed by the end of the week following a lab. (Exceptions can be made for special circumstances.)
If a student is unable to attend the Main examination, he/she must apply to the Student Programmes Office for a Deferred examination. If a Deferred examination is not granted, then the Examiners may allow a Repeat examination. The grade awarded following a Repeat examination is capped at 40 points (on a 100 point scale).
Work which is submitted for assessment must be your own work. All students should note that the University has a formal policy on plagiarism which can be found at http://www.quality.stir.ac.uk/ac-policy/Misconduct.php.
Plagiarism means presenting the work of others as though it were your own. The University takes a very serious view of plagiarism, and the penalties can be severe (ranging from a reduced grade in the assessment, through a fail grade for the module, to expulsion from the University for more serious, or repeated, offences). Specific guidance in relation to Computing Science assignments may be found in the Computing Science Student Handbook.
This module has noprescribed classes.
Recommended (available in the University library and Reserved Book Room):
- Concurrent Systems, J. Bacon, Addison-Wesley, 2nd edition, 1998, ISBN: 0201177676
- Applied Operating Systems Concepts, A. Silberschatz, P. Galvin, G. Gagne, Wiley, 2001, ISBN: 0471419850
- Modern Operating Systems, A.S. Tanenbaum, Prentice-Hall, 2nd edition, 2001, ISBN: 0130313580
- Concurrency - State Models & Java Programs, J. Magee, J. Kramer, Wiley, 1999, ISBN: 0471987107
- Java 2 Unleashed, J. Jaworski, Sams, 1999, ISBN: 0672316315
- Java for Students, D. Bell, M. Parr, Prentice-Hall, 2001, 3rd edition, ISBN: 0130323772
- Distributed Systems, A.S. Tanenbaum, M. v. Steen, Prentice-Hall, 2001, ISBN: 0130888931
- Distributed systems: concepts and design, G. Coulouris, J. Dollimore, T. Kindberg, Addison Wesley, 2000, 3rd edition, ISBN: 0201619180
- Corba Distributed Objects Using Orbix, S. Baker, Addison Wesley, 1997, ISBN: 0201924757
Further information and teaching materials for this module.
Your course will conclude with an individual project (after your industry placement, if you have taken one). Using the experience gained during your course/placement, you will choose a challenging problem to work on and explore it by privately studying under the supervision of a member of the academic staff. (Students studying for a PGDip don't complete a project.)
A Selection of Recent MSc Projects
Robust and Energy Efficient Wireless Sensor Networks
Wireless sensor networks are a new technology with a wide range of applications (from environment monitoring to surveillance) but subject to a number of energy constraints, many-to-one flows, and redundant low-rate data. Many routing protocols have been proposed for sensor networks that aim at achieving energy efficiency, but with little or no attention to robustness and fault-tolerance. This project addressed fault tolerance in ad-hoc sensor network routing, namely the design and development of a robust and energy efficient routing protocol that distinguishes between local and large-scale traffic. A new multipath routing protocol was proposed and simulated which follows the 'number of hops' metric and employs a waiting time before transmitting messages to sink.
WSDL/BPEL to SRML Language Transformation
SRML is the Reference Modelling Language of the European project SENSORIA. It provides primitives for modelling and reasoning about business processes in a way that is independent of the languages used for executing them. This project developed a tool for generating SRML models from two specific industry standards: The Business Process Execution Language (BPEL), which is used for specifying business process based on Web Services, and the Web Services Description Languages (WSDL) – an XML format for describing network services. The encoding provides the means to create high-level declarative descriptions of BPEL/WSDL specifications that can be used for building more complex business process models that can include components specified in other languages.
XML Database for Bibliographic Information
Many people in industry and academia use a document typesetting system called LaTeX. Documents may be published in various formats including reports, journal articles, conference proceedings, authored books, and so on. BibTeX is the tool used by LaTeX for formatting lists of references that are to be incorporated within these documents. Although it is very effective, BibTeX has raised a practical concern due to its low level of abstraction, making it difficult to share bibliographic information among tools or people executing different activities (for instance, between the technical and the marketing staff within a company). In order to address this concern, this project developed an XML-based framework for managing bibliographies.
Modules shown represent choices available to current students. The range of modules available and the content of any individual module may change in future years.