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

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

Vídeo: Diferença entre chamada de sistema e chamada de função

Vídeo: Diferença entre chamada de sistema e chamada de função
Vídeo: O que é um Sistema de Arquivos? 2024, Novembro
Anonim

Chamada de Sistema vs Chamada de Função

Um processador típico executa instruções uma a uma. Mas pode haver ocasiões em que o processador tenha que interromper 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 tais 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 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 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 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 subrotina. Uma sub-rotina (também conhecida como procedimento, função, método ou rotina) é 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 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 de dentro de outras funções). Quando uma função é chamada, o processador pode ir para onde o código da função está e executar as instruções da função uma a uma. Após completar as funções, o processador retornará exatamente de onde 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 negociação 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 de Sistema e Chamada de Função?

Chamada de 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 de sistema são usadas quando um programa precisa executar alguma tarefa para a qual não possui privilégios. As chamadas de 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 de sistema, as chamadas de função são portáteis. A sobrecarga de tempo de uma chamada de sistema é maior que a sobrecarga de uma chamada de função porque deve ocorrer uma transição entre o modo de usuário e o modo de kernel. As chamadas de 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.

Recomendado: