MEng Electronic Engineering / Course details

Year of entry: 2024

Course unit details:
Concurrent Systems

Course unit fact file
Unit code EEEN30141
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

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

This course unit detail provides the framework for delivery in the current academic year 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:

Developed

Assessed

ILO 1

  • Describe the key differences between sequential and concurrent systems.

Yes

Yes

ILO 2

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

Yes

Yes

ILO 3

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

Yes

Yes

ILO 4

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

Yes

Yes

ILO 5

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

Yes

Yes

 

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.

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