Home
This course is an introduction to the theory and practice behind modern
computer operating systems. Topics will include what an operating system
does (and does not) do, system calls and interfaces, processes, concurrent
programming, resource scheduling and management (e.g., CPU, memory, devices),
virtual memory, deadlocks, distributed systems and networks, and security.
We will approach the subject from both a theoretical perspective (what are
the abstractions and algorithms?) as well as a practical one (what are the
mechanisms? how are they built?).
Upon successful completion of the course, students will understand:
OS concepts and practices in system calls and interfaces
OS concepts and practices in process and process management
OS concepts and practices in CPU scheduling
OS concepts and practices in memory systems and memory management
OS concepts and practices in file systems and file management
OS concepts and practices in I/O systems and I/O management
In addition, from the programming lab experience, students will be able to:
Demonstrate facility with using the Linux software development environment
Gains "hands on" training with programs developed using processes and threads
Gains "hands on" training with programs developed using Linux system calls