COMPGC04 - Systems Infrastructure
Note: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).- Code
- COMPGC04
- Year
- MSc
- Prerequisites
- This course should be taken in conjunction with the core courses for this programme (ie GC01, GC02, GC03 and GC05)
- Term
- 1
- Taught By
- John Dowell (50%)
Stephen Hailes (50%) - Aims
- This course is an amalgam of three different aspects of systems design and construction - operating systems, compilers and databases - each having approximately equal weight. The course is a fundamental one in the programme as a whole, in the sense that it introduces material that is built on elsewhere and, consequently, much of the material will be aimed at providing a basic understanding of the role that different systems components play within real computer systems, and how they go about achieving this.
- Learning Outcomes
- Students should be able to describe and discuss the fundamentals of systems infrastructure outlined below and their interrelationships and interdependencies with other aspects drawn from the core MSc curriculum. They should be able to discriminate between different possible solutions to practical problems and, consequently, apply the knowledge gained in a practical way.
Content:
- A historical perspective
- A brief history of operating systems, compilers and databases; milestones in their development and changes driven by changes in both use and in the underlying hardware
- Process creation and management
- The virtual machine concept; data structures needed by operating systems
Process state transition
Scheduling algorithms and metrics for the analysis of performance - Memory management
- Virtual memory
Single and multi-level paging algorithms
Caching - Concurrency control
- Race conditions
Semaphores
Deadlock - Compilation vs. interpretation
- Lexical analysis
- Parsing
- Recursive descent
Table-driven techniques - Code generation
- This will only be a brief overview to introduct the subject
- Functions of a DBMS
- The three level architecture
- Data models -- a brief overview
- Relational
Network
Hierarchical - Relational database concepts
- domains; tuples; relations; attributes; referential and entity integrity
- SQL
- A practical introduction to SQL as a declarative procedural query language
- Distributed systems issues
- How and why the provision of system-level services becomes more difficult in a distributed environment
Method of Instruction:
Lecture presentations with associated class problems.
Assessment:
The course has the following assessment components:
- Coursework Section (3 pieces, 15%)
- Written Examination (2.5 hours, 85%)
To pass this course, students must:
- Obtain an overall pass mark of 50% for all sections combined
The examination rubric is:
Answer 1 question from each of the 3
sections (1 from the 2 in each section); all questions carrry equal marks.

