arquitetura dos sistemas operacionais - andrix.com.br · sistemas operacionais arquitetura dos...

Post on 09-Nov-2018

421 Views

Category:

Documents

15 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sistemas Operacionais

Arquitetura dos

Sistemas

Operacionais

Andrique Amorimwww.andrix.com.br

professor@andrix.com.br

Sistemas Operacionais

Previously on OS...

Sistemas Operacionais

Arquitetura: O QUE É?

• Estrutura básica sobre a qual é projetado o sistema operacional

• Como as ABSTRAÇÕES são realmente implementadas

• Como o sistema computacional deve ser solicitado e atender aos aplicativos,

• Como interagem as partes do SO entre si

Sistemas Operacionais

E essa tal ABSTRAÇÃO?

Sistemas Operacionais

Abstração

Sistemas Operacionais

Elementos de um SO

Kernel Shell

System-calls

Sistemas Operacionais

Elementos de um SO

Sistemas Operacionais

Chamadas do Sistema

System-calls

São chamadas (solicitações) aprocedimentos (ou serviços) do SO, feitaspor um usuário (ou aplicativo).

Sistemas Operacionais

Chamadas do Sistema

System-calls

Chamadas são usadas paragerenciar processos, arquivos,diretórios e outros.

Sistemas Operacionais

Chamadas do Sistema

NÚCLEO

CHAMADAS

HARDWARE

APLICATIVOS

Sistemas Operacionais

Chamadas do Sistema

Em geral, quando se faz um programa,existem certas instruções que o programaem execução (processo), pode executar.

EXEMPLO: operar com posições dememória pertencentes ao seu espaçode endereçamento.

Sistemas Operacionais

Chamadas do Sistema: EXEMPLO

Um processo pode perfeitamente somar oconteúdo de duas posições de memória earmazenar numa terceira sem precisar do SistemaOperacional.

Entretanto, caso esse processo precisa armazenarisso em um arquivo, mandar via rede ousimplesmente mostrar na tela, ele vai precisar doSistema operacional para isso.

Sistemas Operacionais

Chamadas do Sistema

Sistemas Operacionais

Chamadas do Sistema

COMO FUNCIONA?

Sistemas Operacionais

Chamadas do Sistema

1 - Quando a chamada de sistema éinvocada, o programa que a invocou éinterrompido, e a informação necessáriapara continuar a sua execução é salva.

Sistemas Operacionais

Chamadas do Sistema

2 - O processador inicia a execução docódigo.

3 - Quando a chamada termina, ocontrole retorna para o programa e oestado previamente salvo é restaurado

4 - programa continua a sua execução.

Sistemas Operacionais

Chamadas do Sistema

Sistemas Operacionais

Chamadas do Sistema

Em alguns casos, o retorno de fatopara o programa não é imediato.

Entrada/saída

Sistemas Operacionais

Chamadas do Sistema

Os sistemas operacionais atuais temcentenas de chamadas de sistema.

LINUX tem quase 300 chamadas de sistema diferentes

FREEBSD APROXIMADAMENTE 330 chamadas

Sistemas Operacionais

Chamadas do Sistema

Linux System Call TableAlguns exemplos de chamadas

&eax Name Source

1 sys_exit kernel/exit.c

3 sys_read fs/read_write.c

6 sys_close fs/close.c

21 sys_mount fs/super.c

37 sys_kill kernel/signal.c

Sistemas Operacionais

Chamadas do Sistema

COMO USAR?

Sistemas Operacionais

Chamadas do Sistema

É preciso conhecer a API (conjunto deprocedimentos) do sistema operacional quedefine quais chamadas estão disponíveis equais são os parâmetros que devem serpassados.

Sistemas Operacionais

Chamadas do Sistema: UNIX

Para ler ou escrever um arquivo, deve-se

primeiro usar uma chamada open.

Ela especifica o nome do arquivo e omodo de abertura.

Para criar um novo arquivo é usadoO_CREAT.

Sistemas Operacionais

Chamadas do Sistema: UNIX

Para cada arquivo, o Unix registra o mododo arquivo, o tamanho e o momento daúltima modificação.

A chamada stat mostra essasinformações.

Sistemas Operacionais

Chamadas do Sistema

Existem certas chamadas de sistema quenão podem ser colocadas diretamente àdisposição das aplicações.

