CSCI 405 Operating Systems




General Information


Class Location

216 Thompson



Dr. Shankar M Banik

Office: 222 Thompson





Course Description


An introduction to the concepts of modern operating system design, the architectural features of modern computer systems, and a study of the implementations of these components in actual operating systems. Topics include data structures and algorithms to support process control, concurrency, and scheduling; memory management, including virtual memory architectures; I/O and file management, protection and security in operating systems, and distributed and real-time operating systems.


Course Objectives


This course aims to

1.      Present the essential services provided by an operating systems                      

2.      Discuss various ways of structuring an operating system and explain how operating systems are installed and customized and how they boot                                                        

3.      Describe various features of processes, including scheduling, creation and termination and explore inter-process communications using shared memory and message passing      

4.      Discuss API for Pthreads, explore strategies for thread management, and examine issues related to multithreaded programming.                                                                            

5.      Explain race conditions and critical section problem and how it can be solved with semaphores, and discuss three classical process synchronization problems.                                

6.      Describe various CPU scheduling algorithms and discuss evaluation criteria. 

7.      Discuss formal definition of deadlocks and present different methods for deadlock prevention and avoidance.                                                                                                         

8.      Explore various techniques of memory allocation and discuss memory protection mechanisms provided by an OS                                                                                            

9.      Explain the concepts of demand paging, page replacement algorithms, allocation of frames and explore how kernel memory is managed                                                           

10.  Describe the physical structure of secondary storage devices, evaluate disk scheduling algorithms, and discuss OS services for mass storage, including RAID.                            

11.  Explain functions and interfaces of file systems, discuss file access methods, describe directory structure and explore file system protection.                                                    

12.  Describe implementation of file system and directory structure and explain block allocation algorithms                                                                                                         

13.  Explore structure of I/O subsystem and discuss principles and complexities of I/O hardware                                                                                                                                   

14.  Discuss goals and principles of protection in a modern OS, explain protection domain combined with access control list / matrix for protection, and examine capability based protection 

15.  Discuss security threats and attacks in an OS, explain encryption, authentication, discuss defense mechanisms and hardening of an OS.                                                              

16.  Explore history and benefits of virtual machine, discuss various virtual machine technologies.                                                                                                                                 

17.  Explain high level overview of distributed system and networks and protocols that are used in distributed system.

18.  Explain timing requirements of real time OS, discuss different characteristics and security issues of real time OS.



Course Outcomes


Upon successful completion of this course, students will

1.      Be able to identify the major concepts in modern operating systems and the basic security issues in OS design and implementation (how the first principles of security apply to operating systems).

2.      Have an understanding of operating systems theory and implementation.

3.      Understand OS internals to the level that they can design and implement significant architectural changes to an existing OS.

4.      Be able to differentiate between privileged and non-privileged states

5.      Be able to demonstrate an understanding of the concepts of process control and scheduling algorithms

6.      Be able to explain the concepts of mutual exclusion, deadlock, memory management, virtual memory, file management, and distributed processing

7.      Be able to analyze the mechanisms used to support protection and security of resource

8.      Be able to describe the specific services associated with networking and distributed operating systems.





Course Material



Operating Systems Concepts,

Silberschatz, Galvin & Gagne,

John Wiley & Sons

9th Edition



Tentative List of Topics


1.      Introduction

2.      OS Structures

3.      Process Management

4.      Thread Management

5.      Process Synchronization

6.      CPU Scheduling

7.      Deadlock

8.      Main Memory Management

9.      Virtual Memory Management

10.  Mass Storage Structure

11.  File System Interface and Implementation

12.  Input-Output Systems

13.  Protection

14.  Security

15.  Virtual Machines

16.  Distributed OS and Real-time OS



Required Work



Each project should be completed before the due date. For every 24 hours late, you will be deducted 10% of the grade of the project.  Any project that is more than 5 days late will not be evaluated. A project that does not meet the specifications will receive an automatic deduction 50% of the grade. You will use the Linux virtual machine ( for the programming projects.



There will be approximately five to six quizzes. Quizzes will be held every two weeks and will be announced one week before the quiz date.


Midterm Examinations

There will be two Midterm Exams during the semester.Missing an examination without a previously approved excuse will result in a grade of zero for that examination. Makeup examinations are never available.


Final Examination

The Final Examination is comprehensive. No Final Examination can be given early, except as required by The Citadel Policy.



Course Outline





Week 1

Introduction, OS Structures

Read Chapter 1

Week 2

OS Structures

Read Chapter 2, Project 1

Week 3

Process Management

Read Chapter 3, Project 2

Week 4

Thread Management

Read Chapter 4, Project 3

Week 5

Process Synchronization

Read Chapter 5, Project 4

Week 6

CPU Scheduling

Read Chapter 6, Project 5

Week 7


Read Chapter 7

Week 8

Main Memory Management

Read Chapter 8 

Week 9

Virtual Memory Management

Read Chapter 9 

Week 10

Mass Storage Structure

Read Chapter 10

Week 11

File System Interface and Implementation

Read Chapters 11 & 12

Week 12

I/O Subsystem

Read Chapter 13

Week 13


Read Chapter 14

Week 14


Read Chapter 15

Week 15

Virtual Machines

Read Chapter 16

Week 16

Distributed and Real-time OS

Read Chapter 17 and Handout





Course Policies



Class Attendance and Discussion: It is advised that students attend all lectures. Everyone in the class is expected to participate in the class discussion.


E-mail: Any announcement will be sent through email. Class emails are sent to your official email address (assigned by The Citadel). You are responsible for making sure that you are receiving class e-mails. It is your responsibility to have your official email account working properly and forwarding to the location where you read emails.


Webpage: CitLearn will be used as the course webpage where lecture notes, assignments and grades will be posted.


Grading: There are four components to the course grade. They are weighted as follows.













The grading scale will be no higher than the following. It may be lower at the discretion of the instructor.















Grading Policies


If you have a question about the grading of a project or a quiz, please see the instructor during his office hours. All disagreements about the grading of projects or quizzes must be brought to the attention of the instructor within one week of when the item was returned. 


If there is a dispute about the grading of an examination problem, you may stay after the class the day the exams are returned to discuss it with the instructor. If you cannot stay at this time, return the paper to the instructor at the end of class and visit with the instructor during his office hours. ONCE AN EXAM HAS BEEN REMOVED FROM THE CLASSROOM AFTER IT HAS BEEN RETURNED, THE GRADE IS FINAL AND WILL NOT BE CHANGED, EVEN IF IT IS FOUND TO BE IN ERROR.




Any student in this course who has a disability that may prevent him or her from fully demonstrating his or her abilities should contact the instructor personally as soon as possible so that necessary accommodations can be made to ensure full participation and to facilitate educational opportunities.



Academic Misconduct

All work submitted for an individual grade, including homework and project, should be the work of that single individual, and not their friends, nor their tutor. It is your responsibility to be familiar with the policies mentioned in The Honor Manual of The Citadel. Ignorance of these policies is not an excuse for violating them.