-
Essa questão foi puxada demais, depois de garimpar muito na internet achei o motivo da resposta ser a letra "e".
Tradução dinâmica
Uma
técnica frequentemente utilizada na construção de máquinas
virtuais é a tradução dinâmica(dynamic translation ) ou recompilação
dinâmica (dynamic recompilation)de partes do código binário do sistemas
convidado e suas aplicações. Nesta técnica, o hipervisor analisa,
reorganiza e traduz as sequências de instruções emitidas pelosistema
convidado em novas sequências de instruções, à medida em que a execução
do sistema convidado avança.
Fonte: http://wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=so:so-cap09.pdf
Máquinas Virtuais: Propriedades dos hipervisores
Equivalência: um hipervisor provê um ambiente de execução quase idêntico ao da máquina real original.
Todo programa executando em uma máquina virtual deve se comportar da mesma forma que o faria em uma máquina real;
exceções podem resultar somente de diferenças nos recursos disponíveis;
Controle de recursos: o hipervisor deve possuir o controle completo dos
recursos da máquina real: nenhum programa executando na máquina virtual
deve possuir acesso a recursos que não tenham sido explicitamente
alocados a ele pelo hipervisor, que deve intermediar todos os acessos.
Eficiência: grande parte das instruções do processador virtual (o
processador provido pelo hipervisor) deve ser executada diretamente pelo
processador da máquina real, sem intervenção do hipervisor.
Isolamento: esta propriedade garante que um software em execução em
uma máquina virtual não possa ver, influenciar ou modificar outro software
em execução no hipervisor ou em outra máquina virtual.
Inspeção: o hipervisor tem acesso e controle sobre todas as
informações do estado interno da máquina virtual, como registradores do
processador, conteúdo de memória, eventos etc.
Gerenciabilidade: como
cada máquina virtual é uma entidade independente das demais, a
administração de diversas instâncias de máquinas virtuais sobre um mesmo
supervisor é simplificada e centralizada.
Encapsulamento: como o hipervisor tem acesso e controle sobre o estado
interno de cada máquina virtual em execução, ele pode salvar checkpoints
de uma máquina virtual, periodicamente ou em situações especiais.
Fontehttps://www.passeidireto.com/arquivo/4182136/sistemas_operacionais_aula4
-
Desenvolvendo melhor o comentário do colega "Paulo Lino":
a) ERRADA. A situação apresentada em "as aplicações de um sistema operacional X são executadas sobre outro sistema operacional Y, na mesma plataforma de hardware." é um exemplo de "Emulação de sistema operacional" e não "replicação de hardware" como afirmado na questão.
Replicação de hardware, de acordo com a fonte usada pela banca, seria:
"• Replicação de hardware: são criadas várias instâncias virtuais de um mesmo hardware real, cada uma executando seu próprio sistema operacional convidado e suas respectivas aplicações."
b) ERRADA. Existem basicamente duas arquiteturas de hipervisores de sistema:
* Hipervisores nativos (ou de tipo I): nesta categoria, o hipervisor executa diretamente sobre o hardware do computador real, sem um sistema operacional subjacente. A função do hipervisor é virtualizar os recursos do hardware (memória, discos, interfaces de rede, etc.) de forma que cada máquina virtual veja um conjunto de recursos próprio e independente. Assim, cada máquina virtual se comporta como um computador completo que pode executar o seu próprio sistema operacional. Esta é a forma mais antiga de virtualização, encontrada nos sistemas computacionais de grande porte dos anos 1960-70. Alguns exemplos de sistemas que empregam esta abordagem são o IBM OS/370, o VMware ESX Server e o ambiente Xen.
* Hipervisores convidados (ou de tipo II): nesta categoria, o hipervisor executa como um processo normal sobre um sistema operacional nativo subjacente. O hipervisor utiliza os recursos oferecidos pelo sistema operacional nativo para oferecer recursos virtuais ao sistema operacional convidado que executa sobre ele. Normalmente, um hipervisor convidado suporta apenas uma máquina virtual com uma instância de sistema operacional convidado. Caso mais máquinas sejam necessárias, mais hipervisores devem ser lançados, como processos separados. Exemplos de sistemas que adotam esta estrutura incluem o VMware Workstation, o QEMU e o VirtualBox.
Portanto, o hipervisor apresentado na questão é do tipo convidado
c) ERRADA. Leia o trecho abaixo:
No caso de processadores que não atendam as restrições de Popek/Goldberg, podem existir instruções sensíveis que executem sem gerar interrupções, o que impede o hipervisor de interceptá-las e interpretá-las. Uma solução possível para esse problema é a tradução dinâmica das instruções sensíveis presentes nos programas de usuário: ao carregar um programa na memória, o hipervisor analisa seu código e substitui essas instruções sensíveis por chamadas a rotinas que as interpretam dentro do hipervisor. Isso implica em um tempo maior para o lançamento de programas, mas torna possível a virtualização. Outra técnica possível para resolver o problema é a para-virtualização, que se baseia em reescrever parte do sistema convidado para não usar essas instruções sensíveis. Ambas as técnicas são discutidas a seguir.
Portanto, é possível concluir que o desempenho do sistema é afetado.
-
d) ERRADA. Ficou incompleta, o correto seria na virtualização por emulação de hardware.
Emulação de hardware: um sistema operacional convidado e suas aplicações, desenvolvidas para uma plataforma de hardware A, são executadas sobre uma plataforma de hardware distinta B
e) CORRETA. Leia o trecho em questão:
"A virtualização abre uma série de possibilidades interessantes para a composição de um sistema de computação, como por exemplo (Figura 5):
Otimização dinâmica: as instruções de máquina das aplicações são traduzidas durante a execução em outras instruções mais eficientes para a mesma plataforma."
Resumindo: a tradução dinâmica afeta o desempenho geral do sistema (de acordo com a explicação da alternativa C), mas tenta compensá-lo através da busca de instruções mais eficientes.
Como complemento coloco os passos da tradução dinâmica
No contexto de virtualização, a tradução dinâmica é composta basicamente dos seguintes passos [Ung and Cifuentes, 2006]:
1. Desmontagem (disassembling): o fluxo de bytes do código convidado em execução é decomposto em blocos de instruções. Cada bloco é normalmente composto de uma sequência de instruções de tamanho variável, terminando com uma instrução de controle de fluxo de execução;
2. Geração de código intermediário: cada bloco de instruções tem sua semântica descrita através de uma representação independente de máquina;
3. Otimização: a descrição em alto nível do bloco de instruções é analisada para aplicar eventuais otimizações; como este processo é realizado durante a execução, normalmente somente otimizações com baixo custo computacional são aplicáveis;
4. Codificação: o bloco de instruções otimizado é traduzido para instruções da máquina física, que podem ser diferentes das instruções do código original;
5. Caching: blocos de instruções com execução muito frequente têm sua tradução armazenada em cache, para evitar ter de traduzi-los e otimizá-los novamente;
6. Execução: o bloco de instruções traduzido é finalmente executado nativamente pelo processador da máquina real
Fonte: http://wiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=so:so-cap09.pdf
-
Muito bom, Daniel. Infelizmente eu marcaria letra D.