Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de...

85
Gerência de Memória Sistemas Operacionais

Transcript of Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de...

Page 1: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Gerência de Memória

Sistemas Operacionais

Page 2: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Memória

Década de 30 – John Von Neumann

Computador composto por três partes:

Processador, Dispositivos I/O e a Memória

Programa deveria ser armazenado na memória junto com os dados. Capaz de lembrar sequências de comandos previamente fornecidos executando-as fielmente.

Page 3: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:
Page 4: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Memória

Década de 30 – John Von Neumann

Arquitetura Princeton e Arquitetura Harward

Page 5: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:
Page 6: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Princeton

• Único barramento para transferência de dados e instruções entre memória e processador

• Predominou pela simplicidade

Page 7: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

• Harward

• Dispositivos de memória distintos para armazenamento de dados e programas;

• Dois barramentos ligando o processador aos dispositivos de memória de dados e programas;

• Mais eficiente

Page 8: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

• Ambos foram conceitos revolucionários ;• Não existia tecnologia suficiente para construção de

dispositivos que funcionassem como memória; • Processadores evoluíram primeiro.

Page 9: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

• 1ª Memória primária foi construída com pequenos núcleos magnetizáveis de ferrite interligados matricialmente por uma delicada fiação de cobre, onde cada núcleo armazenava um único bit.

• processadores são capazes de ler e escrever mais rápido do que os circuitos de memória do mesmo nível tecnológico.

• Wait States: é o tempo de espera por parte do processador até que a memória esteja preparada para ler ou gravar os dados.

Page 10: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Quando se fala em memória, estamos nos referindo aos circuitos que trocam dados diretamente com o processador durante o ciclo de execução de seus comandos mais básicos, ou seja, a memória primária ou armazenamento primário. (RAM, ROM, REGISTRADORES E CACHE)

Os dispositivos de armazenamento secundário, isto é, dispositivos de memória de massa que não devem ser confundidos com a memória básica do computador. (Discos rígidos, CDs, DVds, PenDrive)

Page 11: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Memória

Memória é um termo genérico usado para designar as partes do computador ou dos dispositivos periféricos onde os dados e programas são armazenados. Sem uma memória de onde os processadores podem ler e escrever informações, não haveria nenhum computador digital de programa armazenado.

Page 12: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Memória

• A memória pode ser vista como um array (vetor) de células de armazenamento (palavras ou bytes), cada célula com seu endereço

0 2

1 31

2 4

3 35

4 26

5 124

6 42

7 12

8 42

Page 13: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Memória

• A CPU e os controladores dos dispositivos periféricos podem ler e escrever em posições de memória.

CPU

Memória

Sistema de I/O

Page 14: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Memória

• Considerações:

– Recurso caro e escasso; era ou é?– Preocupação do projetista: SO que não ocupassem muito

espaço de memória; – Programas só executam se estiverem na memória principal;– Necessidade de uso otimizado;– “É um dos fatores mais importantes em um projeto de

S.O.”.

Page 15: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Memória• O objetivo principal de um Sistema Computacional é

executar programas;• Estes programas devem estar localizados na memória

principal;• Memória principal não possui tamanho suficiente;• SO modernos utilizam principalmente dos discos

rígidos como dispositivos secundários de apoio à memória.

• Por isso existe a necessidade do Gerente de Memória.

Page 16: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:
Page 17: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:
Page 18: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Gerência de Memória• Algumas funções do Gerente 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;

– alocação da memória de acordo com as necessidades dos processos

– 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

Page 19: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Mecanismos para Gerência de Memória

• máquina pura• monitor residente• swapping• partições múltiplas• paginação• segmentação • sistemas combinados

Page 20: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Máquina Pura

• É o esquema mais simples, pois não existe gerência de memória;

• O usuário lida diretamente com o hardware e possui total controle sobre toda a memória;

• Não exige nenhum software ou hardware especiais;• Viável apenas em sistemas dedicados, onde o computador

controla um equipamento específico.

Page 21: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Máquina Pura

