Chamada de sistema no sistema operacional: tipos e exemplos

O que é chamada de sistema no sistema operacional?

PARA chamada de sistema é um mecanismo que fornece a interface entre um processo e o sistema operacional. É um método programático no qual um programa de computador solicita um serviço do kernel do sistema operacional.

A chamada do sistema oferece os serviços do sistema operacional aos programas do usuário via API (Interface de Programação de Aplicativo). As chamadas de sistema são os únicos pontos de entrada para o sistema kernel.

Neste tutorial de sistema operacional, você aprenderá:

Chamadas de sistema no sistema operacional



Exemplo de chamada do sistema

Por exemplo, se precisarmos escrever um código de programa para ler dados de um arquivo, copie esses dados para outro arquivo. A primeira informação que o programa requer é o nome dos dois arquivos, os arquivos de entrada e saída.

Em um sistema interativo, este tipo de execução de programa requer algumas chamadas de sistema pelo SO.

  • A primeira chamada é para escrever uma mensagem de aviso na tela
  • Em segundo lugar, para ler no teclado, os caracteres que definem os dois arquivos.

Como funciona a chamada do sistema?

Aqui estão as etapas para a chamada do sistema:

Arquitetura da chamada do sistema

Como você pode ver no diagrama fornecido acima.

Passo 1) Os processos executados no modo usuário até o momento em que uma chamada de sistema o interrompe.

Passo 2) Depois disso, a chamada do sistema é executada no modo kernel com prioridade.

Etapa 3) Assim que a execução da chamada do sistema termina, o controle retorna ao modo de usuário.,

Passo 4) A execução dos processos do usuário é retomada no modo Kernel.

Por que você precisa de chamadas de sistema no sistema operacional?

A seguir estão as situações que precisam de chamadas de sistema no sistema operacional:

  • A leitura e a gravação de arquivos exigem chamadas do sistema.
  • Se um sistema de arquivos deseja criar ou excluir arquivos, são necessárias chamadas de sistema.
  • As chamadas do sistema são utilizadas para a criação e gestão de novos processos.
  • As conexões de rede precisam de chamadas do sistema para enviar e receber pacotes.
  • O acesso a dispositivos de hardware como scanner, impressora, precisa de uma chamada de sistema.

Tipos de chamadas do sistema

Aqui estão os cinco tipos de chamadas de sistema usadas no sistema operacional:

  • Controle do processo
  • Gerenciamento de arquivos
  • Gerenciamento de dispositivo
  • Manutenção de Informação
  • Comunicações

Controle do processo

Essas chamadas de sistema executam a tarefa de criação de processo, encerramento de processo, etc.

Funções:

  • Terminar e Abortar
  • Carregar e executar
  • Criar processo e encerrar processo
  • Esperar e Assinar Evento
  • Alocar e liberar memória

Gerenciamento de arquivos

As chamadas do sistema de gerenciamento de arquivos lidam com trabalhos de manipulação de arquivos, como criação, leitura e gravação de um arquivo, etc.

Funções:

  • Crie um arquivo
  • Apagar arquivo
  • Abrir e fechar arquivo
  • Leia, escreva e reposicione
  • Obter e definir atributos de arquivo

Gerenciamento de dispositivo

O gerenciamento de dispositivos faz o trabalho de manipulação do dispositivo, como leitura de buffers de dispositivo, gravação em buffers de dispositivo, etc.

Funções

  • Solicitar e liberar dispositivo
  • Conectar / desconectar dispositivos de maneira lógica
  • Obter e definir atributos do dispositivo

Manutenção de Informação

Ele lida com informações e sua transferência entre o sistema operacional e o programa do usuário.

Funções:

  • Obtenha ou defina a hora e a data
  • Obter atributos de processo e dispositivo

Comunicação:

Esses tipos de chamadas de sistema são usados ​​especialmente para comunicações entre processos.

Funções:

  • Criar, excluir conexões de comunicação
  • Enviar, receber mensagem
  • Ajude o sistema operacional a transferir informações de status
  • Anexar ou desconectar dispositivos remotos

Regras para passar parâmetros para chamada do sistema

Aqui estão as regras gerais comuns para passar parâmetros para a chamada do sistema:

  • Os parâmetros devem ser colocados ou retirados da pilha pelo sistema operacional.
  • Os parâmetros podem ser passados ​​em registradores.
  • Quando houver mais parâmetros do que registros, ele deve ser armazenado em um bloco, e o endereço do bloco deve ser passado como um parâmetro para um registro.

Chamadas de sistema importantes usadas no sistema operacional

esperar()

Em alguns sistemas, um processo precisa aguardar que outro processo conclua sua execução. Esse tipo de situação ocorre quando um processo pai cria um processo filho e a execução do processo pai permanece suspensa até que seu processo filho seja executado.

A suspensão do processo pai ocorre automaticamente com uma chamada de sistema wait (). Quando o processo filho termina a execução, o controle volta para o processo pai.

garfo()

Os processos usam essa chamada de sistema para criar processos que são uma cópia de si mesmos. Com a ajuda deste sistema, o processo pai de chamada cria um processo filho, e a execução do processo pai será suspensa até que o processo filho seja executado.

exec ()

Esta chamada de sistema é executada quando um arquivo executável no contexto de um processo já em execução que substitui o arquivo executável mais antigo. No entanto, o identificador de processo original permanece como um novo processo não é construído, mas pilha, dados, cabeça, dados, etc. são substituídos pelo novo processo.

matar():

A chamada de sistema kill () é usada pelo sistema operacional para enviar um sinal de término a um processo que estimula a saída do processo. No entanto, uma chamada de sistema kill não significa necessariamente interromper o processo e pode ter vários significados.

saída():

A chamada de sistema exit () é usada para encerrar a execução do programa. Especialmente no ambiente multi-threaded, esta chamada define que a execução do thread está completa. O SO recupera recursos que foram usados ​​pelo processo após o uso da chamada de sistema exit ().

Resumo:

Categorias janelas Unix
Controle do processoCreateProcess () ExitProcess () WaitForSingleObject ()fork () exit () wait ()
Manipulação de dispositivoSetConsoleMode () ReadConsole () WriteConsole ()loctl () read () write ()
Manipulação de arquivoCreateFile () ReadFile () WriteFile () CloseHandle ()Abrir () Ler () escrever () fechar!)
Manutenção da informaçãoGetCurrentProcessID () SetTimer () Sleep ()getpid () alarme () sono ()
ComunicaçãoCreatePipe () CreateFileMapping () MapViewOfFile ()Pipe () shm_open () mmap ()
ProteçãoSetFileSecurity () InitializeSecurityDescriptor () SetSecurityDescriptorGroup ()Chmod () Umask () Chown ()