Sistemas operacionais- Memória

Sistemas operacionais- Memória

Introdução

  • Introdução

  • Funções básicas

  • Alocação contígua simples

  • Técnica de overlay

  • Alocação Particionada

    • Alocação Particionada Estática
    • Alocação Particionada Dinâmica
    • Estratégias de Alocação de Partição
  • Swapping

  • Paginação

  • Gerencia de Memória – Linux / Windows

Os softwares crescem em uma proporção maior do que a capacidade e velocidade das memórias;

  • Os softwares crescem em uma proporção maior do que a capacidade e velocidade das memórias;

  • Idealmente, a memória deveria ser :

    • rápida,
    • de baixo custo ,
    • grande capacidade,
    • não volátil.

Manter o maior número de processos na memória

  • Manter o maior número de processos na memória

  • Evitar acesso indevido em sistemas multitarefa

    • Cada processo tem sua própria área de memória
    • Acesso indevido pode causar perda de processos/dados
  • Swapping

  • Execução de programas maiores que memória disponível

  • Proteção

  • Compartilhamento

Memória Física : Implementada pelos circuitos integrados da memória; endereços físicos são aqueles que correspondem a uma posição real da memória.

  • Memória Física : Implementada pelos circuitos integrados da memória; endereços físicos são aqueles que correspondem a uma posição real da memória.

  • Memória Lógica : é aquela que o processo enxerga; endereços lógicos são aqueles manipulados por um processo;

  • Memória virtual : É uma memória implementada pelo SO, com o auxílio da memória secundária (disco). Normalmente, é implementada através de paginação ou segmentação.

  • O sistema de gerenciamento de memória busca na memória secundária as partes do programa necessárias durante a execução.

Parte do SO que controla o uso da memória

  • Parte do SO que controla o uso da memória

  • Suas estruturas de dados informam as áreas da memória que estão livres e as que estão em uso

  • Faz a alocação da memória de acordo com as

  • necessidades dos processos

  • Libera a memória alocada após o término de um processo

  • Transfere processos, ou parte deles, entre a memória principal e a memória secundária

Implementada nos 1ºs SOs. A MP é subdividida em duas áreas. O programador deve desenvolver aplicações preocupado apenas em não ultrapassar o espaço de memória livre.

  • Implementada nos 1ºs SOs. A MP é subdividida em duas áreas. O programador deve desenvolver aplicações preocupado apenas em não ultrapassar o espaço de memória livre.

Alguns SOs implementam uma proteção através de um registrador que separa as áreas do SO e do usuário, não permitindo assim o acesso à uma área do SO.

  • Alguns SOs implementam uma proteção através de um registrador que separa as áreas do SO e do usuário, não permitindo assim o acesso à uma área do SO.

Subutilização da memória : Caso o programa do usuário não utilize totalmente a MP, existirá um espaço de memória livre sem utilização.

  • Subutilização da memória : Caso o programa do usuário não utilize totalmente a MP, existirá um espaço de memória livre sem utilização.

Técnica que permite dividir o programa em módulos , permitindo a execução independente de cada módulo, utilizando mesma área de memória.

  • Técnica que permite dividir o programa em módulos , permitindo a execução independente de cada módulo, utilizando mesma área de memória.

A definição das áreas de overlay é função do programador, através de comandos especiais da linguagem de programação utilizada.

  • A definição das áreas de overlay é função do programador, através de comandos especiais da linguagem de programação utilizada.

  • A técnica de overlay traz a vantagem de permitir ao programador expandir os limites da MP. A utilização deste técnica utiliza muito cuidado, pois pode trazer implicações tanto na sua manutenção quanto no desempenho das aplicações.

Nos 1ºs Sos multiprogramáveis, a MP era divida em pedaços de tamanho fixo (partições). O tamanho das partições era definido em função do tamanho dos programas que executariam no ambiente.

  • Nos 1ºs Sos multiprogramáveis, a MP era divida em pedaços de tamanho fixo (partições). O tamanho das partições era definido em função do tamanho dos programas que executariam no ambiente.

  • Toda vez que fosse necessário alterar o tamanho de uma partição, o SO deveria ser desativado e reinicializado com uma nova configuração.

