Connect with us

Sistemas Operacionais

Saiba mais sobre sistemas operacionais – chamada de Sistema e Interrupção

Published

on

Abordaremos hoje a continuação da série sobre sistemas operacionais tendo como assunto a chamada de sistemas, sendo extremamente essencial para um sistema, pois executa funções para a realização da criação de um processo.

Chamadas de Sistemas

Se uma aplicação precisa realizar alguma instrução privilegiada (imprimir um arquivo), ela realiza uma chamada de sistema, que altera do modo usuário para o modo Kernel;

Ex: ler um arquivo

Chamadas de sistemas são a porta de entrada para o modo Kernel.

Como elas são realizadas?

  • As chamadas de sistemas são realizadas através de instruções
  • Traps são conhecidos como interrupções de software.
  • Após o término da chamada (ex: ler um arquivo), a execução continua após a chamada de sistema.

Passos pra chamada de Sistema

  • Aplicativo faz chamada ao sistema (Trap).
  • Através de uma tabela, o SO determina o endereço da rotina.
  • Rotina de serviço é acionada (rotina compartilhada).
  • Serviço solicitado é executado e o controle retorna ao aplicativo.

Interfaces das SysCalls

  • Interface para esconder a complexidade das syscalls.
  • Interface de programação fornecida pelo SO.
  • Geralmente escrita em linguagem de alto nível (C, C++ ou Java).
  • Normalmente as aplicações utilizam uma Application Program Interface (API)
  • Interface que encapsula o acesso direto às chamadas ao sistema.

Interfaces das Chamadas de Sistema (Wrappers) mais utilizadas:

  • Win32 API para Windows
  • POSIX API para praticamente todas as versões de UNIX
  • Java API para a Java Virtual Machine (JVM)

Motivos para utilizar APIs em vez das chamadas ao sistema diretamente

  • Portabilidade – independência da plataforma
  • Esconder complexidade inerente às chamadas ao sistema
  • Acréscimo de funcionalidades que otimizam o desempenho

Interrupções

Vimos que um software pode interromper seu próprio processo (ao fazer uma chamada ao sistema):

  • Usando traps (interrupções de software ou exceções).
  • Para isso, a aplicação tem que estar rodando.

Mas ocorrem interrupções que não são causadas por aplicações em execução:

  • Interrupção de hardware (eventos externos).
  • Um sinal elétrico no hardware.
  • Causa: dispositivos de E/S ou o clock.

Interrupção vs Traps

Interrupção

Evento externo ao processador.

Gerada por dispositivos que precisam da atenção do SO.

Pode não estar relacionada ao processo que está rodando.

Traps

Evento inesperado vindo de dentro do processador.

Causados pelo processo corrente no processador (seja por chamada ao SO, seja por instrução ilegal).

Assista a videoaula com o professor

Click to comment

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *