Traps também podem ser geradas explicitamente por instruções do programa. Essa é uma forma do programa acionar o sistema operacional, por exemplo para requisitar um serviço de entrada ou saída. Um programa não pode "chamar" uma rotina do sistema operacional, já que o sistema operacional é um processo a parte, com seu próprio espaço de endereçamento. Através do mecanismo de interrupção de software, um processo qualquer pode ativar um tratador que pode "encaminhar" uma chamada ao sistema operacional.
Traps também são usadas em situações onde o programa não tem como prosseguir pois aconteceu uma exceção como overflow aritmético, tentativa de acesso a endereço inválido ou estouro da pilha.
Fonte: http://www4.inf.puc-rio.br/~inf1018//2010.2/interrupcoes.html