estrutura de um sistema operacional · 2014. 12. 10. · " suporte a sistemas operacionais...
TRANSCRIPT
Estrutura de um Sistema Operacional
Prof. Dr. André Carvalho [email protected]
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
Vale a pena ver de novo
3
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
Estrutura de um SO
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
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
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
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
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
Estrutura de um SO
11
Interrupções
12
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
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
Interrupções
15
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
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
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
Interrupções
n Exemplo de interrupções do Pentium
19
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
Proteção do núcleo
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
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
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
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
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
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
Chamadas de Sistema (System Calls)
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
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
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
Chamada de sistema
32
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.
Máquinas Virtuais
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.
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.
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
Java Virtual Machine
Plataforma Java
Arquivos Java “.class”
Ambiente de Desenvolvimento
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