• Problemas:– não existe a infra-estrutura do SO (rotinas de E/S, por

exemplo)– não há monitor residente para controlar chamadas de

sistema ou erros

Page 22: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Sistemas MonoprogramadosAlocação Contígua Simples

• Com monoprogramação a gerência de memória fica simples;• O espaço é dividido entre o SO e o processo do usuário que

está sendo executado;

Page 23: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Monoprogramação

• Vantagens:– simplicidade– custo baixo de implementação e uso– flexibilidade

Page 24: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Monitor Residente

• Normalmente, este esquema é usado em sistemas monoprogramados;

• Memória dividida em duas partes:– área do SO– área do usuário

• Registrador limite: contém o primeiro endereço do programa usuário

Page 25: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Monitor Residente

Sistema Operacional

Área para o programa usuário

Área livre

RegistradorLimite

Page 26: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

E se o tamanho do programa for maior do que a memória disponível?

Neste caso utiliza-se a técnica conhecida como overlay, o programa é dividido em módulos que são executados independentemente na mesma área de memória

Page 27: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Overlay

Sistema Operacional

Módulo principal

Área livre

Área de Overlay

1 kb

4 kb

3 kb

2 kb

Cadastramento

Impressão

4 kb

Área não utilizada

2 kb

2 kb

Page 28: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Multiprogramação através de Swapping

• É implementada por um SO do tipo monitor residente• O esquema de gerenciamento de memória é estendido para

implementar swapping• O programa que perde a CPU é copiado p/ disco, enquanto o

programa que ganha a CPU é transferido do disco p/ a memória principal

Page 29: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Swapping

Monitor

Espaço doUsuário

reg. limite

U1

U2

Swap-in

Swap-out

Page 30: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Exercício

1)O que é Memória

2)Cite exemplos de memória primária:

3)Cite exemplos de memória secundária:

4)Para a sua execução, em qual memória o programa precisa estar?

5)Quais as funções do Gerente de Memória

6)O que é Swapping?

Page 31: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

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

CPUGerenciador de

Memória MemóriaEndereço lógico

Endereço físico

Page 32: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Múltiplas

• Com multiprogramação, é conveniente ter vários programas na memória ao mesmo tempo para que a CPU seja rapidamente alternada entre eles

• Solução: dividir a memória em partições que podem ser:– Partições Fixas (regiões estáticas)– Partições variáveis (regiões dinâmicas)

Page 33: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Fixas

• A memória é dividida em partições que não são alteradas durante a execução do sistema.

• Quando um processo é criado, ele é colocado em uma fila à espera que uma partição de tamanho suficiente se torne disponível

Page 34: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Fixas

• Para definir a partição onde o programa vai ser colocado, existem duas opções:– Montar uma fila individual para cada partição– Montar uma fila única para todas as partições

Page 35: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Fixas

Page 36: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Fragmentação

• São perdas (desperdício) de memória:– fragmentação interna: memória é perdida dentro da

partição alocada (é um desperdício de espaço dentro da partição usada pelo processo)

– fragmentação externa: ocorre quando existe espaço disponível mas este é pequeno demais para os processos que estão à espera (perda de espaço fora das partições alocadas)

Page 37: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Fragmentação

Page 38: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Fixas

• O controle de partições fixas é conceitualmente simples. Necessita levar em conta:

• tamanhos das partições de memória• algoritmo para gerenciar a lista de processos em espera

Page 39: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Fixas

• Exemplo: memória de 256K– espaço do SO: 64K– espaço para processos pequenos: 16K– espaço para processos médios: 48K– espaço para processos grandes: 128K

Page 40: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Fixas

• O maior problema das partições fixas é determinar a melhor divisão da memória;

• A solução é permitir que o tamanho das partições varie ao longo do tempo.

Partições Variáveis

Page 41: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Variáveis

• Os tamanhos das partições variam de acordo com a necessidade

• Tanto o tamanho quanto o número de partições variam dinamicamente

• Elimina a fragmentação interna• Mais difícil de implementar

