Post on 17-Dec-2018
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.
• 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
• 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
Modo kernel
aplicação aplicação
Modo usuário
System call
Hardware
Arquitetura monolítica
• 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
Arquitetura de camadas
• 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
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
• 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
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
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
Máquina Virtual Java
Hardware
Sistema Operacional
Aplicação
Máquina virtual Java
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
• 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
Modo kernel
Modo usuário
Microkernel
mensa
gem
mensa
gem
Hardware
Arquitetura microkernel
• 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
• 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
• 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
• 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
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