(Are you looking at a stale web page? Try refreshing your
browser.)
(
Latest Revision --
Dec 25, 2005
)
Errata
OPERATING SYSTEM CONCEPTS, SEVENTH EDITION
Silberschatz, Galvin, and Gagne
February 8, 2005
To Be Corrected in 2nd Printing:
Page xiii, fifth bullet: Chapter 22 ==> Chapter 23
p. 52 2nd line from bottom: change "an program" to "a program"
Page 68, third paragraph: JVMis ==> JVM is
Page128, line 6: (perhaps thousands) of ==> (perhaps thousands of)
Page 195, line 2: no preemptive ==> preemptive
p. 198 line 2: change "TestAndSetLock(&lock)" to "TestAndSet(&lock)"
p. 201 5th line from bottom: change "waiting(mutex)" to "wait(mutex)"
p. 219, 2nd paragraph from bottom: "described in Section 19.5 ..." ==>
"described in Section 19.4 ..."
p. 286, 2nd paragraph, first line: "fixed-partition" ==> "variable-partition"
p. 305, last line: 16 KB ==> 16 K
p. 306, first and second lines: 8 KB ==> 8 K
p. 393, 4th paragraph, line 1: the term "symbolic link" is used here without
being defined. The term is used again 11, 12, and 18 lines further down on
the same page, and on the first line of p. 394.
p. 399, 2nd paragraph, 2nd-to-last line: "server to other NFS clients " -->
"server to some NFS clients"
p. 444, 2nd paragraph, 4th line from end, check the reference to the Sprite
DFS - I don't remember for sure but I don't think that Sprite semantics are
mentioned previous to this reference. If not then the reference is
anachronous.
Page 456, line: ISCSI ==> iSCSI
Page 569, line 22: line starting with "vs = .." should not wrap. It should be
only one line.
p. 582, 3rd block of text, line 8: "H(m) = H(m'), we know that m1 = m2" =>
"H(m) = H(m'), we know that m = m'"
p. 590, 3rd line from the bottom: "In this variation" ==> "In a variation"
pp. 613-5, Headings of sections 16.2, 16.2.1 & 16.2.2: It is confusing that a
"distributed operated system" is characterized as a type of "distributed
operating system." Perhaps a way out is to change the title of 16.2.2 to
"fully distributed operating system" - or to change the title of 16.2 to
"Types of Network-Oriented Operating Systems"
p. 641, "Chapter Objectives" box, 4th bullet "in a is a useful" ==> "in a
distributed system is a useful"
p. 641, "Chapter Objectives" box, 4th bullet "availability. file replication"
==> "availability."
p. 658, 2nd to last line: Probably "DFS uses its own" ==> should be "AFS uses
its own"
p. 660, I'm not sure whether the reference to "Apollo Domain" in problem 17.10
is a "dangling" one - is Apollo Domain discussed in the text?
p. 666, 3rd from last line: probably the text "(including itself)" should be
omitted. Otherwise text on lines 2-4 of p. 667 and step #3 on p. 667 imply
that a process defers replying to itself until after it has left the
critical section. Also the fourth (not-numbered) bullet on p. 667 says the
total number of messages per critical section entry is 2*(n-1) - but that
figure should be 2n if processes send a message to every process including
themselves. Finally, the illustrative example on p. 667 does not depict
the processes as sending messages to themselves - it just states that each
process sends a message to the other processes.
p. 669, 8th line from the bottom: this line refers to a record. On
page 671 in the first line of the first bullet, is not included in
the list of possible control records. ("Abort" is there, but it's not
clear whether that means the same as "no". The last two lines of the first
paragraph on p. 670 seem to describe how a "abort" or "commit" can get onto
the log.)
p. 674, line 5 and the last lines of the 3rd and 4th bulleted items:
"ch18/18" ==> "the data"
p. 675, line 1: "ch18/18" ==> "Q"
p. 675, section 18.4.2.1, paragraph 2, last line: "unique names" seems to be
incorrect. Section 18.1.2 is concerned with a total ordering of events and
time stamps.
p. 676, section 18.4.2.2, line 3: "cascading rollbacks may result" - not sure
to what this refers - I don't find discussion of this in section 6.9.
p. 686, 5th and 4th line from the bottom. The symbols "foo" and "boo" are
used for the two messages. On p. 687, first paragraph 3rd line from the
end, the symbols "S" and "F" are used for the two messages. (foo is also
mentioned on p. 687 in paragraph 2, lines 3 &4; and in paragraph 2, lines
3, 5, & 9.)
p. 703, line 5: "require that interrupts to be disabled for" ==> "require that
interrupts be disabled for"
p. 708 first bullet from bottom: name of function should be setsched_policy.
p. 708 second line from bottom: name of function should be setsched_policy.
p. 729, 3rd paragraph, line 4: T is referred to without being defined. (The
definition of T appears in the last line on the page.) Is there one buffer
of size 2 x T x ri, or two buffers of size T x ri?
p. 729, 4th paragraph, including points 1 and 2: Shouldn't this say that for
each request Ri there are two buffers B(i,0) and B(i,1), and that in each
cycle J, we retrieve the data from disk to each B(i,J mod 2) and transfer
data from each B(i, (J+1) mod 2)?
p. 753, 1st paragraph of section 21.5.2, line 5: I think it should be
"device" or "device controller" instead of "device driver." A device
driver is software, so it would not initiate a hardware interrupt.
p. 756, section 21.6.1, 5th line after the 3 bulleted items: I think it should
be "kernel address space" instead of "CPU's address space."
p. 766, 6th paragraph, sentence 3: The sentence starts out saying "include"
must be examined next. However the pathname is /usr/include/stdio.h - so
it should mention "usr" next, not "include." Also in this discussion, is
it _inodes_ for root, usr, include, and stdio.h that we are concerned with
obtaining, or _dentry's_?
p. 833, section 22.7.3.6, sentence one: I'm not sure but this sentence seems
to be cut off at the end. Perhaps "work in each." ==> "work in each
instantiation."?
Page 859, line 11: [Cantrill et al. 2004] title should be "Dynamic
Instrumentation of Production Systems"