Operating systems tie together the execution of applications, user experience and usability with the management of computer hardware. Starting with the tasks an operating system has to perform and the requirements it has to meet, the most important aspects of design and development of modern operating systems will be introduced:
- Structure and design of an operating system including historical summary, structures and philosophies of OS design and resources and resource management
- Threads and processes including thread management
- Scheduling including real-time scheduling
- Process interaction and inter-process communication
- Resource management including device operation, driver development, management and operation of input- and output devices
- Memory management including address spaces and virtual memory
- File system including management and operation of discs and memory hierarchy
- Distributed operating systems including distributed architectures for resource management
- Performance evaluation and modeling including overload detection and handling
Modern operating systems provide examples for different aspects and current research will be introduced. The tutorials serve to reflect the topics dealt with in the lecture and to acquire experience by developing a small operating system.