Operating Systems
MODULE CODE
CREDIT VALUE
Module Aims
Aim 1
To provide an introduction to the fundamental concepts of modern computer operating systems.
Aim 2
To examine the services and abstractions commonly provided by operating systems, and study the underlying mechanisms used to implement them.
Module Content
Introduction to Operating Systems (OS)
What is an OS? The role of an OS in a Computer (extended machine, resource manager). Basic Principles of Operating Systems, Structure of operating Systems. Examples of Operating Systems.
Process Description and Control
Processes, Multiprogramming, Process Status and Models, Process Control, Linux Processes
Processes and Threads
Definition and examples of Threads. The thread as a path of execution within a process. Multithreading.
Concurrency and Inter-process Communication
Concurrent programming, Concurrent Processes, Race Conditions, Mutual Exclusion, Critical Regions, Semaphores, Monitors, Message Exchange, Classic Inter-process Communication Problems (Producer-Consumer Problem, Dining Philosophers, Readers-Writers Problem, Sleeping Barber).
Deadlock
Preemptable and non-Preemptable resources, modelling of deadlocks, deadlock strategies (ostrich algorithm, detection and recovery, deadlock avoidance, deadlock prevention).
Process Scheduling
Aims of Scheduling, Scheduling types, categories, criteria and algorithms, Common scheduling algorithms (First-Come First-Serve, Shortest Job First, Round Robin, Priority Scheduling, etc.)
Memory Management
Memory Types. Static and Dynamic Distribution of Memory, Linked Lists, Virtual Memory, Virtual Addressees, Paging, Locality of Reference, Page Replacement Algorithms, Segmentation.
Input / Output Devices
Device Categories, Device Controllers, Device Access, Memory Mapped I/O, Direct Memory Access, Interrupt Systems and handlers, Device Drivers, Disks, Software Timers/Clocks, GUI, Device Energy Management
File System Files, File names, File Structure, File Types, File Access, File Attributes, Directories, Storage, File Sharing, MS-DOS, Windows NTFS, Linux
Other Operating System Topics
e.g. ROS (Robot Operating Systems), Raspbian etc, MAC OS, Android etc.
Learning Outcomes
On successful completion of this module, a student will be able to:
Teaching Methods
The module examines a selected range of fundamental aspects of operating systems. Lectures will aim to provide the formal taught content including concepts, techniques and information. The practical/tutorial sessions supplement and support the lectures allowing a discovery approach to learning. Lectures will mostly examine the services and abstractions commonly provided by operating systems, and study the underlying mechanisms used to implement them.
Students are expected to engage in research activities for case studies for operating systems used in modern machines (such us Robot Operating Systems – ROS). Links to relevant research material will be provided to the students in support of the syllabus. Students will prepare and share summaries of technologies and system components. Students will discuss case studies and explore implications: e.g. considering commercial issues.
The assessment is designed to assess both the students’ comprehension of theoretical topics relevant to operating systems their practical skills in using various operating systems. Assessment may include programming assignments and case studies to illustrate the fundamental concepts.
Assessment Methods
This module is assessed through an assignment and an examination.