Você está na página 1de 37

Sistemas Operacionais

Arquiteturas de sistemas operacionais.


Prof. Diovani Milhorim

S.O. - Arquiteturas
As mltiplas partes que compem o sistema podem ser organizadas de diversas formas, separando suas funcionalidades e modularizando seu projeto. Nesta seo sero apresentadas as arquiteturas mais populares para a organizao de sistemas operacionais.

S.O. - Arquiteturas
Sistemas monolticos
Em um sistema monoltico, todos os componentes do ncleo operam em modo ncleo e se inter-relacionam conforme suas necessidades, sem restries de acesso entre si (pois o cdigo no nvel ncleo tem acesso pleno a todos os recursos e reas de memria).

S.O. - Arquiteturas
Sistemas monolticos

No h estruturao visvel; SO escrito como uma coleo de processos cada processo podendo fazer chamadas a qualquer outro; Os servios (system calls) so requisitados atravs da colocao dos parmetros em lugares definidos (pilhas e registradores) e da execuo de uma chamada de sistema especial (TRAP) ao kernel ;

S.O. - Arquiteturas
Sistemas monolticos

S.O. - Arquiteturas
Sistemas monolticos
Vantagem : dessa arquitetura seu desempenho: qualquer componente do ncleo pode acessar os demais componentes, toda a memria ou mesmo dispositivos perifricos diretamente, pois no h barreiras impedindo esse acesso. A interao direta entre componentes tambm leva a sistemas mais compactos.

S.O. - Arquiteturas
Sistemas monolticos
Desvantagens: O mal funcionamento de uma aplicao do kernel pode se alastrar e levar o sistema ao colapso (travamento ou instabilidade) Manuteno mais complexa. Evoluo mais complexa.

S.O. - Arquiteturas
Sistemas monolticos
A arquitetura monoltica foi a primeira forma de organizar os sistemas operacionais; sistemas UNIX antigos e o MS-DOS seguiam esse modelo. Atualmente, apenas sistemas operacionais embutidos usam essa arquitetura, devido s limitaes do hardware sobre o qual executam. O ncleo do Linux nasceu monoltico, mas vem sendo paulatinamente estruturado e modularizado desde a verso 2.0

S.O. - Arquiteturas
Sistemas em camadas
a camada mais baixa realiza a interface com o hardware, enquanto as camadas intermedirias provem nveis de abstrao e gerncia cada vez mais sofisticados. Por fim, a camada superior define a interface do ncleo para as aplicaes (as chamadas de sistema).

S.O. - Arquiteturas
Sistemas em camadas
Essa abordagem de estruturao de software fez muito sucesso no domnio das redes de computadores, atravs do modelo de referncia OSI (Open Systems Inter- connection) [Day83], e tambm seria de se esperar sua adoo no domnio dos sistemas operacionais. No entanto, alguns inconvenientes limitam sua aceitao nesse contexto.

S.O. - Arquiteturas
Sistemas em camadas

Camadas sobrepostas; Cada mdulo oferece um conjunto de funes que podem ser utilizadas por outros mdulos.

Camada 4 Camada 3

Programas de Usurio Gerncia dos Dispositivos de Entrada/Sada Comunicao operadorprocesso Gerncia de memria

Administrar dispositivos de E/S Administra comunicao entre cada processo Responsvel poralocaode

Camada 2
Camada 1 Camada 0

Alocao do processador e implementao da multiprogramao

espao

S.O. - Arquiteturas
Sistemas em camadas
Sistema visto como camadas de anis concntricos.

anis mais internos so mais privilegiados que os externos; prodedimentos de anis externos executavam chamadas de sistema TRAP para utilizar os servios dos anis internos; proteo dos segmentos de memria.

S.O. - Arquiteturas
usurio

MULTICS VMS

supervisor Executivo kernel

S.O. - Arquiteturas
Sistemas em camadas
Inconvenientes:

O empilhamento de vrias camadas de software faz com que cada pedido de uma aplicao demore mais tempo para chegar at o dispositivo perifrico ou recurso a ser acessado, prejudicando o desempenho do sistema. No bvio como dividir as funcionalidades de um ncleo de sistema operacional em camadas horizontais de abstrao crescente, pois essas funcionalidades so inter-dependentes, embora tratem muitas vezes de recursos distintos.

