Students must complete the following four units
This unit is designed for computer science students, particularly those interested in memory and CPU functional organisation, hardware/software interface, systems programming, and computer system performance evaluation. The unit will provide students with a fundamental knowledge of computer systems abstraction, design, exploitation and configuration. Students will primarily gain an insight into the low level interface between the hardware and software in terms of ISA (Instruction Set Architecture) abstraction of a computer system, where students will use assembly language to deal with memory addressing, load-store architecture, and I/O operations. The students will also learn about the hardware implementation of major datapath components and pipelined micro-architectures. After completing this unit students will understand the major issues in the state-of-the-art computer architecture, especially the modern microprocessors.
This unit provides an introduction to the knowledge and skills required for the design, writing and support of technical software and other such functions normally falling within the role of the systems programmer. It provides for detailed study of a systems programming environment and its application to systems programming tasks.
This unit is designed for computer science students, particularly those interested in systems programming, hardware/software interfaces, and computer system performance evaluation. The topics cover memory system organisation and architecture, CPU functional organisation, pipelined and superscalar microarchitectures, multiprocessor systems, and I/O systems. After completing this unit students will understand the major issues in the state-of-the-art computer architecture, especially modern microprocessors, and will be able to use this knowledge as a basis for product choice and systems configuration.
This unit provides an introduction to the theory and practice of the internal structure, implementation and functionality of operating systems. The unit is relevant not only for systems programmers, but also for applications developers who need to understand how operating systems control computer hardware, and how they provide convenience, efficiency and security for application development and implementation.