This course is available through clearing for home applicants only

If you are a home applicant and already have your exam results, meet the entry requirements, and are not holding an offer from a university or college, then you may be able to apply to this course.

Contact the admissions team

MEng Mechatronic Engineering with Industrial Experience

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
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

Return to course details