Documentos relacionados
Gerência de Memória. Execução de um Programa (1) Introdução. Introdução

Sistemas Operacionais

Sistemas Opera r cionais Gerência de Memória

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais. Gerência de Memória

Aula 10 Gerenciamento de Memória

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória

SISTEMAS OPERACIONAIS. Gerência de Memória Apostila 7

SISTEMAS OPERACIONAIS

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. - Gerência de Memória -

IFPR Instituto Federal do Paraná. Curso Técnico em Informática GERÊNCIA DE MEMÓRIA. SO Sistemas Operacionais. Professora Elaine Augusto Praça

Arquitetura de Sistemas Operacionais. Francis Berenger Machado Luiz Paulo Maia. Capítulo 9 Gerência de Memória

Gerência de Memória. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 45

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física

Ar qu it e t u r a a de e Sist e m a s Ope r a cion a is Fa bia n o o Ut iy a m a Ca pít u lo o 9 Ge r ê n cia a de e M e m ór ia

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

MEMÓRIA LÓGICA E FÍSICA (1)

Gerência da Memória. Adão de Melo Neto

Gerência de Memória. Alocação

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

Gerência de Recursos. Gerência de Memória

Sistemas Operacionais Gerência de Memória

Sistemas Operacionais Aula 12: Gerência de Memória. Ezequiel R. Zorzal

Gerência de Memória. Paginação

Segmentação com paginação Intel 386. Esquema de tradução de endereço Intel 386

Gerenciamento de Memória

Sistemas Operacionais. Rômulo Silva de Oliveira Alexandre da Silva Carissimi Simão Sirineo Toscani

Gerenciamento de memória

Gerenciamento de Memória

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para

Gerência de Memória. Segmentação

Capítulo 7 Gerência de Memória

Sistemas Operacionais

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Gerenciamento de Memória

Capítulo 9: Memória Virtual. Operating System Concepts 8 th Edition

( ) ( ) Auto Avaliação F ( ) M ( ) D ( ) Seqüência: Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Exercícios - Dia 20/04/2011

Sistemas Operacionais

Arquitetura de Sistemas Operacionais

Organização e Arquitetura de Computadores I

Sistemas Operacionais

Gerência de Memória Memória Virtual e Paginação

SSC0640 Sistemas Operacionais I

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Gerenciamento de Memória. Memória Principal

ICET CURSO: Ciência da Computação e Sistemas de Informação (Sistemas Operacionais Abertos) Estudos Disciplinares. Campus: Data: / / Nome: Questão 1:

Fundamentos de Sistemas Operacionais

Sistemas Operativos: Gestão de Memória

Gerenciamento de Memória

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Gerência de memória III

ENADE 2011 SISTEMAS OPERACIONAIS

LISTA DE EXERCÍCIOS 02

Gerenciamento de Memória

slide Pearson Prentice Hall. Todos os direitos reservados.

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Sistemas Operacionais. Gerenciamento de memória

Arquitetura e Organização de Computadores

Paginação e Segmentação. Memória Principal

Sistemas Operacionais Gerência de Memória. Thiago Leite

Transcrição:

Gerência de Memória

Introdução Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será o compartilhamento do processador; Necessidade de uso otimizado; O S.O. não deve ocupar muita memória; É um dos fatores mais importantes em um projeto de S.O.. 2

Introdução Sistema operacional deve controlar quais regiões de memória são utilizadas e por qual processo decidir qual processo deve ser carregado para a memória, quando houver espaço disponível alocar e desalocar espaço de memória Algumas funções do Gerenciador de memória: Controlar quais as unidades de memória estão ou não estão em uso, para que sejam alocadas quando necessário; Liberar as unidades de memória que foram desocupadas por um processo que finalizou; Tratar do Swapping entre memória principal e memória secundária. Transferência temporária de processos residentes na memória principal para memória secundária. 3

Execução de um Programa (1) Programa em Ling. de Alto Nível Compilador Programa em Ling. de Montagem Montador Objeto: rotinas de bibliotecas (em ling de máquina) Objeto: módulo em ling de máquina linkeditor Executável: programa em ling de máquina Carregador Memória 4

Execução de um Programa (2) Executável: programa em ling de máquina Espaço de Endereçamento Lógico Código absoluto: - Endereços relativos ao início da memória (endereços reais) - Programas exclusivos para partições específicas na memória 5 Código relocável - O programa pode ser carregado em qualquer posição da memória. - Deve haver uma tradução de endereços (ou relocação de endereços)

