Vol. 13, No. 2, August 2000, 260--263

Gary J. Nutt
Operating Systems: A Modern Perspective, 2/e
Addison-Wesley, Reading, Massachusetts, 2000
Hardcover, pp.611, USA $ 55,99
ISBN 0-201-61251-8
http://www.pearsoneduc.com

In general about the book

Nowadays, in our real world of rapidly expanding computer use , few computers perform their tasks without some type of operating system. Operating system is an essential part of any computer system which as a program acts as an intermediary between the application software programmers and computer hardware. The study of operating systems is of fundamental importance to the computer science, computer engineering and electrical engineering students. Even those who will never participate in the design of an operating system must learn to interact with such systems in various ways. Currently the operating systems are used by many, understood by some and designed by relatively few , i.e. the most skilled and experienced programmers. Nutt has written a book which describes the principles and practices of operating system design. The author presents a detailed and comprehensive study of the operating system, subdividing his material in 18 chapters. The first several chapters of the book discuss the introductory material, the central part concentrates on crucial concepts of operating system design, and in the last chapter the principle of operation of some representative operating systems are explained. It is assumed that readers will be familiar with the principles of computer architecture, data structure and to be conversant with programming in high-level language such as C/C++ , Pascal, Ada, etc.

Chapter content

Chapters 1 through 4 cover most of the introductory material generally needed by individual interested in operating systems: The first shows how the operating system fit into software. The second is a discussion of how to use an operating system, particularly how to use multiple processes. The third chapter concerns with the organization of operating systems, and the fourth one deals with computer organization. The explanatory material is clear and it is organized so that the instructor can go over this material quickly.

Chapter 5 provides a brief introduction to the principles and techniques of the basic input/output programming. In addition it considers how buffering can be used to increase I/O performance. Finally some device-specific concept of the management of standard devices ( serial communications, sequentially and randomly accessed storage devices ) are discussed. <6>Chapters 6 through 10 are devoted to process management. Detailed description of the responsibilities and organization of process and resource manager are given in Chapter 6 . The seventh chapter presents topics related to the designing standard mechanisms for process scheduling , strategy selection and nonpreemtive and preemtive scheduling algorithms. Chapter 8 introduces the synchronization problem related to the concurrent execution of processes. Chapter 9 discusses additional interprocess synchronization and communication mechanisms, such as monitors and message-based interprocess communication. The problem of deadlock arising from concurrent execution of processes is considered in Chapter 10.

Chapter 11 through 13 introduce the reader with the basics of memory and storage management. Chapter 11 presents various ways to manage memory. It starts with basic issues in memory manager design, then it focuses on memory allocation and dynamic address relocation schemes, and ends with strategies that memory managers employ ( swapping, virtual memory, and caching ). Virtual memory as a technique that allows the execution of processes that may not be completely in memory is discussed in Chapter 12. The file system as the most visible aspect oh an operating system is considered in Chapter 13.

The topics of Chapter 14 are security policy which defines the rules for authoring access the computer and information resources, and protection mechanisms as tools for implementing the organization's security policy.

Chapters 15 through 17 addresses one actual theme: Implementation of distributed operating system. Chapter 15 serves as an introduction to computer networks. Chapter 16 discusses the infrastructure of the computer network - its distributed file system, i.e. as the author notes " Consider various operating system strategies for distributing file system across machines on the network so that an application program's use of the remotely located files is the same as the use of files stored on the local machine". Practical aspects of "Distributed computing" concerning processes management message- passing, remote procedure call, and distributed- memory management are summarized in Chapter 17.

Finally Chapter 18 completes the study of operating systems. Crucial concepts of several well known real operating systems such as RC 4000 Nucleus, Microsoft Windows NT, Mach and CHORUS operating systems are given.

The book also contains a Glossary of terms, a Bibliography and an Index. The organization of individual chapter is almost identical : It begins with subsection " Chapter Objectives" that briefly connects the reader to the content of the previous one, and gives a preview of what is covered in the current chapter. After that follows the central part where the main topics are presented, and concludes with subsections "Summary" and "Exercises" (unsolved problems that the readers are encouraged to do them ). The book includes several " Laboratory Exercises " ( chapters 2,6,9,13 and 15 ) that give to students valuable practice with Linux.

Useful book

The organization of individual chapters and their order of presentation appear to have been well thought out. The book is organized so that the instructor can easily pick and choose topics which meet the needs and interests of his students. The net effect of the author's effort has been the production of the text that provides step-by-step introduction and understanding of contemporary operating system practice. On the whole I found the text both stimulating and interesting. Indeed, I feel that the book is valuable contribution to the literature in this field and would make a very useful addition to the bookshelves of those interested in operating system. Everybody who has anything to do with operating system design may profit by having the book within easy reach.

Mile Stojcev
Faculty of Electronic Engineering
Beogradska 14, P.O. Box 73
18000 Nish, Yugoslavia
Phone : (+381) 18 547 597
Fax: (+381) 18 46 180