|Operating Systems Design and Implementation||
Operating Systems Design and Implementation
For introductory courses on computer operating systems.
Revised to address the latest version of MINIX (MINIX 3), this streamlined, simplified new edition remains the only operating systems text to first explain relevant principles, then demonstrate their applications using a Unix-like operating system as a detailed example. It has been especially designed for high reliability, for use in embedded systems, and for ease of teaching.
• Accompanying CD-ROM with the latest version of MINIX and simulators for running MINIX on other systems - A small, easy-to-understand highly reliable operating system is available for study; unique to this text.
• Relevant sections of MINIX code are described in detail in most chapters - Provides problems at the end of each chapter, with separate solutions manual for the instructor.
• Simulators for running MINIX on other systems are available.
• MINIX includes networking based in TCP/IP - the full source code of the MINIX TCP/IP implementation is included on the CD-ROM.
• Simpler presentation than previous editions - Features less than 4,000 lines of code in the kernel.
• Updates to nearly every section of the book - Includes significant changes to the sections on CPU scheduling, deadlocks, file system reliability and security.
• Many updated references to the modern literature to replace older citations.
Table of Contents CHAPTER 1 INTRODUCTION
1.1 WHAT IS AN OPERATING SYSTEM?
1.2 HISTORY OF OPERATING SYSTEMS
1.3 OPERATING SYSTEM CONCEPTS
1.4 SYSTEM CALLS
1.5 OPERATING SYSTEM STRUCTURE
1.6 OUTLINE OF THE REST OF THIS BOOK
1.7 SUMMARYCHAPTER 2 PROCESSES
2.1 INTRODUCTION TO PROCESSES
2.2 INTERPROCESS COMMUNICATION
2.3 CLASSICAL IPC PROBLEMS
2.5 OVERVIEW OF PROCESSES IN MINIX 3
2.6 IMPLEMENTATION OF PROCESSES IN MINIX 3
2.7 THE SYSTEM TASK IN MINIX 3
2.8 THE CLOCK TASK IN MINIX 3
2.9 SUMMARYCHAPTER 3 INPUT/OUTPUT
3.1 PRINCIPLES OF I/O HARDWARE
3.2 PRINCIPLES OF I/O SOFTWARE
3.4 OVERVIEW OF I/O IN MINIX 3
3.5 BLOCK DEVICES IN MINIX 3
3.6 RAM DISKS
3.9 SUMMARYCHAPTER 4 MEMORY MANAGEMENT
4.1 BASIC MEMORY MANAGEMENT
4.3 VIRTUAL MEMORY
4.4 PAGE REPLACEMENT ALGORITHMS
4.5 DESIGN ISSUES FOR PAGING SYSTEMS
4.7 OVERVIEW OF THE MINIX 3 PROCESS MANAGER
4.8 IMPLEMENTATION OF THE MINIX 3 PROCESS MANAGER
4.9 SUMMARYCHAPTER 5 FILE SYSTEMS
5.3 FILE SYSTEM IMPLEMENTATION
5.5 PROTECTION MECHANISMS
5.6 OVERVIEW OF THE MINIX 3 FILE SYSTEM
5.7 IMPLEMENTATION OF THE MINIX 3 FILE SYSTEM
5.8 SUMMARYCHAPTER 6 READING LIST AND BIBLIOGRAPHY
6.1 SUGGESTIONS FOR FURTHER READING
6.2 ALPHABETICAL BIBLIOGRAPHYAPPENDIX A - INSTALLING MINIX 3 APPENDIX B - MINIX 3 SOURCE CODE LISTING APPENDIX C - INDEX TO FILES INDEX
“The presentation is excellent. The book should be on the desk of any serious student of operating systems.”--Dr. Samuel Kohn, ThomasEdisonStateCollege
“I would give the authors very high grades for their writing style. Topics are explained in a clear and understandable manner. Presentations are well organized and they flow in logical fashion. The book provides the right depth and breadth of explanations with the appropriate amount of rigor and abstraction.” --Gojko Babic, Department of Computer Science and Engineering, OhioStateUniversity
The definitive, up-to-date introduction to operating systems:
Core principles plus hands-on examples with the new MINIX 3 operating system
The world's best-selling introductory operating systems text has been thoroughly updated to reflect the latest advances in OS design and implementation. Offering an optimal balance of theory and practice, Operating Systems: Design and Implementation, Third Edition remains the best resource for anyone seeking a deep understanding of how operating systems work.
This edition includes MINIX 3, more compact, more reliable, better suited for embedded applications - and, above all, even easier to teach and learn from. Using MINIX, the authors introduce virtually every core concept needed to construct a working OS: system calls, processes, IPC, scheduling, I/O, deadlocks, memory management, threads, file systems, security, and more.
NEW TO THIS EDITION
· Newly-released, significantly-improved MINIX 3 operating system on CD-ROM: giving students hands-on experience in modifying and rebuilding a contemporary operating system
· Expanded and reorganized coverage of processes and communication
· Revised and enhanced coverage of CPU scheduling, deadlocks, file system reliability, and security
· Includes more than 150 end of chapter problems
· ABOUT THE AUTHORS
Andrew S. Tanenbaum has an S.B. degree from M.I.T. and a Ph. D. from the University of California at Berkeley. He is currently a Professor of Computer Science and Vrije Universiteit in Amsterdam, the Netherlands, where, for more than 30 years, he has taught operating systems, computer organization, and networking to thousands of students. Professor Tanenbaum is the winner of the ACM Karl V. Karlstrom Outstanding Educator Award and the ACM/SIGCSE Award for Outstanding Contributions to Computer Science Education. His home page appears at http://www.cs.vu.nl/~ast/.
Albert S. Woodhull
is Adjunct Associate Professor of Computer Science and Biology at the School of Natural Science, Hampshire College, Amherst, MA. He also served until recently as computer system administrator for the Department of Biology in the School of Natural Science and Mathematics at the University of Massachusetts, Amherst, MA. He holds an S.B. degree from M.I.T. and a Ph.D. the University of Washington. Supported by a Fulbright grant, he has taught at the Universidad Nacional de Ingenieria and the Universidad Nacional Autonoma de Nicaragua. His homepage appears at http://www-unix.oit.umass.edu/~woodhull.
Andrew S. Tanenbaum has a B.S. Degree from M.I.T. and a Ph.D. from the University of California at Berkeley. He is currently a Professor of Computer Science at the Vrije Universiteit in Amsterdam, The Netherlands, where he heads the Computer Systems Group. He is also Dean of the Advanced School for Computing and Imaging, an interuniversity graduate school doing research on advanced parallel, distributed, and imaging systems. Nevertheless, he is trying very hard to avoid turning into a bureaucrat.
In the past, he has done research on compilers, operating systems, networking, and local-area distributed systems. His current research focuses primarily on the design of wide-area distributed systems that scale to a billion users. These research projects have led to five books and over 85 referred papers in journals and conference proceedings.
Prof. Tanenbaum has also produced a considerable volume of software. He was the principal architect of the Amsterdam Compiler Kit, a widely-used toolkit for writing portable compilers, as well as of MINIX, a small UNIX clone intended for use in student programming labs. Together with his Ph.D. students and programmers, he helped design the Amoeba distributed operating system, a high-performance microkernel-based distributed operating system. The MINIX and Amoeba systems are now available for free via the Internet..
Prof. Tanenbaum is a Fellow of the ACM, a Fellow of the IEEE, a member of the Royal Netherlands Academy of Arts and Sciences, winner of the 1994 ACM Karl V. Karlstrom Outstanding Educator Award, and winner of the 1997 ACM/SIGCSE Award for Outstanding Contributions to Computer Science Education. He is also listed in Who's Who in the World.
Albert S. Woodhull was a faculty member in the School of Natural Science, Hampshire College, Amherst, MA for many years. He has taught at the University of Massachusetts and Smith College in the US, and he has been a visiting faculty member on multiple occasions at universities in Nicaragua, supported on two of these visits by Fulbright grants. He also served as a computer and network system administrator at the University of Massachusetts. He holds an B.S. degree from M.I.T. and a Ph.D. from the University of Washington. His home page on the web is at http://minix1.woodhull.com/asw/.