estrutura de um sistema operacional · 2014. 12. 10. · " suporte a sistemas operacionais...

42
Estrutura de um Sistema Operacional Prof. Dr. André Carvalho [email protected]

Upload: others

Post on 19-Nov-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Estrutura de um Sistema Operacional

Prof. Dr. André Carvalho [email protected]

Page 2: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Agenda

n  Vale a pena ver de novo n  Estrutura de um SO n  Interrupções n  Proteção ao Núcleo n  Chamada ao Sistema

2

Page 3: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Vale a pena ver de novo

3

Page 4: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Estrutura de um SO

n  Estruturas Simples (MS-Dos) n  Estruturas mais complexas (Unix) n  Organização em Camadas n  Cliente e Servidor ou microkernel n  Máquina virtual

4

Page 5: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Estrutura de um SO

Page 6: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Estrutura de um SO

n  Um SO não é um bloco único e fechado de software executando sobre o hardware.

n  Possui diversos componentes com o b j e t i v o s e f u n c i o n a l i d a d e s complementares.

n  Os componentes mais relevantes de um sistema operacional típico são:

6

Page 7: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Estrutura de um SO

n  Núcleo: é o coração do sistema operac iona l , responsáve l pe la gerência dos recursos do hardware usados pelas aplicações. Ele também implementa as principais abstrações utilizadas pelos programas aplicativos.

7

Page 8: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Estrutura de um SO

n  D r i v e r s : m ó d u l o s d e c ó d i g o e s p e c í f i c o s p a r a a c e s s a r o s dispositivos físicos. Muitas vezes o driver é construído pelo próprio fabricante do hardware e fornecido em forma compilada (em linguagem de máquina) para ser acoplado ao restante do sistema operacional.

8

Page 9: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Estrutura de um SO

n  C ó d i g o d e i n i c i a l i z a ç ã o : a inicialização do hardware requer uma série de tarefas complexas, como reconhecer os dispositivos instalados, testá-los e configurá-los. Outra tarefa importante é carregar o núcleo do sistema operacional em memória e iniciar sua execução.

9

Page 10: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Estrutura de um SO