Page 42: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Variáveis

• O SO mantém uma lista indicando quais partes da memória estão disponíveis e quais estão ocupadas.

• As áreas disponíveis são denominadas lacunas (holes)• Quando um processo chega para ser executado, a lista

de lacunas é consultada e é escolhida uma lacuna de tamanho suficiente

Page 43: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Variáveis

monitor

Job 1

0

40K

100K

Job 2

200KJob 3

230K

256K

monitor

Job 1

0

40K

100K

200KJob 3

230K

256K

monitor

Job 1

0

40K

100K

200KJob 3

230K

256K

Job 4

170K

monitor0

40K

100K

200KJob 3

230K

256K

Job 4

170K

monitor0

40K

100K

200KJob 3

230K

256K

Job 4

170K

Job 5

90K

job 2 termina

aloca job 4

job 1 termina aloca job 5

JOB 1 2 3 4 5

Memória 60K 100K 30K 70K 50K

Tempo 10 5 20 8 15

Page 44: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Variáveis - Características

• Vai existir um conjunto de áreas livres (lacunas) espalhadas pela memória;

• Para executar um programa, o conjunto é pesquisado à procura de uma área maior ou igual à necessidade ;

• Se a área é maior, a parte restante vai continuar livre;• Quando um processo termina, a área é liberada. Se a área é

adjacente a outra área livre, as duas áreas são aglutinadas em uma única lacuna;

Page 45: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Variáveis

Existem algoritmos para a escolha de uma área livre.

Page 46: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Variáveis - Algoritmos de Alocação para partições variáveis

• Algoritmos para escolha da área livre (alocação dinâmica da memória):– first-fit: aloca o primeiro espaço livre de tamanho

suficiente– best-fit: aloca o menor espaço livre que seja suficiente.

Produz a menor sobra de espaço– worst-fit: aloca o maior espaço livre. Produz a maior sobra

de espaço livre (a sobra é mais útil que a gerada por best-fit)

Page 47: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Variáveis - Algoritmos de Alocação

Page 48: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

• Aula Passada vimos:

– O que é memória;– Programas precisam estar na MP para serem

executados;– Mecanismos para Gerenciar Memória:

• Máquina Pura: Para sistemas dedicados• Monoprogramação: Espaço da MP dividido apenas

entre o SO e o programa de usuário. (Overlay e Swapping)

Page 49: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

• Multiprogramação: –Partições Fixas (uma fila para cada partição ou

uma fila pra todas as partições)–Partições Variáveis (Algorítimos First-fit, Best-

fit, Worst-fit)

Page 50: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Variáveis - Compactação

• Para resolver o problema da fragmentação externa, a solução é a compactação da memória:– os programas são deslocados na memória de forma que todo os

espaço livre fique reunido em uma única lacuna– necessidade de relocação dinâmica (pois a relocação estática

impossibilita a compactação)

– No Windows: Aplicativos free disponíveis (Memory Improve Master Free)

– No Linux: Algoritmo de Compressão

Page 51: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Partições Variáveis - Compactação

Page 52: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Mas ainda há problemas

Page 53: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Introdução à Paginação e Segmentação

Problemas com alocação particionada:Fixa:

• Fragmentação Interna e Externa

Variável:• Fragmentação externa, quando a memória livre está

fragmentada em diversos blocos espalhados;– A compactação resolve a situação mas possui um custo

de CPU associado.

Page 54: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

O mecanismo de Paginação poderá resolver estes problemas

A Paginação permite que o espaço físico ocupado por um processo seja não contíguo.

Page 55: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Introdução à Paginação e Segmentação

Nova abordagem é considerar a existência de um espaço de endereçamento lógico e de um espaço de endereçamento físico

• O espaço de endereçamento físico não precisa ser contíguo

• Necessita “mapear” o espaço lógico no espaço físico

Dois métodos básicos:– Paginação– Segmentação

Page 56: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Introdução à Paginação e Segmentação

• Suposição: para ser executado o processo necessita estar completamente carregado em memória

