doc.txt
Informação
Gerenciamento de memória
DC – UFSCar
Jander Moreira
Conteúdo
●
Agenda
–
Introdução
–
Conceitos básicos
–
Métodos
●
●
Ajuste sequencial
Ajuste não sequencial
Introdução
Execução de programas
–
Código fonte
–
Código objeto
–
Código relocável
–
Código em execução
Fonte: Silberschatz, Galvin, Gagne, Operating System
Concepts, Wiley, 2011
●
Introdução
●
Programas e processos
–
Programa
●
–
Processo
●
●
Código relocável
Código em execução
Memória para o processo
–
Espaço de endereçamento
●
Área de memória disponível para um processo
Diagram of relationship between the virtual and physical address spaces. http://en.wikipedia.org/wiki/File: Virtual_address_space_and_physical_address_space_relationship.png
Introdução
Introdução
●
Uso da memória em processos
–
Código
●
–
–
Código executável
Dados estáticos
●
Heap
Dados dinâmicos
Variáveis globais
Dados dinâmicos
●
Stack
–
●
Stack
Variáveis locais, parâmetros
Dados estáticos
Heap
–
Alocação dinâmica
Código
Atividade
●
Atividade: reserva de blocos em um vetor
–
Grupos: 3 a 5 alunos
–
Proposta
Considerar um vetor de bytes de tamanho k e determinar um mecanismo para satisfazer às seguintes demandas:
–
–
–
Reserva de um bloco de n bytes consecutivos do vetor, retornando como resultado o índice do primeiro byte
Liberação da reserva de um bloco, identificado pelo índice de seu primeiro byte
Restrição: todos os dados para o controle da reserva de blocos devem ser mantidos no próprio vetor
Dois grupos apresentarão sua solução para discussão com a classe Fragmentação
●
Fragmentação externa
–
–
●
Segmentos de memória "pequenos" se tornam abundantes
Requisições "grandes" não podem ser atendidas, pois não há área contígua disponível, mesmo com muita área disponível