Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS OPERACIONAIS Gerenciamento de Memória Real Ana Cristina Alves de Oliveira Dantas ana.oliveira@ifpb.edu.br IFPB – Instituto Federal da Paraíba Campus Campina Grande Gerenciamento de Memória Real - Prof. Ana Cristina Dantas 2 “Programas tendem a se expandir a fim de ocupar toda memória disponível” (Lei de Parkinson) ■ A necessidade do gerenciamento da memória real (também denominada memória física) ■ A hierarquia da memória ■ Alocação de memória contígua e não contígua ■ Multiprogramação por partição fixa e variável ■ Troca (swapping) de memória ■ Estratégias de posicionamento de memória Organização e Gerenciamento da Memória Real3 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Introdução A memória divide-se em camadas: Memória principal Relativamente cara Capacidade relativamente pequena Alto desempenho Armazenamento secundário Barato Grande capacidade Baixo desempenho A memória principal precisa ser gerenciada com cuidado 4 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Organização da memória A memória pode ser organizada de diferentes formas: Um processo usa todo o espaço de memória Cada processo obtém uma partição exclusiva na memória Alocada dinâmica ou estaticamente Tendência: a necessidade de memória das aplicações tende a aumentar ao longo do tempo para atender à capacidade de memória principal 5 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Requisitos de memória do sistema operacional Microsoft Windows Organização da memória 6 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Organização da Memória Gerenciamento de Memória Real - Prof. Ana Cristina Dantas 7 Windows Vista Home Basic RAM: 512 megabytes (MB) Windows 7 RAM: 1 GB (32 bits) ou 2 GB (64 bits) Windows 8.1 RAM: 1 GB (32 bits) ou 2 GB (64 bits) Windows 10 RAM: 1 GB (32 bits) ou 2 GB (64 bits) Gerenciamento de memória É preciso estratégias para se obter um desempenho de memória ideal Gerenciamento executado por um gerenciador de memória Que processo permanecerá na memória? A que quantidade de memória cada processo tem acesso? Onde cada processo ficará na memória? 8 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Hierarquia de memória Memória principal Deve armazenar apenas instruções de programa e dados necessários no momento Armazenamento secundário Armazena dados e programas que não são constantemente necessários Memória cache Sua velocidade é extremamente alta Normalmente se localiza no próprio processador Os dados mais comumente usados são copiados para o cache para que possam ser acessados mais rapidamente Uma pequena quantidade de cache é suficiente para melhorar o desempenho 9 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Estratégias de gerenciamento de memória Estratégias de busca Sob demanda ou antecipada Determinam que porção de dados será transferida Estratégias de posicionamento Determinam em que lugar os dados que estão chegando serão colocados na memória principal Estratégias de substituição Determina que dados serão removidos da memória principal para liberar espaço 10 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Alocação de memória contígua e não contígua Alocar = preencher, utilizar Formas de organização dos programas na memória: Alocação contígua Alocação não contígua 11 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Alocação de Memória Contígua Gerenciamento de Memória Real - Prof. Ana Cristina Dantas 12 Contígua = contínua, em um único bloco Alocação contígua O programa deve estar em um bloco único de endereços contíguos Às vezes é impossível encontrar um bloco grande o suficiente Sua sobrecarga é baixa Alocação de Memória Não Contígua Gerenciamento de Memória Real - Prof. Ana Cristina Dantas 13 O programa é dividido em porções denominadas segmentos Os segmentos podem ser posicionados em partes diferentes da memória É fácil encontrar “lacunas” nas quais o segmento possa se encaixar Pelo fato de poder haver mais processos simultâneos na memória, isso compensa a sobrecarga própria dessa técnica Alocação de memória contígua em sistema monousuário Gerenciamento de Memória Real - Prof. Ana Cristina Dantas 14 Um único usuário detinha o controle de toda a máquina Os recursos não tinham de ser compartilhados Originalmente, não havia sistema operacional no computador O programador escrevia o código para executar o gerenciamento de recursos Sistema de controle de entrada/saída (IOCS) Bibliotecas de códigos pré-escritos para gerenciar dispositivos de E/S Precursor dos sistemas operacionais Alocação de memória contígua em sistema monousuário Alocação de memória contígua em sistema monousuário 15 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Sobreposições (Overlays) O programa é dividido em seções lógicas Coloca na memória apenas as seções ativas no momento Apresenta sérios inconvenientes: Dificuldade de organizar as sobreposições a fim de usar a memória principal de modo eficaz Dificulta alterações no programa 16 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas A sobreposição é uma técnica de programação que procura superar limitações da alocação contígua. Estrutura de Sobreposição 17 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Proteção em um sistema monousuário O sistema operacional não deve ser prejudicado pelos programas Deve-se proteger a região de memória destinada ao SO O sistema não conseguirá funcionar se o SO for sobregravado Registrador de fronteira Contém o endereço em que o espaço de memória do programa inicia Todo acesso à memória, fora dessa fronteira, é negado Só pode ser definido por comandos privilegiados 18 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Proteção de memória com alocação de memória contígua em sistema monousuário Proteção em um sistema monousuário 19 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas O Registrador de Fronteira delimita a regíão de memória protegida. Multiprogramação Gerenciamento de Memória Real - Prof. Ana Cristina Dantas 20 As solicitações E/S podem reter o processador por longos períodos Existindo mais de um programa para ser executado, o processador não ficará ocioso (otimização de CPU) Quando mais de um programa pode ser executado, mais de um programa requisitará espaço em memória A memória física poderá ser dividida (particionada) Partições fixas Partições variáveis Multiprogramação O processo que não usa constantemente o processador deve cedê-lo a outros Exige que diversos processos permaneçam na memória simultaneamente 21 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Utilização do processador em um sistema monousuário. [Nota: Em muitos jobs monousuário, as esperas de E/S são muito mais longas em relação aos períodos de utilização do processador indicados neste diagrama.] Diferenças entre utilização da CPU por processos diferentes 22 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Multiprogramação por partição fixa Todo processo ativo recebe um bloco de tamanho único da memória A CPU alterna rapidamente de um processo para o outro Vários registradores que delimitam a fronteira entre as regiões de memória oferecem proteção contra prejuízos 23 Gerenciamento de Memória Real - Prof.Ana Cristina Dantas Multiprogramação por partição fixa com tradução e carregamento absolutos Multiprogramação por partição fixa 24 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Multiprogramação por partição fixa Inconvenientes das partições fixas: Antes, as implementações usavam endereços absolutos Se a partição solicitada estivesse cheia, o código não conseguia carregar Posteriormente, isso foi solucionado pelos compiladores de realocação Realocação Capacidade de mudar os limites de memória para um programa no momento em que ele será carregado 25 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Multiprogramação por partição fixa 26 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Desperdício de memória na multiprogramação por partição fixa com tradução e carregamento absolutos. Multiprogramação por partição fixa com tradução e carregamento realocáveis Multiprogramação por partição fixa 27 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Multiprogramação por partição fixa Deve-se proteger o espaço reservado a uma partição Restringir o processo de usuário a uma área da memória física Não pode ser modificado em modo usuário Como? Usando registradores de fronteira 28 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Registradores de Fronteira Gerenciamento de Memória Real - Prof. Ana Cristina Dantas 29 Base Determina o deslocamento de posições necessário para que a CPU possa encontrar a região de memória Endereço inicial da partição na memória Conhecido também como limite baixo Limite Pode representar limite inferior ou superior Conhecido também como limite alto Proteção da memória em sistemas de multiprogramação de alocação contígua. Multiprogramação por partição fixa 30 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Multiprogramação por partição fixa Inconvenientes das partições fixas Fragmentação interna Se processo não ocupa a partição inteira, isso desperdiça memória 31 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Fragmentação interna em um sistema de multiprogramação por partição fixa. Multiprogramação por partição fixa 32 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Designações de partições iniciais na programação por partição variável. Multiprogramação por partição variável 33 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Multiprogramação por partição variável Para os projetistas de sistema, as partições fixas apresentam muitas restrições Existe a possibilidade de os processos ficarem muito grandes e não se encaixarem em nenhum lugar Fragmentação interna As partições variáveis foram desenvolvidas para substituí-las 34 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Características da partição variável Os jobs são posicionados no lugar em que se encaixam Inicialmente, nenhum espaço é desperdiçado Não é possível haver fragmentação interna As partições têm exatamente o tamanho que precisam Pode ocorrer fragmentação externa quando algum processo for removido As lacunas (espaços livres) deixadas para novos processos são muito pequenas Existe a possibilidade de não haver espaço livre suficiente para novos processos 35 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas “Lacunas” de memória em multiprogramação por partição variável. Características da partição variável 36 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Características da partição variável Existem várias formas de combater a fragmentação externa Coalescência Reúne blocos livres adjacentes em um único bloco grande Em geral isso não é suficiente para obter uma quantidade significativa de memória Compactação Às vezes é chamada coleta de lixo (que não deve ser confundida com a coleta de lixo nas linguagens orientadas a objeto) Reorganização da memória em um único bloco contíguo de espaço livre e em um único bloco contíguo de espaço ocupado Possibilita que todos espaços livres fiquem disponíveis A sobrecarga é significativa 37 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Coalescência de “lacunas” de memória em multiprogramação por partição variável. Características da partição variável 38 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Compactação de memória em multiprogramação por partição variável. Características da partição variável 39 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Estratégias de posicionamento de memória Onde posicionar os processos que estão chegando Estratégia do que couber primeiro (First-fit) O processo é posicionado na primeira lacuna de tamanho suficiente encontrada Sobrecarga baixa no tempo de execução Estratégia do que couber melhor (Best-fit) O processo é posicionado na lacuna que deixar o menor espaço não utilizado ao seu redor Maior sobrecarga no tempo de execução Estratégia do que couber pior (Worst-fit) O processo é posicionado na lacuna que deixar o maior espaço não utilizado ao seu redor Nesses casos, é deixada uma outra grande lacuna, o que permite que outro processo caiba nessa lacuna 40 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Estratégias de posicionamento na memória o primeiro que couber, o que melhor couber, o que pior couber (Parte 1 de 3) Estratégias de posicionamento de memória 41 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Estratégias de posicionamento na memória o primeiro que couber, o que melhor couber, o que pior couber (Parte 2 de 3). Estratégias de posicionamento de memória 42 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Estratégias de posicionamento na memória o primeiro que couber, o que melhor couber, o que pior couber (Parte 3 de 3). Estratégias de posicionamento de memória 43 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Multiprogramação com troca de memória (swapping) Não há necessidade de manter processos inativos na memória Troca (Swapping) Coloca apenas processos em execução na memória principal Outros são temporariamente transferidos para o armazenamento secundário Isso maximiza a memória disponível Há uma sobrecarga significativa quando do chaveamento de processos Melhoria: mantém diversos processos na memória ao mesmo tempo Menos memória disponível Tempos de resposta mais rápidos 44 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Multiprogramação em um sistema de troca de processos (swapping) no qual há somente um único processo por vez na memória principal. Multiprogramação com troca de memória (swapping) 45 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas Bibliografia DEITEL & CHOFFNES. Sistemas Operacionais. Editora Prentice-Hall, 3ª Edição, 2005. ISBN: 8576050110. Capítulos 9: Organização e Gerenciamento da Memória Real 46 Gerenciamento de Memória Real - Prof. Ana Cristina Dantas
Compartilhar