• Solução:– Processo é dividido em páginas (blocos de processos);– MP é dividida em quadros de mesmo tamanho

Page 57: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Paginação

A memória física é dividida em um número de partições de mesmo tamanho, denominadas páginas físicas, quadros ou frames

A memória lógica é dividida em partições do mesmo tamanho, denominadas páginas lógicas (ou, simplesmente, páginas)

Cada página lógica é carregada em um frame quando o processo é carregado na memória principal

Nessa ocasião, uma tabela de páginas é criadaPermite que o espaço físico ocupado por um processo seja

não contíguo

Page 58: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

IC - UFF

Paginação

Exemplo: número de páginas/processo

5D

4C

3B

4A

Processos A, B, C estão prontos

C4

C3

C2

C1

B3

B2

B1

A4

A3

A2

A1

Páginas Lógicas

Páginas Físicas ou Frames

Page 59: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Paginação

página 0

página 1

página 2

página 3

1 0

4 1

3 2

6 3

página 0

página 2

página 1

página 3

0

1

2

3

4

5

6

memória lógica de

um processo

tabela de páginas

memória física da máquina

Page 60: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

IC - UFF

Paginação

C4

C3

C2

C1

A4

A3

A2

A1

B termina D é submetido

D4

D5

C1

C2

C3

C4

A1

A2

A3

A4

D3

D2

D1

Page 61: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Paginação

Page 62: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Esquema de Tradução de Endereços

Endereços gerados pela CPU são divididos em:

• Nr de páginas(p): usado como um índice em uma tabela de páginas, a qual contém o endereço base de cada página na memória física

• Deslocamento de página(d): combinado com o endereço base para definir o endereço na memória física que será enviado para a memória.

Page 63: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Paginação

• SO mantém cópia (apontador) das tabelas de páginas de cada processo

• Cada descritor de processo contém o endereço de sua respectiva tabela de páginas.

• A UCP possui um registrador que aponta para a tabela de páginas atual

• Para acessar um dado na memória são necessários dois acessos: um de mapeamento (acesso à tabela) e outro para acessar o dado

Page 64: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Exercício

1) O que é Memória lógica e Memória Física:2) Explique as vantagens e desvantagens da alocação Fixa e

Variável3) Explique: Fragmentação Interna e Externa4) Qual seria uma solução para resolver a fragmentação externa?

Page 65: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Paginação

• não existe fragmentação externa• existe fragmentação interna (Ex: um programa que

ocupe 201kb, o tamanho de página é de 4 kb, serão alocadas 51 páginas resultando uma fragmentação interna)

• A fragmentação ocorre apenas na última página usada pelo programa.

• A fragmentação é consequência do tamanho da página

• páginas pequenas evitam o problema de fragmentação

• a literatura indica o uso de páginas pequenas

Page 66: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação

• A segmentação é uma forma de gerência de memória que suporta a visão do usuário.

• Com segmentação, o espaço de endereçamento lógico é uma coleção de segmentos.

• Cada posição da memória lógica é especificada por um segmento e um deslocamento.

Page 67: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação

• Para facilitar a implementação, os segmentos não recebem nomes, mas sim números.

• Os compiladores automaticamente criam segmentos para refletir a organização do programa.

• No momento que o programa é carregado, cada um recebe um número de segmento específico.

Page 68: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação

Simplificando

• Um programa é dividido logicamente em subrotinas e estruturas de dados, que são alocadas em segmentos.

subrotina

função

Programa Principal

pilha

Tabela de Símbolos

Espaço de Endereçamento Lógico

Page 69: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação

Page 70: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação

Segmento 0

subrotina segmento 0

função segmento 1

Programa Principal

segmento 2

pilha segmento 3

Tabela de Símbolos

segmento 4

Espaço de Endereçamento Lógico

base limite 0 1400 1000 1 6300 400 2 4300 400 3 3200 1100 4 4700 1000 Tabela de

segmentos

1400

2400

4300

5700

