Module Overview

Computer Architecture & Operating Systems

The purpose of this module is to: provide learners with an appreciation of the many computer systems/architectures and operating systems in existence - Learners will gain the necessary knowledge to critically assess the components of a computer system - provide extensive hands-on experience of programming on a Linux platform. - provide learners with the critical knowledge required to develop on ARM based systems.

Module Code

ELTC H3027

ECTS Credits

5

*Curricular information is subject to change

Computer Organisation

Computer System Operation - Storage Structure - I/O Structure

Computer Architecture

Single Processor Systems - Multiprocessor Systems - Special Purpose Systems - Control Unit & micro-programming - Instruction Sets

RISC Architectures

RISC vs CISC - ARM: Design Philosophy, ARM Instruction Set; Thumb

Operating Systems

A brief history and overview of operating systems

A Simple OS

OS Structure: Traps, System Calls, Interrupts - Processes - Address Spaces - Threads - Managing Processes - Memory Management

Multi-threaded programming

Programming with Threads: POSIX Threads - Synchronisation - Thread Safety

The Linux System

Linux history - Design Principles - Kernel Modules - Process Management - Scheduling - Memory Management - File Systems - I/O - IPC

Embedded Linux & ARM

Arm/Linux toolchains - GIT - Cross-compiling - Busybox - GPIO programming - Programmable Real-time Unit subsystem (beaglebone)

The module is delivered through a series of lectures and lab sessions with student self-directed learning including assessment activities.

Module Content & Assessment
Assessment Breakdown %
Formal Examination60
Other Assessment(s)40