Automotive Holiday Deals Books Holiday Gift Guide Shop Men's Athletic Shoes Learn more nav_sap_SWP_6M_fly_beacon Indie for the Holidays egg_2015 All-New Amazon Fire TV Beauty Deals Martha Stewart American Made Amazon Gift Card Offer minions minions minions  Amazon Echo Starting at $84.99 Kindle Black Friday Deals Nintendo Digital Games Outdoor Deals on HTL

Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your email address or mobile phone number.

Operating Systems (3rd Edition) 3rd Edition

33 customer reviews
ISBN-13: 978-0201773446
ISBN-10: 0201773449
Why is ISBN important?
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Have one to sell? Sell on Amazon
Rent On clicking this link, a new layer will be open
$27.63 On clicking this link, a new layer will be open
Buy used On clicking this link, a new layer will be open
$29.99 On clicking this link, a new layer will be open
Buy new On clicking this link, a new layer will be open
$220.00 On clicking this link, a new layer will be open
More Buying Choices
20 New from $58.00 53 Used from $6.55
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student

Get Up to 80% Back Rent Textbooks
$220.00 FREE Shipping. Only 1 left in stock. Ships from and sold by Gift-wrap available.

Frequently Bought Together

  • Operating Systems (3rd Edition)
  • +
  • The C Programming Language
Total price: $274.19
Buy the selected items together

Editorial Reviews

From the Author

Undergraduate OS textbooks vary in style from those that focus on a detailed discussion of a single OS to those that provide descriptions of concepts and issues for any OS. OS textbook styles also vary from conversational discussions to detailed discussions of meaty content on the details of an OS. Traditionally, books with meaty content are either very theoretical or mathematical, or address only a single OS; conversely, books that are easy to read tend to be so due to lack of content. Contemporary operating systems are very complex software. A book that lacks content fails to convey the requisite understanding to cope with actual operating systems; a book that focuses on only one OS does not provide the proper perspective on the discipline.

This book was written 6 years after writing a dense and formal book on OS concepts. It preserves the deep concepts, but pushes the formal treatment into later chapters (and even then, it is simplified over the earlier material). The student begins with informal explanations for the initial concepts, then gradually works up to subject matter that is described in more formal and precise terms.

The second edition of the book* also includes an extensive set of exercises for UNIX systems as well as extended discussions and examples from Windows NT, Mach, and other research OSes. This approach was taken to balance the conceptual material with concrete exercises to apply the concepts to UNIX. There are also complementary lab manuals for Windows NT exercises and Linux kernel exercises, if the student wishes to perform more in-depth experiments.

This material is reaching maturity; it has been reviewed by many professional reviewers, used by many instructors and many students. Most "errors" that remain in the code examples are due to misinterpretation of pseudo code rather than faulty algorithms.

------------ * Note: All comments dated before January 2000 refer to the first edition of the book. --This text refers to an alternate Hardcover edition.

From the Inside Flap

Operating systems is an exciting software area because the design of an operating system exerts a major influence on the overall function and performance of the entire computer. Today there are basically three types of books that introduce this topic to undergraduates:

The first type provides a detailed description of one or more different operating systems. This approach is particularly useful if you just want to know how a particular operating system works without learning much about how all operating systems work. The second type is an evolution of the first in that it bases all its explanation around a single pedagogical system. It usually provides enough information to derive the underlying principles of good operating systems, but these principles often are obscured by the explanation of the pedagogical system. The third type is written to be independent of any particular operating system. It focuses on the theory behind all operating systems. It tends to leave you without that important link to how an operating system is really built.

I strongly believe that it is important to understand the principles behind the designs of all operating systems and to see how those principles are put into practice in real operating systems. The goal of this book is to provide a complete discussion of theory, along with an extensive set of coding and algorithm examples. The material presented is so that the student can easily differentiate among operating systems fundamentals and the detailed coding examples. Highlighted throughout are issues of performance, since that is a fundamental factor affecting how an operating system is designed. However, the coverage of performance is not intended to be comprehensive in nature. Additional emphasis is also placed on how various parts of the system are related to real-world demand and hardware constraints. I decided to forego extensive coverage of analysis and performance theory in favor of explanation of performance issues. Students should have plenty of time to study analysis techniques in a graduate-level operating system course.

The main part of the text presents operating systems fundamentals, along with general examples. It also includes three types of examples: IN THE COCKPIT examples illustrate how to use concepts being explained in the chapter. IN THE HANGAR examples focus on how these concepts can be implemented and performance issues are highlighted in PERFORMANCE TUNING boxes. If desired, the reader could ignore these examples and and focus only on operating systems theory. Or one could browse the main text but focus primarily on these examples for a course that emphasizes a hands-on approach to operating systems.

