CMPT 300: Operating Systems

Textbooks

Preferred Text | Alternate Texts | Recommended | References

Last semester we used William Stallings' Operating Systems: Internals and Design Principles (which had been used by several previous CMPT-300 offerings), but many students found that it overwhelmed them with unnecessary details and burdened them with taxonomies and classifications they didn't need.

This semester I am recommending that students buy Silberschatz and Galvin's Operating Systems Concepts. Although this is my preferred text, I do not insist that you buy it. You can choose your textbook. You can, for example, buy a second-hand copy of the William Stallings book instead. You may even be able to get by with the free PDF text of Raphael Finkel's book (which is more ten years old, but adequately covers many topics).

The important thing to remember is that no single textbook will ever cover everything perfectly, so whichever book you buy, you'll probably need to look at other books. Almost all the books listed below are on reserve in the library.

In addition to textbooks that cover the topics we deal with in class, you may also want to buy a book or two to help you with the assignments, which will assume a familiarity with Unix. I have listed some books on programming and using Unix that you might find useful.

I also expect students in third year classes to have a good command of the English language. Many students could benefit from improving their writing, so I recommend students read Lynn Dupré's BUGS in Writing.

I've included links to Amazon.com in the booklists below (click on the ISBN), not because I expect you to buy your texts there (most of them can be found in SFU bookstore) but because Amazon has reviews of some of the texts that you might find worth reading.

In association with Amazon.com

Preferred Text

[cover image]
Abraham Silberschatz and Peter Baer Galvin
Operating System Concepts, fifth edition.
Addison-Wesley: 1994.ISBN: 0-20159-113-8
Call No: QA 76.76 O63 S5583 1998
A very good text. Two copies on 24 hour reserve.

Errata for the fifth edition (PDF).

Alternate Texts

[cover image]
Charles Crowley
Operating Systems: A Design Oriented Approach.
Irwin: 1997.ISBN: 0-25615-151-2
Call No: QA 76.76 O63 C77 1997
This book provides good coverage of the underlying design principles that apply to both operating systems and other software. Two copies on on 24 hour reserve.
[cover image]
William Stallings
Operating Systems: Internals and Design Principles, third edition.
Prentice Hall: 1998.ISBN: 0-13887-407-7
Call No: QA 76.76 O63 S734 1998
A fairly solid text, but it's not always easy to see the "big picture". May be available secondhand. Two copies on 24 hour reserve.

Errata sheet for the third edition.
[cover image]
Andres S. Tanenbaum
Modern Operating Systems.
Prentice Hall: 1992.ISBN: 0-13588-187-0
Call No: QA 76.76 O63 T359 1992
Showing its age a little, but a solid book. Four copies on 24 hour reserve.
[cover image]
Gary J. Nutt
Operating Systems: A Modern Perspective.
Addison-Wesley: 1997.ISBN: 0-80531-295-1
Call No: QA76.76 O63 N89 1997
Two copies on 24 hour reserve.
[cover image]
Raphael A. Finkel
An Operating Systems Vade Mecum, second edition.
Prentice Hall: 1988.ISBN: 0-13637-950-8
Out of print and more than ten years old, but you can download a copy in PDF format (2.4 MB).

Recommended

[cover image]
Lyn Dupré
BUGS in Writing, second edition.
Addison Wesley: 1998.ISBN: 0-20137-921-X
Call No: PE1408.D85 1998
A wonderful book, which will help you write better and more clearly. Useful both now and in your future career.
[cover image]
Keith Haviland, Dina Gray, and Ben Salama
Unix System Programming: A Programmer's Guide to Software Development, second edition.
Addison Wesley: 1999.ISBN: 0-20187-758-9
Call No: QA 76.76 O63 H383 1999
If you haven't done any programming in Unix, you might find this book's coverage of Unix systems programming helpful.

If you don't know much about UNIX, you'll need to learn. These books are some of the many that might get you started.

[cover image]
Harley Hahn
Harley Hahn's Student Guide to UNIX, second edition.
McGraw-Hill: 1996.ISBN: 0-07025-492-3
Call No: QA 76.76 O63 H342 1996; QA 76.76 O63 H342 1996, c. 2
Often amusing. Two copies on 24 hour reserve.

References

[cover image]
Uresh Vahalia
Unix Internals: The New Frontiers.
Prentice Hall: 1996.ISBN: 0-13101-908-2
Call No: QA 76.76 O63 V33 1996
One copy will be on 24 hour reserve.
[cover image]
Marshall K. McKusick, Keith Bostic, Michael J. Karels, and John S. Quarterman
The Design and Implementation of the 4.4 BSD Operating System.
Addison-Wesley: 1996.ISBN: 0-20154-979-4
Call No: QA 76.76 063 D4743 1996
[cover image]
W. Richard Stevens
Advanced Programming in the UNIX Environment.
Addison-Wesley: 1993.ISBN: 0-20156-317-7
Call No: QA 76.76 O63 S754 1992
[cover image]
W. Richard Stevens
UNIX Network Programming, Volume 1: Networking APIs: Sockets and XTI, second edition.
Prentice Hall: 1998.ISBN: 0-13490-012-X
Call No: QA 76.76 O63 S755 1998, v. 1
Two copies on 24 hour reserve.
[cover image]
W. Richard Stevens
UNIX Network Programming, Volume 2: Interprocess Communications, second edition.
Prentice Hall: 1998.ISBN: 0-13081-081-9
Call No: QA 76.76 O63 S755 1998, v. 2
Two copies on 24 hour reserve.
[cover image]
Brian W. Kernighan and Rob Pike
The Practice of Programming.
Addison-Wesley: 1999.ISBN: 0-20161-586-X
Call No: (Not in library.)
Contains much valuable advice.
[cover image]
Stanley B. Lippmann and Josée Lajoie
C++ Primer, third edition.
Addison-Wesley: 1998.ISBN: 0-20182-470-1
Call No: QA 76.73 C15 L57 1998 (Six copies.)
A good book to help you learn the basics of Standard C++. Covers all of the language features and the Standard Template Library.
[cover image]
Scott Meyers
Effective C++: 50 Specific Ways to Improve Your Programs and Designs, Second Edition.
Addison-Wesley: 1998.ISBN: 0-20192-488-9
Call No: (Not in library.)
Filled with excellent tips to improve your C++ programming skills.
[cover image]
Scott Meyers
More Effective C++: 35 New Ways to Improve Your Programs and Designs.
Addison-Wesley: 1996.ISBN: 0-20163-371-X
Call No: (Not in library.)
After you've read Effective C++, you may want to read this book for more advanced tips and techniques.