Execução de um Programa (3) Relocação de Endereços Estática O Loader (em tempo de carga) reloca os endereços das instruções relocávies (ex: JMP endx) Dinâmica Em tempo de execução O processo pode ser movimentado dentro da memória física Um hardware especial deve estar disponível para que funcione (MMU) 6

Execução de um Programa (4) Relocação de Endereços (cont.) Executável: programa em ling de máquina Espaço de Endereçamento Lógico Tradução Espaço de Endereçamento Físico - Conjunto de endereços reais 7

Gerência de Memória Memória Lógica - é aquela que o processo enxerga, o processo é capaz de acessar. Memória Física - é aquela implementada pelos circuitos integrados de memória, pela eletrônica do computador (memória real) CPU Endereço lógico Gerenciador de Memória Endereço físico Memória 8

Técnicas de Gerência de Memória Real Alocação Contígua Simples Alocação Particionada Partições Fixas Alocação Particionada Estática; Partições Variáveis Alocação Particionada Dinâmica. 9

Alocação Contígua Simples (1) Alocação implementada nos primeiros sistemas e ainda usada nos monoprogramáveis; A Memória é dividida em duas áreas: Área do Sistema Operacional Área do Usuário Um usuário não pode usar uma área maior do que a disponível; Sem proteção: Um usuário pode acessar a área do Sistema Operacional. Memória principal Sistema Operacional Área de Programas do usuário 10

Alocação Contígua Simples (2) Registrador de proteção delimita as áreas do sistema operacional e do usuário; Sistema verifica acessos à memória em relação ao endereço do registrador; Reg A forma de alocação era simples, mas não permitia utilização eficiente de processador e memória; Memória principal Sistema Operacional Área de Programas do usuário 11

Alocação Contígua Simples (3) Programas de usuário limitados pelo tamanho da memória principal disponível. Solução: Overlay Dividir o programa em módulos; Permitir execução independente de cada módulo, usando a mesma área de memória; Área de Overlay Área de memória comum onde módulos compartilham mesmo espaço. 12 Memória principal Sistema Operacional Área do Módulo Principal Área de Overlay A B C

Alocação Particionada Multiprogramação. Necessidade do uso da memória por vários usuários simultaneamente. Ocupação mais eficiente do processador; A memória foi dividida em pedaços de tamanho fixo chamados partições; O tamanho de cada partição era estabelecido na inicialização do sistema; Para alteração do particionamento, era necessário uma nova inicialização com uma nova configuração. 13

Alocação Particionada Estática (1) Partições fixas Tamanho fixo ; número de partições fixo a) Alocação Particionada Estática Absoluta: Compiladores gerando código absoluto; Programas exclusivos para partições específicas. Simples de gerenciar E se todos os processos só pudessem ser executados em uma mesma partição (mesmo endereço base?) b) Alocação Particionada Estática Relocável: Compiladores gerando código relocável; Endereços relativos ao início da partição; Programas podem rodar em qualquer partição. 14

Alocação Particionada Estática (2) Proteção: Registradores com limites inferior e superior de memória acessível. Programas não ocupam totalmente o espaço das partições, gerando uma fragmentação interna. Reg. de Relocação Reg Limite Memória principal Sistema Operacional Partição A Partição B Partição C 15

Alocação Particionada Dinâmica (1) Não existe realmente o conceito de partição dinâmica. O espaço utilizado por um programa é a sua partição. Não ocorre fragmentação interna. o tamanho da memória alocada é igual ao tamanho do programa Ao terminarem, os programas deixam espalhados espaços pequenos de memória, provocando a fragmentação externa. os fragmentos são pequenos demais para serem reaproveitados Memória principal Sistema Operacional Processo A Processo C Processo F Processo E 16

Alocação Particionada Dinâmica (2) Sistema Operacional - ÁREA LIVRE 11 KB Sistema Operacional - A B C D Área livre 1KB Sistema Operacional - A Área livre 4KB C Área livre 4KB A - 2 kb C - 1 kb B - 4 kb D- 3 kb E - 6 kb? 17