Segmento 4

6300

6700

Segmento 2

4700

Segmento 3

3200

Segmento 1

Memória Física

Page 71: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação

• Mapeamento é muito semelhante ao de paginação. Os segmentos são mapeados através de tabelas de mapeamento de segmentos (TMS)

• Endereços são compostos pelo número do segmento virtual (NSV) e por deslocamento

• Endereço físico é obtido, então, combinando-se o endereço do segmento, localizado na TMS, com o deslocamento, contido no endereço virtual.

Page 72: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:
Page 73: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação

• Uma vantagem da segmentação em relação à paginação e a sua facilidade em lidar com estruturas de dados

• Técnica de segmentação, apenas os segmentos referenciados são transferidos da memória secundária para a memória principal

Page 74: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação

• A política de alocação de páginas pode ser a mesma usada na alocação particionada dinâmica (best-fit, worst-fit ou first-fit)

• Problemas de fragmentação externa• Proteções de memória é mais simples de ser implementada do

que sistemas de paginação, Cada segmento tem um conteúdo bem definido

Page 75: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação e Paginação

• Qual o melhor?– Discussão antiga, sem vencedores

• Fragmentação– Paginação : apresenta fragmentação interna– Segmentação : apresenta fragmentação externa

• Administração– Paginação é mais simples

• Proteção (segurança) e compartilhamento– Segmentação é melhor, pois:

– segmentos são unidades lógicas – páginas são mais misturadas (dados, código)

Page 76: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Sistemas Combinados

• Existem sistemas onde a paginação e a segmentação são usadas em conjunto, procurando tirar proveito de ambos os esquemas.– Segmentação paginada (mais comum)– Paginação segmentada (menos comum)

Page 77: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação com Páginas

• Técnica de gerenciamento na qual o espaço de endereçamento é dividido em segmentos e, por sua vez, cada segmento é dividido em páginas

• Objetivos de oferecer as vantagens da técnica de paginação e segmentação

Page 78: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação com Páginas

• Endereço virtual é formado pelo número do segmento virtual (NSV)

• Um número de página virtual (NPV) e um deslocamento• O deslocamento indica a posição do endereço virtual em

relação ao inicio da página na qual se encontra.• O endereço físico é obtido, então, combinando-se o

endereçamento do frame, localizado na tabela de páginas com o deslocamento contido no endereço virtual

Page 79: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação

Segmento 0

subrotina segmento 0

função segmento 1

Programa Principal

segmento 2

pilha segmento 3

Tabela de Símbolos

segmento 4

Espaço de Endereçamento Lógico

base limite 0 1400 1000 1 6300 400 2 4300 400 3 3200 1100 4 4700 1000 Tabela de

segmentos

1400

2400

4300

5700

Segmento 4

6300

6700

Segmento 2

4700

Segmento 3

3200

Segmento 1

Memória Física

Page 80: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:
Page 81: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:
Page 82: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Sistemas Combinados

Segmentação com Páginas

• Técnica de gerenciamento na qual o espaço de endereçamento é dividido em segmentos e, por sua vez, cada segmento é dividido em Páginas.

• Objetivos de oferecer as vantagens da técnica

de paginação e segmentação.

Page 83: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Sistemas Combinados

• Endereço virtual é formado:– pelo número do segmento virtual (NSV).– Um número de página virtual (NPV) e um

deslocamento.• O deslocamento indica a posição do endereço virtual em

relação ao inicio da página na qual se encontra.

Page 84: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Sistemas Combinados

• O endereço físico é obtido, então, combinando-se o endereçamento do frame, localizado na tabela de páginas com o deslocamento contido no endereço virtual.

Page 85: Gerência de Memória Sistemas Operacionais. Memória Décadade 30 – John Von Neumann Década de 30 – John Von Neumann Computador composto por três partes:

Segmentação com Paginação

s d

Base daTabela dePáginas

Tamanho do

Segmento

+

>=

p d’

d

f d’f

erro

N

STabela deSegmentos

MEM