sistemas operacionais - introdução - estrutura de um...
TRANSCRIPT
![Page 1: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/1.jpg)
1/22
Sistemas OperacionaisIntrodução - Estrutura de um SO
Prof. Carlos Maziero
DInf UFPR, Curitiba PR
Julho de 2020
![Page 2: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/2.jpg)
2/22
Conteúdo
1 Estrutura de um SO
2 Elementos de hardware
3 Chamadas de sistema
![Page 3: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/3.jpg)
3/22
Estrutura de um SO
programasutilitários
aplicativos
sistemausuário
hardwaresoftware
controladores de dispositivos
dispositivos físicos
núcleogerência
de arquivosgerência
de tarefasgerência
de proteção
protocolosde rede
gerênciade energia
gerênciade memória
código deinicialização drivers de dispositivos
![Page 4: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/4.jpg)
4/22
Estrutura de um SO
Componentes mais relevantes:
Núcleo : gerência dos recursos do hardware usados pelasaplicações. Também implementa as principais abstraçõesutilizadas pelos aplicativos.
Inicialização : reconhece os dispositivos instalados e carrega onúcleo do sistema na memória.
Drivers : módulos de código para acessar os dispositivosfísicos.
Utilitários : funcionalidades complementares: formatação dediscos, shell de comandos, interface gráfica, etc.
![Page 5: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/5.jpg)
5/22
Exemplo: Android
![Page 6: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/6.jpg)
6/22
Estrutura de um SO
PolíticaAspecto abstrato de alto nível: decidir a quantidade de memóriapara cada aplicação, o próximo pacote de rede a enviar, etc.
MecanismoProcedimento de baixo nível usado para implementar políticas:como iniciar um processo, enviar um pacote de rede, etc.
Filosofia da estrutura: separar políticas de mecanismos
As políticas devem ser independentes dos mecanismos
Os mecanismos devem ser genéricos para várias políticas
![Page 7: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/7.jpg)
7/22
Arquitetura de um computador
processor
memory
terminalcontroller
MMU
diskcontroller
I/O devices
control
data
address
bus
cache
![Page 8: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/8.jpg)
8/22
Endereços de dispositivos
dispositivo endereços de acesso
teclado 0060h-006Fh
barramento IDE primário 0170h-0177h
barramento IDE secundário 01F0h-01F7h
porta serial COM1 02F8h-02FFh
porta serial COM2 03F8h-03FFh
![Page 9: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/9.jpg)
9/22
Interrupções, exceções e traps
Mecanismos de hardware usados para desviar a execução doprocessador em caso de eventos:
Interrupção : desvia a execução por evento externo, gerado porum periférico
Exceção : desvia a execução por evento interno (erro numérico,etc)
Trap : desvia a execução a pedido do so�ware
![Page 10: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/10.jpg)
10/22
Interrupções e exceções
processor
memory
terminalcontroller
MMU
networkcontroller
control
data
addressbus
cache
1 2
3
4
6
5
5
![Page 11: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/11.jpg)
11/22
Roteiro de uma interrupção
1 O processador está em um fluxo de execução;
2 Um pacote vindo da rede é recebido pela placa Ethernet;
3 O controlador Ethernet envia uma IRq ao processador;
4 O processamento é desviado para a rotina de tratamentoda interrupção;
5 A rotina de tratamento transfere os dados do pacote docontrolador para a memória;
6 A rotina de tratamento finaliza e o processador retorna àexecução do programa.
![Page 12: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/12.jpg)
12/22
Interrupções típicas PC
IRQ Descrição0 divide error
1 debug exception
2 null interrupt
3 breakpoint
4 INTO-detected overflow
5 bound range exception
6 invalid opcode
... ...
19-31 Intel reserved
32-255 maskable interrupts (devices & exceptions)
![Page 13: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/13.jpg)
13/22
Níveis de privilégio
Implementados pelosprocessadores modernos
No Multics: anéis deproteção (0 ... 7)
Nas CPUs Intel: 4 níveisnúcleo do SO
aplicações3
2
1
0
não usado
não usado
![Page 14: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/14.jpg)
14/22
Níveis de privilégio
Nível núcleo (supervisor, sistema, monitor):
Acesso amplo aos recursos:
todas as instruções do processadortodos os registradorestodas as portas de entrada/saídatodas as áreas da memória
Nível usado pelo núcleo e os drivers.
![Page 15: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/15.jpg)
15/22
Níveis de privilégio
Nível usuário (userspace):
Acesso restrito aos recursos:
subconjunto das instruções do processadorsubconjunto de registradoressubconjunto de portas de entrada/saídasubconjunto de áreas da memória
Tentativas de acesso inválidas geram exceções
Nível usado pelos utilitários e aplicações
![Page 16: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/16.jpg)
16/22
Separação do núcleo
nível usuário
nível núcleo
aplicaçõesisoladasentre si
pela MMU
núcleo do sistema operacional
shell e-mail
browsergit
editor
jogo
clientee-mail
Xserver
![Page 17: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/17.jpg)
17/22
Chamadas de sistema
São funções que permitem o acesso aos serviços do núcleo:
Abrir/ler/escrever/fechar arquivos
Enviar/receber dados através da rede
Ler teclado
Escrever dados na tela
Problema:Como uma aplicação pode invocar uma função do núcleo?
![Page 18: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/18.jpg)
18/22
Invocação de uma syscall (em C)
1 #include <unistd.h>2
3 int main (int argc, char *argv[])4 {5 write (1, "Hello World!\n", 13) ; /* write string to stdout */6 _exit (0) ; /* exit with no error */7 }
![Page 19: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/19.jpg)
19/22
Invocação de uma syscall (assembly)
1 section .data2 msg db ’Hello World!’, 0xA ; output string (0xA = "\n")3 len equ 13 ; string size4
5 section .text6
7 global _start8
9 _start:10 mov rax, 1 ; syscall opcode (1: write)11 mov rdi, 1 ; file descriptor (1: stdout)12 mov rsi, msg ; data to write13 mov rdx, len ; number of bytes to write14 syscall ; make syscall15
16 mov rax, 60 ; syscall opcode (60: _exit)17 mov rdi, 0 ; exit status (0: no error)18 syscall ; make syscall
![Page 20: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/20.jpg)
20/22
Etapas de uma chamada de sistema
nível usuário
nível núcleo
4 7
6
write()
aplicação biblioteca
2
3
1
8
10
aplicação
registradorespecífico
gestão detarefas
rotina deentrada
syscall
5
sys_write()
implementaçãoda chamada
9
entry()
tabela desyscalls
opcode info ptr
0 ...
1 ...
2 ...
3 ...
4 ...
5 ...
![Page 21: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/21.jpg)
21/22
Etapas de uma chamada de sistema
1 Aplicação chama write(...) da biblioteca.
2 A função write preenche os registradores da CPU.
3 A função write invoca uma chamada de sistema.
4 A CPU vai para o núcleo e ativa a rotina de entrada(entry).
5 A rotina de entrada consulta a tabela de syscalls e ativa afunção sys_write.
6 A função sys_write efetua a operação solicitada.
7 A CPU retorna à função write, em modo usuário.
8 A função write retorna ao código principal da aplicação.
![Page 22: Sistemas Operacionais - Introdução - Estrutura de um SOwiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=socm:socm-slides-0… · 19/20 Etapas de uma chamada de sistema 1 Aplicação](https://reader035.vdocuments.net/reader035/viewer/2022081614/5fc36b8fa53dca623172a361/html5/thumbnails/22.jpg)
22/22
Conjunto de chamadas de sistemaProcessos: criar, carregar código, terminar, esperar
Memória: alocar/liberar/modificar áreas de memória
Arquivos: criar, remover, abrir, fechar, ler, escrever
Comunicação: criar/destruir canais, receber/enviar dados
Dispositivos: ler/mudar configurações, ler/escrever dados
Sistema: ler/mudar data e hora, desligar o sistema
Cada SO define seu próprio conjunto de syscalls:
Sistemas Windows: Win32
Sistemas UNIX: POSIX