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.
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 Examination | 60 |
Other Assessment(s) | 40 |