CS370: Operating Systems


red-line
[Schedule] [Assignments] [Grading] [Syllabus] [Infospaces] [Canvas] [Home]

Syllabus

Prerequisites: CS200 with a C [2.0] or better, CS250 with a C [2.0] or better.

Required Texts Professor
 

Avi Silberschatz, Peter Galvin, Greg Gagne.
Operating Systems Concepts, 10th edition
Publisher - John Wiley & Sons, Inc.
ISBN-13: 978-1119800361.

  Shrideep Pallickara
Office Hours: Via Zoom 3:00-4:00 PM on Fridays
E-mail: compsci_cs370@colostate.edu

Additional Useful References
(1)
Andrew S Tanenbaum and Herbert Bos. Modern Operating Systems. 4th Edition, 2014. Prentice Hall.
ISBN: 013359162X/978-0133591620. [AT]
(2) Thomas Anderson and Michael Dahlin. Operating Systems: Principles and Practice, 2nd Edition.
Recursive Books. ISBN: 0985673524/978-0985673529. [AD]
(3) Kay Robbins & Steve Robbins. Unix Systems Programming, 2nd edition, Prentice Hall
ISBN-13: 978-0-13-042411-2. [RR]
(4) C Programming Language (2nd Edition). Brian W. Kernighan and Dennis M. Ritchie.
Prentice Hall. ISBN: 0131103628/978-0131103627
(5) Concurrent Programming in Java(TM): Design Principles and Pattern (2nd Edition).
Doug Lea. Prentice Hall. ISBN: 0201310090/978-0201310092.

List of Topics
  Introduction to Operating Systems
 
  • History of Operating Systems
  • The OS as a resource manager
  • Key principles underpinning OS design
  Processes
 
  • Processes and multitasking
  • Operations on processes
  • Context switches
  • Process lifecycle and transitions, Shells and Daemons
  • POSIX
  Inter Process Communications
 
  • Shared memory
  • Pipes
  • Messages
  Threads
 
  • Thread models
  • Differences between processes and threads
  • User and Kernel threads
  • Multithreading models
  • Threading issues: system calls, cancellation and signal handling
  • Support for threading in different operating systems
  CPU Scheduling
 
  • Scheduling criteria including fairness and time quanta
  • Pre-emptive and non-preemptive scheduling
  • Scheduling algorithms: FCFS, shortest jobs, priority, round-robin, multilevel queues
  • Evaluating the effectiveness of scheduling algorithms and criteria
  • Scheduling on multiprocessors
  Process Synchronization
 
  • Critical Section Problem
  • Peterson’s solution
  • Synchronization hardware and Instruction Set Architecture support
  • Semaphores
  • Classical problems of Synchronization:
    • Bounded buffers, Readers-Writers, Dining Philosophers
  • Monitors
  • Synchronization constructs
  Atomic Transactions
 
  • Atomic Transactions and Serializability
  Deadlocks
 
  • The model for deadlocks
  • Deadlock Characterization
  • Methods for handling deadlocks
  • Deadlock Prevention
  • Deadlock Avoidance
  • Recovery from Deadlocks
  Memory Management
 
  • Address binding
  • Address spaces
  • Swapping of Processes
  • Contiguous Memory allocation
  • Paging
  • Shared Pages
  • Structure of Page Tables
  • Hardware support for paging
  • Memory protection in paged environments
  • Segmentation
  • Use of Segmentation and Paging
  Virtual Memory
 
  • Demand Paging
  • Copy-on-Write
  • Page Replacement
  • Belady’s anomaly and stack algorithms
  • Allocation of Frames
  • Thrashing and working sets
  • Memory-mapped files
  • Allocation of Kernel Memory
  Virtualization
 
  • Virtual Machine Monitors
  • Type-1 hypervisor
  • Type-2 hypervisor
  File Systems
 
  • File System Structure
  • File System Implementation
  • Virtual file systems
  • Contiguous allocation
  • Linked allocations
  • File Control Blocks
  • Unix File System and inodes
  • NTFS, and FAT32
  Mass Storage & Disk Scheduling
 
  • Disk Management
  • Swap space management
  • Disk scheduling algorithms: FCFS, SSTF, SCAN, C-SCAN, and LOOK
  • Storage based on flash memory and SSDs


Responsibilities
Track the schedule page of the course website daily. The schedule page includes a time-stamp of when it was last updated. Make sure that you refresh this page.
Ensure that you complete the reading and programming assignments


Generative AI Use and Consequences
Use of AI tools such as ChatGPT, Claude, Github Co-Pilot, and/or their ilk to write or “improve” your code or written work at *any* stage is prohibited.  Turning in code or an essay written by generative AI tools will be treated as turning in work created by someone else, namely an act of plagiarism and/or cheating.

Ultimately, you will get out of the class what you put in. Simply copying and pasting code from generative AI tools is neither ethical nor does it contribute to your learning experience. There are multiple reasons why these generative AI tools are detrimental to your learning experience:

  1. They rob you of the ability to think and learn the concepts for yourself. Solving problems is an essential step to gaining a solid understanding of the material.
  2. You will struggle with the in-classroom quizzes and exams where you will not have access to these tools.
  3. While we acknowledge that these tools are likely to become an important part of a software engineer's workflow in the future, you are much more likely to use these tools in an effective manner if you already have expertise in the relevant technical topics. Developing such expertise requires putting in the effort to learn these topics without the assistance of these tools.
  4. These tools are prone to generating imperfect or even incorrect solutions, so trusting them blindly can lead to bad consequences.


Policies for Makeup exams and Late Submissions:
The dates for all exams, excluding quizzes, will be announced. All exams (quizzes, midterm and the comprehensive Final) will be held in the same classroom as regular lectures. There will be no make-up exams for missed quizzes, mid-term, and finals. If you have a family or medical emergency that prevents you from attending the midterm, or the final, let me know as soon as possible and be able to provide documentation to reschedule.

All assignments are due at 8:00 PM on the due date. There is a late penalty of 10% per-day for up to a maximum of 2 days. Submissions are automatically disabled 48 hours after assignments are due -- if you have not submitted the assignment by then, you will receive an automatic zero. All assignments will be posted at least 2 weeks prior to its due date. We will have a mix of both written and programming assignments. All assignments will be posted on the assignments page. All assignments should be submitted using Canvas.



Academic Integrity & Student Conduct
All students are expected to be familiar with the policies in the department's student information sheet available here.

This course will adhere to the CSU Academic Integrity Policy as found on the Student Responsibilities page of the CSU General Catalog and in the Student Conduct Code. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Student Resolution Center.









Department of Computer Science, Colorado State University,
Fort Collins, CO 80523 USA
© 2025 Colorado State University