|
|
Last revised May 9, 2018
This is a restricted-access website.
The contents of this website, the links contained therein directly and
indirectly, and the contents of the said links, are copyrighted. They
are provided exclusively
for access and non-profit educational use by the students currently
enrolled in this course and for the duration of this semester. Any
other use or any access or use by others, without authorization of the
professor in this course and copyright holder or holders, is not
allowed. No picture taking, videotaping, or recording without professor's prior permission is allowed in class.
Homework
All
homework is no credit, except when indicated otherwise.
Watch
for added or modified homework.
Exercises for Chap. 1
p.49 ...
1.1, 1.5, 1.6, 1.7
(optional), 1.8, 1.9, 1.12, 1.19, 1.20, 1.21, 1.24, 1.25.
(A bit more challenging homework for smart students) Write a Java code
for the implementation of interrupts as described here: http://csc.csudh.edu/suchenek/CSC341/Implementation_of_interrupts.txt
Exercises
for Chap.
2
p. 94 ...
2.1, 2.2,
2.3, 2.4, 2.5, 2.6, 2.7, 2.13, 2.15.
Exercises for
Chap. 3
p. 149 ...
3.3, 3.4,
3.8, 3.9, 3.18.
Exercises for
Chap. 4
4.1, 4.2,
4.3.
Exercises
for
Chap. 5
- ex. 5.1, 5.3, 5.8, 5.27, 5.31, 5.38, 5.39.
- (A replacement for incorrect ex. 5.5) Show that if the
wait() and signal() semaphore operations are not executed as system
calls then mutual exclusion may be violated.
- Implement TestAndSet
method of Fig. 5.3 using Swap as the only synchronizarion
primitive.
- What's wrong with
the definitions of wait and signal in Section 5.6 Semaphores? Give all reasons.
- Exercise (hard): Modify the code of
monitor DiningPhilosophers
so that it allows construction of individual philosophers.
It requires execution of the following statement for each philosopher:
DiningPhilosophers
Philosopher = new DiningPhilosophers();
Then each philosopher invokes the operations pickup()
and putdown() in the following sequence:
Philosopher.takeForks ();
EAT
Philosopher.returnForks
();
Exercises
for
Chap. 6
6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.10, 6.14, 6.16, 6.19, 6.20, 6.21, 6.24.
Exercises
for
Chap. 7
Ex. 7.1, 7.2, 7.3, 7.4, 7.9, 7.11, 7.17, 7.20, 7.23, 7.28, 7.29.
Exercises for
Chap. 8
Ex. 8.1, 8.2, 8.3, 8.4, 8.5, 8.8, 8.14, 8.18, 8.19, 8.21, 8.31.
Exercises for
Chap. 9
Ex. 9.2, 9.9, 9.11, 9.12, 9.13.
Exercise:
Calculate the capacity and the average transfer rate of a maximally
utilized 3-zone CAV disk, with one surface only, that rotates at 7,200
RPM and whose innermost track accomodates 32 sectors, 512 bytes each.
Assume that the maximum
(as opposed to actual) capacity of adjacent tracks differs by exactly 8
bytes. A simplistic and not-to-scale scheme of the disk is shown below.

Use the material in Disk_utilization_otimization_slides.pdf
as a basis for your calculations. You can calculate the average
transfer rate as the capacity of the entire disk divided by the time it
takes to read the entire disk; ignore any seek and rotational latency times.
Exercises
for
Chap. 10
Ex. 10.5, 10.12, 10.13, 10.14, 10.15, 10.17.
Exercises
for
Chap. 11
Ex. 11.1, 11.2, 11.3, 11.4, 11.5, 11.15, 11.16, 11.17.
Exercises for
Chap. 14
Ex. 14.13, 14.14.
|
|
|
|
|
|