Chamada do sistema vs chamada de função
Um processador típico executa as instruções uma por uma. Mas pode haver ocasiões em que o processador tenha que parar a instrução atual 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 parou. Uma chamada de sistema e uma chamada de função são essas ocasiões. Uma chamada de sistema é uma chamada para uma sub-rotina integrada no sistema. Uma chamada de função é uma chamada para uma sub-rotina dentro do próprio programa.
O que é uma chamada de sistema?
As chamadas do sistema fornecem aos programas em execução no computador uma interface para falar com o sistema operacional. Quando um programa precisa solicitar um serviço (para o qual ele 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 um dispositivo de E / S externo ou para interagir com quaisquer outros processos, 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) faz parte de um programa maior que é responsável por realizar uma tarefa específica. O programa maior pode executar uma carga de trabalho pesada e a sub-rotina pode executar 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 até onde o código da função está residindo e executar as instruções da função uma por uma. Após completar as funções, o processador voltará exatamente de onde parou e continuará a execução a partir da próxima instrução. 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 utilizadas 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 encadeado).
Qual é a diferença entre System Call e Function Call?
A chamada do sistema é uma chamada para uma sub-rotina embutida no 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 realizar 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 das 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 de 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.