S.O. - Arquiteturas
Sistemas em camadas
A estruturao em camadas apenas parcialmente adotada hoje em dia. Muitos sistemas implementam uma camada inferior de abstrao do hardware para interagir com os dispositivos (a camada HAL Hardware Abstraction Layer, implementada no Windows NT e seus sucessores), e tambm organizam em camadas alguns sub-sistemas como a gerncia de arquivos e o suporte de rede (seguindo o modelo OSI). Como exemplos de sistemas fortemente estruturados em camadas podem ser citados o IBM OS/2 e o MULTICS [CV65].

S.O. - Arquiteturas
Sistemas micro-ncleo (cliente/sevidor)
Uma outra possibilidade de estruturao consiste em retirar do ncleo todo o cdigo de alto nvel (normalmente associado s polticas de gerncia de recursos), deixando no ncleo somente o cdigo de baixo nvel necessrio para interagir com o hardware e criar as abstraes fundamentais (como a noo de atividade).

S.O. - Arquiteturas
Sistemas micro-ncleo
Por fazer os ncleos de sistema ficarem menores, essa abordagem foi denominada micro-ncleo (ou -kernel). Um micro-ncleo normalmente implementa somente a noo de atividade, de espaos de memria protegidos e de comunicao entre atividades. Todos os aspectos de alto nvel, como polticas de uso do processador e da memria, o sistema de arquivos e o controle de acesso aos recursos so implementados fora do ncleo, em processos que se comunicam usando as primitivas do ncleo.

S.O. - Arquiteturas
Sistemas micro-ncleo

S.O. - Arquiteturas
Sistemas micro-ncleo
Exemplo : usando essa abordagem o cdigo de acesso aos blocos de um disco rgido seria mantido no ncleo, enquanto as abstraes de arquivo e diretrio seriam criadas e mantidas por um cdigo fora do ncleo, executando da mesma forma que uma aplicao do usurio.

S.O. - Arquiteturas
Sistemas micro-ncleo
Em um sistema micro-ncleo, as interaes entre componentes e aplicaes so feitas atravs de trocas de mensagens. Assim, se uma aplicao deseja abrir um arquivo no disco rgido, envia uma mensagem para o gerente de arquivos, que por sua vez se comunica com o gerente de dispositivos para obter os blocos de dados relativos ao arquivo desejado.

S.O. - Arquiteturas
Sistemas micro-ncleo
Todas as mensagens so transmitidas atravs de servios do micro-ncleo. Como os processos tm de solicitar servios uns dos outros (para poder realizar suas incumbncias), essa abordagem tambm foi denominada cliente-servidor.

S.O. - Arquiteturas
Sistemas micro-ncleo
Vantagens:

Robustez e flexibilidade. Caso um sub-sistema tenha problemas, os mecanismos de proteo de memria e nveis de privilgio iro confin-lo, impedindo que a instabilidade se alastre ao restante do sistema. Alm disso, possvel customizar o sistema operacional, iniciando somente os componentes necessrios ou escolhendo os componentes mais adequados s aplicaes que sero executadas.

S.O. - Arquiteturas
Sistemas micro-ncleo
Desvantagens: o custo associado s trocas de mensagens entre componentes pode ser bastante elevado, o que prejudica seu desempenho e diminui a aceitao desta abordagem.

S.O. - Arquiteturas
Sistemas micro-ncleo
Vrios sistemas operacionais atuais adotam parcialmente essa estruturao; por exemplo, o MacOS X da Apple tem suas razes no sistema Mach, ocorrendo o mesmo com o Digital UNIX. O QNX um dos poucos exemplos de microncleo amplamente utilizado, sobretudo em sistemas embutidos e de tempo-real.

S.O. - Arquiteturas
Sistemas micro-ncleo
Na prtica a implementao de estruturas cliente-servidor muito difcil devido a certas funes do sistema operacional exigirem acesso direto ao hardware;

exemplo: operaes de e/s.

Na realidade implementada uma combinao do modelo de camadas com o modelo cliente-servidor; Ncleo do sistema:

realizar a comunicao entre cliente e servidor; executar funes crticas do sistema; executar funes dos device drivers.

