Operating Systems


Course Objectives 

The purpose of this course is to provide students basic knowledge of operating systems, difference between the kernel and user modes, concepts of application program interfaces, methods and implementations of interrupts. Students are introduced to the schedulers, policies, processes, threads, memory management, virtual memory, protection, access control, and authentication. Students learn system calls in different popular operating systems used in the industry.


Course Contents 

1.Introduction to Operating Systems

2.Operating System Design and Implementations

3.Proccesses

4.Threads

5.Proccess Synchronizations 

6.Deadlocks

7.CPU Scheduling

Lecture Slides 

Chapter 1

Chapter 2

Chapter 3

Chapter 4

Chapter 5

Course's main textbook 

Operating System Concepts by Abraham Silberschatz, Greg Gagne


Assessment and Grading

Course assessment includes  quizzes that will be offered through the course, homework assignments, and two exams - midterm and final. 
The final exam is not cumulative. You final grade has four components: class attendance, assignments, quizzes, midterm exam grade, and final exam grade. 

1.Class attendance 10%
2.Assignments 30% 
3.Midterm Exam 20% 
4. Final exam 40% 

Operating Systems Programming for advanced students

Textbooks 

Practical System Programming with C Pragmatic Example Applications in Linux and Unix-Based Operating Systems by Sri Manikanta Palakollu

The Linux programming interface a Linux and UNIX system programming handbook by Michael Kerrisk

Understanding Unix-Linux Programming by Bruce Molay

Open Courses