n  Programas utilitários: são programas que facilitam o uso do sistema computacional, dando funcionalidades c o m p l e m e n t a r e s a o n ú c l e o (formatação de discos e mídias, con f i gu ração de d i spos i t i vos , manipulação de arquivos, terminal, interpretador de comandos, interface gráfica, gerência de janelas, etc.

10

Page 11: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Estrutura de um SO

11

Page 12: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Interrupções

12

Page 13: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Interrupções

n  Quando um controlador de periférico tem uma informação importante a fornecer ao processador, ele tem duas alternativas de comunicação: ¡  Aguardar que o processador o consulte ¡  Notificar o processador através do

barramento de controle, enviando uma requisição de interrupção (IRQ – Interrupt ReQuest).

13

Page 14: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Interrupções

n  Ao receber a requisição de interrupção ¡  A execução corrente é parada e desviada

para o endereço de uma rotina de tratamento de interrupção (interrupt handler).

¡  Essa rotina executa as devidas ações para atender o dispositivo que a gerou.

¡  Ao final, o processador retoma ao ponto onde foi interrompido.

14

Page 15: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Interrupções

15

Page 16: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Interrupções

n  Cada requisição de interrupção recebida é tipicamente um evento ocorrido em um dispositivo periférico.

n  Como tratar centenas ou milhares de interrupções recebidas por segundo?

n  Solução: as rotinas de tratamento de interrupção devem ser curtas e realizar suas tarefas rapidamente .

16

Page 17: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Interrupções

n  O que acontece quando uma interrupção chega ao processador e ele já está tratando outra interrupção? ¡  Para distinguir interrupções, cada uma é

identificada por um inteiro (8 bits). ¡  Como cada interrupção pode exigir um

tipo de tratamento diferente, cada IRQ deve disparar sua própria rotina de tratamento de interrupção.

17

Page 18: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Interrupções

n  Arquiteturas atuais definem um vetor de interrupções (Interrupt Vector), onde cada entrada aponta para a rotina de tratamento da interrupção correspondente. ¡  Vetor, entrada 5 = 3C20h, então a rotina

de tratamento da IRQ 5 iniciará na posição 3C20h da memória RAM.

18

Page 19: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Interrupções

n  Exemplo de interrupções do Pentium

19

Page 20: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Interrupções

n  Exceções são eventos gerados pelo próprio processador que podem ocasionar o desvio da execução usando o mesmo mecanismo das interrupções. ¡  Instruções ilegais, tentativa de divisão

por zero ou outros erros de software são exemplos.

20

Page 21: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Proteção do núcleo

Page 22: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Proteção ao núcleo

n  Núcleo, drivers, utilitários e aplicações são basicamente código de máquina que devem ser diferenciados. ¡  O núcleo e os drivers devem ter pleno

acesso ao hardware. ¡  Os utilitários e os aplicativos devem ter

acesso restrito. n  Mas como impedir as aplicações de

acessar o hardware diretamente? 22

Page 23: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Proteção ao núcleo

n  Privilégios de execução ¡  Processadores modernos contam com

dois ou mais níveis de privilégio de execução.

¡  Esses níveis são controlados por flags especiais e as mudanças de um nível de execução para outro são controladas estritamente pelo processador.

23

Page 24: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Proteção ao núcleo

n  Privilégios de execução ¡  O Pentium conta com 4 níveis de

privi légio (sendo 0 o nível mais privilegiado).

¡  A maioria dos S.O. construídos para esse processador só use os níveis extremos (0 para o núcleo e drivers do sistema operacional e 3 para utilitários e aplicações).

24

Page 25: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Proteção ao núcleo

n  Pode-se considerar dois níveis básicos de privilégio: núcleo e usuário. ¡  Nível núcleo

n  Também chamado nível supervisor, sistema, monitor ou ainda kernelspace.

n  Um código executando nesse nível tem acesso irrestrito (processador e áreas de memória podem ser acessados).

25

Page 26: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Proteção ao núcleo

¡  Nível núcleo n  Além disso, todas as instruções do

processador podem ser executadas. n  Ao ser ligado, o processador entra em

operação neste nível.

26

Page 27: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Proteção ao núcleo

¡  Nível usuário n  Somente um sub-conjunto das instruções do

processador, registradores e portas de entrada/saída estão disponíveis.

n  Instruções “perigosas” como HALT e RESET são proibidas para todo código executando neste nível.

n  Além disso, o hardware restringe o uso da memória, permitindo o acesso somente a áreas previamente definidas.

27

Page 28: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Chamadas de Sistema (System Calls)

Page 29: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Chamadas de sistema

n  Embora necessária, a proteção introduz um novo problema ¡  Como uma aplicação chama as rotinas

oferecidas pelo núcleo de acesso ao hardware e suas abstrações?

¡  Através de um mecanismo denominado interrupção de software ou trap.

29

Page 30: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Chamadas de Sistema

n  Interrupção de software ¡  Instrução especial que aciona o

mecanismo de interrupção de forma intencional.

¡  Comuta o processador para o nível privilegiado e procede de forma similar ao tratamento de uma interrupção.

30

Page 31: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Chamadas de Sistema

n  A ativação de procedimentos do núcleo usando interrupções de software é denominada chamada de sistema (system call ou syscall).

n  As chamadas de s is tema são oferecidas para as aplicações em modo usuário através de uma biblioteca do sistema (system library)

31

Page 32: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Chamada de sistema

32

Page 33: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Máquinas Virtuais

n  Extensão da abordagem de camadas. n  O kernel S.O. é tratado com se fosse parte

do HW. n  Uma máquina virtual provê uma interface

similar ao do hardware da máquina. n  O S.O. cr ia a i lusão de múlt iplos

processadores cada um com a sua própria memória virtual.

Page 34: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Máquinas Virtuais

Page 35: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Máquinas Virtuais

n  Provêm completo isolamento dos recursos do sistema uma vez que que as MVs são isoladas umas das outras.

n  O isolamento, no entanto, impede o compartilhamento direto de recursos.

Page 36: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Máquinas Virtuais

n  São a p la ta fo rma i dea l pa ra desenvo l v imen to de s i s temas operacionais pois não põe em risco a operação do sistema Real.

n  Difíceis de implementar devido ao esforço em emular a interface da máquina real.

Page 37: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Tipos

n  Máquinas virtuais de sistema. ¡  Suporte a sistemas operacionais inteiros

rodando sobre eles. ¡  VMWare, Virtualbox

n  Máquinas virtuais de aplicação ¡  Suporte apenas a aplicações específicas. ¡  Java, Wine.

37

Page 38: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Java Virtual Machine

Page 39: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Plataforma Java

Page 40: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Arquivos Java “.class”

Page 41: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Ambiente de Desenvolvimento

Page 42: Estrutura de um Sistema Operacional · 2014. 12. 10. · " Suporte a sistemas operacionais inteiros rodando sobre eles. " VMWare, Virtualbox ! Máquinas virtuais de aplicação "

Referências

n  Livro de Sistemas Operacionais. Carlos A. Maziero. Disponível em http://www.ppgia.pucpr.br/~maziero/doku.php/so:livro_de_sistemas_operacionais. 2011

42