Pular para conteúdo

Memória

Memória RAM é um dos principais recursos computacaionais e precisa ser cuidadosamente gerenciado, pois é um recurso finito e não existe memória rápida e não-volátil. Portanto, os SOs., modernos precisam ser projetados para lidar com essas características

  • Os registradores são manipulados diretamente pelos programas ou pelo hardware
  • Memória cache e completamente gerenciada pelo hardware
  • O foco da gerência de memória é da RAM
  • Já a memória secundária (Discos, etc) serão vistas na gerência de arquivos

Funções Básicas

  • Programas são armazenados em memória secundária e precisam ser transferidas para a memória principal
  • O SO deve transferir programas da memória secundária para a principal antes de serem executados
  • Devido a diferença de tempo, é desejável que se mantenha em memória os processos em uso e reduzir as operações e E/S para melhor performace do sistema.

Dessa forma, a gerência de memória deve manter o maior níemro de processos residentes, buscando maximizar o compartilhamentpo de recursos, mesmo na ausência de espaço livre, deve-se permitir que novos processos sejam criados.

  • A memória alocada para um programa deve ser protegida.

A principal função de um gerente de memória é determinar o esquema de gerência que será utilizado e implementar eficientemente. Mas também possui funções secundárias que não dependem do esquema de gerência.

Esquemas de Gerenciamento de Memória

Sem abstração de memória

  • Esquema de alocação contígua simples
  • Implementada nos primeiros SOs
  • Cada programa vê uma memória física completa
  • O usuário possui controle sobre todo o espaço de memória

Nesses sistemas, a instrução LOAD R1, 1000:

  • CPU move o conteúdo da posic1ão de memória 1000 para o registrador 1
  • Normalmente, cada endereço de memória possio 8 bits

Porém, observe que nesse caso dois programas iguais não podem executar ao mesmo tempo, se um programa escreve um valor em uma outra posição, o outro programa irá sobrescrever esse valor alguma hora, mas o modelo sem abstração de memória permite diferente organizações na estrutura da memória e SO.

  • Nesse modelo, o SO pode estar na parte inferior da memória e o restante está disponível para o usuário.
  • Erros nos programas podem causar falhas gerais no sistema. Por isso, o hardware pode ser necessário para proteger áreas do SO de programas executando, para isso, pode usar um registrador para proteção.
  • O SO é armazenado em memória de leitura e escrita
  • Modo utilizado pelos primeiros computadores pessoais como MS-DOR
  • A porção ROM é chamada de BIOS
  • Multiprogramação, faz partições de memória, porém isso não é trivial, para mudar o tamanho dessas partições é preciso reiniciar o SO.

Com Abstração de Memória

  • Busca tratar memória como algo relativo dentro do processo.
  • Solução simples de realocação dinâmica
  • Todos os endereços no cóodigo binário executável são de 0 a X
  • Uso de registradores base e limite permite o esquema de partic1ões de tamanho variável

Desta forma, o sisteman não aloca previamente espações de memória, mas a medida que os programas são criados, uma área de memória com o tamanho necessário para o programa é reservada a eles.

Algortimos de Controle de Memória, Swapping e Overlay

  • Algoritmos de Controle: São as "regras de etiqueta" da memória. O sistema precisa decidir qual dado remover quando a RAM enche. O mais comum é o LRU (Least Recently Used): o sistema joga fora o que não é usado há mais tempo.

Exemplo: Imagine uma mesa de estudos pequena, você guarda na gaveta o livro que não abre há horas para dar lugar ao que acabou de chegar.

  • Swapping: É a técnica de tirar um programa inteiro da RAM e jogá-lo temporariamente no disco rígido para liberar espaço, trazendo-o de volta depois.

Exemplo: Você para de ler um livro e o coloca na estante para poder abrir outro na mesa. Quando precisar do primeiro, destroca.

  • Overlay: Técnica antiga onde o próprio programador dividia o programa em partes. Só a parte necessária para aquele momento era carregada.

Exemplo: Um manual de instruções tão grande que você só destaca e leva para a oficina a página do motor, deixando o resto em casa.