Errata (Last Updated: 1/5/2015)

(Notation: “pg” indicated page, “ln” indicates line, negative line number means count from the bottom up) pg 7, fig 1-4 replace: fl with: f1 (i.e., the number “1” rather than lower case letter “l”) pg 8, ln 8 replace: presence with: the presence pg 47, ln –3 replace: terminated with: terminate pg 61, ln 9 replace: pi: with: p2: pg 62, ln 9 replace: five functions with: five function pg 65, ln –10 replace: project with: process pg 72, fig 3-1(a) replace: x_is_positive.wait with: X_is_positive.wait (3 times) pg 72, fig 3-1(a) replace: p1 with: p (2 times) pg 72, fig 3-1(b) replace: p2 with: q pg 72, fig 3-1(b) replace: p1 with: p pg 75, ln 18 replace: because of a with: because a pg 83, ln 6 replace: standard input with: standard output pg 83, ln 7 replace: standard output with: standard input pg 92, ln –9 replace: (i+1)%5 with: i%5+1 pg 99, ln 19, 20, –16 replace: (i+1)%5 with: i%5+1 pg 104, ln –5 replace: (subscript) a with: (subscript) p1 (six times) replace: (subscript) b with: (subscript) p2 (two times) replace: (subscript) c with: (subscript) p3 (six times) pg 104, ln –4 replace: (e) Assume another message was sent from process c to process a with: (b) Assume another message was sent from process p3 to process p1 pg 104, ln –3 replace: 10 according to c’s clock and received at time 2 according to a’s with: 8 according to p3’s clock and received at time 2 according to p1’s pg 119, Figure 4-7 add an arrow labeled “p” from p6 to p3 pg 158, ln –5 replace: Thus p2 will with: Thus p1 will pg 161, Figure 5-5 replace: SJN with: SJF pg 168, ln –11 replace: p2 with: p3 pg 174, ln –15 and ln –9 replace: four with: three pg 188, fig 6-5(c) replace: p4 with: p5 (last line of figure) pg 208, ln –15 replace: references are kept is with: references are kept in pg 210, ln 16: replace: eternal with: external pg 219, ln –9: replace: H[1] with: H[0] pg 232, ln –7 replace: ever instruction with: every instruction pg 243, ln 9 replace: of 1 KB each with: of 4 KB each pg 246, ln –2: replace: advantage with advantages pg 251, ln 9 replace: most recently loaded page, P[k]. On a page fault, page P[k+1 % m] is replaced with: least recently loaded page, P[k]. On a page fault, page P[k] is replaced pg 255, ln 2 and ln 14 replace: second-chance with: third-chance pg 262, ln 3 replace: set gradual with: set is gradual pg 309, ln 2 replace: into this function with: into this table pg 311, ln 10 replace: can read with: can be read pg 368, Figure 11-3(b) replace: 34, 35, 36, 37, 38, … 52, 53, 54, 55, 56 with: 36, 37, 38, 39, 40, … 54, 55, 56, 57, 58 pg 371, ln –8 replace: 18.96 MB with: 18.286 MB pg 371, ln –18 replace: 0.66 GB with: 0.64 GB pg 371, ln –19 replace: 681,984 with: 681,984,000 pg 389 ln 16 replace: read pointer with: rear pointer pg 430, ln 17 replace: where P is with: where DEA is the data encryption algorithm, P is

Part 5: Programming Projects pg 484, ln –19 replace: ’allocated;’ with: ’allocated’; pg 484, ln –18 replace: r;) with: r); pg 484, ln –16 replace: ’blocked;’ with: ’blocked’; pg 484, ln –13 replace: self; } with: self); pg 485, ln 1 replace: (Waiting_List with: (r->Waiting_list pg 485, ln 4/5 insert the following new line between lines 4 and 5: insert(q->Other_Resources, r;) pg 488, ln –10 through –14 replace: (5) insert(RL, q) (6) find highest priority process p; (6) p->Status.Type = ‘running’; (7) Scheduler(); (8) } with: (5) insert(RL, q); (6) Scheduler(); (7) } pg 488, ln –7 through –4 replace: It then changes the status from … it starts the process p. with: It then calls the scheduler, which changes the status of the currently highest-priority process p from ‘ready’ to ‘running’. pg 489, ln 12 replace: (Ready List, self); with: (RL, self); pg 494, ln 18 replace: release(p) with: mm_release(p)

GLOSSARY pg 512, ln –4 replace: unauthorized with: authorized

Solutions

Ch 2, problem 11: ln –2 of program: replace: P(s4); P(s3); P(s4) p8; with: P(s4); P(s4); P(s4) p8;

Ch 3, problem 18(b): Figure: move point u marking time step 9 of p1 to time 11 of p1

Ch 4, problem 19(c): ln –2 of solution: replace: (p3,50) with: (p3,35)

Ch 6, problem 1(a) ln 3: replace: B with: p2

Ch 6, problem 1(b) ln 4: replace: B with: p2 replace: A with: p1 replace: C with: p3

Ch 6, problem 17 ln 3: replace: R5, R5, R2, R4 with: R5, R3, R2, R4

Ch 7, problem 1 right half of figure replace: 0 with: 1550 replace: 170 with: 1670 replace: 50 with: 1550 ln 4: replace: Figure 7-3 with: Figure 7-4

Ch8, problem 8a table replace: 20 | P1 of S4 with: 20 | P1 of S12

Ch 10, problem 8: block numbers in the table refer to the original block numbers, i.e., before the deletion or insertion. For example, when block 4 is deleted, we continue referring to the 3 blocks following block 4 as 5, 6, 7, even though these blocks get shifted to the left and thus become the logical blocks 4, 5, 6 in the modified file. delete bl. 4 (a) 5, 6, 7 5, 6, 7 (b) 0, 1, 2, 3, 4 3 (c) -- -- (e) -- -- insert bl. 2A (a) 3, 5, 6, 7 2A, 3, 5, 6, 7 (b) 0, 1, 2 2, 2A (c) -- 2A (e) -- 2A

Ch 10, problem 13(a) The new scheme needs to access 0.2 x (d-1) blocks for each file (not 0.2 x d) since one of the d blocks is in the i-node. Thus the number of blocks accessed is reduced to 0.2(d-1)/(0.8+0.2d) = (d-1)/(4+d)

(b) For d=2, the reduction is (2-1)/(4+2) = 1/6 or 16.7%. For d=4, it is (4-1)/(4+4) = 3/8 or 37.5%