Study-Unit Description

Study-Unit Description


CODE CPS2003

 
TITLE Systems Programming

 
UM LEVEL 02 - Years 2, 3 in Modular Undergraduate Course

 
MQF LEVEL Not Applicable

 
ECTS CREDITS 5

 
DEPARTMENT Computer Science

 
DESCRIPTION Operating systems play a crucial role in shaping the overall functionality of a computer system, exerting a profound influence on the performance of all software running on it. For computer scientists, gaining a deep understanding of how to utilise system functionality effectively is paramount. Specifically, comprehending the design of an operating system is essential for leveraging its capabilities during program execution.

This study-unit assumes that students possess a solid foundation in imperative programming languages and are acquainted with programming concepts such as variables, functions, and basic operating system theory. Throughout the course, UNIX and the C programming language serve as tools to explore various aspects of operating system facilities, including file system internals, memory management, advanced inter-process communication, and synchronisation. By the end of this study-unit, the students will become competent programmers with a deep understanding of how the operating system facilitates program execution and internals.

Study-unit Aims:

The aims of this unit are to reinforce operating systems concepts through practical experience, utilising the UNIX environment for hands-on learning. Students will develop proficiency in low-level file operations, process manipulation, advanced signal handling, and interprocess communication methods. Additionally, they will be introduced to socket programming for inter-processor communication via TCP/IP. Assignments will assess their practical application of these concepts.

Learning Outcomes:

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

- understand the role and usage of system calls in UNIX;
- differentiate between kernel mode and user mode;
- comprehend process management and control, including the use of signals;
- demonstrate an understanding of the principles of concurrency, synchronisation and thread management;
- understand memory management and basic networking concepts;
- learn the basics of shell scripting and interacting with the shell environment.

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

- develop proficiency in using UNIX system calls for process control, file I/O and system operations;
- acquire skills in memory management and optimisation;
- master techniques for managing concurrency and synchronising threads;
- develop networked applications using socket programming;
- design and implement programs and use the associated development tools;
- apply critical thinking skills to evaluate system-level designs and make informed decisions in software development.

Main Text/s and any supplementary readings:

- Linux System Programming. R. Love O’Reilly Media, Inc. ISBN 9781449339531
- Advanced Programming in the UNIX Environment. W. R. Stevens. Addison-Wesley, 2005. ISBN 0201433079
- UNIX System Programming. 2nd Ed. K. Haviland, D. Gray and B. Salama. Addison Wesley 1998. ISBN 0 201-87758-9
- Operating System Concepts. A. Silberschatz, P. Galvin and G. Gagne. Addison Wesley. ISBN 0470233990.

Supplementary:

- The C Programming Language. BW Kernighan, DM Ritchie. Prentice-Hall, 1988. ISBN 0-13-110362-8.

 
ADDITIONAL NOTES Students taking this study-unit are assumed to have knowledge of the material covered in the following study-units:
- CPS1011;
- CPS1012.

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

 
METHOD OF ASSESSMENT
Assessment Component/s Assessment Due Sept. Asst Session Weighting
Assignment SEM2 Yes 100%

 
LECTURER/S Keith Bugeja (Co-ord.)
Alessio Magro

 

 
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 2024/5. It may be subject to change in subsequent years.

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