# ReadyBoost

Em computação, ReadyBoost é um software componente do Windows Vista e de futuros sistemas operacionais da Microsoft para cacheamento do disco. Permite que qualquer dispositivo compatível de armazenamento em massa seja usado como um cache de memória temporário para o disco rígido, com a intenção de aumentar a velocidade de acesso ao disco rígido. Dispositivos potencialmente compatíveis com ReadyBoost incluem memórias flash USB, SSDs, e cartões SD. Há um limite de 32 GB por arquivo de cache.

## Visão geral

Utilizar memória flash (dispositivos de memória NAND) compatível com ReadyBoost permite que o Windows Vista e seus sucessores aproveitem de leituras aleatórias ao disco com maior desempenho do que em outro caso. Esse cacheamento se aplica a todo o conteúdo do disco, e não apenas ao arquivo de paginação ou aos DLLs do sistema. Dispositivos flash tipicamente são mais lentos do que discos rígidos mecânicos em termos de E/S sequencial, portanto, para aumentar o desempenho, o ReadyBoost inclui lógica que reconhece solicitações de leitura grandes e sequenciais e faz com que o disco rígido atenda essas solicitações ao invés.
Quando um dispositivo compatível está conectado, a caixa de diálogo da Reprodução Automática do Windows oferece uma opção adicional para usar o dispositivo flash para acelerar o sistema; uma aba adicional chamada "ReadyBoost" é adicionada à janela de propriedades do aparelho, onde a quantidade de espaço a ser utilizado pode ser determinada. O tamanho mínimo do cache é de 250 MB. No Vista ou com a formatação do dispositivo em FAT32, o tamanho máximo é 4 GB. No Windows 7 com formatação NTFS ou exFAT, o tamanho máximo do cache é de 32 GB por dispositivo. O Windows Vista permite que apenas um dispositivo seja utilizado, enquanto o Windows 7 permite múltiplos caches, um por aparelho, totalizando em 256 GB.
ReadyBoost compacta e encripta, usando AES-128, todos os dados colocados no dispositivo; a Microsoft declarou que uma razão de compressão 2:1 é típica, logo um cache de 4 GB pode conter até 8 GB de dados ou até um pouco mais.

## Requerimentos

Para que um dispositivo seja compatível e útil, ele deve conformar aos seguintes requerimentos:
* A capacidade da mídia removível deve ser de pelo menos 256 MB (250 MB após formatação, o Windows 7 declara em seu Visualizador de Eventos o mínimo requerido de 235 MB).
* O Windows 7 suporta até oito dispositivos totalizando em um máximo de 256 GB de memória adicional, com até 32 GB em um único dispositivo de armazenamento.
* O dispositivo deve ter um tempo de acesso de 1 milissegundo ou menos.
* O dispositivo deve ser capaz de leituras de 2.5 MB/s para leituras aleatórias de 4 KB espalhadas uniformemente por todo o aparelho, e gravações de 1.75 MB/s para gravações aleatórias de 512 KB espalhadas uniformemente por todo o aparelho.

### Outras considerações

