1. Syllabus
Course Objectives
The student will be taught principles of modern operating systems. In particular, the course will
cover details of concurrent processes, multi-threads, CPU scheduling, memory management, file
system, storage subsystem, and input/output management, The course will integrate theory and
practice through coordinated lecture and lab hours.
Learning Outcomes and Subordinate Skills
The students who succeeded in this course will be able to;
1. learn the principles operating systems
2. understand relationship between subsystems of a modern operating system
3. develop multi-process and multi-threaded applications
4. evaluate the efficiency aspect of using system resources (processor, memory, disk).
Generic Competencies
Analytical thinking; algorithm development and programming.
Instructional Methods and Techniques:
Lecture, discussion, question and answer, review case studies, exercises, assignments.
Pre-requisites
CENG114, students are expected to possess the sophomore level skills.
Course Content
Introduction to operating systems, operating system structures, multi-process management,
multi-thread management, inter process communication, deadlocks, CPU scheduling, memory
2. management, file system, storage and input/output systems. The course includes a number of
programming assignments conducted in the lab.
Textbook
A. Silberschatz, P.B. Galvin and Greg Gagne “Operating System Concepts”, 9th Ed., Wiley,
2013
Recommended/ Required Reading
Tanenbaum, “Modern Operating Systems”, 3rd. Ed. PrenticeHall, 2007W.
Stallings, “Operating Systems: Internals and Design Principles” 6th Ed., PrenticeHall, 2008.
Course Outline
Weeks Topics
1 Introduction to operating systems
2 Operating system structures, computer hardware properties
3 Process concept in modern operating systems
4 Multi-processes
5 Thread concept and multi threading
6 Process synchronization
7 Process synchronization/ Midterm1
8 Deadlocks in multi processing
9 Memory management
10 Virtual memory management
11 CPU scheduling algorithms
12 File system
3. 13 Disk subsystem
14 Review
Laboratory
Lab Tutorial: A tutorial introducing the tools and functions that will be used in the lab.
Tutorial Quiz: In order to evaluate your understanding of the concepts, you will be given a quiz
on the tutorial.
Lab assignment: Lab assignments are programming assignments to be completed during the lab
session.
Homework: You will be assigned at least two programming assignments. After each submission,
you will be interviewed and graded on each such assignment. Late homework submissions will
have a penalty of 20% of the grade per each delayed day.
Grading
Lab Works 30%
Assignments 16%
Quizzes 9%
Midterm Exam 20%
Final Exam 25%
Attendance
70% of lectures and 80% of laboratory attendance ıs required. Failure to do so will result in an
NA grade.