20
Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 – Estrutura e arquitetura do SO Parte 2 Cursos de Computação Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007.

Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

Embed Size (px)

Citation preview

Page 1: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

Sistemas Operacionais

Prof. M.Sc. Sérgio Teixeira

Aula 05 – Estrutura e arquitetura do SO

Parte 2

Cursos de Computação

Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007.

Page 2: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

• Define o paradigma de programação adotado nodesenvolvimento do SO;

• Está diretamente relacionada ao tipo de SO queserá desenvolvido: tempo compartilhado, monoou multiusuário ou tempo real;

• A tendência dos sistemas operacionais modernosé utilizar POO.

• Vantagens: Organização, redução do tempo dedesenvolvimento, manutenção e implementaçãode computação distribuída.

Arquitetura do núcleo

Page 3: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

• Formado por vários módulos que sãocompilados e depois linkados, formandoum grande e único programa executável,onde os módulos podem interagirlivremente.

• Apesar do bom desempenho, amanutenção é bastante prejudicada.

Arquitetura monolítica

Page 4: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

Modo kernel

aplicação aplicação

Modo usuário

System call

Hardware

Arquitetura monolítica

Page 5: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

• A camada inferior oferece uma gama deserviços para a camada superior eencapsula detalhes de implementação.

• Esta arquitetura isola as funções e facilitaa manutenção, além de criar umahierarquia de níveis de acesso.

• A desvantagem desta arquitetura é aperformance.

• Atualmente, a maioria do S.O. utiliza omodelo de duas camadas: usuário e kernel.

Arquitetura de camadas

Page 6: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

Arquitetura de camadas

Page 7: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

• Simula via software um hardware, incluindo os modosde acesso, interrupções, dispositivos de E/S.

• Rodando várias máquinas virtuais na mesma máquinaé possível rodar simultaneamente mais de um sistemaoperacional e que os usuários executem aplicaçõescomo se o computador estivesse dedicado a cada umdeles.

• Na década de 1960, a IBM implementou este conceitono sistema VM/370.

• O software VMWare possibilitar rodar um outro S.Odentro do Windows.

Máquina virtual

Page 8: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

Ap1

VM

1

VM

2

VM

n

Gerência de Máquinas Virtuais

Hardware

SO1

HV1

Ap2

SO2

HV2

Apn

SOn

HVn

Máquina virtual

Page 9: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

• Nesta arquitetura, se uma máquina ficarinstável, a operação das outras não écomprometida.

• A desvantagem desta arquitetura é suacomplexidade e queda de performance.

• Outro exemplo de uso desta arquiteturaocorre na linguagem Java, com suas JVM(Java Virtual Machine).

Máquina virtual

Page 10: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

VMware

• O VMware é um software que cria máquinas virtuais que simulam um PCcompleto dentro de uma janela (ou em tela cheia), permitindo instalarpraticamente qualquer sistema operacional para a plataforma x86.

• Referências:

– http://www.guiadohardware.net/termos/vmware

– http://en.wikipedia.org/wiki/VMware_Workstation

Page 11: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

VirtualBox

• Virtual Box é um software de virtualização desenvolvida pela Oracle.Assim como o VMware, o VirtualBox permite criar máquinas virtuais devárias versões do Linux, Windows, BeOS, DOS, etc.

• Referências:

– http://www.virtualbox.org/wiki/Screenshots

– http://it.wikipedia.org/wiki/VirtualBox

Page 12: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

Máquina Virtual Java

Hardware

Sistema Operacional

Aplicação

Máquina virtual Java

Page 13: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

JVM - Virtual Java Machine ou Máquina Virtual Java

• Na plataforma Java, o bytecode (código intermediário) é interpretado por umamáquina virtual Java (JVM). Assim, o código Java que foi compilado em umamáquina pode ser executado em qualquer máquina virtual Java,independentemente do SO ou arquitetura do computador.

• Referências:

– http://www.vivaolinux.com.br/dica/Java-Virtual-Machine-e-seus-conceitos-(para-iniciantes)

– http://www.vivaolinux.com.br/artigo/Maquina-Virtual-Java-(Java-Virtual-Machine)

– http://www.dca.fee.unicamp.br/cursos/PooJava/javaenv/bytecode.html

Page 14: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

• Uma tendência dos sistemas operacionais modernosé tornar o núcleo o menor e mais simples possível.

• Para implementar esta ideia, os serviços dosistemas são disponibilizados através de processos,onde cada um é responsável por fornecer umconjunto de funções.

• Cada vez que uma aplicação deseja algum serviço,é realizada uma solicitação ao processoresponsável, numa arquitetura cliente-servidor.

• O cliente, que pode ser uma aplicação ou umcomponente do sistema, solicita um serviçoenviando uma mensagem ao servidor.

• O núcleo passa a realizar a comunicação entre osprocessos.

Arquitetura microkernel

Page 15: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

Modo kernel

Modo usuário

Microkernel

mensa

gem

mensa

gem

Hardware

Arquitetura microkernel

Page 16: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

• A utilização deste modelo permite que osservidores sejam executados em modousuário. Apenas o núcleo executa em modokernel.

• Como conseqüência, se ocorrer um erro emum servidor, este poderá parar, semcomprometer o restante do sistema.

• Esta arquitetura permite implementarsistemas distribuídos, onde o servidor podeestar em outra máquina.

Arquitetura microkernel

Page 17: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

• Esta arquitetura torna o núcleo menor,mais fácil de depurar, mais confiável,mais flexível e de maior portabilidade.

• O problema desta abordagem é odesempenho, visto que ocorre mudançano modo de acesso a cada comunicaçãoentre clientes e servidores.

• Outro problema é que certas funçõesexigem acesso direto ao hardware. Destaforma, parte da gerência de dispositivostem que ser implementada pelo núcleo.

Arquitetura microkernel

Page 18: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

• Os primeiros S.O. foram desenvolvidosintegralmente em Assembly e o códigopossuia cerca de um milhão de instruções(IBM OS/360).

• Nos sistemas operacionais atuais onúmero de linhas de código pode chegara mais de 40 milhões (Windows 2000),sendo grande parte escrita em C/C++,utilizando em alguns casos a programaçãoOrientada a Objetos.

Projeto dos SOs

Page 19: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

• A orientação a objetos e desenvolvimento baseadoem componentes são tendências nodesenvolvimento de S.O que possibilitam entreoutras melhorias:– melhoria na organização das funções e recursos– redução do tempo de desenvolvimento– maior facilidade de manutenção e extensão do sistema– adequação para o modelo de computação distribuída.

• A utilização de linguagens de alto nível tambémpermite maior portabilidade. Porém em partescríticas do sistema, como os device drivers, oescalonador e as rotinas de tratamento deinterrupções são escritas em assembly, paramelhorar sua performance.

Projeto dos SOs

Page 20: Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira · • Define o paradigma de programação adotado no desenvolvimento do SO; ... • Nos sistemas operacionais atuais o número

Sistemas Operacionais

Prof. M.Sc. Sérgio Teixeira

Aula 05 – Estrutura e arquitetura do SO

Parte 2

Obrigado e bons estudos!

Cursos de Computação