Rating:  Summary: Excellent Attempt at Presenting Difficult Subject Review: This popular book was written as an introductory course to operating systems but systematically provides an extensive description of operating system concepts. The 1st half of the book is typically used for undergraduate computer science classes although the book as a whole is often required for graduate level classes. It is assumed that readers will have some knowledge of high-level languages and general computer organization. The book does not spotlight any one particular operating system but rather presents concepts and algorithms that are common to many of the Oss that are commonly used today, including MS-DOS, Windows 2000 & NT, Linux, Sun Microsystems' Solaris 2, IBM OS/2, Apple Macintosh, and DEC VMS. The book has 7 major parts: 1) Overview: What Operating Systems are, what they do, how they are designed, and where they came from. General history and explanations. Some discussion on hardware. 2) Process Management: How information is processed. Methods for process scheduling, interprocess communication, process synchronization, deadlock handling, and threads. 3) Storage Management: How main memory functions and executes. The mechanisms for storage of and access to data is covered. The classic internal algorithms and structures of storage management is discussed and the advantages and disadvantages of each. 4) I/0 Systems: The types of devices that attach to a computer. How the devices are accessed and controlled. Performance issues and examined thoroughly. 5) Distributed systems: The collection of processors that do not share a clock or memory. How distributed file systems are shared, synchronized, communicate, and deal with deadlocks. 6) Protection and Security: How mechanisms ensure that only certain processes that have obtained proper authorization can use certain files, memory segments, CPU, etc. 7) Case Studies: This is where individual real operating systems are discussed in depth. These systems are Linux, Windows 2000, FreeBSD, Mach, and Nachos. Of course this is a very general list and omits many other aspects of Operating Systems that are included in the book. This 887 page book does not include formal proofs but it does contain (though it would be better to have more) figures, diagrams, examples, and notes to help explain concepts.
Rating:  Summary: If you can't find anything better Review: If you have no experience with operating systems concepts this book can either be a decent friend or a nightmare, depending on which chapters you read. On top of vagueness and ambiguity, the illustrations are poorly placed, sometimes pages after the accompanying text. Many chapters are confusing to the point of frustration, especially those concerning synchronization and paging. Some algorithms are oversimplified, while others are given in so much detail the basic concept is lost. The book does however have its good points, hence my rating of 3. It's not so horrible that you can't learn from it. Some chapters are represented quite well. At the end of each chapter, the basis of that chapter's implementation in modern operating systems is given (Windows NT, Unix, Solaris etc.). All in all, the book is faithful to its title but not worth the price. A good second choice if the book you want is out of stock.
Rating:  Summary: excellent coverage Review: this book has excellent coverage for an operating systems course...awesome, get the dinosaur book!
Rating:  Summary: OK, but too general Review: I've taken 2 operating systems courses at 2 different universities that used different editions of this book. In both classes, the biggest benefit came from the teachers and not the text. It encapsulates concepts from every major operating system in use today, but it's too general to do anything with. You can't use this book to help you write code because everything is at such a high level. It is good as a reference point to understand operating systems concepts...hence the title :) The process and memory coverage is great, although the process synchronization chapter didn't help my understanding much. If you're interested in learning the ideas behind the nuts and bolts of operating systems (what is a process? what is a thread? what is virtual memory? how do these things work in a general sense and on different systems?), read this book. If you want to implement those nuts and bolts (how would I implement this in my OS environment?), this book by itself won't help you much. I gave the book 3 stars because the book can confuse you if you let it. My first profesor presented the material in a very confusing way. My next profesor did a better job but it still wasnt great. If you take it for what it is, a coverage of general concepts only, it makes the reading a lot easier. That's my conclusion :)
Rating:  Summary: Very bad written Review: I have to use this book in the University. I can't believe It was choosen for the course. The chapters present new subjects without new explanations. Very bad ilustrative examples. The exercises are a nightmare to understand. The Writer maybe is a genius in OS but has very bad writting skills. I really not recomend this book, in Internet are more valuable (Up to date) information and examples than in this book.
Rating:  Summary: Lots of stuff covered unclearly Review: This book is excellent in terms of the range of content it covers. However, the writing is often unclear and disorganized. Worse, for a university class setting, many of the exercises are near useless because they are very vague and leave you unsure what sort of answer they are looking for.
Rating:  Summary: Of all the computer related books this one takes the cake... Review: Being a 3rd year comp sci major this is by far one of the hardest books to read. Not saying that because of its technicality but because the examples and explanations inside the book are extremely vague and abstract. Subjects tend skip here and there, worst of all statements lack clear cut examples, and remain muddy. In the worst cases, distinct subjects seperated in paragraphs bleed from one paragraph to another which is extremely frustrating to read and understand. It seems as if the authors used a cut and paste and mistakenly pasted one paragraph into another. Ultimately, I found myself taking a black marker and crossing out irrelevant sentences, and there is a lot of them. Unfortunately My school uses this book so I do not have much of a choice whether I want it or not. I would not recommend this book as a source of learning this subject if you have a choice on this matter.
Rating:  Summary: Builds a good foundation for more complex books Review: This is meant as an introductory book to the operating system concepts, and some applications. Most of the materials covered in this book have been covered even in books written in the 80's and 90's. It includes some supplement chapters on Windows 2000/XP and Linux. If you're just learning for the first time how an OS is suppose to function, then those supplement chapters won't make much sense to you. Since this book is a cooperation of three authors, you'll notice some inconsistencies and contradictory claims through out the chapters, especially in the first 5 chapters.
Rating:  Summary: Compelling read Review: I think this book is one of the most helpful I've read for developing my software engineering skills. I originally had the 5th edition as an undergraduate. We didn't have to read the whole book, and, quite frankly, at the time, I wouldn't have probably read it even if we did. But, once I started working, I started reading the book (for personal edification?), and was about halfway through when I saw that the sixth edition was out. I ordered it, gave away my fifth edition, and started over at the beginning so that I wouldn't miss any of the updates. I think that when it comes to learning threading it's an excellent reference. But beyond that, there are a lot of operating system concepts (virtual memory, security, clustering, and I could go on) that have plenty of applications in non-OS development projects. It's true that this book doesn't provide code examples, but the concepts are well described and it would be difficult to provide meaningful, concise code to illustrate most of the concepts. I think a good developer can take these concepts and use them to solve a variety of problems. I very much recommend this book, it's clearly written and very informative.
Rating:  Summary: General overview, not necessarily always "correct" Review: First, I should say that this book is definitely predisposed toward Unix operating systems. They actually make PCs sound bad and evil because they are not shared (sounds communist to me). Secondly, the book does not prove the statements they make. I am from primarily Electrical Engineering with an emphasis on Computer Engr, and we usually provide proof of our theoretical results. The book actually says that a PC pays little attention to performance. Ahem, this depends one's *definition* of performance, and according to most computer books, this is the number of instructions per second executed, which PCs are better at (assuming non-distributed computer model)! The book is clearly biased, and leaves me wondering if these people are simply academics sitting around writing books who have little engineering experience. Even their definition of a hand-held operating system is completely flawed. Despite these and many other complaints I have, the book does get the main point across, and it *does* make one think. I have thought a lot about the book's weaknesses, but I definitely would have never had thought at all if it weren't for this book. Therefore, I still give it three stars. However, I simply hope there are much better books out there on the subject of operating systems that are accessible yet still rigorous and complete.
|