Visão Geral: Estruturas do Sistema
Operacional
Sistemas Operacionais I
Prof. Alexandre Duarte : http://alexandrend.com
Centro de Informática | Universidade Federal da Paraíba
Estes slides são baseados no material que acompanha o livro Operating
Systems Concepts de Silberschatz, Galvin and Gagne
Objetivos
 Descrever os serviç os que o sistema
operacional oferece para usuários, processos e
outros sistemas
 Discutir as várias maneiras de estruturar um
sistema operacional
 Explicar como um sistema operacional é
instalado, customizado e inicializado
Serviços do sistema operacional
Serviços do sistema operacional:
comodidade do usuário
 Interface do usuário
 Quase todo sistema operacional oferece uma
 Varia entre interface de linha de comando (CLI), interface gráfica (GUI) e Batch
 Execuç ão de programas
 O sistema deve ser capaz de carregar um programa na memó ria e iniciar e
finalizar sua execuç ão com ou sem sucesso (indicando caso ocorra um erro)
 Operaç ões de E/S
 Um programa em execuç ão pode precisar realizar E/S, o que pode envolver um
arquivo ou algum dispositivo de E/S
 Manipulaç ão do Sistema de Arquivos
 O sistema de arquivos é de particular interesse. Obviamente, programas
precisam realizar uma série de operaç ões envolvendo arquivos e diretó rios,
incluindo: ler, gravar, criar, apagar, localizar, listar informaç ões e gerenciar
permissões
Serviços do sistema operacional:
comodidade do usuário
 Comunicaç ão
 Processos podem trocar informaç ão em um mesmo computador
ou através de uma rede
 A comunicaç ão pode ser realizada através de uma memó ria
compartilhada ou por troca de mensagens
 Detecç ão de erros
 O SO precisa estar constantemente ciente sobre possíveis erros
 Podem ocorrer na CPU, no hardware de memó ria, nos
dispositivos de E/S ou em um programa do usuário
 Para cada tipo de erro o SO deve tomar a medida apropriada
para garantir uma computaç ão correta e consistente
 Mecanismos de depuraç ão podem melhorar significativamente a
habilidade do usuário de fazer uso eficiente do sistema
Serviços do sistema operacional: operação
eficiente do sistema
 Alocaç ão de recursos
 Quando múltiplos usuários ou múltiplos jobs utilizam o sistema de forma
concorrente os recursos precisam ser alocados para cada um deles
 Contabilidade
 Controlar quanto de cada tipo de recurso os usuários utilizam
 Proteç ão e Seguranç a
 Os donos da informaç ão armazenada em um sistema com múltiplos usuários ou
em um computador conectado a rede podem desejar controlar o uso da
informaç ão
 Proteç ão envolve garantir que todo acesso a qualquer recurso do sistema é
controle
 Seguranç a do sistema contra intrusos requer autenticaç ão e se estende para
proteger dispositivos de E/S externos contra acessos inválidos
Interface do usuário: CLI
 Uma interface de linha de comando (CLI) ou
interpretador de comandos permite o
fornecimento direto de comandos ao sistema
 Algumas vezes são implementados no núcleo, algumas
vezes são implementados como programas do usuário
 Algumas vezes têm-se muitas variaç ões: shells
 Inicialmente recebe um comando do usuário e o executa
 Os comandos podem ser comandos internos do SO ou
apenas nomes de programas
 No segundo caso, adicionar novas funcionalidades ao
sistemas não requer alteraç ões no shell
Interface do usuário: GUI
 Uma metáfora mais amigável para a interface com o usuário
(desktop)
 Geralmente inclui mouse, teclado e monitor
 Icones representam arquivos, programas, aç ões ,etc
 Diferentes botões do mouse causam aç ões diferentes no objetos
da interface
 Conceito criado no Xerox PARC
 Muitos sistemas incluem tanto CLIs quanto GUIs
 Microsoft Windows tem uma GUI com um shell de comando
 Mac OS X da Apple usa a GUI “Aqua” com um kernel UNIX por
baixo e vários shells disponíveis
 Solaris tem uma CLI como GUIs opcionais (Java Desktop, KDE)
Interpretador de comando bash
GUI do Mac OS X
Chamadas de sistema
 Interface de programaç ão para os serviç os oferecidos pelo SO
 Geralmente escrita em uma linguagem de alto nível (C, C++)
 Na maioria das vezes são utilizadas pelos programas através de
