MEng Electronic Engineering

Year of entry: 2021

Coronavirus information for applicants and offer-holders

We understand that prospective students and offer-holders may have concerns about the ongoing coronavirus outbreak. The University is following the advice from Universities UK, Public Health England and the Foreign and Commonwealth Office.

Read our latest coronavirus information

Course unit details:
Concurrent Systems

Unit code EEEN30052
Credit rating 10
Unit level Level 3
Teaching period(s) Semester 1
Offered by Department of Electrical & Electronic Engineering
Available as a free choice unit? No


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.


Unit title Unit code Requirement type Description
Microcontroller Engineering II EEEN20019 Pre-Requisite Compulsory


This course unit detail provides the framework for delivery in 2020/21 and may be subject to change due to any additional Covid-19 impact.  Please see Blackboard / course unit related emails for any further updates.

The course unit aims to:

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

On the successful completion of the course, students will be able to:




  • Describe the key differences between sequential and concurrent systems.




  • Describe and analyse selected communication and synchronisation mechanisms in concurrent systems.




  • Develop concurrent programs in C++ to solve common problems in concurrency.




  • Describe and analyse the behaviour of the major components of a generic operating system.




  • Explain the interaction of the major components of a contemporary operating system under a given set of conditions.




Teaching and learning methods

 21 Lectures, 1 Introductory Lab, 5 Worked Tutorial Sheets (online).

Assessment methods

Method Weight
Other 20%
Written exam 80%


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.

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
Peter Green Unit coordinator

Return to course details