Study-Unit Description

Study-Unit Description


CODE CPS3226

 
TITLE Low Level Programming for Operating Systems

 
UM LEVEL 03 - Years 2, 3, 4 in Modular Undergraduate Course

 
MQF LEVEL Not Applicable

 
ECTS CREDITS 6

 
DEPARTMENT Computer Science

 
DESCRIPTION This study-unit will be primarily focused on the practical aspects of operating systems implementation. The study-unit will provide students with knowledge and experience in developing low-level operating system code. This will help students understand what is 'under the hood', enabling students to write efficient code (even when using high level languages and frameworks).

The main areas that will be covered include:
- Computer Architecture: specifically focusing on how to handle interrupts, and the instruction set and hardware register set that are available;
- OS Internals focusing on how to implement: the OS timer; User mode/Kernel Mode; Process Schedulers; Sycnhronisation Mechanisms; Inter-process Communication; Multi-threading Support and Memory Management;
- Programming language abstractions, focusing on how each abstraction can be used directly by a system's implementor including: Native Code, Assembly, Intermediate Representation (such as Java bytecode, LLVM IR, .NET MSIL) and high level languages;
- Virtual Machines theory to provide an appreciation for the implementation details of such systems, including: Process Virtual Machines, Instruction Emulation and Interpretation, Binary Translation, Code Cache Management and Garbage Collection.

Study-unit Aims:

The main aims of the study-unit are to:
- Provide students with experience of implementing operating system level code;
- Enable students to understand the trade-offs inherent in operating system implementation, namely performance versus size and maintainability;
- Provide students with an appreciation of what actually happens 'under the hood' in operating systems so that they can implement efficient code.

Learning Outcomes:

1. Knowledge & Understanding:

By the end of the study-unit the student will be able to:
- Appreciate and express the trade-offs inherent in operating system implementation;
- Express the uses, differences and properties inherent in using different programming language abstractions;
- Describe the main virtual machine components and express the trade-offs inherent in different implementations.

2. Skills:

By the end of the study-unit the student will be able to:
- Develop operating system level code on computer architecture;
- Implement different operating system policies and perform an evaluation of different policies;
- Implement code in the different language abstractions incuding in Native Code, Assembly Code, an Intermediate Representation and a High-Level Language.

Main Text/s and any supplementary readings:

Study-unit notes will be provided by the lecturer.

Supplementary readings:

- Silberschatz, Galvin and Gagne. "Operating System Concepts" 8th Edition, John Wiley & Sons Press, 2010.ISBN: 978-0-470-23399-3.
- Smith and Nair. "Virtual Machines: Versatile Platforms for Systems and Processes", Morgan Kaufmann Publishers, 2005.ISBN: 978-1-55860-910-5.
- Stallings. "Operating Systems: Internals and Design Principles" 8th Edition, Pearson, 2014. ISBN: 978-0-13-380591-8.
- Li, Yao. "Real-Time Concepts for Embedded Systems", CMP Books. ISBN: 9781578201242.

 
RULES/CONDITIONS Before TAKING THIS UNIT YOU MUST TAKE CPS1000 AND TAKE CPS1004 AND TAKE CPS2000 AND TAKE CPS2003

 
STUDY-UNIT TYPE Lecture, Independent Study and Project

 
METHOD OF ASSESSMENT
Assessment Component/s Sept. Asst Session Weighting
Examination (2 Hours) Yes 30%
Assignment Yes 70%

 
LECTURER/S Joshua Ellul

 

 
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2023/4. It may be subject to change in subsequent years.

https://www.um.edu.mt/course/studyunit