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 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

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.