Chamada de Sistema e
Interrupção
Autor: Valeriano Messele 1
Área: DET
CHAMADAS DE SISTEMAS 2
Se uma aplicação precisa realizar alguma instrução privilegiada (imprimir um arquivo),
ela realiza uma chamada de sistema, que altera o modo usuário para o modo kernel
Ex: Ler um arquivo
Chamadas de Sistemas são a porta de entrada para o modo kernel
System Call (Chamadas do Sistema) – Mecanismo de proteção ao núcleo do S.O. e de acesso aos
seus serviços – UNIX e Linux – System Calls – OpenVMS – System Services – Windows – API
(AplicaPon Program Interface) – Quando um usuário ou aplicação deseja solicitar um serviço do
S.O., realiza uma chamada ao serviço por meio de uma System Call
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 3
System Call (Chamadas do Sistema)
•–Mecanismo de proteção ao núcleo do S.O. e de acesso aos seus serviços
•– UNIX e Linux – System Calls
•– OpenVMS – System Services
•– Windows – API (AplicaPon Program Interface)
•– Quando um usuário ou aplicação deseja solicitar um serviço do S.O., realiza uma
chamada ao serviço por meio de uma System Call.
Autor: Valeriano Messele
Ano Académico: 2022/2023
KERNEL 4
Kernel
– Núcleo do S.O.
– Oferece serviços básicos para todas as outras partes
– Ro9nas que fornece serviços aos usuários e aplicações
– Interpretador de comandos = SHELL
• Desempenha papel de interação com o usuário – UNIX = c shell (%), bourne
shell ($)
– Linux = bash (#)
– MS-DOS = [Link] – Windows = API Win32
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 5
Como elas são Realizadas?
1) As chamadas de sistemas são realizadas através de instruções traps (irá receber e processar a
chamada de sistema)
2) Traps são conhecidos como interrupções de so[ware
3) Após o termino da chamada (ex: ler uma arquivo ), a execução conPnua apos a chamada
de sistema
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 6
Passos para Chamada de Sistema
1)Aplica9vo faz chamada ao Sistema
(TRAP)
2)Através de uma tabela o SO
determina o endereço de ro9na;
3)Ro9na de Serviço é acionada
(ro9na compar9lhada)
4)Serviço solicitado é executado e o
controle retorna ao aplica9vo
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 7
Interfaces das SysCalls
Interface das chamadas de sitemas (Wrappers) mais u4lizadas:
1) WIN32 API para Windows
2) POSIX API para pra4camente todas as versões de UNIX
3) Java API para (JVM)
Mo2vos para u2lizar APIs em vez das chamadas ao sistema directamente
a) Portabilidade – Independência da plataforma
b) Esconder complexidade inerente as chamadas ao sistema
c) Acréscimo de funcionalidades que o4mizam o desempenho
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 8
Exemplo de Uso com prin0()
Programa em C que invoca a função da
biblioteca prinT(), que por sua vez chama o
system call write()
A chamada prinT() ocasiona a chamada write() e
exit
Na imagem a função prinT irá imprimir na tela
uma mensagem para que isso aconteça será
necessário chamar uma API(standard C library)
que por sua vez é uma interface do syscall que
por sua vz irá chamar um write () na verdade o
que se quer mostar na imagem é que uma
chamada converte para uma outra chamado do
sistema e que standard C library serve para
esconder a complexidade que existe na camada
inferior
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 9
Funções das System Calls
Gerência de Processos e de Threads
Gerência de memoria
Gerência de Arquivos
Gerência de Disposi7vos
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 10
1) Interface para esconder a complexidade das syscalls;
2) Interface de programação fornecida pelo SO;
3) Geralmente escrita em linguagem de alto nível (C,C++, OU JAVA);
4) Normalmente as aplicações uOlizam uma ApplicaOon Programming Interface (API)
5) Interface que encapsula o acesso directo as chamadas ao sistema (User and kernel)
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 11
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 12
Aplica4vo faz chamada ao sistema (TRAP)
Através de uma tabela, o SO determina o
endereço da ro4na.
Ro4na de Serviço é acionada ro4na
compar4lhada)
Serviço solicitado é executado e o controle
retorna ao aplica4vo.
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 13
Interrupções
Vimos que um so[ware pode interromper seu próprio processo
(ao fazer uma chamada ao sistema):
1) Usando traps (Interrupções de so[ware ou Exceções).
2) 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
1)Interrupções de hardware (eventos externos),
2)Um sinal electrico no hardware;
3)Causa disposiPvos de E/S ou clock
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 14
Portabilidade usando Wrappers
Autor: Valeriano Messele
Ano Académico:
CHAMADAS DE SISTEMAS 15
Interrupção VS. Traps
Evento externo ao processador.
Gerada por disposi2vos que precisam da atenção do SO.
Pode não estar relacionada ao processo que está rodando.
Traps
Evento inesperado vindo dentro do processador.
Causado pelo processo corrente no processador (seja por chamada ao SO, seja por instrução ilegal)
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 16
Interrupção VS. Traps
Vimos que um so[ware ele pode interromper seu próprio processo (ao fazer uma
chamada ao sistema):
Usando traps(Interrupções de So[ware ou exceções)
Para isso, a aplicação tem que estar rodando.
Mas ocorrem interrupções que não são causadas por explicações em execução:
Interrupções de hardware (eventos externos). Um sinal elétrico de hardware.
Causa: disposiPvo de e/s ou o clock.
Autor: Valeriano Messele
Ano Académico: L2022/2023
CHAMADAS DE SISTEMAS 17
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 18
Exemplos de System Call
read (fd, buffer, nbytes)
1, 2 e 3 – Guarda parâmetros na pilha
4 – chamada real ao procedimento na biblioteca
5 – programa coloca o número da chamada ao
sistema de um local esperado pelo SO
6 – TRAP para passar do modo usuário para
modo núcleo e iniciar a execução em um
endereço no núcleo
7 – despacha para procedimento correto de
tratamento de chamada
8 – executado o procedimento de tratamento da
chamada ao sistema
9 – retorna para o procedimento de biblioteca
do espaço do usuário
10 – retorno ao espaço do usuário
11 – programa do usuário limpa pilha
Autor: Valeriano Messele
Ano Académico: 2022/2023
CHAMADAS DE SISTEMAS 19
Autor:
Ano Académico:
MUITO OBRIGADO PELA ATENÇÃO!
20
Volenti Nihil Difficili - “A quem quer, nada é difícil”