Programming Books C Java PHP Python Learn more Browse Programming Books
Buy Used
FREE Shipping on orders over $35.
Condition: Used: Good
Comment: Some visible wear, and minimal interior marks. Unbeatable customer service, and we usually ship the same or next day. Over one million satisfied customers!
Access codes and supplements are not guaranteed with used items.
Add to Cart
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Modern Operating Systems (2nd Edition) (GOAL Series) Hardcover – March 3, 2001

ISBN-13: 978-0130313584 ISBN-10: 0130313580 Edition: 2nd

Price: $5.15
14 New from $19.75 109 Used from $0.01
Amazon Price New from Used from
"Please retry"
$19.75 $0.01
"Please retry"

There is a newer edition of this item:



Save up to 90% on Textbooks
Rent textbooks, buy textbooks, or get up to 80% back when you sell us your books. Shop Now

Product Details

  • Series: GOAL Series
  • Hardcover: 976 pages
  • Publisher: Prentice Hall; 2 edition (March 3, 2001)
  • Language: English
  • ISBN-10: 0130313580
  • ISBN-13: 978-0130313584
  • Product Dimensions: 9.3 x 7.1 x 1.6 inches
  • Shipping Weight: 3.4 pounds
  • Average Customer Review: 3.9 out of 5 stars  See all reviews (22 customer reviews)
  • Amazon Best Sellers Rank: #1,029,238 in Books (See Top 100 in Books)

Editorial Reviews Review

For software development professionals and computer science students, Modern Operating Systems gives a solid conceptual overview of operating system design, including detailed case studies of Unix/Linux and Windows 2000.

What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD.

Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls).

The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets."

It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms.

Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals.

Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson

From the Inside Flap


The world has changed a great deal since the first edition of this book appeared in 1992. Computer networks and distributed systems of all kinds have become very common. Small children now roam the Internet, where previously only computer professionals went. As a consequence, this book has changed a great deal, too.

The most obvious change is that the first edition was about half on single-processor operating systems and half on distributed systems. I chose that format in 1991 because few universities then had courses on distributed systems and whatever students learned about distributed systems had to be put into the operating systems course, for which this book was intended. Now most universities have a separate course on distributed systems, so it is not necessary to try to combine the two subjects into one course and one book. This book is intended for a first course on operating systems, and as such focuses mostly on traditional single-processor systems.

I have coauthored two other books on operating systems. This leads to two possible course sequences.

Practically-oriented sequence:

Operating Systems Design and Implementation by Tanenbaum and Woodhull Distributed Systems by Tanenbaum and Van Steen

Traditional sequence:

Modern Operating Systems by Tanenbaum Distributed Systems by Tanenbaum and Van Steen

The former sequence uses MINIX and the students are expected to experiment with MINIX in an accompanying laboratory supplementing the first course. The latter sequence does not use MINIX. Instead, some small simulators are available that can be used for student exercises during a first course using this book. These simulators can be found starting on the author's Web page: by clicking on Software and supplementary material for my books.

In addition to the major change of switching the emphasis to single-processor operating systems in this book, other major changes include the addition of entire chapters on computer security, multimedia operating systems, and Windows 2000, all important and timely topics. In addition, a new and unique chapter on operating system design has been added.

Another new feature is that many chapters now have a section on research about the topic of the chapter. This is intended to introduce the reader to modern work in processes, memory management, and so on. These sections have numerous references to the current research literature for the interested reader. In addition, Chapter 13 has many introductory and tutorial references.

Finally, numerous topics have been added to this book or heavily revised. These topics include: graphical user interfaces, multiprocessor operating systems, power management for laptops, trusted systems, viruses, network terminals, CDROM file systems, mutexes, RAID, soft timers, stable storage, fair-share scheduling, and new paging algorithms. Many new problems have been added and old ones updated. The total number of problems now exceeds 450. A solutions manual is available to professors using this book in a course. They can obtain a copy from their local Prentice Hall representative. In addition, over 250 new references to the current literature have been added to bring the book up to date.

Despite the removal of more than 400 pages of old material, the book has increased in size due to the large amount of new material added. While the book is still suitable for a one-semester or two-quarter course, it is probably too long for a one-quarter or one-trimester course at most universities. For this reason, the book has been designed in a modular way. Any course on operating systems should cover chapters 1 through 6. This is basic material that every student show know.

