This course provides a comprehensive and unified introduction to operating systems and concurrency control topics. It emphasizes both design issues and fundamental principles in contemporary systems and gives students a solid understanding of the key structures and mechanisms of operating systems. It also prepares the students to master concurrent and parallel programming by exposing the concepts of parallelism, synchronization and mutual exclusion. The course discusses design trade-offs and the practical decisions affecting design, performance and security. The course illustrates and reinforces design concepts and ties them to real-world design choices through the use of case studies.