Project 2 Grading Criteria
Basic Signal Functionality - (40/100 points)
- Full Credit - ALL
the following functionalities should be working correctly:
- Register handler
- Send signal
- Handle signal
- Return from signal correctly
- Partial Credit - If the basic signal functionality is not working, however, your code shows that you made a good effort in the project, you will receive
(20 Pts) as partial credit.
SIGCHLD - (15/100 points)
-
(5 Pts) SIGCHLD should be ignored if there is no registered handler.
-
(10 Pts) Whenever a child process dies, a SIGCHLD should be sent to parent.
SIG_IGN & SIG_DFL - (15/100 points)
- (5 Pts) Passing SIG_IGN as a handler to a signal should result in the signal being ignored.
- (5 Pts) Passing SIG_DFL as a handler to a signal should result in the process exiting as described in the specification, except for SIGCHLD.
- (5 Pts)
If a process receives a signal and no explicit
signal handler has been defined for that
signal by Sys_Signal, then the default signal
handler will be invoked.
Testing Non-reentrant Handler Code - (10/100 points)
- (5 Pts) Handling Multiple Same Signals: Indicate that one signal is pending while executing the handler no matter how many times the signal received.
- (5 Pts) Handling Multiple Different Signals: Indicate all signals as pending once.
Handling Errors - (10/100 points)
- (2 Pts) Registering a handler for SIGKILL
- (2 Pts) Registering a handler for non-exiting signal
- (2 Pts) Sending a signal to a non-existing PID
- (2 Pts) Sending a non-existing signal
- (2 Pts) Sending a signal to a kernel process
Sys_WaitNoPID - (10/100 points)
- (5 Pts) Sys_WaitNoPID should reap any zombie child process that happens to have terminated, and whose refCount is 1.
- (5 Pts) Return ENOZOMBIES if there are no dead child processes.