If additional time is available, additional chapters can be covered. Each of them assumes the reader has finished chapters 1 through 6, but Chaps. 7 through 12 are each self contained, so any desired subset can be used and in any order, depending on the interests of the instructor. In the author's opinion, Chaps. 7 through 12 are much more interesting than the earlier ones. Instructors should tell their students that they have to eat their broccoli before they can have the double chocolate fudge cake dessert.

I would like to thank the following people for their help in reviewing parts of the manuscript: Rida Bazzi, Riccardo Bettati, Felipe Cabrera, Richard Chapman, John Connely, John Dickinson, John Elliott, Deborah Frincke, Chandana Gamage, Robbert Geist, David Golds, Jim Griffioen, Gary Harkin, Frans Kaashoek, Mukkai Krishnamoorthy, Monica Lam, Jussi Leiwo, Herb Mayer, Kirk McKusick, Evi Nemeth, Bill Potvin, Prasant Shenoy, Thomas Skinner, Xian-He Sun, William Terry, Robbert Van Renesse, and Maarten van Steen. Jamie Hanrahan, Mark Russinovich, and Dave Solomon were enormously knowledgeable about Windows 2000 and very helpful. Special thanks go to A1 Woodhull for valuable reviews and thinking of many new end-of-chapter problems.

My students were also helpful with comments and feedback, especially Staas de Jong, Jan de Vos, Niels Drost, David Fokkema, Auke Folkerts, Peter Groenewegen, Wilco Ibes, Stefan Jansen, Jeroen Ketema, Joeri Minder, Irwin Oppenheim, Stef Post, Umar Rehman, Daniel Rijkhof, Maarten Sander, Maurits van der Schee, Rik van der Stoel, Mark van Drill, Dennis van Veen, and Thomas Zeeman.

Barbara and Marvin are still wonderful, as usual, each in a unique way. Finally, last but not least, I would like to thank Suzanne for her love and patience, not to mention all the druiven and kersen, which have replaced the sinasappelsap in recent times.

Andrew S. Tanenbaum

Customer Reviews

And, Dr. Tanenbaum's writing style is clear and light enough that the book was enjoyable to read, a rarity in a textbook.
Amazon Customer
I've read many computer books just to learn new things and this one definitely gave me the most for my money out of all the ones I've seen.
P. Salanova
What astonishes me most is not the actual type of errors, but the type of errors combined with the large number of errors.
K. D. Crapsey

Most Helpful Customer Reviews

59 of 60 people found the following review helpful By Richard Bejtlich on August 19, 2002
Format: Hardcover
Tanenbaum's book is a thorough yet accessible introduction to the design and implementation of modern operating systems. This second edition explains the trade-offs developers must make and shows readers how OS' have matured since the 1960s. Knowledge of programming in C is helpful, especially if the reader wishes to complete the exercises following each chapter. I gave the book five stars for its content, delivery, and humor, all of which helped me learn a difficult subject in an enjoyable manner.

"Modern Operating Systems, 2nd Ed" (MOS:2E) is very well-written, which may surprise those who suffer while reading other hardcover college texts. The book introduces problems facing developers, then helps the reader understand both simple and complex ways to address these issues. Tanenbaum's style is lively and informative, like the cover of his books. He appears knowledgeable and opinionated -- especially concerning problems with the Windows OS -- but he can back up his assertions.

The best features of MOS:2E are found in chapters ten and eleven. Here Tanenbaum illuminates UNIX and Microsoft Windows 2000, respectively, building upon the material found in the previous nine chapters. He gives real reasons why Windows suffers security problems, such as internal complexity, code bloat, and design choices. UNIX is also critically evaluated, but stands up better to Tanenbaum's scrutiny.

I don't recommend computer novices read MOS:2E. One needs a certain amount of interest and motivation to digest this material, and Tanenbaum's explanations of some concepts did not seem sufficient. However, after having finished this 900 page tome, I feel more comfortable reading about design issues for the Linux kernel or the FreeBSD scheduler. If you're looking to learn the how and why of operating system design and implementation, I strongly recommend MOS:2E.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
21 of 21 people found the following review helpful By woody on January 28, 2005
Format: Hardcover
Just finished my bachelor's degree in Computer Science and looking back this is hands down the best, most readable textbook I had in college. It has a proud place on my book shelf. I can't claim to have read the *entire* book (though I was supposed to), but I read quite a lot of it and it was fascinating.

