Linköpings universitet's sign

Department of Computer and Information Science (IDA)

Errata

This is a list of some errors found in the first printing of the text book
Silberschatz, Galvin and Gagne: Operating System Concepts, 7th ed., John Wiley & Sons, 2005,


compiled by C. Kessler, IDA, July 2005.
  • page 171, 5.4.4 Symmetric multithreading: This term is actually referred to as Simultaneous multithreading (SMT) in the literature. It has nothing to do with symmetry. Moreover, there exist also further (non-simultaneously) multithreaded processor architectures that are based e.g. on cycle-by-cycle interleaving or switch on load. More about this in TDDC78.
  • page 195, line 2: "nonpreemptive" should read "preemptive"
  • page 195, line -11: The flag array should be initialized as

    boolean flag[2] = { false, false };
  • page 201, Figure 6.9, line 2: "waiting(mutex)" should read "wait(mutex)"
  • page 231, Exercise 6.1: The turn variable must be initialized to either 0 or 1. Otherwise, the inner while loop in Dekker's algorithm may not terminate for either process.
  • page 279, Figure 8.3: The brace "load time" covering linkage editor (i.e., linker) and loader is confusing. Actually, the linker does not generally work at load time. Instead, it runs at "link time", which may be at (or shortly after) compile time, at load time, or at run time (or even a combination of these). The text for Sections 8.1.3-8.1.5 gives a better idea of what happens. See also the lecture notes for Fo3 on (static) linking.
  • page 293, line 15: "ch8/8"? should read "address i"
  • page 414, third bullet: The Unix inode term is used here but not defined until Section 11.4.3 (page 427/428). See also Appendix A.7.2 (on-line).
  • page 444, line 16: should read: UNIX semantics (Section 10.5.3.1)
  • page 533, line -12 says: "Objects are essentially abstract data types." They are not. Instead, they may be instances of abstract data types.
  • page 535 and following: monitor mode should read kernel mode throughout this chapter.
  • page 569, line 22: The line starting with "vs = ..." should not wrap. It should be only one line.
  • page 706, the formula in line -6 above Figure 19.9 is wrong.
    It should read:

    The worst-case CPU utilization for scheduling n processes is

    n(21/n-1).
  • page 711, bullet on Scheduling, line 2: Round-robin scheduling is, by definition in Section 5, always preemptive. "Nonpreemptive round-robin scheduling" is called FCFS.