Overview
Academic contacts
Offerings
Requisites
Other learning activities
Learning activities
Learning outcomes
Justify, design, implement, test for correctness and robustness, and optimise multi-process programs in operating systems using various process management, scheduling, interprocess communication, synchronisation, and signal mechanisms/techniques.
Explain and demonstrate how to correctly implement, access and manipulate a Unix-like file system on a hard disk with trade-offs between performance and reliability.
Analyse and evaluate various memory management schemes and the related hardware support, including paging, segmentation, virtual memory, and various cache technologies for speeding up memory access and propose improvements or alternatives.
Analyse and evaluate concurrency related issues such as deadlock and race conditions and the methods and techniques to handle these issues and design solutions that avoid or resolve them.
Evaluate, explain and demonstrate how to design and implement efficient systems programs using the hardware abstraction and the standard Unix-like programming interface.
Demonstrate the ability to design and implement client and server programs using TCP and UDP protocols and evaluate their advantages and disadvantages.
Collaborate and communicate effectively with others in a team environment on complex tasks.
Research, communicate, and self-learn how to implement system software and demonstrate the utility and performance of the software.
Assessments
Additional information
See description.