Tanenbaum covers the material in depth, but he has a relaxed, entertaining writing style that is engaging and amazingly easy to follow considering the weighty material. There are undoubtedly occasional mistakes, but unlike other books with more obtuse, "I am smarter than you" writing styles, you're actually awake enough to spot the mistakes when they show up. I don't ever remember being baffled by any mistakes. After reading the reviews by this book's few detractors, all I can do is shrug my shoulders and say that I loved it and that every classmate I talked to (including two roommates) wholeheartedly agreed.

By the way, I concur with an earlier reviewer in highly encouraging readers to read the case studies of Unix/Linux and Windows 2000 in chapters 10 & 11... fascinating stuff.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
18 of 18 people found the following review helpful By Ricardo Diz on September 23, 2001
Format: Hardcover
I think this book is a great book on OS. It's easy to read (don't forget Tanenbaum humor :)), it explains difficult issues using simple analogies and is certainly an up-to-date book on the field.
It has one chapter covering Unix (and Linux) and another one for Windows 2000, two of the more important Operating Systems well explained here.
The Chapter on processes and threads is great. It really clarifies the difference between processes and threads.
Although I found the book as easy to read as it can get, I must admit that I had litle bit of a hard time reading that Memory Chapter. I'd prefer it didn't had so many algoritms. I shorter chapter would probably be better, at least for me ;).
It also has a chapter on security, a must have nowdays. If you are a first-time learner on Operating Systems I think this is the one.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
18 of 20 people found the following review helpful By Amazon Customer on June 8, 2001
Format: Hardcover
The 2nd edition of this book is nearly as interesting and as much fun as the first edition, but it's a very different book. I liked the first edition for its case studies of edgy systems like Mach and Amoeba and was quite surprised to see them gone in this edition. Apparently, due to the expanding size of the overall material, Tanenbaum is only covering these in his Distributed Systems books anymore, and the case studies left in this book are UNIX and Windows 2000, OSes that I would classify as "contemporary" rather than "modern". Also, I was very disappointed not to find a single mention of MacOS X in the book.
Still, this is a superb book. It covers a wide range of material, and ties textbook material to the latest research papers in an area (for its literature survey value alone, this is a great starting point for any in-depth study of an OS topic). Tanenbaum also suffuses all of the material with humorous anecdotes and sly asides which make the book a delight to read cover to cover.
1 Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
35 of 42 people found the following review helpful By Nagender Parimi on March 3, 2007
Format: Hardcover
It's a very useful, informative book but I found it more esoteric than it needed to be - I speak from my experience as a computer science student who then went on to write software for a living. Unfortunately, I feel the problems described below plague most popular OS books today, including "Operating System Concepts by Silberschatz, Galvin, Gagne".

I'd like to break up the review rating into two parts:

Content and relevance to subject: 4/5

The book covers almost all aspects of what an operating system needs to to do and so is highly informational, from threads to memory management to I/O - the three most essential (and yet elusive) concepts in today's operating systems. The author does a good job of explaining, at each stage, the various design choices that an OS designer must make e.g. virtual memory - use free lists or bitmaps to do book-keeping of used and free physical memory. Most concepts are explained clearly and as such I found this book to be a good reference on OS design principles.

Applicability to real world issues: 2/5

Unfortunately a good reference is not always the best way to understand how things work in practice. The book discusses design choices at each step, but I feel what most computer science students need to learn first is how today's operating systems work - how does the threading scheduler in UNIX work? how does UNIX manage memory, so I as a software engineer can best make use of it? It's great to know all these design pricniples an OS has, but my experience was that when you're at your first job wondering why you're running out of physical memory or why your multi-threaded program keeps crashing, it helps immensely to know well exactly how your OS works, than the myriad choices that it can make.
Read more ›
14 Comments Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Customer Images

Most Recent Customer Reviews


What Other Items Do Customers Buy After Viewing This Item?