* O ReadyBoost no Vista suporta NTFS, FAT16 e FAT32 no Service Pack 1. O Windows 7 também suporta o novo sistema de arquivos exFAT. Como o cache do ReadyBoost é armazenado como um arquivo, o dispositivo flash deve ser formatado como NTFS ou exFAT para permitir um cache maior que o limite de tamanho de 4 GB para arquivos no FAT32 (ou de 2 GB no FAT16).
* O lançamento inicial do ReadyBoost no Windows Vista suporta um dispositivo. Windows 7 suporta múltiplos dispositivos flash para ReadyBoost, então pode-se esperar uma melhora em desempenho similar a RAID 0.
* O algoritmo do ReadyBoost foi aperfeiçoado no Windows 7, resultando em melhor desempenho. Um experimento mostrou que a leitura da memória flash é de 5 a 10 vezes mais rápida do que no Windows Vista.
* Como o ReadyBoost armazena seu cache como um arquivo no diretório raiz do dispositivo, em vez de utilizar a memória sem um sistema de arquivos, o sistema de arquivos deve ser montado e deve receber uma letra. O cache do ReadyBoost é criado no diretório raiz do dispositivo.
* Se o dispositivo do sistema (o dispositivo primário, onde os arquivos do sistema do Windows estão situados) é um SSD, o ReadyBoost é desativado, pois ler desse dispositivo seria pelo menos mais rápido do que ler do dispositivo dedicado ao ReadyBoost.
Dependendo da marca, do desgaste causado por ciclos de leitura e gravação, e do tamanho da memória flash, a habilidade de formatar em NTFS pode não estar disponível. Permitir a gravação do cache no dispositivo flash selecionando "Otimizar para desempenho" no Gerenciador de Dispositivos permitirá formatar em NTFS.
ReadyBoost não está disponível no Windows Server 2008.
De acordo com Jim Allchin, em futuros lançamentos do Windows, o ReadyBoost será capaz de usar sobras de RAM de outros computadores na rede que estejam utilizando Windows.

## Desempenho

Um sistema de 512 MB de RAM (mínimo requerido pelo Windows Vista) vê ganhos significantes usando o ReadyBoost. Em um teste, ReadyBoost acelerou uma operação de 11.7 segundos para apenas 2 segundos. Porém, aumentar a memória física (RAM) de 512 MB para 1 GB (sem ReadyBoost) reduziu o tempo para 0.8 segundos. O desempenho do sistema com ReadyBoost pode ser monitorado através do Monitor de Desempenho do Windows. Conforme o preço da memória RAM diminuía e mais RAM era instalada nos computadores, as vantagens do ReadyBoost em mitigar a degradação do desempenho por causa de insuficiência de memória diminuíam.
A ideia base do ReadyBoost é que um dispositivo flash (isto é, um aparelho de memória USB) tem um tempo de busca muito mais rápido do que um disco rígido magnético típico (menos que 1 milissegundo), satisfazendo solicitações mais rapidamente. Ele também balanceia a vantagem inerente de duas fontes paralelas de onde se pode ler dados, enquanto que no Windows 7 é possível usar até oito dispositivos flash de uma vez, permitindo até nove fontes paralelas. Dispositivos flash em USB 2.0 são mais lentas para leituras e gravações sequenciais do que discos rígidos de computadores modernos de mesa. Esses discos rígidos podem manter uma velocidade de transferência de 2 a 10 vezes mais rápida do que a de um aparelho em USB 2.0, mas são iguais ou inferiores a USB 3.0 e FireWire (IEEE 1394) para dados sequenciais. USB 2.0 e dispositivos flash mais rápidos possuem tempos de acesso à memória aleatória mais rápidos: tipicamente por volta de 1 milissegundo, em comparação aos 12 obtidos em discos rígidos para computadores convencionais.
Em laptops, o desempenho passa a ser mais a favor da memória flash, visto que memória para laptop é mais cara do que para computadores convencionais; além disso, vários laptop possuem discos rígidos relativamente lentos de 4200 e 5400 rpm.
Em versões do Vista anteriores ao Service Pack 1, o ReadyBoost não reconhece os dados do cache ao continuar de uma hibernação, reiniciando o processo de cacheamento e tornando o ReadyBoost ineficiente em máquinas que passam por ciclos frequentes de continuação e hibernação. Esse problema foi resolvido no Service Pack 1.

## Limitações

Como memórias flash desgastam depois de um número finito (embora bastante grande) de gravações, o ReadyBoost irá um dia desgastar o aparelho que estiver utilizando – isso pode levar muito tempo, dependendo de vários fatores. De acordo com a Microsoft, o aparelho deve ser capaz de operar por pelo menos dez anos. Conforme as capacidades e velocidade aumentam e os custos por megabyte diminuem, dispositivos USB estão se tornando cada vez mais adequados ao ReadyBoost.
O ReadyBoost é desativado quando o Windows está sendo executado em um disco em estado sólido do tipo SSD.