22
1/22 Sistemas Operacionais Introdução - Estrutura de um SO Prof. Carlos Maziero DInf UFPR, Curitiba PR Julho de 2020

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

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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