Alocação Particionada Estática

  • Alocação Particionada Estática

Alocação Particionada Estática Absoluta : O programa só poderia ser carregado a partir do endereço de MP especificado no seu próprio código

  • Alocação Particionada Estática Absoluta : O programa só poderia ser carregado a partir do endereço de MP especificado no seu próprio código

Alocação Particionada Estática Relocável : Os programas podiam ser executados a partir de qualquer partição

  • Alocação Particionada Estática Relocável : Os programas podiam ser executados a partir de qualquer partição

Tabela de Alocação de Partições : Para manter o controle sobre quais partições estão alocadas, a gerência de memória mantém uma tabela com o endereço inicial de cada partição, seu tamanho e se está em uso.

  • Tabela de Alocação de Partições : Para manter o controle sobre quais partições estão alocadas, a gerência de memória mantém uma tabela com o endereço inicial de cada partição, seu tamanho e se está em uso.

Proteção : A proteção baseia-se em dois registradores que indicam os limites inferior e superior da partição onde o programa está sendo executado.

  • Proteção : A proteção baseia-se em dois registradores que indicam os limites inferior e superior da partição onde o programa está sendo executado.

Fragmentação Interna : áreas livres na MP

  • Fragmentação Interna : áreas livres na MP

Cada Programa utiliza o espaço necessário

  • Cada Programa utiliza o espaço necessário

Fragmentação Externa : Espaço que não está disposto contiguamente.

  • Fragmentação Externa : Espaço que não está disposto contiguamente.

Solução para a Fragmentação Externa : aguardar a finalização do programa C.

  • Solução para a Fragmentação Externa : aguardar a finalização do programa C.

Solução para a Fragmentação Externa : Relocação de todas as partições ocupados(relocação Dinâmica)

  • Solução para a Fragmentação Externa : Relocação de todas as partições ocupados(relocação Dinâmica)

Alterações na alocação de memória à medida que processos entram e saem da memória

  • Alterações na alocação de memória à medida que processos entram e saem da memória

  • Regiões sombreadas correspondem a regiões de memória não utilizadas naquele instante

OS SOs implementam, basicamente, 03 estratégias para determinar em qual área livre o programa será carregado para execução.

  • OS SOs implementam, basicamente, 03 estratégias para determinar em qual área livre o programa será carregado para execução.

Best-fit

  • Best-fit

Worst-fit

  • Worst-fit

First-fit

  • First-fit

Técnica utilizada pelo SO para transferir um processo em estado de espera na MP para a Mem. Secundária (Swap Out). Posteriormente, o processo é carregado de volta para a MP (Swap IN). Permite um maior compartilhamento da MP.

  • Técnica utilizada pelo SO para transferir um processo em estado de espera na MP para a Mem. Secundária (Swap Out). Posteriormente, o processo é carregado de volta para a MP (Swap IN). Permite um maior compartilhamento da MP.

A falta de página força uma escolha

  • A falta de página força uma escolha

    • qual página deve ser removida
    • alocação de espaço para a página a ser trazida para a memória
  • A página modificada deve primeiro ser salva

    • se não tiver sido modificada é apenas sobreposta
  • Melhor não escolher uma página que está sendo muito usada

    • provavelmente precisará ser trazida de volta logo

Espaço de endereçamento virtual do processo A

  • Espaço de endereçamento virtual do processo A

  • Memória física

  • Espaço de endereçamento virtual do processo B

Arquivo /proc/meminfo

  • Arquivo /proc/meminfo

  • – Exibe diversas informações sobre o estado atual

    • MemTotal – total de memória física
    • MemFree – memória física livre
    • Cached – Total de memória com processos em cachê
    • SwapTotal / SwapFree– total de swap disponível / livre
    • HugePageSize – tamanho da página de memória
  • – Podem ser vistas com o comando free

  • Arquivo /proc/iomem

  • – Exibe o mapeamento virtual sobre o sistema

As principais funções da API Win32 para gerenciamento de memória virtual no Windows 2000

  • As principais funções da API Win32 para gerenciamento de memória virtual no Windows 2000

Comentários