Buscar

Gerenciamento de Memória em Sistemas de Tempo Real

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Gerenciamento de Memória
Walter Fetter Lages
w.fetter@ieee.org
Universidade Federal do Rio Grande do Sul
Escola de Engenharia
Departamento de Engenharia ElØtrica
ENG04008 Sistemas de Tempo Real
Copyright (c) Walter Fetter Lages – p.1
Introduçªo
• Alocação e desalocação de memória
• Estática
• Dinâmica
• Memória virtual
• Overlay
• Paginação
• Segmentação de memória
Copyright (c) Walter Fetter Lages – p.2
Sistemas Monotarefa
• Um único programa na memória
• O programa utiliza toda a memória
• O programa deve ter todos os drivers de I/O
• Divisão da memória entre o programa e o sistema
operacional
Copyright (c) Walter Fetter Lages – p.3
Sistemas Multitarefa
• Partições fixas
• Partições definidas manualmente pelo
operador
• Uma partição de tamanho suficiente é alocada
para cada tarefa
• Em geral, o número de tarefas > número de
partições =>diversas politicas para utilização
das partições
• Uma fila de tarefas para cada partição
• Uma fila única
• Fila única com best-�t
• Fila única com best-�t e máximo de
skip-over
Copyright (c) Walter Fetter Lages – p.4
Partiçıes Fixas
Copyright (c) Walter Fetter Lages – p.5
Partiçıes VariÆveis
• O tamanho das partições varia conforme a
criação/destruição das tarefas
• Fragmentação de memória
• Compactação de memória
• Consome muito tempo -> normalmente feito
durante a alocação/desalocação de memória
em sistemas não tempo real
• Espaço para a memória das tarefas crescer
• Alocação dinâmica de memória para dados
Copyright (c) Walter Fetter Lages – p.6
Lay-out de Memória das Tarefas
Copyright (c) Walter Fetter Lages – p.7
MØtodos de Gerenciamento
• Bit-map
• Memória dividida em unidades de alocação
• Existe um bit-map para sinalizar se cada
unidade de alocação está alocada ou livre
• Procura por espaços livres não é eficiente
Copyright (c) Walter Fetter Lages – p.8
MØtodos de Gerenciamento
• Listas ligadas
• Existe uma lista ligada que relaciona os
blocos de memória alocados e livres
• Normalmente a lista é ordenada por endereço
• Algoritmos de Alocação de memória
• First-fit
• Next-fit
• Best-fit
• Worst-fit
• Quick-fit
Copyright (c) Walter Fetter Lages – p.9
MØtodos de Gerenciamento
• Buddy System
• Utiliza o fato dos endereços serem binários
• Existe uma lista de blocos livres de tamanho
1, 2, 4, 8 ... tamanho da memória
• Ineficiente no uso da memória
• Fragmentação interna
Copyright (c) Walter Fetter Lages – p.10
Buddy System
Copyright (c) Walter Fetter Lages – p.11
Relocaçªo
• Em sistemas multitarefa, cada tarefa terá um
endereço inicial diferente. Como o
programador/compilador/linker saberá o
endereço inicial (e endereços de subrotinas,
dados, etc...) da tarefa?
• Problema da relocação
• Gerar apenas código com endereços relativos
• Código relocável
• Relocação durante a carga da tarefa na
memória
Copyright (c) Walter Fetter Lages – p.12
Segmentaçªo
• Associa-se a cada área de memória um valor de
base e um valor de limite
• base=endereço inicial
• limite=endereço máximo ou tamanho
• Todas as tarefas são codificadas assumindo que a
sua área de memória começa em 0
• Quando a tarefa é selecionada para executar, base
e limite são carregados em registradores especiais
na CPU
Copyright (c) Walter Fetter Lages – p.13
Segmentaçªo
• Endereço final = Offset + base
• Soma feita por hardware a cada acesso à
memória
• Endereços são verificados quanto ao limite
• Uma tarefa não pode acessar a área das outras
Copyright (c) Walter Fetter Lages – p.14
Segmentaçªo
• O seletor e descritor de segmento são controlados
pelo sistema operacional
• O offset é controlado pelo programa de aplicação
• Proteção
• Usualmente o descritor de segmentos tem
alguns bits associados que são utilizados para
determinar as características de proteção do
segmento
• Permissões de leitura, escrita, execução
• Cache de descritor de segmento
• Evita dois acessos a memória
• Alterado apenas quando o registrador de
seletor de segmento é alterado Copyright (c) Walter Fetter Lages – p.15
Segmentaçªo no ix86
• Local Descriptor Table (LDT)
• Global Descriptor Table (GDT)
Copyright (c) Walter Fetter Lages – p.16
GLDT e LDT
Copyright (c) Walter Fetter Lages – p.17
Segmentaçªo no ix86
Copyright (c) Walter Fetter Lages – p.18
Seletor de Segmento no ix86
Copyright (c) Walter Fetter Lages – p.19
Descritor de Segmento
Copyright (c) Walter Fetter Lages – p.20
Segmentaçªo no 8086/8088
• Processadores sem modo protegido
• Sem proteção, não tem sentido a existência de
permissões e limite no segmento
• O descritor de segmento resume-se à base
• Como os registradores são de 16 bits
decidiu-se limitar o início de segmentos
apenas alinhados com "parágrafos"
• Segmentação mal implementada
• O "tamanho máximo"do segmento é 64KB
• O limite do segmento não é garantido
• Na verdade é apenas um esquema para
endereçar 1MB utilizando 2 registradores
Copyright (c) Walter Fetter Lages – p.21
Segmentaçªo no 8086/8088
• Endereço físico=reg. de segmento * 16 + offset
• Endereço físico=reg. de segmento « 4 + offset
Copyright (c) Walter Fetter Lages – p.22
Memória Virtual
• Paginação
• Falta de
página
• Page-table
• Endereço
• Virtual
• Físico
Copyright (c) Walter Fetter Lages – p.23
Tabela de PÆginas
Copyright (c) Walter Fetter Lages – p.24
Hardware de Paginaçªo
• Usualmente a tabela de páginas é mantida em
memória e não em registradores
• Registrador de base da tabela de páginas
• Translation look-aside buffer (TLB)
• Evita dois acessos a memória
• Memória associativa
• Páginas também podem ter bits de proteção
associados
• Bit de presença/ausência
Copyright (c) Walter Fetter Lages – p.25
PÆginas de 4KB no ix86
Copyright (c) Walter Fetter Lages – p.26
PÆginas de 4MB no ix86
Copyright (c) Walter Fetter Lages – p.27
Segmentaçªo e Paginaçªo no ix86
Copyright (c) Walter Fetter Lages – p.28
Proteçªo de Memória no ix86
Copyright (c) Walter Fetter Lages – p.29
Proteçªo de I/O no ix86
• Existe um nível de privilégio de I/O
• Apenas processos com nível de privilégio
menor ou igual podem executar instruções de
I/O
• Associado a cada processo pode existir um
bitmap de permissões de I/O
• Apenas as portas habilitadas podem ser
acessadas
• Hardware Virtual
• Virtualização de dispositivos
Copyright (c) Walter Fetter Lages – p.30
Veri�caçªo de PrivilØgios
Copyright (c) Walter Fetter Lages – p.31
I/O Permission Bit Map
Copyright (c) Walter Fetter Lages – p.32
	Introdução
	Sistemas Monotarefa
	Sistemas Multitarefa
	Partições Fixas
	Partições Variáveis
	Lay-out de Memória das Tarefas
	Métodos de Gerenciamento
	Métodos de Gerenciamento
	Métodos de Gerenciamento
	Buddy System
	Relocação
	Segmentação
	Segmentação
	Segmentação
	Segmentação no ix86
	GLDT e LDT
	Segmentação no ix86
	Seletor de Segmento no ix86
	Descritor de Segmento
	Segmentação no 8086/8088
	Segmentação no 8086/8088
	Memória Virtual
	Tabela de Páginas
	Hardware de Paginação
	Páginas de 4KB no ix86
	Páginas de 4MB no ix86
	Segmentação e Paginação no ix86
	Proteção de Memória no ix86
	Proteção de I/O no ix86
	Verificação de Privilégios
	I/O Permission Bit Map

Outros materiais