uma Application Program Interface (API) de mais alto nível ao invés
de serem chamadas diretamente
 As três APIs mais comuns são Win32 API do Windows, POSIX API
para sistemas POSIX-based (incluindo praticamente todas as
versões do UNIX, Linux, e Mac OS X), e a API Java para a Java
Virtual Machine (JVM)
 Por que usar APIs ao invés de chamadas de sistema?
Implementação de chamadas de
sistema
 Tipicamente, cada chamada de sistema possui um número
associado
 A interface de chamada de sistemas mantém uma tabela
indexada com esses números
 A interface de chamada de sistema invoca a chamada
desejada no kernel do SO e retorna o estado e valores de
retorno para o usuário
 Quem faz a chamada não precisa ter qualquer informação
sobre como a chamada de sistema foi implementada
 Precisa apenas conhecer a interface e saber o que o SO fará
como resultado da chamada
 A maioria dos detalhes do SO ficam escondidos dos usuários
atrás de APIs
Relação entre API e chamada de
sistema
Exemplo: biblioteca padrão de C
 Programa em C invocando a funç ão printf(), que utiliza a
chamada de sistema write()
Passagem de parâmetros em chamadas de
sistema
 Frequentemente a execuç ão de uma chamada de
sistema requer mais do que a identificaç ão da chamada
desejada
 Existem três métodos comuns para passagem de
parâmetros para o SO
 Mais simples: passar os parâmetros em registradores
 Parâmetros armazenados em um bloco ou tabela na memó ria e
o endereç o do bloco passado através de um registrador
 Parâmetros inseridos em uma pilha pelo programa e
desempilhados pelo sistema operacional
 O método do bloco e da pilha não limitam o número ou
tamanho dos parâmetros
Passagem de parâmetros via tabela
Tipos de chamadas de sistema
 Controle de processos
 Gerencia de arquivos
 Gerencia de dispositivos
 Manutenç ão da informaç ão
 Comunicaç ão
 Proteç ão
Exemplos de chamadas de sistema do
Windows e Linux
Execução do MS-DOS
Apó s o boot Rodando um processo
FreeBSD rodando múltiplos
processos
Programas de sistema
 Programas de Sistema fornecem um ambiente conveniente para o
desenvolvimento e execuç ão de programas.
 Podem ser divididos em 7 categorias:
 Manipulaç ão de arquivos
 Informaç ões de estado
 Modificaç ão de arquivos
 Suporte a linguagens de programaç ão
 Carga e execuç ão de programas
 Comunicaç ão
 Aplicativos
 A visão que a maioria dos usuários tem do SO é definido pelos programas
de sistema e não pelas chamadas de sistema
Programas de sistema
 Fornecem um ambiente conveniente para desenvolvimento e execuç ão
de programas
 Alguns são apenas interfaces para chamadas de sistema; outros são
consideravelmente mais complexos
 Gerencia de arquivos: criar, remover, copiar, renomear, imprimir, listar,
e manipular arquivos e diretó rios
 Informaç ões de estado
 Consulta de informaç ões do sistema: data, hora, quantidade de memó ria
disponível, espaç o em disco, número de usuários
 Informaç ões detalhadas de desempenho, registro de execuç ão e depuraç ão
 Tipicamente estes programas formatam e imprimem informaç ões na saída
padrão
 Alguns sistemas podem implementar um registro, utilizado para armazenar
informaç ões de configuraç ão
Programas de sistema
 Modificaç ão de arquivos
 Editores de texto para criar e modificar arquivos
 Comandos especiais para localizar conteúdo em arquivos e realizar
transformaç ões no texto
 Suporte a linguagens de programaç ão
 Compiladores, montadores, depuradores, interpretadores
 Carga e execuç ão de programas
 Carregadores absolutos, carregadores com relocaç ão, editores de ligaç ão
 Comunicaç ão
 Prover mecanismos para criar conexões virtuais entre processos, usuários e
sistemas computacionais
 Permitir que usuários enviem mensagens para outros usuários, naveguem
em páginas na web, se conectem remotamente, transfiram arquivos de um
máquina para outra, etc
Projeto e implementação de sistemas
operacionais
 Não háuma soluç ão única universalmente aceita para o projeto e
desenvolvimento de sistemas operacionais mas algumas
abordagens têm sido utilizadas com sucesso
 A estrutura interna dos sistemas operacionais pode variar
