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.
Stallings, W., & Paul, G. K.: Operating systems: internals and design principles (Vol. 9). New York: Pearson, 2012
A.S. Tanenbaum: Modern Operating Systems, 2nd Ed. Prentice-Hall, 2001
A. Silberschatz et al.: Operating Systems Concepts with Java, 6th Ed. Wiley, 2004
The course language is German, but the actual slides are in English.
The practice sheets and final exam are formulated in German, but may be answered in English, too.