Computer Systems

Module aims

The aim of this module is to enable you to acquire the core knowledge of the organisation and operations of a typical computer system. Starting with the understanding of how high-level language programs are represented by a set of assembly instructions for execution at an architecture level, you will get an overview of the organisation and operation of the operating system software that controls the execution of programs and that manages the resources of a computer.

Learning outcomes

By the end of this module, you should be able to:
- Appraise the representations of numbers and text, computer arithmetic, the functions of CPU components, instruction executions and interactions between CPU and memory
- Develop assembly language programmes
- Assess the main principles and techniques used to implement processes and threads as well as the different algorithms for process scheduling.
- Critique the main problems related to concurrency and synchronization mechanisms
- Evaluate the need for virtual memory abstractions in operating systems, and the implications of different implementation mechanisms.
- Interpret the mechanisms of file system structure

Module syllabus

Part 1: Computer Architecture
Logic and Number representation
Architecture and assembly programming - components of a simple CPU, instructions, machine code, fetch-execute cycle,  assembly programming (with information for 32 and 64-bit microprocessor as illustrative examples)

Part 2: Operating Systems
OS structure: kernel organisation,
OS functionality
Processes: basic concepts and motivation, process creation and execution, implementation issues,
Threads: basic concepts, motivation and implementation mechanisms.
Inter-process communication: signals. pipes, sockets, shared memory
Process synchronization: critical sections and mutual exclusion, race conditions, locks and semaphores, deadlocks
Process and thread scheduling mechanisms
Memory management: logical/physical address spaces, virtual memory, paging, demand paging, page replacement
File systems: files, file system organisation, directories

Teaching methods

The material will be taught through traditional lectures, backed up by assessed coursework and unassessed tutorials designed to reinforce the material as it is taught. You will have opportunity of interacting with the lecturers during scheduled classes and Q&A sessions.
An online service will be used as a discussion forum for the module.
 

Assessments

There will be coursework exercises covering both parts of the courses, which collectively contribute 20% of the marks for the module. There will be a final written exam, which counts for the remaining 80% of the marks. Regular formative exercises will enable you to reinforce your understanding of the material taught in the class.

Written feedback on the assessed coursework exercises will be returned electronically within two working weeks of submission. Feedback on formative exercises will be given through solution to exercise problems and/or through verbal discussion in the class.

Reading list

Module leaders

Professor Kin Leung
Dr Soteris Demetriou