Alocação Particionada Dinâmica (3) Soluções: Reunião dos espaços contíguos. Realocar todas as partições ocupadas eliminando espaços entre elas e criando uma única área livre contígua-> Relocação Dinâmica de endereços: Movimentação dos programas pela memória principal. Resolve o problema da fragmentação. Consome recursos do sistema Processador, disco, etc. Memória principal Sistema Operacional Processo A Processo F Processo E 18

Alocação Particionada Dinâmica (4) A multiprogramação implica em um problema Ao mudar de partição o programa necessita ser relocado Relocação implica em correção de endereços de instruções Via software (mapa de correções) Via hardware (reg. base e limite) Proteção Não correção ou correção errada implica em acesso a outra partição 19

Alocação Particionada Dinâmica (5) Definição do tamanho das partições pode ser difícil Processos crescem quando em execução É bom definir áreas extras para dados e pilhas Como gerenciar as partições alocáveis de memória Mapamento de bits Mapeamento da Memória com listas encadeadas 20

Mapa de bits http://www.inf.ufes.br/~rgomes/so.htm Usado para o gerenciamento com alocação dinâmica Memória é dividida em unidades de alocação De algumas palavras a vários kilobytes Qto menor maior o mapa de bits Qto maior desperdiço na última unidade A cada unidade é associado um bit que descreve a disponibilidade da unidade Disponível = 0 Ocupada = 1 Principal problema Busca de k zeros consecutivos para alocação de k unidades Raramente é utilizado atualmente. É muito lenta 21

Mapeamento da Memória com lista encadeada Também usado para gerenciar a alocação dinâmica. Lista ligada de segmentos alocados ou livres Um segmento é uma área de memória alocada ou livre Cada elemento da lista indica Estado do segmento (P) Alocado por um processo ou (H) Livre Unidade em que inicia Tamanho em unidades Lista duplamente encadeada facilita de concatenação de segmenos Lista ordenada por endereço permite vários algoritmos de alocação P: Processo H: Hole (buraco) Header P/H início tamanho P/H início tamanho 22

Mapeamento da Memória com lista encadeada Header P 0 100 H 100 200 P 300 50 H 350 400 P 750 50 H 800 50 A: 190 Header P 0 100 P 300 50 H 350 400 P 750 50 H 800 50 P 100 190 H 290 10 Header P 0 100 H 100 200 P 300 50 P 750 50 H 800 50 P 350 190 H 540 210 B: 250 23

A escolha da partição ideal (1) Existem 4 maneiras de percorrer a lista de espaços livre atrás de uma lacuna de tamanho suficiente, são eles: Best-fit (utiliza a lacuna que resultar a menor sobra) Espaço mais próximo do tamanho do processo; Tempo de busca grande; Provoca fragmentação. Worst-Fit (utiliza a lacuna que resultar na maior sobra): Escolhe o maior espaço possível; Tempo de busca grande; Não apresenta bons resultados. 24

A escolha da partição ideal (2) First-Fit (primeira alocação): utiliza a primeira lacuna que encontrar com tamanho suficiente Melhor performance. Circular-fit ou Next-Fit (próxima alocação): como first-fit mas inicia a procura na lacuna seguinte a última sobra Performance inferior ao First-Fit. 25

A escolha da partição ideal (3) Considerações sobre Mapeamento da Memória com listas ligadas : Todos melhoram em performance se existirem listas distintas para processos e espaços, embora o algoritmo fique mais complexo. Listas ordenadas por tamanho de espaço melhoram a performance. 26

Referências A. S. Tanenbaum, '' Modernos'', 2a. Edição, Editora Prentice-Hall, 2003. Capítulo 4 (até seção 4.2 inclusa) Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de Sistemas Operacionais'', 6a. Edição, Editora LTC, 2004. Capítulo 9 (até seção 9.3 inclusa) Deitel H. M.; Deitel P. J.; Choffnes D. R.;, 3ª. Edição, Editora Prentice-Hall, 2005?? 27

Referências A. S. Tanenbaum, '' Modernos'', 2a. Edição, Editora Prentice-Hall, 2003. Capítulo 4 (até seção 4.2 inclusa) Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de Sistemas Operacionais'', 6a. Edição, Editora LTC, 2004. Capítulo 9 (até seção 9.3 inclusa) Deitel H. M.; Deitel P. J.; Choffnes D. R.;, 3ª. Edição, Editora Prentice-Hall, 2005?? 28