Computing Science Course Outlines

Course Outline - CMPT 300 - Operating Systems I

Information

Subject

Catalog Number

Section

Semester

Title

Instructor(s)

Campus

CMPT

300

E200

2010 Fall (1107)

Operating Systems I

Mehrdad Oveisi-Fordoei   

Vancouver Campus

Calendar Objective/Description

This course aims to give the student an understanding of what a modern operating system is, and the services it provides. It also discusses some basic issues in operating systems and provides solutions. Topics include multiprogramming, process management, memory management, and file systems.

Instructor's Objectives

This course presents the fundamentals of operating system (OS) function and design. Modern multi-programmed operating systems are sophisticated pieces of software. They provide a set of services essential to the operation of modern computers. The OS shares a finite set of resources and services, each of which can typically be used by only one process at a time, between many concurrent processes. In this course, 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 and/or 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.

Prerequisites

CMPT 225 and MACM 101.

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

Assignments: 40% Midterm: 20% Final Exam: 40% Exam marks may or may not be adjusted. A student must have a passing weighted average on their exams (50% or better) to achieve a passing final grade (C- or better).

Required Books

  • Modern Operating Systems, 3rd edition, Andrew S. Tanenbaum, Prentice Hall, 2008, 9780136006633, (Any other intro O.S. book would probably suffice as well.)

Reference Books

  • Operating System Concepts, 7th Edition, or latest., Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, J. Wiley & Sons, 2005, 9780470128725, (Any other intro O.S. book would probably suffice as well.)
  • Harley Hahn's Student Guide to Unix, 2nd edition, Harley Hahn, McGraw Hill, 1996, 9780070254923, (For those who have never touched a Unix system)
  • 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)
  • Operating Systems: Internals and Design Principles, 6th Edition, William Stallings, Prentice Hall, 2001, 9780136006329, (Or earlier edition: use to augment Tanenbaum)
  • Operating Systems: A Design Oriented Approach, Charles Crowley, Irwin, 1997, 9780256151510
  • Operating Systems: A Modern Perspective, 3rd edition, Garry J. Nutt, Addison-Wesley, 2004, 9780201612516
  • Unix Internals: The New Frontiers, Uresh Vahalia, Prentice Hall, 1996, 9780131019089

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/Students/index.html ). Students are also encouraged to read the School's policy information page ( http://www.cs.sfu.ca/undergrad/Policies/ ).

Data Last Updated: