- UCAS course code
- HH36
- UCAS institution code
- M20
Course unit details:
Concurrent Systems
Unit code | EEEN30141 |
---|---|
Credit rating | 10 |
Unit level | Level 3 |
Teaching period(s) | Semester 1 |
Available as a free choice unit? | No |
Overview
This unit will cover the following topics:
(1) The origins and nature of concurrency: inherently concurrent systems and potentially concurrent systems.
(2) Processes: basic concepts, mechanisms for creating concurrent activities.
(3) The need for interprocess communication and synchronisation: shared memory-based communication and synchronisation; critical sections, atomic actions, mutual exclusion, condition synchronisation, semaphores, monitors.
(4) Message passing: asynchronous message passing, synchronous message passing (CSP/Occam model), remote invocation (Ada model).
(5) Problems with concurrent systems: deadlock, livelock, starvation, permanent blocking, liveness and safety.
(6) Implementation of concurrent systems: introduction to operating systems, concurrency and operating systems; overall structure and functions of an operating system.
(7) Process management: process state, process descriptors, context switching, process scheduling.
Implementation of interprocess communication and synchronisation.
(8) Memory management: Memory hierarchy, process address space, virtual memory, segments, pages, address translation.
(9) File management: directory structures, file system interface, file system implementation considerations.
(10) Device management: device interfaces and data rates, polling, interrupts and exceptions, interrupt handling, priorities, vectors, memory-mapped I/O.
Pre/co-requisites
Unit title | Unit code | Requirement type | Description |
---|---|---|---|
Microcontroller Engineering II | EEEN20011 | Pre-Requisite | Compulsory |
Aims
Provide an understanding of when it is appropriate to develop concurrent systems.
Introduce the benefits and difficulties of developing concurrent systems.
Develop techniques for realising concurrency in C++.
Provide an understanding of how modern operating systems support concurrency.
Learning outcomes
ILO 1 Describe the key differences between sequential and concurrent systems. [Developed and Assessed]
ILO 2 Describe and analyse selected communication and synchronisation mechanisms in concurrent systems. [Developed and Assessed]
ILO 3 Develop concurrent programs in C++ to solve common problems in concurrency. [Developed and Assessed]
ILO 4 Describe and analyse the behaviour of the major components of a generic operating system. [Developed and Assessed]
ILO 5 Explain the interaction of the major components of a contemporary operating system under a given set of conditions. [Developed and Assessed]
Teaching and learning methods
21 Lectures, 1 Introductory Lab, 5 Worked Tutorial Sheets (online).
Assessment methods
Method | Weight |
---|---|
Other | 20% |
Written exam | 80% |
Coursework:
2 Blackboard tests - 30 Minutes each
Write a concurrent program in C++ to implement a given specification. - 10 hours
The coursework forms 20% of the unit assessment.
Feedback methods
.
Recommended reading
C++ Concurrency in Action: Practical Multithreading, Anthony Williams, 2012
-covers the first part of the course.
Operating Systems : A Modern Perspective, G. Nutt
3rd edition, Addison-Wesley, 2003
-covers the second part of the course.
Study hours
Scheduled activity hours | |
---|---|
Lectures | 21 |
Practical classes & workshops | 3 |
Tutorials | 5 |
Independent study hours | |
---|---|
Independent study | 71 |
Teaching staff
Staff member | Role |
---|---|
Frank Podd | Unit coordinator |