Project 3 Grading Criteria

  1. (25 points) Semaphores using semtest1.c,p1.c, p2.c, and p3.c

    At the shell prompt, typing:

     /c/semtest1.exe 
    should output
     
    Semtest1 begins
    p3 created
    Produced 0
    Consumed 0
    Produced 1
    Consumed 1
    Produced 2
    Consumed 2
    Produced 3
    Consumed 3
    Produced 4
    Consumed 4
    p3 executed
    
  2. (10 points) Semaphore invalid cases using semtest2.c
    semtest2.c
    will check handling of invalid arguments to semaphore operations. At the prompt typing:

     /c/semtest2.exe 
    should output (actual value returned by Init_Semaphore not important).
    + Identified unauthorized call
    + Identified invalid SID
    Open_Semaphore() called
    Open_Semaphore() returned 0
    P() called
    P() returned 0
    V() called
    V() returned 0
    Close_Semaphore() called
    Close_Semaphore() returned 0
    + Removed authority after finish
    
  3. (25 points)Scheduling will be tested using ping.c and pong.c.
    At the prompt typing:

    $ /c/ping.exe &
    $ /c/pong.exe 
    
    should output
    Pong
    Ping
    Pong
    Ping
    Pong
    Ping
    Pong
    Ping
    Pong
    Ping
    Process Pong is done at time: YY
    Process Ping is done at time: XX
    
    Note that the last three lines might come out in a different order but that's OK, the important part is the Pong/Ping alternance.
  4. (25 points) Scheduling using schedtest.c,sched1.c, sched2.c, and sched3.c. At the prompt typing:

    /c/schedtest.ex [rr|mys]
    should output a string consisting of many 1s and 2s and a single 3. 3 should never appear as the first character. A sample session is
    %/c/schedtest.ex rr 
    111111222222111111222222311111122222212
    %/c/schedtest.ex mys
    111112222221111113222222111111222222112
    

    A few trials runs will usually (but not certainly) show the 3 appearing earlier when running MYS then when running RR In case of doubt, code will be checked.
  5. (15 points) Code Reviews
  6. Appropriate use of data strctures
  7. Appropriate use of looping and control logic
  8. Code in the write files/locations
  9. Comments