amplamente
 Inicia-se pela definiç ão de objetivos e especificaç ões
 Afetada pela escolha do hardware e pelo tipo do sistema
 Requisitos do usuário e Requisitos do Sistema
 Requisitos do usuário: o SO deve ser conveniente, fácil de
aprender, confiável, seguro e rápido
 Requisitos do sistema: o SO deve ser fácil de projetar,
implementar e manter e também flexível, confiável, sem erros e
eficiente
Projeto e implementação de sistemas
operacionais
 Um princípio importante é separar política de
mecanismo
Política: O que seráfeito?
Mecanismo: Como fazer ?
 Mecanismos determinam como fazer algo,
políticas decidem o que deve ser feito
 A separaç ão de política de mecanismo é importante
pois permite uma maior flexibilidade caso decisões
políticas precisem ser alteradas mais tarde
Estrutura simples
 MS-DOS – escrito para prover o máximo de
funcionalidade utilizando o mínimo possível de
memó ria
 Não foi dividido em mó dulos
 Apesar de o MS-DOS ter alguma estrutura, suas
interfaces e funcionalidades não são bem
separadas
Estrutura em camadas do MS-DOS
Abordagem de camadas
 O sistema operacional é dividido em um número
de camadas (níveis), cada uma construída sobre
camadas inferiores.
 A camada mais baixa (camada 0) é o hardware
 A camada mais alta (camada N) é a interface do
usuário
 Como modularidade, camadas são selecionadas
de forma que uma cada só utilize serviç os e
funç ões de camadas de nível inferior
Camadas de um sistema operacional
UNIX
 Por conta de limitaç ões na funcionalidade do
hardware, o UNIX original tinha estruturaç ão
limitada.
 O UNIX é composto por duas partes distintas
 Programas de sistema
 Núcleo (kernel)
 Formado por tudo localizado abaixo da interface de
chamada de sistemas e acima do hardware
 Fornece o sistema de arquivos, escalonamento de CPU,
gerenciamento de memó ria, e outras funç ões do SO
 Um número muito grande de funç ões para um único nível
Estrutura de um sistema UNIX
tradicional
Estrutura de microkernel
 Move o máximo possível de funcionalidades do kernel para o
espaço do usuário
 Utiliza mecanismos de comunicação por troca de mensagens
para permitir a interoperação dos mó dulos
 Benefícios:
 Mais fácil estender um microkernel
 Mais fácil portar o sistema operacional para novas arquiteturas
 Mais confiável (menos có digo rodando em modo kernel)
 Mais seguro
 Desvantagens:
 Perda de desempenho por conta da comunicaç ão entre os
mó dulos em modo kernel e modo usuário
Módulos
 A maioria dos sistemas operacionais
modernos implementam mó dulos de kernel
 Abordagem orientada a objetos
 Cada componente chave é separado dos demais
 Conversam entre si através de interfaces bem
definidas
 Cada um pode ser carregado no kernel apenas
quando necessário
 De forma geral é similar ao uso de camadas
mas mais flexível
Abordagem em módulos do Solaris
Máquinas virtuais
 Uma máquina virtual leva a abordagem de camadas ao seu
limite. Ele trata o hardware e o kernel do sistema operacional
como se fossem ambos hardware
 A interface de uma máquina virtual fornece uma interface
idêntica ao hardware
 O sistema operacional hospedeiro (host) cria a ilusão de que
um processo tem seu pró prio processador e memó ria
 Cada convidado (guest) recebe sua pró pria có pia (virtual)
do computador
Histórico e benefícios das máquinas virtuais
 Apareceram inicialmente em 1972 em mainframes da IBM
 Consiste, fundamentalmente, em múltiplos ambientes de
execuç ão (sistemas operacionais diferentes) compartilhando o
mesmo hardware
 Protege um ambiente do outro
 Permite compartilhamento de arquivos
 Se comunicam entre si e com outros sistemas através da rede
 Consolidaç ão de muitos sistemas com pouca demanda de
recursos em poucos computadores com muitos recursos
 Muito útil para desenvolvimento e testes
 O padrão “Open Virtual Machine Format”, permite que uma
máquina virtual possa ser executada por diferentes
plataformas de virtualização
Máquinas virtuais
Para-virtualização
 Apresenta aos guests uma visão similar mas
não idêntica do hardware
 Os guests precisam ser modificados para
