Download Blue Gene/L: Application Development

Transcript
For certain signals, such as SIGKILL and SIGSTOP, the action is fixed and the application
terminates without much choice. The signals without any registered handler are simply
ignored. For signals with installed handlers, there are two choices:
򐂰 Deliver the signal immediately
򐂰 Postpone the signal delivery until the checkpoint is complete
All signals are classified into one of these two categories as shown in Table 7-1. If the signal
must be delivered immediately, the memory state of the application might change, making the
current checkpoint file inconsistent. Therefore, the current checkpoint must be aborted. The
checkpoint routine periodically checks if a signal has been delivered since the current
checkpoint began. In case a signal has been delivered, it aborts the current checkpoint and
returns to the application.
For signals that are to be postponed, the checkpoint handler simply saves the signal
information in a pending signal list. When the checkpoint is complete, the library calls
application handlers for all the signals in the pending signal list. If more than one signal of the
same type is raised while the checkpoint is in progress, the checkpoint library ensures that
the handler registered by the application will be called at least once. However, it does not
guarantee in-order-delivery of signals.
Table 7-1 Action taken on signal
86
Signal name
Signal type
Action to be taken
SIGINT
Critical
Deliver
SIGXCPU
Critical
Deliver
SIGILL
Critical
Deliver
SIGABRT/SIGIOT
Critical
Deliver
SIGBUS
Critical
Deliver
SIGFPE
Critical
Deliver
SIGSTP
Critical
Deliver
SIGSEGV
Critical
Deliver
SIGPIPE
Critical
Deliver
SIGSTP
Critical
Deliver
SIGSTKFLT
Critical
Deliver
SIGTERM
Critical
Deliver
SIGHUP
Non-critical
Postpone
SIGALRM
Non-critical
Postpone
SIGUSR1
Non-critical
Postpone
SIGUSR2
Non-critical
Postpone
SIGTSTP
Non-critical
Postpone
SIGVTALRM
Non-critical
Postpone
SIGPROF
Non-critical
Postpone
SIGPOLL/SIGIO
Non-critical
Postpone
IBM System Blue Gene Solution: Application Development