CS-405: Operating systems

Fall 2020

TR: 8:00 am – 9:20 am; Synchronous/Online

 

 

Course Description:

Study of the principles and design techniques of operating systems. Topics include concurrent processes, scheduling, deadlocks, memory management, file and directory organizations and protection/security. Prerequisite: C or better grade in CS-341 and CS-375.

 

Objective:

To study and understand the design principles of Operating Systems.

 

Text:   Operating System Concepts

            Silberschatz, Galvin, Gagne, 9th ed., John Wiley.

Office Hours:  Link

Link To Handouts and Assignments.

Syllabus:

I.               Introduction

a.     Components of computer systems

b.     Components of operating systems

c.     Design and implementation of operating systems

II.             Process management

a.     Process concepts

b.     Scheduling

c.     Inter-process communication

d.     Processes and threads

III.           Process synchronization

a.     Synchronization mechanisms

b.     Classic synchronization problems

c.     Multiprocessing/multithreading programming

IV.           Memory management

a.     Memory management concepts

b.     Paging

c.     Segmentation

d.     Principle of locality

e.     Virtual memory

V.             File system management

a.     File system concepts

b.     File structures

c.     Directory structures

d.     Disk scheduling

VI.           Other components of operating systems

 

 

 

Upon completing CS 405, students will

·       Understand the techniques used to design and implement operating systems

·       Understand how components of operating systems work

·       Develop a better understanding of what is behind the scene of program execution

·       Recognize and appreciate the importance of the principle of locality

·       Evaluate performances of algorithms and techniques used in operating systems

·       Analyze and develop solutions for processing synchronization

·       Gain experience in developing code for multi-threading tasks

 

 

Course Objectives and Expectations:

 

Upon entering the course – students should:

 

·       Be capable of developing programming solutions from written requirements

·       Be capable of developing datasets for various scenarios and test developed solutions

·       Have clear understanding of computer hardware and low level (assembly) programming

 

Upon completion of the course - students will:

 

o   Be able to clearly articulate the components of an operating system and describe their functions

o   Be able to develop independent units that can perform operating system functions

o   Be able to test for, study, and understand performance measures of a operating system

o   Have a broad understanding of different types, uses, and research topics in Operating systems.

Policy:

Pre-requisite for this course is C or better grades in CS-375 and in CS-341. You should satisfy this pre-requisite to attend this class. If this is your fourth (4th) time taking this class – you need department permission to attend this class. See Course Repetition Policy.

 

Projects and Homework should be done on an individual basis. Co-operative learning is encouraged. Collaboration in generating the submitted work will be construed as plagiarism and will be reported to the department.

 

A Departmental policy sheet is available on the Web – Collaboration Policy. Other policy details may be handed out in class.

 

WSU is committed to Inclusive Excellence. WSU Promotes and celebrates diverse cultures, ethnic heritages, and includes all perspectives and promotes the understanding of issues relating to race, ethnicity, culture, gender, age, sexual orientation, ability levels, socioeconomic status, and religion. The complete statement with resources is at Inclusive Excellence Statement.

 

Grading:         

Exam 1

15 %

Exam 2

15 %

Exam 3

15 %

Finals

15 %

Projects

30 %

Case Studies

10 %

Total

100 %

            Grading Scale

 

Grade

>= 90%

A

>= 80%

B

>= 70%

C

>= 60%

D

< 60 %

F