Diferença entre chamada de sistema e chamada de função

Anonim

Chamada do sistema versus chamada de função

Um processador típico executa instruções uma a uma. Mas pode haver ocasiões em que o processador deve interromper as instruções atuais e executar algum outro programa ou segmento de código (residindo 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 chamada de função são ocasiões. Uma chamada de sistema é uma chamada para uma sub-rotina incorporada ao sistema. Uma chamada de função é uma chamada para uma sub-rotina dentro do próprio programa.

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 não tem permissão para fazer isso sozinho) 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 usa chamadas de sistema.

O que é uma chamada de função?

Uma chamada de função também é chamada de chamada de sub-rotina. Uma sub-rotina (também conhecida como procedimento, função, método ou rotina) é parte de um programa maior que é responsável pela realização de uma tarefa específica. O programa maior pode executar uma carga de trabalho pesada, e a sub-rotina pode estar executando apenas uma tarefa simples, que também é independente da codificação do programa restante. Uma função é codificada de tal forma que pode ser chamada várias vezes e de diferentes lugares (mesmo dentro de outras funções). Quando uma função é chamada, o processador pode ir para onde o código da função está residindo e executar as instruções da função uma a uma. Depois de completar as funções, o processador retornará exatamente onde ele deixou e continuará a execução a partir da próxima instrução. As funções são uma ótima ferramenta para reutilização de código. Muitas funções modernas de suporte a idiomas de programação. Uma coleção de funções é chamada de biblioteca. As bibliotecas são freqüentemente usadas como meio de compartilhamento e comercialização de software. Em alguns casos, todo o programa pode ser uma sequência de sub-rotinas (por exemplo, compilação de código roscado).

Qual a diferença entre a chamada do sistema e a chamada de função?

Chamada do sistema é uma chamada para uma sub-rotina incorporada ao sistema, enquanto uma chamada de função é uma chamada para uma sub-rotina dentro do programa. Ao contrário das chamadas de função, as chamadas do sistema são usadas quando um programa precisa executar alguma tarefa, para a qual não tem privilégio. As chamadas do sistema são pontos de entrada no kernel do sistema operacional e não estão vinculadas ao programa (como chamadas de função).Ao contrário, as chamadas do sistema, as chamadas de função são portáteis. A sobrecarga de tempo de uma chamada de sistema é mais do que a sobrecarga para uma chamada de função porque uma transição entre o modo de usuário e o modo kernel deve ocorrer. As chamadas do sistema são executadas no espaço de endereço do kernel, enquanto as chamadas de função são executadas no espaço de endereço do usuário.