Code Examples. The intent of including a variety of code examples is to describe operating system more concretely and provide samples of the implementation of OS theory. Sometimes these examples include descriptions at the level of programs and algorithms. A few of these code examples are complete programs that have been compiled and executed. Most examples, however, are simply descriptions of algorithms or techniques using the C programming language. These descriptions deliberately omit detail that would be necessary in an actual implementation but that do not contribute to the understanding of the algorithm. The context in which the code appears should make clear when the code is an actual implementation; otherwise it should always be assumed to be a description of an algorithm or technique. I believe that detailed descriptions are mandatory for describing operating systems. I also believe that full implementations contain so many code-specific details that the essence of the ideas being illustrated are difficult to abstract and separate from the details of the language implementation. I have experimented with using pseudo code languages for these descriptions, but students and reviewers have consistently preferred the use of C. Be careful not to interpret the descriptions in C as complete implementations

Topic Order

The order of presentation is based on my experience teaching operating systems courses with input from many experienced OS instructors. This organization thus reflects the combined knowledge and experience of many different teachers and I believe the result is logical, conducive to learning, and generally accepted by most operating system instructors.

Each chapter begins with a transition from the previous chapter and a preview of what is covered in the current chapter. Students can look at this material as well as the summary at the end of the chapter to get a quick idea what a chapter is about. Chapters 1-4 consist of important introductory material that provides a solid foundation for the study of operating systems. Teachers may decide to go over this material rather quickly, perhaps assigning it as outside reading material, especially if this was covered in other courses. However, understanding this material is critical before one dives into the further study of meat of operating systems starting in Chapter 5.

Chapter 1 shows how operating system; fix into software technology, in earlier drafts, an historical perspective had been included. Instructors tend to like a little history and context but many students think it is boring, so we have dispensed with history.

Chapter 2 is unique among operating system books in that it considers how to use an operating system, particularly how to use multiple processes. This chapter was added because my experience with computer science juniors and seniors is that they may have written considerable single-threaded code but are far less likely to have written or studied multithreaded software. This chapter offers an immediate opportunity to learn this new material.

Chapter 3 describes the fundamental organization of operating systems, including implementation strategies.

Chapter 4 finishes the preliminaries for studying operating systems-computer organization. For students who have already taken a computer organization class, the first half of Chapter 4 will be elementary. The second half describes interrupts, emphasizing the aspects that are critical to operating systems.

Chapter 5 describes device management, specifically general techniques, buffering, and device drivers. It is tempting to become completely immersed in Linux device drivers. However, I resisted this temptation to focus instead on a macro-level view of the purpose and general organization of interrupt-driven I/O. Included are extensive boxed sections on device drivers, but these stop short of providing an actual Linux driver. The chapter examines devices before considering processes because devices provide an elementary case in which physical concurrency exists in the computer and the software must be carefully designed to control that concurrency. This provides a natural introduction to process management.

Chapters 6-10 are devoted to process management. They start from the basic tasks and organization of process and resource managers (Chapter 6) and move to scheduling ( Chapter 7), synchronization (Chapters 8 and 9), and deadlock (Chapter 10).

Chapter 11 deals with traditional issues in memory management, while Chapter 12 covers the contemporary approach to memory manager's using virtual memory. Because of the popularity of paging, most of the discussion is directed at this technology. However, with the current trends in memory technology, it would be a mistake to ignore segmentation. Thus part of this discussion deals with segmentation. Unfortunately, the best example of a robust segmentation system is still the (now obsolete) Multics system.

Chapter 13 describes file management. Less space is devoted to file management than is customary in operating systems books because it is not as difficult to understand as process management and memory management. This discussion is augmented in Chapter 16, which deals with remote files.

Chapter 14 provides a general discussion of protection mechanisms and security policies. It might be argued that this section belongs in the process management discussion, although much of the technology is just as closely related to files, memory, and other resources. It is much easier for someone to appreciate the need for protection and security after they have seen the process, memory, and file managers.

Chapters 15-17 introduce operating system technology to support distributed computing. Distributed computing is a dominant aspect of modern operating systems and I feel strongly that coverage of this important issue belongs in all introductory texts on operating systems.

The study of operating systems has traditionally been one of the most challenging and exciting software disciplines in computer science. I hope this book makes complex aspects of operating systems easy to understand and avoids making simple aspects boring. Good luck in your study of operating systems; I hope you enjoy it as much as I do!

To the Instructor

Thank you for choosing this book as your aide in teaching undergraduates about operating systems. Operating systems continues to be an --This text refers to an alternate Hardcover edition.


Hero Quick Promo
Holiday Deals in Kindle Books
Save up to 85% on more than 1,000 Kindle Books. These deals are valid until November 30, 2015. Learn more

Product Details

  • Hardcover: 894 pages
  • Publisher: Pearson; 3 edition (July 13, 2003)
  • Language: English
  • ISBN-10: 0201773449
  • ISBN-13: 978-0201773446
  • Product Dimensions: 7.2 x 2 x 9.2 inches
  • Shipping Weight: 2.8 pounds (View shipping rates and policies)
  • Average Customer Review: 2.2 out of 5 stars  See all reviews (33 customer reviews)
  • Amazon Best Sellers Rank: #305,147 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews

22 of 25 people found the following review helpful By A Customer on October 28, 1999
Format: Hardcover
I am using this book because i'm taking the ugrad OS course at CU Boulder. Guess what university the author is from. yeah, that's right. This is, quite possibly, one of the worst books ever written by a human being. If, hypothetically, one were to forgive the book for blatantly incorrect examples that obviously haven't even been checked or reviewed and have spawned more than a few bewildered discussions among my fellow students and I, for rediculous project suggestions, for its condescending tone, for the obnoxious little graphics and second-rate dull grey paper on which they're printed, it still remains that the book does an atrocious job of treating the history and current practice of operating systems. It seems to be leaving us with a horribly skewed general prospective on the field and a paucity of actual knowledge--thus, not only are we ill-prepared to design an operating system, but we are worse programmers for having adopted Nutt's sick and deviant way of thinking. If this seems too vague for you, let me simply say that more than a few vague, general discussions are clearly based not on UNIX, not even on NT, but on MS-DOS. The fact that i recognize the lineage of his thinking is a major source of embarrassment for me, but I must share it with you lest this book corrupt yet more fresh young minds. Those who enjoy kneeling and worshiping before mistakes IBM made twenty years ago will get a real kick out of this book--there are detailed discussions of bizzare things IBM did on old two-ton mainframes, extensive discussions of batch job scheduling and seek algorithms for ten-inch disk packs. Yet, for the rest of us, I can only say: if you have a copy of this book, I advise you to burn it immediately. I sure wish I could. If i can save just one poor soul from this book, I will die a happy man.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
13 of 14 people found the following review helpful By Rob F. on December 7, 1999
Format: Hardcover
The content is well organized and the relevant information seems to be present. However, a lot of the pseudocode is blatantly wrong. This would be very misleading for an initiate to operating system design and implementation, the target audience for this book. If you know enough to recognize the errors in the pseudocode, you're too advanced to be reading this book. If you know less, you shouldn't be reading this book because its errors will undermine the foundation you're hoping to build. Your money is better spent on another book.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
8 of 8 people found the following review helpful By A Customer on July 1, 2003
Format: Hardcover
I'm a systems researcher myself. I can't believe this book is allowed to be in publication. The writing is shoddy, and the relevancy of the material is fragmented. The poor quality is perfectly encapsulated by the two luminaries praising the book on the back cover. One is from Centre College, some liberal arts college I had never heard of; the other is supposedly a professor from the University of California, but upon closer investigation, he's only a staff member, not a real professor. This book has a second-hand feel to it throughout. If you're a student forced to use this book in college, I suggest you change colleges.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
5 of 5 people found the following review helpful By A Customer on April 21, 2003
Format: Hardcover
Gary Nutt's book is the most confusing approach to Operating Systems I have ever encountered. His constant and confusing mathematical definitions make the simplest topics so confusing, that Einstein or Dijkstra would throw in the towel before understanding them. I am a third year Computer Science student and I have never used a textbook this horrible. If you are a professor, PLEASE consider another textbook for your students! (That is if you want them to learn something other then how to waste money on horrible unedited textbooks)
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
12 of 15 people found the following review helpful By Matt Hayes on November 3, 2003
Format: Hardcover
This is probably the worst CS book I've ever read. Nutt has a real knack for making things that can be simply stated overly complicated and confusing. There are times when he'll spend several paragraphs trying to explain something which could have been explained in several sentences. Part of the problem is he's obsessed with set notation, which can be very useful in mathematics, but is totally useless in the context of what he's talking about. Other times instead of overexplaining things he'll underexplain it, things which aren't exactly obvious. Probably the two most annoying things about the book are: 1) the incoherent way the chapters are organized, you're left with a fragmented understanding of things, making it hard to put all the pieces together, and 2) he oversimplifies concepts early on in his book, foregoing a slightly more detailed explanation until later. But the way he does it makes you wonder what the truth really is. The whole book just feels like a bunch of jumbled concepts. Just look at the front cover.. Nutt thinks he's the conductor of them. But it's not music to my ears, just one loud cacophony.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
4 of 4 people found the following review helpful By A Customer on May 3, 2001
Format: Hardcover
Like the title says, this could have been better. No doubt it's difficult to write a "modern" book on operating systems in such a tumultuous area. There were blatant errors, especially in examples, and it seemed like the "In The Hangar" sections were the most relevant parts of the book. However, coupled with the "Kernel Projects for Linux" book, it is much better. If you need it for a class, you have no choice. Otherwise I'd check out books by Tanenbaum or the "dinosaur" OS books.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Recent Customer Reviews

Set up an Amazon Giveaway

Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more
Operating Systems (3rd Edition)
This item: Operating Systems (3rd Edition)
Price: $220.00
Ships from and sold by