Academic Staff
Course Contents
THEORY
Description:
This course aims to study the design and implementation of modern operating systems. After an initial introduction to the variety of operating systems in use and the principles they are built upon, the course focuses on certain aspects, like, processes, memory management and file and disk management.
The laboratory part of the course provides students with the opportunity to get hands on experience with the Linux operating systems and comprehend the principles taught in theory via running appropriate simulator programs.
Layout:
1. Introduction
• What is an Operating System
• Example Operating Systems
• Operating System concepts
• Operating System structure
2. Processes and Threads
• The process model
• Threads
• Interprocess communication
• Scheduling
3. Deadlocks
• Resources
• Deadlock modelling
• Deadlock detection, avoidance and prevention
4. Memory Management
• Basic memory management
• Swapping
• Virtual memory
• Page replacement algorithms
5. File Systems
• Files and directories
• File System implementation
• Example File Systems
LABORATORY
During the laboratory course students will:
• Learn how to perform basic tasks (login/logout process, some simple
commands, electronic mail, basic text processing commands and editor
usage)
• Understand the structure and operation of a GNU/Linux Operating System
• Be able to use and combine the basic commands set and develop simple
shell scripts
• Learn about the filesystem structure and capabilities
• Use simulator programs to comprehend the principles taught in theory
Bibliography:
- Avi Silberschatz, Peter Baer Galvin and Greg Gagne, “Operating System Concepts”, 9th Edition, Wiley (2013), ISBN 978-1118093757, http://os-book.com/
- W.R. Stevens and S.A. Rago, "Advanced Programming in the UNIX Environment", 3rd edition, Addison-Wesley (2013), ISBN 978-0321637734

