The structure and functionalities of a modern OS are presented. These
include management of hardware and software resources, processes and
threads management, cpu scheduling, deadlock management, memory
paging and segmentation, virtual memory. The functionalites the OS
makes available to programmers are discussed by presenting the use of
semaphores and monitors to handle concurrency and synchronization
between processes and threads. To this end the Java language is also
introduced.
Operating Systems: Concepts and examples, 7th edition, Pearson
Addison-Wesley, A.Silberschatz, P. Galvin, G. Gagne
Learning Objectives
Main objectives of the course are to provide the basic knowledge of an
operating systems, and to give insight on the concurrent programming,
including threads and synchronization problems.
Prerequisites
Prerequisites are the knowledge of the programming fundamentals and
of the computer architecture as given in the courses of Fondamenti di
Informatica and Calcolatori.
The structure and functionalities of a modern OS are presented. These
include management of hardware and software resources, processes and
threads management, cpu scheduling, deadlock management, memory
paging and segmentation, virtual memory. The functionalities the OS
makes available to programmers are discussed by presenting the use of
semaphores and monitors to handle concurrency and synchronization
problems between processes and threads. To this end the basics of Java
language are also introduced.
In more detail, the contents of the course are:
- Introduction: Introduction to operating systems, structure of a
processing system, structure of an operating system.
- Basics of the Java language.
- Processes Management: Multiprogramming environment, process
scheduling, system calls. Threads, multithreading, Java threads. CPU
scheduling, Linux scheduling, real time scheduling. Process
synchronization, mutual exclusion, semaphores, monitors, classical
synchronization problems (bounded buffer, readers/writers, dining
philosophers), Java synchronization (synchronized methods,
semaphores). Deadlock, deadlock
prevention, deadlock avoidance, deadlock prevention and recovery.
- Memory management: Address binding, logical and physical address
space, memory paging and memory segmentation. Virtual memory,
demand paging, page replacement algorithms.