Syllabus

Prerequisites:

CS200 with a C [2.0] or better, CS270 with a C [2.0] or better.

Required Texts

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

Additional Useful References

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

Responsibilities

Track the schedule page of the course website and Canvas 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. The exams (quizzes, midterm and the comprehensive Final) will be held in the same classroom as regular lectures, unless otherwise specified in the class. 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 5: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. The programming assignments will generally be posted about 12-14 days prior to the due date. The written assignments will generally be posted 6-7 days in advance. Quizzes will be both on-line and in-class using iClicker. 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. Use of electronic devices in the class is not permitted, unless prior permission has been obtained and the use is limited to taking class notes.

Course Objectives:

CS370 is a core undergraduate course generally taken by junior CS students. The objective of this course is to understand the broad range of issues that underlie modern Operating Systems. We focus on key concepts and algorithms that are used in both commercial and open-source operating systems. This course will cover the following broad areas:

Operating systems - perspective and terminology.
Processes, threads and synchronization
CPU Scheduling algorithms
Deadlocks and resource management
Memory - address translation and virtual memory
Storage architecture and File System
Virtual Machines

We may discuss advanced topics (security and reliability) and recent development based on time available.