rodar em hardware para-virtualizado
Arquitetura do VMWare
A máquina virtual Java

Visão Geral: Estruturas do Sistema Operacional

  • 1.
    Visão Geral: Estruturasdo Sistema Operacional Sistemas Operacionais I Prof. Alexandre Duarte : http://alexandrend.com Centro de Informática | Universidade Federal da Paraíba Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne
  • 2.
    Objetivos  Descrever osserviç os que o sistema operacional oferece para usuários, processos e outros sistemas  Discutir as várias maneiras de estruturar um sistema operacional  Explicar como um sistema operacional é instalado, customizado e inicializado
  • 3.
  • 4.
    Serviços do sistemaoperacional: comodidade do usuário  Interface do usuário  Quase todo sistema operacional oferece uma  Varia entre interface de linha de comando (CLI), interface gráfica (GUI) e Batch  Execuç ão de programas  O sistema deve ser capaz de carregar um programa na memó ria e iniciar e finalizar sua execuç ão com ou sem sucesso (indicando caso ocorra um erro)  Operaç ões de E/S  Um programa em execuç ão pode precisar realizar E/S, o que pode envolver um arquivo ou algum dispositivo de E/S  Manipulaç ão do Sistema de Arquivos  O sistema de arquivos é de particular interesse. Obviamente, programas precisam realizar uma série de operaç ões envolvendo arquivos e diretó rios, incluindo: ler, gravar, criar, apagar, localizar, listar informaç ões e gerenciar permissões
  • 5.
    Serviços do sistemaoperacional: comodidade do usuário  Comunicaç ão  Processos podem trocar informaç ão em um mesmo computador ou através de uma rede  A comunicaç ão pode ser realizada através de uma memó ria compartilhada ou por troca de mensagens  Detecç ão de erros  O SO precisa estar constantemente ciente sobre possíveis erros  Podem ocorrer na CPU, no hardware de memó ria, nos dispositivos de E/S ou em um programa do usuário  Para cada tipo de erro o SO deve tomar a medida apropriada para garantir uma computaç ão correta e consistente  Mecanismos de depuraç ão podem melhorar significativamente a habilidade do usuário de fazer uso eficiente do sistema
  • 6.
    Serviços do sistemaoperacional: operação eficiente do sistema  Alocaç ão de recursos  Quando múltiplos usuários ou múltiplos jobs utilizam o sistema de forma concorrente os recursos precisam ser alocados para cada um deles  Contabilidade  Controlar quanto de cada tipo de recurso os usuários utilizam  Proteç ão e Seguranç a  Os donos da informaç ão armazenada em um sistema com múltiplos usuários ou em um computador conectado a rede podem desejar controlar o uso da informaç ão  Proteç ão envolve garantir que todo acesso a qualquer recurso do sistema é controle  Seguranç a do sistema contra intrusos requer autenticaç ão e se estende para proteger dispositivos de E/S externos contra acessos inválidos
  • 7.
    Interface do usuário:CLI  Uma interface de linha de comando (CLI) ou interpretador de comandos permite o fornecimento direto de comandos ao sistema  Algumas vezes são implementados no núcleo, algumas vezes são implementados como programas do usuário  Algumas vezes têm-se muitas variaç ões: shells  Inicialmente recebe um comando do usuário e o executa  Os comandos podem ser comandos internos do SO ou apenas nomes de programas  No segundo caso, adicionar novas funcionalidades ao sistemas não requer alteraç ões no shell
  • 8.
    Interface do usuário:GUI  Uma metáfora mais amigável para a interface com o usuário (desktop)  Geralmente inclui mouse, teclado e monitor  Icones representam arquivos, programas, aç ões ,etc  Diferentes botões do mouse causam aç ões diferentes no objetos da interface  Conceito criado no Xerox PARC  Muitos sistemas incluem tanto CLIs quanto GUIs  Microsoft Windows tem uma GUI com um shell de comando  Mac OS X da Apple usa a GUI “Aqua” com um kernel UNIX por baixo e vários shells disponíveis  Solaris tem uma CLI como GUIs opcionais (Java Desktop, KDE)
  • 9.
  • 10.
  • 11.
    Chamadas de sistema Interface de programaç ão para os serviç os oferecidos pelo SO  Geralmente escrita em uma linguagem de alto nível (C, C++)  Na maioria das vezes são utilizadas pelos programas através de uma Application Program Interface (API) de mais alto nível ao invés de serem chamadas diretamente  As três APIs mais comuns são Win32 API do Windows, POSIX API para sistemas POSIX-based (incluindo praticamente todas as versões do UNIX, Linux, e Mac OS X), e a API Java para a Java Virtual Machine (JVM)  Por que usar APIs ao invés de chamadas de sistema?
  • 12.
    Implementação de chamadasde sistema  Tipicamente, cada chamada de sistema possui um número associado  A interface de chamada de sistemas mantém uma tabela indexada com esses números  A interface de chamada de sistema invoca a chamada desejada no kernel do SO e retorna o estado e valores de retorno para o usuário  Quem faz a chamada não precisa ter qualquer informação sobre como a chamada de sistema foi implementada  Precisa apenas conhecer a interface e saber o que o SO fará como resultado da chamada  A maioria dos detalhes do SO ficam escondidos dos usuários atrás de APIs
  • 13.
    Relação entre APIe chamada de sistema
  • 14.
    Exemplo: biblioteca padrãode C  Programa em C invocando a funç ão printf(), que utiliza a chamada de sistema write()
  • 15.
    Passagem de parâmetrosem chamadas de sistema  Frequentemente a execuç ão de uma chamada de sistema requer mais do que a identificaç ão da chamada desejada  Existem três métodos comuns para passagem de parâmetros para o SO  Mais simples: passar os parâmetros em registradores  Parâmetros armazenados em um bloco ou tabela na memó ria e o endereç o do bloco passado através de um registrador  Parâmetros inseridos em uma pilha pelo programa e desempilhados pelo sistema operacional  O método do bloco e da pilha não limitam o número ou tamanho dos parâmetros
  • 16.
  • 17.
    Tipos de chamadasde sistema  Controle de processos  Gerencia de arquivos  Gerencia de dispositivos  Manutenç ão da informaç ão  Comunicaç ão  Proteç ão
  • 18.
    Exemplos de chamadasde sistema do Windows e Linux
  • 19.
    Execução do MS-DOS Após o boot Rodando um processo
  • 20.
  • 21.
    Programas de sistema Programas de Sistema fornecem um ambiente conveniente para o desenvolvimento e execuç ão de programas.  Podem ser divididos em 7 categorias:  Manipulaç ão de arquivos  Informaç ões de estado  Modificaç ão de arquivos  Suporte a linguagens de programaç ão  Carga e execuç ão de programas  Comunicaç ão  Aplicativos  A visão que a maioria dos usuários tem do SO é definido pelos programas de sistema e não pelas chamadas de sistema
  • 22.
    Programas de sistema Fornecem um ambiente conveniente para desenvolvimento e execuç ão de programas  Alguns são apenas interfaces para chamadas de sistema; outros são consideravelmente mais complexos  Gerencia de arquivos: criar, remover, copiar, renomear, imprimir, listar, e manipular arquivos e diretó rios  Informaç ões de estado  Consulta de informaç ões do sistema: data, hora, quantidade de memó ria disponível, espaç o em disco, número de usuários  Informaç ões detalhadas de desempenho, registro de execuç ão e depuraç ão  Tipicamente estes programas formatam e imprimem informaç ões na saída padrão  Alguns sistemas podem implementar um registro, utilizado para armazenar informaç ões de configuraç ão
  • 23.
    Programas de sistema Modificaç ão de arquivos  Editores de texto para criar e modificar arquivos  Comandos especiais para localizar conteúdo em arquivos e realizar transformaç ões no texto  Suporte a linguagens de programaç ão  Compiladores, montadores, depuradores, interpretadores  Carga e execuç ão de programas  Carregadores absolutos, carregadores com relocaç ão, editores de ligaç ão  Comunicaç ão  Prover mecanismos para criar conexões virtuais entre processos, usuários e sistemas computacionais  Permitir que usuários enviem mensagens para outros usuários, naveguem em páginas na web, se conectem remotamente, transfiram arquivos de um máquina para outra, etc
  • 24.
    Projeto e implementaçãode sistemas operacionais  Não háuma soluç ão única universalmente aceita para o projeto e desenvolvimento de sistemas operacionais mas algumas abordagens têm sido utilizadas com sucesso  A estrutura interna dos sistemas operacionais pode variar amplamente  Inicia-se pela definiç ão de objetivos e especificaç ões  Afetada pela escolha do hardware e pelo tipo do sistema  Requisitos do usuário e Requisitos do Sistema  Requisitos do usuário: o SO deve ser conveniente, fácil de aprender, confiável, seguro e rápido  Requisitos do sistema: o SO deve ser fácil de projetar, implementar e manter e também flexível, confiável, sem erros e eficiente
  • 25.
    Projeto e implementaçãode sistemas operacionais  Um princípio importante é separar política de mecanismo Política: O que seráfeito? Mecanismo: Como fazer ?  Mecanismos determinam como fazer algo, políticas decidem o que deve ser feito  A separaç ão de política de mecanismo é importante pois permite uma maior flexibilidade caso decisões políticas precisem ser alteradas mais tarde
  • 26.
    Estrutura simples  MS-DOS– escrito para prover o máximo de funcionalidade utilizando o mínimo possível de memó ria  Não foi dividido em mó dulos  Apesar de o MS-DOS ter alguma estrutura, suas interfaces e funcionalidades não são bem separadas
  • 27.
  • 28.
    Abordagem de camadas O sistema operacional é dividido em um número de camadas (níveis), cada uma construída sobre camadas inferiores.  A camada mais baixa (camada 0) é o hardware  A camada mais alta (camada N) é a interface do usuário  Como modularidade, camadas são selecionadas de forma que uma cada só utilize serviç os e funç ões de camadas de nível inferior
  • 29.
    Camadas de umsistema operacional
  • 30.
    UNIX  Por contade limitaç ões na funcionalidade do hardware, o UNIX original tinha estruturaç ão limitada.  O UNIX é composto por duas partes distintas  Programas de sistema  Núcleo (kernel)  Formado por tudo localizado abaixo da interface de chamada de sistemas e acima do hardware  Fornece o sistema de arquivos, escalonamento de CPU, gerenciamento de memó ria, e outras funç ões do SO  Um número muito grande de funç ões para um único nível
  • 31.
    Estrutura de umsistema UNIX tradicional
  • 32.
    Estrutura de microkernel Move o máximo possível de funcionalidades do kernel para o espaço do usuário  Utiliza mecanismos de comunicação por troca de mensagens para permitir a interoperação dos mó dulos  Benefícios:  Mais fácil estender um microkernel  Mais fácil portar o sistema operacional para novas arquiteturas  Mais confiável (menos có digo rodando em modo kernel)  Mais seguro  Desvantagens:  Perda de desempenho por conta da comunicaç ão entre os mó dulos em modo kernel e modo usuário
  • 36.
    Módulos  A maioriados sistemas operacionais modernos implementam mó dulos de kernel  Abordagem orientada a objetos  Cada componente chave é separado dos demais  Conversam entre si através de interfaces bem definidas  Cada um pode ser carregado no kernel apenas quando necessário  De forma geral é similar ao uso de camadas mas mais flexível
  • 37.
  • 38.
    Máquinas virtuais  Umamáquina virtual leva a abordagem de camadas ao seu limite. Ele trata o hardware e o kernel do sistema operacional como se fossem ambos hardware  A interface de uma máquina virtual fornece uma interface idêntica ao hardware  O sistema operacional hospedeiro (host) cria a ilusão de que um processo tem seu pró prio processador e memó ria  Cada convidado (guest) recebe sua pró pria có pia (virtual) do computador
  • 39.
    Histórico e benefíciosdas máquinas virtuais  Apareceram inicialmente em 1972 em mainframes da IBM  Consiste, fundamentalmente, em múltiplos ambientes de execuç ão (sistemas operacionais diferentes) compartilhando o mesmo hardware  Protege um ambiente do outro  Permite compartilhamento de arquivos  Se comunicam entre si e com outros sistemas através da rede  Consolidaç ão de muitos sistemas com pouca demanda de recursos em poucos computadores com muitos recursos  Muito útil para desenvolvimento e testes  O padrão “Open Virtual Machine Format”, permite que uma máquina virtual possa ser executada por diferentes plataformas de virtualização
  • 40.
  • 41.
    Para-virtualização  Apresenta aosguests uma visão similar mas não idêntica do hardware  Os guests precisam ser modificados para rodar em hardware para-virtualizado
  • 42.
  • 43.

Notas do Editor

  • #34 Monolítico: Linux, Microkernel: GNU Hurd (Debian Hurd, Gentoo Hurd) Híbrido: Windows NT, Windows 8, Windows Server 2012, Windows Phone, OS X, iOS