Chamada do sistema x interrupção
Um processador típico executa instruções uma por uma. Mas pode haver ocasiões em que o processador precise parar temporariamente e manter a instrução atual e executar outro programa ou segmento de código (residindo em outro local). Depois de fazer isso, o processador retorna à execução normal e continua de onde parou. Uma chamada do sistema e uma interrupção são essas ocasiões. Uma chamada do sistema é uma chamada para uma sub-rotina incorporada ao sistema. Uma interrupção é uma interrupção de controle de programa causada por eventos externos de hardware.
O que é uma chamada do sistema?
As chamadas do sistema fornecem aos programas em execução no computador uma interface para conversar com o sistema operacional. Quando um programa precisa solicitar um serviço (para o qual não possui permissão própria) do kernel do sistema operacional, ele usa uma chamada do sistema. Os processos no nível do usuário não têm as mesmas permissões que os processos que interagem diretamente com o sistema operacional. Por exemplo, para se comunicar com um dispositivo de E / S externo ou para interagir com outros processos, um programa precisa usar chamadas do sistema.
O que é uma interrupção?
Durante a execução normal de um programa de computador, pode haver eventos que podem causar a interrupção temporária da CPU. Eventos como esse são chamados de interrupções. As interrupções podem ser causadas por falhas de software ou hardware. Interrupções de hardware são chamadas (simplesmente) Interrupções, enquanto interrupções de software são chamadas Exceções ou Interceptações. Depois que uma interrupção (software ou hardware) é disparada, o controle é transferido para uma sub-rotina especial chamada ISR (Interrupt Service Routine) que pode lidar com as condições geradas pela interrupção..
Como mencionado acima, o termo interrupção geralmente é reservado para interrupções de hardware. São interrupções de controle de programa causadas por eventos externos de hardware. Aqui, externo significa externo à CPU. As interrupções de hardware geralmente vêm de muitas fontes diferentes, como chip de timer, dispositivos periféricos (teclados, mouse etc.), portas de E / S (serial, paralela etc.), unidades de disco, relógio CMOS, placas de expansão (placa de som, vídeo cartão, etc). Isso significa que as interrupções de hardware quase nunca ocorrem devido a algum evento relacionado ao programa em execução. Por exemplo, um evento como o pressionamento de uma tecla no teclado pelo usuário ou o tempo limite de temporização de um hardware interno pode aumentar esse tipo de interrupção e informar à CPU que um determinado dispositivo precisa de alguma atenção. Em uma situação como essa, a CPU interrompe o que estava fazendo (ou seja, pausa o programa atual), fornece o serviço exigido pelo dispositivo e retorna ao programa normal.
Qual é a diferença entre Chamada do sistema e Interrupção?
Chamada de sistema é uma chamada para uma sub-rotina incorporada ao sistema, enquanto Interrupção é um evento que faz com que o processador retenha temporariamente a execução atual. No entanto, uma grande diferença é que as chamadas do sistema são síncronas, enquanto as interrupções não. Isso significa que as chamadas do sistema ocorrem em um horário fixo (geralmente determinado pelo programador), mas as interrupções podem ocorrer a qualquer momento devido a um evento inesperado, como o pressionamento de uma tecla no teclado pelo usuário. Portanto, sempre que uma chamada do sistema ocorre, o processador precisa apenas lembrar para onde retornar, mas, no caso de uma interrupção, o processador precisa lembrar o local para onde retornar e o estado do sistema. Ao contrário de uma chamada do sistema, uma interrupção geralmente não tem nada a ver com o programa atual.