Real Time Computer Systems 3 ENG3043
- Academic Session: 2023-24
- School: School of Engineering
- Credits: 10
- Level: Level 3 (SCQF level 9)
- Typically Offered: Semester 1
- Available to Visiting Students: Yes
In this course we study the hardware and software of computers systems which receive inputs from the physical world outside the computer and which must respond within the deadlines imposed by the time constants of the external hardware. The problems of multitasking which arise when such systems have to respond to several simultaneous external events, are also introduced.
2 lectures per week
85% Written Exam
15% Report: Laboratory report (5% each lab)
Main Assessment In: December
The aim of the course is to introduce computer systems which function correctly only when they meet deadlines imposed by external hardware.
To illustrate the problems encountered in real-time systems and show how these difficulties are tackled we will study the following topics :
■ ARM Cortex M series processor-based architecture as examples of real-time systems.
■ Programming in assembly language and high-level language, C / C++.
■ Interfacing with peripherals - parallel I/O and serial data transmission. Bus systems.
■ Polling and interrupts. Differences between polling and interrupts.
■ Operating systems - both real-time and non real-time. The interaction between software and hardware.
There are 3 laboratories which extend the lecture material demonstrate the concepts in action. Writing programs in assembler and C to interface with hardware for performing simple input and output through peripherals connected directly or via different bus systems. Use and interpretation of data books and data sheets. Use of debugger to disassemble code. Writing interrupt service routines and measuring interrupt response times. Serial I/O - limitations on speed imposed by hardware and by the operating system.
Intended Learning Outcomes of Course
By the end of this course students will be able to:
■ describe the attributes of a real-time computers system;
■ estimate the execution time for code performing input and output by breaking down high level code written in C++ into its component machine code instruction;
■ implement interrupts as a method of acquiring input from the physical world;
■ discuss a practical implementation case using RTCS
■ appraise the use of real-time operating systems and describe priority allocation policies such as rate monotonic scheduling.
Minimum Requirement for Award of Credits
Students must attend the degree examination and submit at least 75% by weight of the other components of the course's summative assessment.
Students must attend the timetabled laboratory classes.