Books: A User's Report
Elizabeth Zinkann
This month I examine a C++ book from the Addison-Wesley
Professional
Computing Series which deals more with programming techniques
than
with the language syntax; a book on high performance
computing by
Kevin Dowd of O'Reilly & Associates; and two UNIX
System V system
administration books from Prentice Hall's Open Systems
Library System
Administrator Collection.
C++ Strategies and Tactics
by Robert B. Murray
Addison-Wesley Professional Computing Series
ISBN 0-201-56382-7
Robert Murray's book explores techniques for programming
in C++. It
focuses on the language syntax only when describing
the more complex
concepts, such as inheritance. For these advanced subjects,
a shaded
sidebar provides a brief summary of the relevant rules.
The book addresses
both the novice and the intermediate C++ programmer
and uses practical
examples to demonstrate C++ concepts.
Chapter topics include "Abstraction Classes,"
"Handles,"
"Inheritance," "Multiple Inheritance,"
"Designing
for Inheritance," "Templates," "Advanced
Templates,"
"Reusability," "Exceptions," and
"Moving Your
Project to C++." In each chapter Murray explains
the strategies
that underlie different methods of programming C++.
He describes tactics
that will make your code more efficient and identifies
possible traps
that could lead to hazardous procedures.
The chapter I found most interesting addresses abstraction.
The discussion
outlines five concepts essential to any program design,
no matter
what the language. Murray not only states these precepts,
but also
develops a simple example.
Each chapter consists of an introduction, the body of
the section,
a bulleted summary entitled "In Short," and
a Questions section
that could also serve as an exercise section. Each chapter
also contains
one or more "Review" sidebars. Chapter 5,
for example, which
deals with multiple inheritance, includes two reviews
-- a two-page
review of multiple inheritance and a three-page review
of virtual
base classes.
Murray presents the information in an easy and readable
style. He
introduces the subjects in a logical order, and when
a review of the
rules is required, he presents the review immediately.
Murray complements
his explanations of programming precepts with easy-to-follow
exapmples.
C++ Strategies and Tactics is well-written and well-documented
with code segments and diagrams. In all, Murray has
produced a book
that will inspire you to read more about the subject.
I highly recommend
it.
High Performance Computing
by Kevin Dowd
O'Reilly & Associates, Inc.
ISBN 1-56592-032-5
Since computers are constantly changing, it is not always
clear which
purchase will provide the most benefits to the user,
especially if
the buyer and the user are two different people. The
criteria to be
used in selecting a computer depend on the intended
use of the machine.
In High Performance Computing, Kevin Dowd addresses
these issues
and describes how to extract the highest level of performance
from
your computer.
Dowd begins by discussing the pros and cons of programming
in high-level
languages, such as FORTRAN and C, versus assembly code.
He also emphasizes
the importance of recognizing when performance is optimized.
In order
to measure performance, a user should understand how
to interpret
standard industry benchmarks and also how to package
his/her own benchmark.
Topics covered in the first part of the book include
"What Is
High Performance Computing?," "RISC Computers,"
"Memory,"
"What An Optimizing Compiler Does," "Clarity,"
and
"Finding Porting Problems." Some of the most
important of
these are "Timing and Profiling," "Industry
Benchmarks,"
and "Running Your Own Benchmarks." In "Timing
and Profiling,"
Dowd examines the various types of measurements a user
can apply to
determine how well a program uses the computer's resources.
This section
helps you discover where the program dedicates most
of its time, in
the user or the kernel mode. (Dowd also presents a brief
and comprehensive
explanation of the UNIX time command, its results, and
how
to interpret those results accurately.) The author provides
examples
of profiling and also shows how to graphically represent
different
types of profiles. Industry benchmarks allow anyone
to examine performance
without doing any of the work themselves. However, the
author stresses
that these benchmarks have been compiled by other users,
not by the
vendors, which means that people who actually use the
products are
responsible for judging them. In "Running Your
Own Benchmark,"
Dowd covers benchmark types and what to benchmark. He
also includes
a guideline to benchmarking in the form of a checklist.
Several interconnected chapters focus on code efficiency.
These are
"Eliminating Clutter," "Loop Optimization,"
"Clarity,"
and Appendix B, "How To Tell When Loops Can Be
Interchanged."
High Performance Computing covers some difficult topics,
ranging
from new (and older) computer architectures to optimizing
compilers
and what they can accomplish, memory, benchmarking,
timing, and profiling.
The writing style is direct and contains examples where
applicable.
Most of the code examples appear in FORTRAN, but they
are simple enough
for a non-FORTRAN programmer to understand. In fact,
this book can
be read and understood even by nonprogrammers. The concepts
remain
the same. System administrators will particularly appreciate
the chapters
on RISC, memory, and finding porting problems.
Whether you are a system administrator, a programmer,
a systems analyst,
a buyer, or a manager, High Performance Computing can
help
you in your day-to-day duties. The usefulness of the
book transcends
not ony job descriptions, but also languages and operating
systems.
It belongs on everyone's shelf.
UNIX System V NFS Administration
Edited by Debra Herman
Prentice Hall Open Systems Library
ISBN 0-13-016411-9
This book addresses system administrators, particularly
those who
need to set up and maintain distributed file systems
employing NFS
on UNIX System V systems. Herman describes not only
how to share resources
on a network, but also how to mount remote resources
from other systems.
No matter what the individual configuration of the system
may be,
the author provides a chapter or series of chapters
that specifically
apply to that configuration. In the preface, Herman
presents a brief,
descriptive organization of the book's contents, displaying
a road
map that the reader may traverse to reach his/her intended
destination.
Herman begins by introducing NFS file sharing and its
use, then continues
with a description of an NFS model. This is essentially
a client/server
model, in which the client machine accesses files resident
on the
server. To allow the client to share the resources available
on the
server, remote procedure calls (RPCs) are employed in
the mounting
process. Although the author allows for differences
in UNIX systems
and the corresponding differences in the system administrator's
duties,
she concludes the introduction with a generic checklist
for maintaining
machines with NFS.
From this point, Herman turns to using NFS, including
installing NFS,
the various ways of starting and stopping it, and sharing
and unsharing
resources. Optional ways of sharing and unsharing resources
are covered
later in the book. The editor also explains how to mount
resources
and how to extract information concerning shared resources
or mounted
file systems.
Herman describes the NFS daemons and includes a full
chapter on the
automount daemon as the concluding section on sharing
and unsharing.
She discusses problems and errors related to NFS and
how to resolve
them. In another section, she details the uses of the
sysadm
command and shows how to create an NFS menu interface
to more easily
administer the NFS system. Some of the same attributes
that make NFS
convenient also prevent it from being secure; Herman
provides solutions
for protecting vulnerable NFS systems.
Other chapters include "The Network Lock Manager,"
"Remote
Services," and "The NIS Service." "The
Network Lock
Manager" explains a method of control management
that prevents
more than one person from altering a file at a time.
"Remote Services"
describes all of the different aspects of using remote
machines: logging
on to or from various machines, transferring data between
machines,
copying files from one machine to another, and more.
"The NIS
Service" outlines how to administer NIS, which
is a distributed
name service.
UNIX System V NFS Administration is a logical and readable
book. Screens are presented as they will appear on a
terminal and
are boxed. Herman typically uses tree structures to
diagram concepts,
and shows the shared resource boxed within dotted lines.
The text
matches the figures very well, and as an additional
aid, Herman includes
a glossary that defines the terms used throughout the
book. This book
will benefit any system administrator interested in
NFS.
UNIX System V
Performance Management
Edited by Phyllis
Eve Bregman
and Sally A. Browning
Prentice Hall Open
Systems Library
ISBN 0-13-016429-1
Defining system performance as "a measure of how
a computer system
executes its tasks," Bregman and Browning set out
to show how
system performance applies to the system administrator.
They present
both the issues that face system administraotrs and
possible means
of resolving those issues.
The authors address different environments, telling
how to analyze
whether or not each is performing as efficiently as
possible. Their
chapter on filesystems discusses a range of filesystem
types --
specifically, s5 (earlier versions of UNIX System V),
ufs
(BSD), and bfs (filesystem independent booting). A later
chapter
on communications explains rfs and nfs, which are both
distributed filesystem types. In addition to communications,
Bregman
and Browning review the uses of different storage devices
and explain
how to monitor system activity. The chapter "Performance
Tools"
includes information not covered in an earlier chapter
on System Performance
Analysis Utilities (SPAU). A section entitled "Configuring
UNIX"
not only explains how to reconfigure a UNIX system,
but also specifies
the circumstances under which reconfiguration might
be required.
The main body of the book concludes with a quick reference
guide that
tells where instructions for various tasks can be found.
There are
two appendices, one on checking s5 filesystems, the
other on
checking ufs filesystems. The excellent glossary contains
elementary
as well as advanced terms.
Bregman and Browning have produced an unusual book that
combines system
administration and system performance issues: in fact,
the book could
easily serve as an advanced administration textbook.
UNIX System
V Performance Management deserves to be read by advanced
users
as well as system administrators.
About the Author
Elizabeth Zinkann has been involved in the UNIX and
C environments for the past
10 years. She is currently a UNIX and C consultant,
and one of her specialities
is UNIX education. In addition to her computer science
background, she also has a
degree in English.
|