Aula 11 Maquinas virtuais

Disciplina:Sistemas Operacionais6.431 materiais158.618 seguidores
Pré-visualização1 página
Máquinas Virtuais
Prof. Esp. Manoel Pedro
Sistemas Operacionais

Máquinas Virtuais
Conceitualmente um sistema de computação é composto por camadas. O hardware é o nível mais baixo do sistema.
 O kernel, operando no próximo nível, utiliza as instruções de hardware para criar um conjunto de chamadas de sistemas, a serem utilizadas pelas camadas externas.
Os programas de sistema acima de kernel são, portanto, capazes de utilizar tanto as chamadas de sistema como as instruções de hardware, e em alguns casos estes programas não fazem diferença entre as duas camadas .
Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
 Assim, embora sejam acessados de modo diferente, ambos merecem funcionalidades que o programa pode utilizar para criar até mesmo funções avançadas.
Os programas de sistema, por sua vez, tratam o hardware e as chamadas de sistemas como se ambos estivessem no mesmo nível.
Alguns sistemas levam este esquema um pouco mais longe, permitindo que os programas de sistema sejam chamados facilmente pelos programas de aplicativos.
Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
 Como antes, embora os programas de sistemas estejam em um nível mais alto do que os das demais rotinas, os programas aplicativos podem visualizar tudo que está abaixo de si próprio na hierarquia, como se fossem parte da própria máquina.

Esta abordagem em camadas chega à sua conclusão lógica no conceito de Máquina Virtual.
Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
 Com a utilização do scheduling da CPU e das técnicas de memória virtual, um sistema operacional pode criar a impressão de que um processo tem seu próprio processador, com sua própria memória (virtual).
Naturalmente, o processo possui, em geral, características adicionais, como chamadas de sistemas e um sistema de arquivos, que não são fornecidos pelo hardware puro.
A abordagem da máquina virtual, por outro lado, não oferece qualquer funcionalidade adicional, mas fornece uma interface idêntica para o hardware puro e básico. Cada processo é suprimido com uma copia (virtual) do computador básico.
Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
 A Principal dificuldade na abordagem da máquina virtual reside nos sistemas de disco. Suponha que a máquina física tenha três drives de disco mas queria sete máquinas virtuais.
A solução é oferecer discos virtuais, idênticos em todos os aspectos aos outros discos, exceto em tamanho – eles são chamados de minidiscos.
Um outro aspecto da dificuldade é que a soma dos tamanhos dos minidiscos não poderá superar o tamanho do disco físico.
Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
 A principal diferença entre uma máquina real e a máquina virtual é o tempo.
Enquanto o I/O real pode levar 100 milissegundos, I/O virtual pode ter ocupado menos tempo (por que é spool) ou mais tempo (por que é interpretado) Além disso, a CPU está sendo multiprogramada entre muitas máquinas virtuais, retardando esta máquinas virtuais de maneiras imprevisíveis.
Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
 A utilização de máquinas virtuais traz duas vantagens primordiais. Em primeiro lugar a máquina virtual oferece um nível de segurança robusto, pela completa proteção que fornece aos recursos do sistema.
Em segundo lugar , a máquina virtual permite que os sistemas seja desenvolvido sem corromper a sua operação normal.
Cada máquina virtual é completamente isolada das demais máquinas virtuais, portanto não temos problemas de segurança, pois diversos recursos do sistema ficam inteiramente protegidos.
Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
 Uma desvantagem deste ambiente é que não há compartilhamento direto dos recursos.
Dois enfoques para prover compartilhamento foram implementados, no primeiro é possível compartilhar um minidisco. Este esquema é modelado sobre o disco físico compartilhado, mas é implementado por software.
No segundo, é possível definir uma rede de máquinas virtuais, cada um delas podendo transmitir informações ao longo da rede de comunicações virtual. Novamente, a rede é modelada sobre redes de comunicação físicas, mas é implementada por software.
Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
 O sistema operacional, entretanto, opera sobre toda a máquina e a controla inteiramente. Portanto, o sistema correte deve ser interrompido e tirando de uso, enquanto as alterações são realizadas e testadas. Este período é comumente denominado tempo de desenvolvimento do sistema.
Um sistema de máquina virtual pode eliminar muito deste problema. Os programadores de sistema recebem sua própria máquina virtual, e o desenvolvimento do sistema é realizado nesta máquina virtual em vez de na máquina física real. A operação normal do sistema raramente precisa ser interrompida pela atividade de desenvolvimento.

Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
Com o crescimento do sistema operacional Linux, pode ser apresentado um exemplo mais recente . Existem , hoje máquinas virtuais que permitem as aplicações Windows operarem em computadores baseados em Linux. A máquina virtual executa tanto a aplicação quanto o sistema operacional Windows.
JAVA
Uma das características da chave Java é que ele opera em uma máquina virtual, permitindo com isso que um programa Java opere em qualquer sistema de computação que tenha uma máquina virtual Java.

Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
Java é uma linguagem de programação orientada a objeto muito popular, introduzida pela SunMicrosystems no final do 1995. Adicionalmente as especificação de linguagem e uma grande biblioteca de API, o ambiente Java também fornece a especificação para uma máquina virtual Java
 Os objetos do Java são especificados pela construção classe; um programa em Java consistem em uma ou mais classes. Para cada classe Java, o compilador produz um arquivo de saída (.class) em bytecode (código de bytes) independente de arquitetura que ira executa em qual quer implementação da JVM
Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
A JVM é uma especificação para um computador abstrato.
A JVM consiste em um carregador de classe, um verificador de classe e um interpretador Java que executa os Bytecodes independentes de arquitetura.
O Interpretador Java pode ser um modulo de software que interprete os bytecodes, um de cada vez, ou pode ser um compilador just-in-time (JIT) que converte os bytecodes independentes de arquitetura para a linguagem de máquina nativa do computador hospedeiro.
Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
A JVM torna possível desenvolver programas independentes de arquitetura e portáveis. A implementação é especifica para cada sistema – como o Windons , UNIX – e representa o sistema de modo padrão para o programa Java, fornecendo um interface limpa e independente de arquitetura.
esta interface permite a um arquivo .class executa em qual quer sistema que tenha implementado as JVM de acordo com sua especificação.

Sistemas Operacionais

Prof. Esp. Manoel Pedro
Máquinas Virtuais
O Java aproveita-se do ambiente completo que uma máquina virtual implementa. Seu projeto de máquina virtual fornece uma plataforma segura, eficiente, orientado a objetos, portável e independe de arquitetura, sobre a qual se excutam programa Java
Sistemas Operacionais

Prof. Esp. Manoel Pedro
Obrigado

Sistemas Operacionais

“ A mente que se abre a um nova ideia jamais volta ao seu tamanho original” Abert Einstein
Prof. Esp. Manoel Pedro