Which of the following statements best distinguishes software traps from hardware interrupts in terms of their origin, execution context, and privilege transition?
A (a) Handling Timing: Hardware interrupts are typically recognized and serviced only at instruction boundaries (i.e., after the current instruction retires), whereas software traps (specifically faults like Page Faults) are recognized and serviced immediately during the execution of the instruction.
B (b) Masking Capability: The operating system can use the Interrupt Flag (e.g., IF in x86) to mask (ignore) "Divide-by-Zero" and "Page Fault" software traps to ensure atomicity within critical kernel sections.
C (c) Synchronicity: Hardware interrupts are asynchronous events triggered by external devices (independent of the CPU clock), whereas software traps are synchronous events tied directly to the execution of a specific instruction.
D (d) Event Nature: Software traps strictly indicate erroneous program behavior (e.g., illegal memory access), whereas hardware interrupts indicate normal system events; therefore, legitimate operating system service requests (System Calls) are never implemented using the trap mechanism.