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

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

Vídeo: Diferença entre chamada do sistema e interrupção

Vídeo: Diferença entre chamada do sistema e interrupção
Vídeo: Difference between Adobe Media Encoder CS4, CS5 and CS5.5 2024, Julho
Anonim

Chamada do Sistema vs Interrupção

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

O que é uma chamada de sistema?

As chamadas do sistema fornecem aos programas executados no computador uma interface para conversar com o sistema operacional. Quando um programa precisa solicitar um serviço (para o qual ele não tem permissão) 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 um dispositivo de E/S externo ou interagir com quaisquer outros processos, um programa precisa usar chamadas de sistema.

O que é uma interrupção?

Durante a execução normal de um programa de computador, podem ocorrer eventos que podem fazer com que a CPU pare temporariamente. 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) de interrupções, enquanto as interrupções de software são chamadas de exceções ou armadilhas. Uma vez que uma interrupção (software ou hardware) é gerada, 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 é normalmente 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 vêm de muitas fontes diferentes, como chip de temporizador, 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 interrupções de hardware quase nunca ocorrem devido a algum evento relacionado ao programa em execução. Por exemplo, um evento como um pressionamento de tecla no teclado pelo usuário, ou um timer interno de hardware pode gerar esse tipo de interrupção e pode informar a CPU que um determinado dispositivo precisa de alguma atenção. Em uma situação como essa, a CPU irá parar o que estiver fazendo (ou seja, pausa o programa atual), fornecerá o serviço requerido pelo dispositivo e voltará ao programa normal.

Qual é a diferença entre Chamada do Sistema e Interromper?

Chamada de sistema é uma chamada para uma sub-rotina embutida no sistema, enquanto Interromper é um evento, que faz com que o processador suspenda 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 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 o pressionamento de uma tecla no teclado pelo usuário. Portanto, sempre que ocorre uma chamada de sistema, o processador só precisa lembrar para onde retornar, mas no caso de uma interrupção, o processador precisa lembrar tanto o local para o qual retornar quanto o estado do sistema. Ao contrário de uma chamada de sistema, uma interrupção geralmente não tem nada a ver com o programa atual.

Recomendado: