Paginação de memória

Ferranti AtlasEdit

O primeiro computador suporte a paginação foi o supercomputador Atlas, desenvolvido em conjunto pela Ferranti, a Universidade de Manchester e a Plessey, em 1963. A máquina tinha uma memória associativa (endereçável por conteúdo) com uma entrada para cada página de 512 palavras. O Supervisor lidou com interrupções de não equivalência e gerenciou a transferência de páginas entre core e drum para fornecer um armazenamento de um nível aos programas.

Microsoft WindowsEdit

Windows 3.X e Windows 9xedit

paginação tem sido um recurso do Microsoft Windows desde o Windows 3.0 em 1990. Windows 3.X cria um arquivo oculto chamado 386SPART.PAR ou WIN386.SWP para uso como um arquivo de troca. Geralmente é encontrado no diretório raiz, mas pode aparecer em outro lugar (normalmente no diretório do WINDOWS). Seu tamanho depende de quanto espaço de troca o sistema possui (uma configuração selecionada pelo usuário no painel de controle → aprimorada em “memória Virtual”). Se o usuário mover ou excluir esse arquivo, uma tela azul aparecerá na próxima vez que o Windows for iniciado, com a mensagem de erro “O arquivo de troca permanente está corrompido”. O Usuário será solicitado a escolher se deseja ou não excluir o arquivo (se ele existe ou não).

Windows 95, Windows 98 e Windows Me usam um arquivo semelhante, e as configurações para ele estão localizadas em Painel De Controle → Sistema → guia Desempenho → memória Virtual. O Windows define automaticamente o tamanho do arquivo de página para começar em 1,5× o tamanho da memória física e expandir até 3× memória física, se necessário. Se um usuário executar aplicativos com uso intensivo de memória em um sistema com pouca memória física, é preferível definir manualmente esses tamanhos para um valor maior do que o padrão.

Windows NTEdit

o arquivo usado para paginação na família Windows NT é pagefile.sys. O local padrão do arquivo de página está no diretório raiz da partição onde o Windows está instalado. O Windows pode ser configurado para usar espaço livre em qualquer unidade disponível para arquivos de página. É necessário, no entanto, para a partição de inicialização (ou seja,, a unidade que contém o diretório do Windows) para ter um arquivo de página nele se o sistema estiver configurado para gravar despejos de kernel ou memória cheia após uma tela azul da Morte. O Windows usa o arquivo de paginação como armazenamento temporário para o despejo de memória. Quando o sistema é reinicializado, o Windows copia o despejo de memória do arquivo de página para um arquivo separado e libera o espaço usado no arquivo de página.

FragmentationEdit

Esta seção precisa ser atualizado. Por favor, ajude a atualizar este artigo para refletir eventos recentes ou informações recém-disponíveis. (Julho 2014)

na configuração padrão do Windows, O arquivo de página pode se expandir além de sua alocação inicial, quando necessário. Se isso acontecer gradualmente, pode se tornar fortemente fragmentado, o que pode causar problemas de desempenho. O conselho comum dado para evitar isso é definir um único tamanho de arquivo de página” bloqueado ” para que o Windows não o expanda. No entanto, o arquivo de página só se expande quando foi preenchido, o que, em sua configuração padrão, é 150% da quantidade total de memória física. Assim, a demanda total por memória virtual suportada por arquivos de página deve exceder 250% da memória física do computador antes que o arquivo de página se expanda.

a fragmentação do arquivo de página que ocorre quando ele se expande é temporária. Assim que as regiões expandidas não estiverem mais em uso (na próxima reinicialização, se não antes), as alocações adicionais de espaço em disco são liberadas e o arquivo de página está de volta ao seu estado original.Bloquear um tamanho de arquivo de página pode ser problemático se um aplicativo do Windows solicitar mais memória do que o tamanho total da memória física e do arquivo de página, levando a solicitações com falha para alocar memória que podem fazer com que aplicativos e processos do sistema falhem. Além disso, o arquivo de página raramente é lido ou escrito em ordem sequencial, portanto, a vantagem de desempenho de ter um arquivo de página completamente sequencial é mínima. No entanto, um arquivo de Página grande geralmente permite o uso de aplicativos com muita memória, sem penalidades além de usar mais espaço em disco. Embora um arquivo de página fragmentado possa não ser um problema por si só, a fragmentação de um arquivo de página de tamanho variável ao longo do tempo criará vários blocos fragmentados na unidade, fazendo com que outros arquivos se tornem fragmentados. Por esse motivo, um arquivo de página contíguo de tamanho fixo é melhor, desde que o tamanho alocado seja grande o suficiente para acomodar as necessidades de todos os aplicativos.

o espaço em disco necessário pode ser facilmente alocado em sistemas com especificações mais recentes (ou seja, um sistema com 3 GB de memória com um arquivo de página de tamanho fixo de 6 GB em uma unidade de disco de 750 GB ou um sistema com 6 GB de memória e um arquivo de página de tamanho fixo de 16 GB e 2 TB de espaço em disco). Em ambos os exemplos, o sistema usa cerca de 0,8% do espaço em disco com o arquivo de página pré-estendido ao máximo.

desfragmentar o arquivo de página também é ocasionalmente recomendado para melhorar o desempenho quando um sistema Windows está cronicamente usando muito mais memória do que sua memória física total. Essa visão ignora o fato de que, além dos resultados temporários da expansão, o arquivo de página não se fragmentará com o tempo. Em geral, as preocupações de desempenho relacionadas ao acesso a arquivos de página são tratadas de forma muito mais eficaz adicionando mais memória física.

Unix e Unix-like systemsEdit

sistemas Unix, e outros sistemas operacionais Unix-like, use o termo “swap” para descrever o ato de substituir o espaço em disco por RAM quando a RAM física está cheia. Em alguns desses sistemas, é comum dedicar uma partição inteira de um disco rígido à troca. Essas partições são chamadas de partições de troca. Muitos sistemas têm um disco rígido inteiro dedicado à troca, separado da(S) Unidade (s) de dados, contendo apenas uma partição de troca. Um disco rígido dedicado à troca é chamado de” swap drive “ou” scratch drive “ou”scratch disk”. Alguns desses sistemas suportam apenas a troca para uma partição swap; outros também suportam a troca de arquivos.

LinuxEdit

Ver também: O kernel Linux suporta um número virtualmente ilimitado de back-ends de troca (dispositivos ou arquivos) e também suporta a atribuição de prioridades de back-end. Quando o kernel troca páginas da memória física, ele usa o back-end de maior prioridade com espaço livre disponível. Se vários back-ends de swap tiverem a mesma prioridade, eles serão usados de forma redonda (que é um pouco semelhante aos layouts de armazenamento RAID 0), fornecendo desempenho aprimorado, desde que os dispositivos subjacentes possam ser acessados com eficiência em paralelo.

troque arquivos e partiçõesedit

do ponto de vista do usuário final, troque arquivos nas versões 2.6.x e posterior do kernel Linux são virtualmente tão rápidos quanto as partições swap; a limitação é que os arquivos swap devem ser alocados contiguamente em seus sistemas de arquivos subjacentes. Para aumentar o desempenho dos arquivos de troca, o kernel mantém um mapa de onde eles são colocados em dispositivos subjacentes e os acessa diretamente, ignorando assim o cache e evitando a sobrecarga do sistema de arquivos. Independentemente disso, a Red Hat recomenda que as partições de troca sejam usadas. Ao residir em HDDs, que são dispositivos de mídia magnética rotacional, um benefício de usar partições swap é a capacidade de colocá-los em áreas de HDD contíguas que fornecem maior taxa de transferência de dados ou tempo de busca mais rápido. No entanto, a flexibilidade administrativa dos arquivos swap pode superar certas vantagens das partições swap. Por exemplo, um arquivo de troca pode ser colocado em qualquer sistema de arquivos montado, pode ser definido para qualquer tamanho desejado e pode ser adicionado ou alterado conforme necessário. As partições de troca não são tão flexíveis; eles não podem ser ampliados sem o uso de ferramentas de particionamento ou gerenciamento de volume, que introduzem várias complexidades e possíveis tempos de inatividade.

SwappinessEdit

Swappiness é um parâmetro do kernel Linux que controla o peso relativo dado à troca de memória de tempo de execução, em vez de soltar páginas do cache da página do sistema, sempre que uma solicitação de alocação de memória não puder ser atendida da memória livre. Swappiness pode ser definido como valores entre 0 e 200 (inclusive). Um valor baixo faz com que o kernel prefira despejar páginas do cache da página, enquanto um valor mais alto faz com que o kernel prefira trocar páginas de memória “Frias”. O valor padrão é 60; definir superior pode causar uma alta latência se o frio páginas precisam ser trocados de volta (ao interagir com um programa que tinha sido ocioso, por exemplo), enquanto que o valor é menor (mesmo 0) pode causar alta latência quando os arquivos que tinha sido removido do cache precisa ser lido de novo, mas vai fazer programas interativos mais ágil, pois eles serão menos propensos a precisar de trocar de volta frio páginas. A troca também pode desacelerar ainda mais os HDDs porque envolve muitas gravações aleatórias, enquanto os SSDs não têm esse problema. Certamente, os valores padrão funcionam bem na maioria das cargas de trabalho, mas desktops e sistemas interativos para qualquer tarefa esperada podem querer diminuir a configuração enquanto o processamento em lote e sistemas menos interativos podem querer aumentá-lo.

swap deathEdit

quando a memória do sistema é altamente insuficiente para as tarefas atuais e uma grande parte da atividade da memória passa por uma troca lenta, o sistema pode se tornar praticamente incapaz de executar qualquer tarefa, mesmo que a CPU esteja ociosa. Quando cada processo está aguardando a troca, o sistema é considerado em morte de troca.

a morte de troca pode acontecer devido ao excesso de comprometimento da memória configurado incorretamente.

a descrição original do problema de” troca para a morte ” refere-se ao servidor X. Se o código ou os dados usados pelo servidor X para responder a um pressionamento de tecla não estiverem na memória principal, se o USUÁRIO inserir um pressionamento de tecla, o servidor terá uma ou mais falhas de página, exigindo que essas páginas sejam lidas do swap antes que o pressionamento de tecla possa ser processado, retardando a resposta a ele. Se essas páginas não permanecerem na memória, elas terão que ser atacadas novamente para lidar com o próximo pressionamento de tecla, tornando o sistema praticamente sem resposta, mesmo que esteja realmente executando outras tarefas normalmente.

macOSEdit

macOS usa vários arquivos de troca. A instalação padrão (e recomendada pela Apple) os coloca na partição raiz, embora seja possível colocá-los em uma partição ou dispositivo separado.

AmigaOS 4edit

AmigaOS 4.0 introduziu um novo sistema para alocar RAM e desfragmentar a memória física. Ele ainda usa espaço de endereço compartilhado plano que não pode ser desfragmentado. É baseado no método de alocação de laje e na memória de paginação que permite a troca. A paginação foi implementada no AmigaOS 4.1, mas pode bloquear o sistema se toda a memória física estiver esgotada. A memória de troca pode ser ativada e desativada a qualquer momento, permitindo que o usuário opte por usar apenas RAM física.

Leave a Reply