Study-Unit Description

Study-Unit Description


CODE CPS5125

 
TITLE Advanced Systems Programming

 
UM LEVEL 05 - Postgraduate Modular Diploma or Degree Course

 
MQF LEVEL 7

 
ECTS CREDITS 5

 
DEPARTMENT Computer Science

 
DESCRIPTION This study-unit will focus on a number of topics which lead to an understanding of operating systems and virtual machine internals.

In the first part of the unit we will discuss how kernel functionality is exposed to user-level applications as a means of appreciating the extent of support provided to developers from the operating system. We will thereafter delve into internals of commonly used operating systems focusing on the system call and driver interfaces. Whilst doing so we will investigate different types of kernels.

In the second part of the unit we will focus on services provided by process virtual machines (such as the Java Virtual Machine). We will focus on a particular virtual machine's Intermediate Representation (IR) and investigate different techniques in respect to how the IR can be executed.

Study-unit Aims:

The aim of this unit is to provide students with a detailed understanding of advanced topics in systems programming which lead up to students understanding operating systems and virtual machine internals.

Learning Outcomes:

1. Knowledge & Understanding:
By the end of the study-unit the student will be able to:

- Given an operating system's code, demonstrate an understanding of how system calls are implemented and extend the operating system with new system calls and also device drivers;
- Analyse and demonstrate an understanding of how different aspects of a given operating system are implemented;
- Given a virtual machine implementation, demonstrate an understanding of the intermediate representation used and compare different intermediate representation execution methods.

2. Skills:
By the end of the study-unit the student will be able to:

- Discuss and critically analyse different kernel architectures and the trade-offs inherent in them;
- Identify scenarios where the different types of architectures are best suited;
- Inspect an operating system's code and extend the system by implementing system calls and device drivers;
- Implement a virtual machine intermediate representation execution engine.

Main Text/s and any supplementary readings:

Main text:

- Tanenbaum A. S., Woodhull A. S.: Operating Systems Design and Implementation, Third Edition. ISBN: 978-0-13-142-938-3. Corbet J, Rubini A.: Linux Device Drivers, 2005, ISBN: 978-0596005900

Supplementary readings:

- Tanenbaum A. S., Woodhull A. S.: Operating Systems Design and Implementation, Third Edition. ISBN: 978-0-13-142-938-3
- Corbet J, Rubini A.: Linux Device Drivers, 2005, ISBN: 978-0596005900
- Russinovich M., Solomon D. A., Ionescu A.: Windows Internals Part 1, Sixth Edition. ISBN: 978-0-7356-4873-9
- Lindholm T., et al: The Java Virtual Machine Specification, Seventh Edition
- Lattner, Chris, and Vikram Adve. "LLVM: A compilation framework for lifelong program analysis & transformation." Code Generation and Optimization, 2004. CGO 2004. International Symposium on. IEEE, 2004
- Alpern, Bowen, et al. "The Jalapeno virtual machine." IBM Systems Journal 39.1 (2000): 211-238

 
STUDY-UNIT TYPE Lecture, Independent Study, Project and Tutorial

 
METHOD OF ASSESSMENT
Assessment Component/s Sept. Asst Session Weighting
Project Yes 100%

 
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