Assignment 3 Grading Guide: 1. Report 30% (6pts) Part 1: Specification/algorithm description about SyncQueue and QueueNode (or student-provided classes)....................................1 Part 2: Specification/algorithm description about Test3..................1 Performance result when running Test3 on Kernel_1.java...........1 Performance result when running 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 (4pts) No comments AND horrible code....................................0 or Poor comments OR poor code organization..........................2 or Well done........................................................4 Total.................................................................20