S.O. - Arquiteturas
Mquinas virtuais
Uma mquina virtual definida como uma duplicata eficiente e isolada de uma mquina real.

S.O. - Arquiteturas
Mquinas virtuais
Em uma mquina real, uma camada de software de baixo nvel (por exemplo, a BIOS dos sistemas PC) fornece acesso aos vrios recursos do hardware para o sistema operacional, que os disponibiliza de forma abstrata s aplicaes. Em uma mquina real, quando o sistema operacional acessa os dispositivos de hardware, ele faz uso dos drivers respectivos, que interagem diretamente com a memria e os dispositivos da mquina.

S.O. - Arquiteturas
Mquinas virtuais
Um emulador o oposto da mquina real. O emulador implementa todas as instrues realizadas pela mquina real em um ambiente abstrato, possibilitando executar um aplicativo de uma plataforma em outra, por exemplo, um aplicativo do Windows executando no Linux.

S.O. - Arquiteturas
Mquinas virtuais
Um emulador perde muito em eficincia ao traduzir cada instruo da mquina real. Alm disso, emuladores so bastante complexos, pois geralmente necessitam simular a quase totalidade das instrues do processador e demais caractersticas do hardware que os circundam

S.O. - Arquiteturas
Mquinas virtuais
A funcionalidade e o nvel de abstrao de uma mquina virtual encontra-se entre uma mquina real e um emulador, na medida em que abstrai somente os recursos de hardware e de controle usados pelas aplicaes.

S.O. - Arquiteturas
Mquinas virtuais
Uma mquina virtual um ambiente criado por um monitor de mquinas virtuais, tambm denominado sistema operacional para sistemas operacionais. O monitor pode criar uma ou mais mquinas virtuais sobre uma nica mquina real.

S.O. - Arquiteturas
Mquinas virtuais
Enquanto um emulador fornece uma camada de abstrao completa entre o sistema em execuo e o hardware, um monitor abstrai o hardware subjacente e controla uma ou mais mquinas virtuais. Cada mquina virtual fornece facilidades para uma aplicao ou um sistema convidado que acredita estar executando sobre um ambiente normal com acesso fsico ao hardware.

S.O. - Arquiteturas
Mquinas virtuais
Existem basicamente duas abordagens para a construo de sistemas de mquinas virtuais: O tipo I, onde o monitor de mquinas virtuais implementado entre o hard-ware e os sistemas convidados. O tipo II, onde o monitor implementado como um processo de um sistema operacional real subjacente, denominado sistema anfitrio ou sistema hospedeiro.

S.O. - Arquiteturas
Mquinas virtuais

Tipo I

Tipo II

S.O. - Arquiteturas
Mquinas virtuais
Como exemplos de sistemas de tipo I podem ser citados o VMWare ESX Server e o Xen; para o tipo II podem ser citados o VMWare Workstation, o MS Virtual PC e o User-Mode Linux.

S.O. - Arquiteturas
Mquinas virtuais Vantagens: Aperfeioamento e testes de novos sistemas operacionais; Ensino prtico de sistemas operacionais e programao de baixo nvel; Executar diferentes sistemas operacionais sobre o mesmo hardware, simultanea- mente; Simular configuraes e situaes diferentes do mundo real, como por exemplo, mais memria disponvel, outros dispositivos de E/S; Simular alteraes e falhas no hardware para testes ou reconfigurao de um sistema operacional, provendo confiabilidade e escalabilidade para as aplicaes; Garantir a portabilidade das aplicaes legadas (que executariam sobre uma VM simulando o sistema operacional original); Desenvolvimento de novas aplicaes para diversas plataformas, garantindo a portabilidade destas aplicaes; Diminuir custos com hardware.

S.O. - Arquiteturas
Mquinas virtuais
Desvantagens:
A principal desvantagem do uso de mquinas virtuais o custo adicional de execu- o dos processos na mquina virtual em comparao com a mquina real. Esse custo muito varivel, podendo passar de 50% em plataformas sem suporte de hardware virtualizao, como os PCs de plataforma Intel. Todavia, pesquisas recentes tm obtido a reduo desse custo a patamares abaixo de 20%, graas sobretudo a ajustes no cdigo do sistema hospedeiro. Esse problema no existe em ambientes cujo hardware suporta o conceito de virtualizao, como o caso dos mainframes.