A sua utilização indevida ocasionariasérios problemas à integridade dosistema.

Sistemas Operacionais

E as arquiteturas?

Sistemas Operacionais

Arquiteturas: TIPOS

Sistemas Operacionais

Monolítico

É a arquitetura mais antiga e mais comum.

Cada componente do SO é contido no núcleo

(kernel) e pode comunicar-se com qualquer

outro componente diretamente.

Sistemas Operacionais

MonolíticoDois tipos de chamadas:

1 - o modo Kernel, onde é permitida aexecução de todas as instruções básicas damáquina e;

2 - o modo usuário, para os programas deusuário, onde certas instruções, como aquelasque controlam entrada/saída não podem serexecutadas.

Sistemas Operacionais

Monolítico

Sistemas Operacionais

Monolítico

Todos os componentes do núcleo operamem modo núcleo e se inter-relacionamconforme suas necessidades, semrestrições de acesso entre si.

Código no nível núcleotem acesso pleno atodos os recursos eàreas de memória.

Sistemas Operacionais

Monolítico

1.Essa intercomunicação direta permiterapidez na resposta de sistemaoperacional monolíticos.

2.A interação direta entrecomponentes também leva a sistemasmais compactos.

Sistemas Operacionais

Monolítico

3.Qualquer componente do núcleopode acessar os demais componentessem qualquer impedimento.

1.Componentes todos juntos, é difícilidentificar a origem de umdeterminado problema ou erro.

Sistemas Operacionais

Monolítico

2.Caso um componente do núcleoperca o controle devido a algum erro,esse problema pode se alastrarrapidamente por todo o núcleo,levando o sistema ao colapso(travamento, reinicialização oufuncionamento errado).

Sistemas Operacionais

Monolítico

Sistemas Operacionais

Monolítico

3. Manutenção e evolução do kernel se tornam mais complexas, porque as dependências e pontos de interação entre os componentes podem não ser evidentes.

Sistemas Operacionais

Monolítico

4. Pequenas alterações na estrutura dedados de um componente podem terum impacto inesperado em outroscomponentes, caso estes acessemaquela estrutura diretamente.

Sistemas Operacionais

Monolítico

Ótimo Desempenho

Não é tão Robusto (segurança)

Dificuldade de desenvolvimento

Dependências entre componentes

Sistemas Operacionais

Monolítico

A arquitetura monolítica foi a primeiraforma de organizar os sistemasoperacionais; sistemas UNIX antigos e oMS-DOS seguiam esse modelo.

Sistemas Operacionais

Monolítico

Atualmente, apenas sistemasoperacionais embutidos usam essaarquitetura, devido as limitações dohardware sobre o qual executam.

Sistemas Operacionais

Monolítico

O núcleo do Linux nasceu monolítico, masvem sendo paulatinamente estruturado emodularizado desde a versão 2.0 (emboraboa parte de seu código ainda permaneça nonível de núcleo).

Sistemas Operacionais

Monolítico

Alguns exemplos de sistemas que utilizam este tipo de núcleo:

* BSD* Linux* MS-DOS e derivados, incluindo Windows 95, Windows 98 e Windows ME* Solaris

Sistemas Operacionais

Sistemas em camadas

À medida que os sistemasoperacionais tornaram-se maiscomplexos e maiores, projetospuramente monolíticos tornaram-seinviáveis.

Sistemas Operacionais

Sistemas em camadas

A arquitetura em camada, oumodular, tornou-se uma boa opção,agrupando “camadas” decomponentes, ou seja, conjunto deprocedimentos, que realizam tarefassimilares.

Sistemas Operacionais

Sistemas em camadas

Arquitetura modular

HARDWARE

SOFTWARE

Sistemas Operacionais

Sistemas em camadas

1) Cada camada comunica-se somentecom as suas camadas imediatamenteinferior e superior.

2) Uma camada inferior sempre presta umserviço à sua camada superior, sendo quea camada superior não sabe como oserviço é feito, apenas o solicita.

Sistemas Operacionais

Sistemas em camadas

A implementação de uma camada pode sermodificada sem exigir modificação em outracamada, pois possuem componentesautocontidos.

Sistemas Operacionais

Sistemas em camadas

Essa abordagem de estruturação de softwarefez muito sucesso no domínio das redes decomputadores, através do modelo dereferencia OSI.

