Chamada de sistema vs chamada de função
Um processador típico executa instruções uma por uma. Mas pode haver ocasiões em que o processador precise interromper 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 chamada de função são essas ocasiões. Uma chamada do 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 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 tem permissão para fazer isso sozinho) do kernel do sistema operacional, ele usa uma chamada de 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 usa chamadas do 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) faz parte de um programa maior responsável pela execuçã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 restante do programa. Uma função é codificada de tal maneira que pode ser chamada várias vezes e de lugares diferentes (mesmo 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 concluir as funções, o processador retornará exatamente ao ponto em que parou 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 linguagens de programação modernas suportam funções. Uma coleção de funções é chamada de biblioteca. As bibliotecas são frequentemente usadas como meio de compartilhamento e troca de software. Em alguns casos, o programa inteiro pode ser uma sequência de sub-rotinas (por exemplo, compilação de código encadeado).
Qual é a diferença entre Chamada do sistema e Chamada de função?
Chamada de sistema é uma chamada para uma sub-rotina integrada ao sistema, enquanto uma chamada de função é uma chamada para uma sub-rotina dentro do programa. Diferentemente 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). Diferentemente das chamadas do sistema, as chamadas de função são portáteis. A sobrecarga de tempo de uma chamada do sistema é maior do que a sobrecarga de uma chamada de função, porque uma transição entre o modo de usuário e o modo de 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.