Cursos de Computação
Sistemas Operacionais
Prof. M.Sc. Sérgio Teixeira
Aula 05 – Estrutura e arquitetura do SO
Parte 2
Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007.
Arquitetura do núcleo
• Define o paradigma de programação adotado no
desenvolvimento do SO;
• Está diretamente relacionada ao tipo de SO que
será desenvolvido: tempo compartilhado, mono
ou multiusuário ou tempo real;
• A tendência dos sistemas operacionais modernos
é utilizar POO.
• Vantagens: Organização, redução do tempo de
desenvolvimento, manutenção e implementação
de computação distribuída.
Arquitetura monolítica
• Formado por vários módulos que são
compilados e depois linkados, formando
um grande e único programa executável,
onde os módulos podem interagir
livremente.
• Apesar
do
bom
desempenho,
a
manutenção é bastante prejudicada.
Arquitetura monolítica
aplicação
aplicação
Modo usuário
Modo kernel
System call
Hardware
Arquitetura de camadas
• A camada inferior oferece uma gama de
serviços para a camada superior e
encapsula detalhes de implementação.
• Esta arquitetura isola as funções e facilita
a manutenção, além de criar uma
hierarquia de níveis de acesso.
• A desvantagem desta arquitetura é a
performance.
• Atualmente, a maioria do S.O. utiliza o
modelo de duas camadas: usuário e kernel.
Arquitetura de camadas
Máquina virtual
• Simula via software um hardware, incluindo os modos
de acesso, interrupções, dispositivos de E/S.
• Rodando várias máquinas virtuais na mesma máquina
é possível rodar simultaneamente mais de um sistema
operacional e que os usuários executem aplicações
como se o computador estivesse dedicado a cada um
deles.
• Na década de 1960, a IBM implementou este conceito
no sistema VM/370.
• O software VMWare possibilitar rodar um outro S.O
dentro do Windows.
VM 1
VM 2
VM n
Máquina virtual
Ap1
Ap2
Apn
SO1
SO2
SOn
HV1
HV2
HVn
Gerência de Máquinas Virtuais
Hardware
Máquina virtual
• Nesta arquitetura, se uma máquina ficar
instável, a operação das outras não é
comprometida.
• A desvantagem desta arquitetura é sua
complexidade e queda de performance.
• Outro exemplo de uso desta arquitetura
ocorre na linguagem Java, com suas JVM
(Java Virtual Machine).
VMware
•
O VMware é um software que cria máquinas virtuais que simulam um PC
completo dentro de uma janela (ou em tela cheia), permitindo instalar
praticamente 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 de
vá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
Aplicação
Máquina Virtual Java
Sistema Operacional
Hardware
JVM - Virtual Java Machine ou
Máquina Virtual Java
•
Na plataforma Java, o bytecode (código intermediário) é interpretado por uma
máquina virtual Java (JVM). Assim, o código Java que foi compilado em uma
má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
Arquitetura microkernel
• 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 do
sistemas são disponibilizados através de processos,
onde cada um é responsável por fornecer um
conjunto de funções.
• Cada vez que uma aplicação deseja algum serviço,
é realizada uma solicitação ao processo
responsável, numa arquitetura cliente-servidor.
• O cliente, que pode ser uma aplicação ou um
componente do sistema, solicita um serviço
enviando uma mensagem ao servidor.
• O núcleo passa a realizar a comunicação entre os
processos.
em
Modo kernel
ag
ns
me
Modo usuário
Microkernel
Hardware
me
ns
ag
em
Arquitetura microkernel
Arquitetura microkernel
• A utilização deste modelo permite que os
servidores sejam executados em modo
usuário. Apenas o núcleo executa em modo
kernel.
• Como conseqüência, se ocorrer um erro em
um servidor, este poderá parar, sem
comprometer o restante do sistema.
• Esta arquitetura permite implementar
sistemas distribuídos, onde o servidor pode
estar 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 é o
desempenho, visto que ocorre mudança
no modo de acesso a cada comunicação
entre clientes e servidores.
• Outro problema é que certas funções
exigem acesso direto ao hardware. Desta
forma, parte da gerência de dispositivos
tem que ser implementada pelo núcleo.
Projeto dos SOs
• Os primeiros S.O. foram desenvolvidos
integralmente em Assembly e o código
possuia cerca de um milhão de instruções
(IBM OS/360).
• Nos sistemas operacionais atuais o
número de linhas de código pode chegar
a mais de 40 milhões (Windows 2000),
sendo grande parte escrita em C/C++,
utilizando em alguns casos a programação
Orientada a Objetos.
Projeto dos SOs
• A orientação a objetos e desenvolvimento baseado
em
componentes
são
tendências
no
desenvolvimento de S.O que possibilitam entre
outras 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ém
permite maior portabilidade. Porém em partes
críticas do sistema, como os device drivers, o
escalonador e as rotinas de tratamento de
interrupções são escritas em assembly, para
melhorar sua performance.
Cursos de Computação
Sistemas Operacionais
Prof. M.Sc. Sérgio Teixeira
Aula 05 – Estrutura e arquitetura do SO
Parte 2
Obrigado e bons estudos!
Download

Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira