|TITLE||Operating Systems and Systems Programming 1|
|LEVEL||01 - Year 1 in Modular Undergraduate Course|
|DESCRIPTION||Operating Systems exert a major influence on the overall function of the entire computer. Their performance sets the stage for the performance of all software on a computer. As a computer scientist, one needs to understand how to use the system functionality most effectively; specifically the design of an OS must be understood such that one would be able to exploit that design during program execution.
This study-unit will assume that students have an aptitude for computer programing in an imperative programming language, and that students are familiar with programming concepts such as variables, functions and flow control. This unit enforces the theoretical concepts by also providing a hands-on approach.
The teaching environment is UNIX-based, and so students are expected to know either UNIX System V or Berkeley UNIX. The UNIX system and the C language will be used to experiment with operating system facilities in avenues such as low-level file input/output, process manipulation and advanced signal handling. The practical application of these concepts will then be examined through the allocated assignments. By the end of the course, students will be competent C programmers with an understanding of how the operating facilitates program execution.
The aim of this unit is to discuss the issues involved in designing a general purpose multi-programmed operating system, and to enable students to understand and interact with the internals of an operating system. The course covers topics such as the role of an operating system in providing a process abstraction, CPU scheduling, inter-process communication, synchronisation and file systems.
The practical element of this unit's aim of this study-unit is to provide an in-depth understanding of UNIX-based operating system concepts through a hands-on approach.
1. Knowledge & Understanding:
By the end of the study-unit the student will be able to:
- Define the necessary components and functions of an OS;
- Compare and contrast the various ways of structuring an OS;
- Differentiate between processes and threads;
- Describe reasons for using interrupts, dispatching and context switching to support concurrency in an OS;
- Discuss the types of scheduling;
- List the range of mechanisms that can be employed at OS level to realise concurrent systems and describe the benefits and potential problems of each;
- Describe advanced UNIX operating system concepts and terminology;
- Demonstrate a command of the Unix Shell environment, including advanced Unix commands and utilities;
- Demonstrate a command of the basic tools used to develop software in C on the Unix platform;
- Describe process management in the Unix environment;
- Describe basic IPC issues and techniques in Unix programming.
By the end of the study-unit the student will be able to write, compile, debug and execute C programs that:
- Correctly use system interfaces provided by UNIX or a UNIX-like operating system;
- Create, manage and terminate processes and threads on UNIX;
- Interact by invoking and catching signals;
- Use files and I/O on UNIX.
Main Text/s and any supplementary readings:
Operating System Concepts. A. Silberschatz, P. Galvin and G. Gagne. Addison Wesley. ISBN 0470233990
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. AddisonWesley 1998. ISBN 0 201-87758-9
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 CPS1011.|
|STUDY-UNIT TYPE||Lecture, Independent Study, Project and Tutorial|
|METHOD OF ASSESSMENT||
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 2020/1. It may be subject to change in subsequent years.