CS370: Operating Systems


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

Syllabus

Prerequisites: CS200 with a C [2.0] or better, CS270 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



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.


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 in the General Catalog and the Student Conduct Code. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Conflict Resolution and Student Conduct Services.











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