Sistemas Operacionais

Sistemas em camadas

O empilhamento de várias camadas desoftware faz com que cada pedido de umaaplicação demore mais tempo para chegaraté o dispositivo periférico ou recurso a seracessado, prejudicando o desempenho dosistema.

Sistemas Operacionais

Sistemas em camadas

Não é tão óbvio dividir as funcionalidades deum núcleo em camadas horizontais deabstração crescente, pois essasfuncionalidades são interdependentes,embora tratem muitas vezes de recursosdistintos.

Sistemas Operacionais

Sistemas em camadas

A estruturação em camadas é apenas parcialmente adotada hoje em dia.

Alguns sistemas implementam uma camada inferiorde abstração do hardware para interagir com osdispositivos (a camada HAL – Hardware AbstractionLayer, implementada no Windows NT e seussucessores)

Sistemas Operacionais

Sistemas em camadas

Também organizam em camadas alguns sub-sistemas como a gerência de arquivos e osuporte de rede.

Sistemas Operacionais

Sistemas em camadas

Exemplos de sistemas fortemente estruturados em camadas:

IBM OS/2MULTICS

Sistemas Operacionais

Micro-kernel

Possui apenas um núcleo que

provê recursos mínimosnecessários ao ambiente.

Sistemas Operacionais

Micro-kernel

Núcleo somente com o código de baixonível necessário para interagir comohardware.

Todos os aspectos de alto nível, como:• políticas de uso do processador e da memória,• o sistema de arquivos• o controle de acesso aos recursossão implementados fora do núcleo, em processosque se comunicam usando as primitivas do núcleo.

Sistemas Operacionais

Micro-kernel

Por fazer os núcleos de sistema ficaremmenores, essa abordagem foidenominada micro-nucleo (ou μ-kernel).

Sistemas Operacionais

Micro-kernel

Sistemas Operacionais

Micro-kernel

Exemplo:usando essa abordagem o código de acesso aosblocos de um HD seria mantido no núcleo,

enquanto as abstrações de arquivo e diretórioseriam criadas e mantidas por um código forado núcleo, executando da mesma forma queuma aplicação do usuário.

Sistemas Operacionais

Micro-kernel

Essa arquitetura de kernel tem avantagem de separar os serviços deforma que se acontecer algum problemaem algum serviço, esse serviço não vaiafetar o kernel como o todo.

Sistemas Operacionais

Micro-kernel

Algumas das funções do sistema operacional foram

separadas em programas chamados Servidores.

Sistemas Operacionais

Micro-kernel

As interações entre componentes eaplicações são feitas através de trocas demensagens.

Sistemas Operacionais

Micro-kernel

Exemplo:

Uma aplicação deseja abrir umarquivo no disco rígido.

Sistemas Operacionais

Micro-kernel

1) A app envia uma mensagem parao gerente de arquivos que, por suavez, 2) se comunica com o gerentede dispositivos para obter os blocosde dados relativos ao arquivodesejado.

Sistemas Operacionais

Micro-kernel

3) Os processos nãopodem se comunicardiretamente, devido asrestrições impostas pelosmecanismos de proteçãodo hardware.

Sistemas Operacionais

Micro-kernel

Todas as mensagens são transmitidas através de serviços do micro-núcleo.

Sistemas Operacionais

Micro-kernel

Muito investigados durante os anos 80.

Exemplos:

• Mach• Chorus• Hurd• Minix• QNX

Sistemas Operacionais

Micro-kernel

Customizar o SO iniciando somente oscomponentes necessários ouescolhendo os componentes maisadequados às aplicações que serãoexecutadas.

Sistemas Operacionais

Micro-kernel

As trocas de mensagens entrecomponentes pode ser bastanteelevadas, o que prejudica seudesempenho e diminui a aceitaçãodesta abordagem.

Sistemas Operacionais

Monolítico Vs Micro-kernel

Sistema operacional baseado em kernel monolítico

Sistema operacional baseado em Microkernel

Sistemas Operacionais

Híbridos

Tem a capacidade de agregar oudesagregar funcionalidades, sem perderperformance ou estabilidade presentesna sua estrutura inicial.

Sistemas Operacionais

Híbridos

EXEMPLOS:

• MacOS X• Windows 2000• Windows NT• Windows 7• BeOS

top related