Assignment 3 Grading Guide: 1. Report 30% (6pts) Part 3: Discussion of data structures for QueueNode, SyncQueue..............1 Specification/algorithm description for Test3a......................1 Performance result when running Test3a [or Test3] on Kernel_1.java..1 Performance result when running Test3a [or Test3] on Kernel.java....1 Performance comparisons between Kernel_1.java and Kernel.java.......2 2. Correctness 50% (10pts) Part 1: SyncQueue: the use of Vector or array of conditions/QueueNodes......1 SyncQueue: enqueueAndSleep lets a thread wait on a condition........1 SyncQueue: dequeueAndWakeup wakes up a thread waiting on a cond.....1 SyncQueue/QueueNode: maintains a Vector list of child TIDs..........1 Kernel_1.java(WAIT): lets a thread wait on its TID..................1 Kernel_1.java(EXIT): wakes up a thread waiting on its PID...........1 Correct results running Test2.java..................................2 Part 2: Test3.java: spawns at least two threads: CPU and Disk intensive.....1 Kernel.java(RAWREAD/RAWWRITE/SYNC): prevents busy waiting...........1 3. Code Organization 20% (4pts) No comments AND horrible code.......................................0 or Poor comments OR poor code organization.............................2 or Well done...........................................................4 Total....................................................................20