CSC468 Assignment 1 Marking Scheme Total Marks: 40 Q1: Out of 15 points -------------------- This question is marked for correctness, efficiency, commenting, and your explanation of fair signalling. Deductions: -10 if the solution does not solve the critical section problem (cc3) -8 if the solution does not implement fair signaling (cc7) -4 for a working solution that is not efficient because (cc1) it unnecessarily uses priority condition queues -3 at most for insufficient commenting (cc4) -3 at most for poor quality of code (elegance, unreadable, etc) (cc6) -3 at most for a poor explanation of how signalling is (cc5) implemented in your solution. Q2: Out of 20 points -------------------- This question is marked for correctness, efficiency, and commenting. You must implement CLook as explained in the assignment description, and set the disk position variable appropriately. Deductions: -5 if the solution allows more than one disk to be accessed at a time -5 if the position variable is not set correctly (cc14) -5 if the CLook algorithm is not implemented. This may mean starvation for some of your disk requests. -5 for not taking advantage of OOT's priority condition variables, if this results in an inefficient solution to the problem. -3 at most for insufficient commenting (cc4) -3 at most for poor quality of code (elegance, unreadable, etc) (cc6) Q3: Out of 5 points ------------------- Deductions: -5 if you did not successfully find Checkpoint Charlie. (cc9) -3 at most if you appear to have found the correct occurence of Checkpoint Charlie, but have not explained yourself well enough for us to know for sure. Other Dedutions --------------- -2 for not following the submission guidelines in the (cc8) HandIn file. ================================================================================ Canonical Comments ================== cc1: No need to use priority condition queues in question 1 because FIFO is ensured by regular condition variables. Your solution would be more efficient if a regular condition queue variable was used instead. cc2: Your solution is not efficient. Unnecessary use of extra condition variables. cc3: Your solution does not solve the critical section problem, which is a requirement for question 1. cc4: Insufficient comments to describe your code. cc5: Poor explanation of how signalling is implemented in your solution to question 1. cc6: Poor quality of code (elegance, unreadable, poor indentation, not enough white space (blank lines), unnecessary/extra code, poor choice of variable names, etc.) cc7: Your solution is not fair. A new process C is allowed to use resource before previously waiting process(es). cc8: You have failed to follow the submission instructions in the HandIn file (in the course include directory). You must write the following information on each question that you submit: - Names of people in your group (preferably with student ID#) - Tutorial Room number where assignment is to be returned - Name of account used for electronic submission cc9: You have not correctly found Checkpoint Charlie. Checkpoint Charlie is in the SystemMon monitor in Hardware/Hardware. cc10: Does not solve the critical section problem. You need to keep track of if the disk is already busy with another request. cc11: Your solution works fine for two disk scans only. After you scan in the current direction and then in the next direction, you must then swap the queues so that the next queue becomes the current queue, and the current queue becomes the next queue for scheduling future requests. cc12: You are waking up requests (using signal) in the wrong order. cc13: In the requeset procedure, your process waits, even if the queues are empty (no previous requests). cc14: Does not set the 'position' variable correctly. This was required by the assignment.