Diferença entre chamada do sistema e interrupção

Anonim

System Call vs Interrupt

Um processador típico executa instruções uma a uma. Mas pode haver ocasiões em que o processador deve parar temporariamente e manter as instruções atuais e executar algum outro segmento de programa ou código (residente em algum outro lugar). Depois de fazer isso, o processador retorna à execução normal e continua de onde ele deixou. Uma chamada do sistema e uma interrupção são ocasiões. Uma chamada de sistema é uma chamada para uma sub-rotina incorporada ao sistema. Uma interrupção é uma interrupção do controle de programa causada por eventos de hardware externos.

O que é uma chamada do sistema?

As chamadas do sistema fornecem programas que executam no computador uma interface para conversar com o sistema operacional. Quando um programa precisa pedir um serviço (para o qual ele não possui permissão em si) do kernel do sistema operacional, ele usa uma chamada de sistema. Os processos de nível de 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 o dispositivo de E / S externo ou para interagir com qualquer outro processo, um programa deve usar as 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 este são chamados de interrupções. As interrupções podem ser causadas por falhas de software ou hardware. As interrupções de hardware são chamadas (simplesmente) Interrupções, enquanto as interrupções de software são chamadas Exceções ou Armadilhas. Uma vez que uma interrupção (software ou hardware) é aumentada, o controle é transferido para uma sub-rotina especial chamada ISR (Rotting Service Routine) que pode lidar com as condições que são 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 de hardware externos. Aqui, externo significa externo à CPU . As interrupções de hardware geralmente provêm de várias fontes diferentes, como chip de temporização, dispositivos periféricos (teclados, mouse, etc.), portas de E / S (serial, paralelo, etc.), unidades de disco, relógio CMOS, placas de expansão (som cartão, placa de video, etc.). Isso significa que as interrupções de hardware quase nunca ocorrem devido a algum evento relacionado ao programa de execução. Por exemplo, um evento como uma pressão de tecla no teclado pelo usuário, ou um tempo de temporização interno do temporizador de hardware pode aumentar esse tipo de interrupção e pode informar a CPU de que um determinado dispositivo precisa de alguma atenção. Em uma situação como essa, a CPU interromperá o que estava fazendo (i. E. Pausa o programa atual), fornece o serviço exigido pelo dispositivo e retornará ao programa normal.

Qual a diferença entre System Call e Interrupt?

A chamada do sistema é uma chamada para uma sub-rotina incorporada no sistema, enquanto a Interrupção é um evento, o que faz com que o processador mantenha temporariamente a execução atual. No entanto, uma diferença importante é que as chamadas do sistema são síncronas, enquanto que as interrupções não sã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 uma tecla pressionada no teclado pelo usuário. Portanto, sempre que ocorre uma chamada do sistema, o processador só precisa se lembrar de onde retornar, mas no caso de uma interrupção, o processador deve lembrar o local para 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.