Module Overview

Operating Systems

The aim of this module is to give learners an appreciation and understanding of the internal workings and designs of modern operating systems while also providing learners with the necessary basic knowledge, skills and understanding to install, configure and troubleshoot the Linux operating system. The module is a balance between theoretical and practical aspects of modern operating systems. The module aims to- develop the students’ knowledge of operating systems by covering the theory of how modern, multi-user, network operating systems function; in particular the issues of concurrency and deadlock, which arise, in such systems on uni-processor and multi-processor/multicore platforms.- To enhance the students’ operating systems administration skills through the advanced configuration and troubleshooting of the Linux operating systems in a multi-user networked environment.

Module Code

COMP H2014

ECTS Credits

5

*Curricular information is subject to change

Operating Systems Structures

- System components, OS services, system calls, system programs- OS structures- Virtual machines

Processes

- Process concept, schedulers, operations on processes- Cooperating processes: Producer-Consumer problem- Interprocess Communication- Communication in client-server systems

Processor Scheduling

- Uni-processor scheduling. - High, medium and low level schedulers. - Low level scheduling algorithms. - Thread, multiprocessor and real-time scheduling.

Threads

- Means of supporting threads in an OS- Multithreading models- Threading Issues- Case study: Linux

Memory Management

- Logical vs. physical address space. - Paging and segmentation. - Segmentation with paging. - Virtual Memory Management (demand paging, page-replacement etc.). - Case study: Linux

File Management

- Basic concepts and file management techniques. - Disk partitions and file management utilities. - Journalling. - Case study: Linux.

I/O Management

- I/O Device characteristics and objectives of I/O systems. - Physical and logical organisation of I/O functions. - Categorisation of types of devices. - Buffering.

Process Synchronisation

- The critical-section problem- Synchronisation hardware- Semaphores- Classical problems of synchronisation- Critical regions- Monitors- OS synchronisation- Atomic transactions- Practical Project with ThreadMentor or similar software

Deadlocks

- System Model- Deadlock characterisation- Methods for handling deadlocks- Deadlock prevention, avoidance, detection and recovery

System Administration in Linux

- Installing the Linux OS- Configuring, compiling and installing software from source code- Monitoring processes including measuring CPU- and memory-usage- Configuring and compiling the Linux kernel

Module Content & Assessment
Assessment Breakdown %
Other Assessment(s)50
Formal Examination50