Hide menu

TDDB63 Concurrent Programming and Operating Systems

Reading HT 2005

Errata

The official errata of the book text book (Silberschatz, Galvin, Gagne, Operating Systems Concepts, Wiley. - seventh edition) is available at text book homepage.

You can find other errata compiled by C. Kessler, that teaches TDDB68/72 and uses the same book at his course home page: Errata

Here follows the list of errata compiled by A. Bednarski of the seventh edition of the book. (August 2005).

  • p. 45 Figure 2.2.: The prototype of the ReadFile contains a "c" character, that should not be there.
    BOOL ReadFile c (HANDLE file, ... -> BOOL ReadFile (HANDLE file, ...
    [August 18, 2005]
  • p. 49 Figure 2.6. The return statement returns a variable "o" (alphabetic character "o"). It should be "0" (character zero), or "o" should be declared as integer variable.
    return o; -> return 0;
    [August 18, 2005]
  • p. 52: Last paragraph
    ... in Chapter 3 with an program ... -> ... in Chapter 3 with a program ...
    [August 18, 2005]
  • p. 69: Last line of the example (minor errata) - consistency of naming conventions (the authors use uppercase for "framework" in the rest of the example.
     .NET framework ... -> .NET Framework
    [August 18, 2005]
  • p. 97: The caption of the Figure 3.13.
    Communications models. ... --> Communication models. ...
    [August 18, 2005]
  • p. 103: The paragraph describing the third parameter of shmat() (5th paragraph) is redundant (see the end of 4th paragraph).
    [August 26, 2005]
  • p. 104: There is an extra equal sign in the declaration of segment_id variable.
    int segment_id;= --> int segment_id;
    [August 26, 2005]
  • p. 104: In the last paragraph, the printed message has wrong cases.
    ... writes the message Hi There! to ... --> ... writes the message Hi there! to ...
    [August 26, 2005]
  • p. 149: Minor remark - In Project description, there is an extra space in the definition of matrix C (C code). This is not a error, but only question of taste.
    int C [M] [N]; --> int C [M][N];
    [August 26, 2005]
  • p. 201: Figure 6.9, the call to waiting should be wait.
    waiting(mutex); -> wait(mutex);
    [August 29, 2005]
  • p. 228: First paragraph.
    ... every transaction request ... --> ... every transaction requests ...
    [August 29, 2005]
  • p. 168: Figure 5.7 does not include the numbers of each queue. The queue with quantum equal to 8, 16 and FCFS should be numbered 0, 1 and 2 respectively. The text refers to those numbers.
    [September 1, 2005]
  • p. 172: Last line in the last paragraph.
    Pthreads identifies ... --> Pthread API identifies ...
    [September 1, 2005]
  • p. 174: The C code of Figure 5.9 is incorrect. The definition of runner function appears after its first reference (in pthread_create). You might add first the declaration of function runner before main, or simply move the runner definition before main.
    [September 1, 2005]
  • p. 185: Last paragraph of Section 5.7.4. The slashes in front of POSIX and WinAPI are unnecessary. Further, WinAPI was called Win32 API (the official name of the Windows API) until now.
    ... Java, /POSIX, and /WinAPI/ provide ... --> ... Java, POSIX, and Win32 API ...
    [September 1, 2005]
  • p. 228: Typo error in the first paragraph:
    ... that every transaction require ... --> ... that every transaction requires ...
    [September 8, 2005]
  • p. 231: Description of Dekker's solution lacks of initialization information of variable turn; it should be set to 0 or 1. Observe that, if turn is other than 0 or 1, then two processes can enter the critical section simultaneously.
    int turn; --> int turn = 0; /* initially 0 or 1 */
    [September 8, 2005]
  • p. 231: Minor remark, but it holds for several places in the book. It concerns the examples in C code. In the book you use true/false or TRUE/FALSE to initialize boolean (not a standard C/C++ data type). However this is not the point. As you know C/C++ is case sensitive and you should not use both variant in the same code sample. Thus, for consistency you should either use the uppercases or lowercases only in your code samples, not both.
    [September 1, 2005]
  • p. 277: Minor remark. The figures illustrating Figure 8.1 are incremented by factor of 10. Th base address in the figure is 30004, whereas in the text is 300040 (the same holds for the limit value).
    [September 9, 2005]
  • p. 396: Last paragraph - there is a macro \small left that became small.
    ... systems (95, 98, NT, small 2000 ... -> ... systems (95, 98, NT, 2000 ...
    [September 15, 2005]
  • p. 424: Figure 11.6 contains wrong pointer numbers. Block 9 should point to block 16 (not 1), block 16 to 1 (not empty), block 1 to block 10 (not 1), and finally block 10 to 25 (not 2).
    [September 15, 2005]
  • p. 567: There are three mistakes in the sample code for executing the shell.
    1. The command line contains backslashes, which are used as escaping sequence i C code. It should be definitely slashes instead of backslashes, or double backslashes (for Windows OS variants).
    2. The second mistake concerns quoting: it should be a double quote, not twice a single quote in the exec system call.
    3. Finally, the system call should be execlp not execvp (since the argument list is a list of arguments, not a vector of arguments). Observe, that it should be changed in the text as well, in the first line that follows the code example.
    execvp(''\bin\sh'', ''\bin\sh'', NULL); --> execlp("/bin/sh", "/bin/sh", NULL);
    and
    Using the execvp() system ... -> Using the execlp() system ...
    [September 20, 2005]
  • p. 560: Typo error in the last paragraph, 6th line.
    ... they can then can gain ... -> ... they can then gain ...
    [September 22, 2005]
  • p. 569: The Visual Basic macro seems wrong to me. I guess that first, double single quotes should be a single double quote (see remark of page 567). Further, the backslash of c:\ was transformed into a new line.
        vs = Shell(''c:
    command.com /k format c:'',vbHide) 
    --> 
        vs = Shell("c:\command.com /k format c:", vbHide)
    [September 22, 2005]
  • p. 580: Typo error in the second line.
    ... in encrypting steams ... --> ... in encrypting streams ...
    [September 23, 2005]

Page responsible: Andrzej Bednarski
Last updated: 2005-09-23