Course Outline - CMPT 300 - Operating Systems I
Information
Subject
Catalog Number
Section
Semester
Title
Instructor(s)
Campus
CMPT
300
D200
2022 Fall (1227)
Operating Systems I
Harinder Khangura
Surrey Campus
Calendar Objective/Description
Operating Systems I
Instructor's Objectives
Students taking this course will gain a comprehensive grounding in the area of multiprogrammed operating systems, including an understanding of the theoretical and practical issues and problems in operating system design. The student will gain an understanding of the needs of computing processes, the services offered by the OS to meet these needs, and how the services are shared between concurrent processes. Lectures will focus on the principles and problems of OS design and will be supplemented by independent reading. Programming exercises (in C) will require the student to implement programs illustrating the principles used in OS design. Basic knowledge of C programming and the UNIX environment is assumed. This course will be taught in-person, and students will be required to attend in-person tests. Should this course be moved to remote teaching during the semester due to pandemic restrictions, students must have access to a computer with internet access, allowing the use of a conferencing system such as Zoom or BB Collaborate Ultra. Some components of the course will require synchronous (real-time) participation during the scheduled lecture and/or exam times. Visual proctoring may be required, subject to university approval.
Prerequisites
see go.sfu.ca
Topics
- History, Evolution, and Philosophies
- The User's View of Operating System Services
- Tasking and Processes
- Interprocess Communication, Concurrency Control and Resource Allocation
- Scheduling and Dispatch
- Physical and Virtual Memory Organization
- File Systems
- Security and Protection
Grading
There will be 3-4 assignments, one or more midterms, and one final exam. A more detailed marking scheme will be provided in the first class of the semester.
Students must attain an overall passing grade on the weighted average of exams in the course in order to obtain a clear pass (C- or better).
Required Books
- Operating System Concepts, 10th Edition (Ebook available), Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, J. Wiley & Sons, 2018, 9781119320913, (Any other intro O.S. book would probably suffice as well, including previous editions of this book).
Reference Books
- Unix System Programming: a programmers guide to software development, 2nd edition, Keith Haviland, Dina Gray and Ben Salama, Addison-Wesley, 1999, 9780201129199, (For those who have never touched a Unix system)
Recommended Books
- Modern Operating Systems, 4th edition, Andrew S. Tanenbaum, Prentice Hall, 2014, 9780133591620
- Operating Systems: Internals and Design Principles, 9th Edition, William Stallings, Prentice Hall, 2018, 9780134670959, (also available as an eBook)
Academic Honesty Statement
Academic honesty plays a key role in our efforts to maintain a high standard of academic excellence and integrity. Students are advised that ALL acts of intellectual dishonesty will be handled in accordance with the SFU Academic Honesty and Student Conduct Policies ( http://www.sfu.ca/policies/gazette/student.html ).