gerenciamento de memória prof. raimundo macêdo · 2 tópicos)introdução)ptii td...

45
1 Laboratório de Sistema de Distribuídos – LaSiD Departamento de Ciência da Computação – DCC UFBA Gerenciamento de Memória Prof. Raimundo Macêdo Tópicos Introdução P ti i t d ói Particionamento de memória Swapping Memória virtual/Paginação Segmentação Exercícios LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Upload: dangnhu

Post on 20-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

1

Laboratório de Sistema de Distribuídos – LaSiDDepartamento de Ciência da Computação – DCC

UFBA

Gerenciamento de Memória

Prof. Raimundo Macêdo

Tópicos

IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

2

Tópicos

IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Motivação para gerenciamentoEm geral a memória principal não comporta todos os processos ativos num determinado momento

O S.O. deve manter os processos que estejam fazendo uso efetivo da memória ou que sejam prioritários

Em geral apenas parte do processo (espaço lógico) é carregado

Requisitos de memória freqüência de uso e prioridades variam

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Requisitos de memória, freqüência de uso e prioridades variam dinamicamente

Objetivos finais Tempo de resposta

Throughput (número de tarefas executadas)

3

O Problemaalocar espaço de memória para processos

Monoprogramação: duas partesSO + um processo p

Multiprogramação: várias partesSO + vários processos

Alguns problemas...Como organizar os espaços de memória? Quando mapear (bind) endereço de programa em end. de

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Quando mapear (bind) endereço de programa em end. de memória?Em que posição da memória?Como proteger um processo da invasão de sua área ou permitir um compartilhamento controlado de sua área?

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

4

Background

1. Program must be brought into memory and placed within a process for it to be run.

2. Input queue – collection of processes on the disk that are waiting to be brought into memory to run the program.

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

p g3. User programs go through several

steps before being run.

Multistep Processing of a User Program

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

5

Logical vs. Physical Address Space

The concept of a logical address space that is bound to a separate physical address space is central to p p y pproper memory management.

Logical address – generated by the CPU; also referred to as virtual address.

Physical address – address seen by the memory unit.

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Logical and physical addresses are the same in compile-time and load-time address-binding schemes; logical (virtual) and physical addresses differ in execution-time address-binding scheme.

Binding of Instructions and Data to Memory

1. Compile time: If memory location known a

Address binding of instructions and data to memory addresses canhappen at three different stages:

1. Compile time: If memory location known a priori, absolute code can be generated; must recompile code if starting location changes.

2. Load time: Must generate relocatable code if memory location is not known at compile time.

3. Execution time: Binding delayed until run time

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., base and limit registers).

6

Memory-Management Unit (MMU)

Hardware device that maps virtual to physical address.

In MMU scheme, the value in the relocation register is added to every address generated by a user process at the time it is sent to memory.

The user program deals with logical addresses; it never sees the real physical addresses

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

never sees the real physical addresses.

Dynamic relocation using a relocation register

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

7

Dynamic Loading

Routine is not loaded until it is calledBetter memory-space utilization; unused routine is never loaded.Useful when large amounts of code are needed to handle infrequently occurring cases.No special support from the operating system

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

is required implemented through program design.

Tópicos

IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

8

Partições Iguais de Tamanho Fixo(como gerenciar a mem. entre os processos?)

ProblemaMemória Principal

ProblemaDificilmente os processos têm o tamanho da partição

fragmentação interna

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

SO

Partições Diferentes de Tamanho Fixo

Filas Múltiplas X Fila ÚnicaMemória Memória Principal

Novos Processos

Principal

Novos Processos

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

SOSO

9

Filas Múltiplasum processo pode esperar muito para começar a execução,

Partições Diferentes de Tamanho Fixo

mesmo se existe espaço disponível

Fila Únicapode-se percorrer a fila para achar o processo com tamanho mais adequado para a partição disponível

discriminação de processos pequenos (p.e., processos interativos)

outras estratégias de escolha

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

outras estratégias de escolhaum processo não pode deixar de usar a memória mais que k vezesreservar partições pequenas

Partições de Tamanho Variável

pontos fracos das partições fixaspequenos processos desperdiçam memóriapouca flexibilidade

soluçãocriar partições dinamicamente:

dar ao processo o que for necessário

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

dar ao processo o que for necessário

10

Partições de Tamanho Variável

SO SO SO SO SO SO SO SO

aspectos:fragmentação externa:

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

fragmentação externa:necessidade de compactação (desfragmentação) da memória

tamanho dos processos:alocação de espaço extra para alocação dinâmica (heap e

pilha)

Gerenciando a Alocação da Memória

Mapa de BitsDividir a memória em unidades de alocaçãoCada unidade está relacionada com um bit

Tamanho da unidade X Tamanho do mapa de bits

Na alocação de memória (n unidades de alocação)busca-se por n bits consecutivos indicando memória livrePonto fraco: algoritmo de busca seqüencial

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

111110000111111...111

...Memória Principal

Mapa de Bits

Processo 1 Espaços Processo 2 Processo n

11

Lista Ligada

Gerenciando a Alocação de Memória

Ordenada por endereço: facilita a atualização da listaDois espaços consecutivos se transformam em apenas um

...Memória Principal

Processo 1 Espaços Processo 2 Processo n

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

P|0|5

Principal

Lista Ligada E|5|4 P|9|6 P|x|y...

Algoritmos de Alocação

first fit:busca o primeiro espaço no qual o processo cabe

next fit:semelhante a first fit, mas a busca não começa do início

best fit: busca espaço com tamanho mais próximo do tamanho do processo

worst fit: busca o espaço com a pior aproximação de tamanho

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

first fit: algoritmo com melhor desempenho e melhor uso de memória

12

Sistema Buddy de AlocaçãoCaracterísticas

Rápida alocaçãoListas de espaços com tamanhos potências de 2Fragmentação interna

0 1 Mb

P1: 140 K 256 KP2: 70 K 256 K 128K

512 K256 K

tempo

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

P2: 70 K 256 K 128KP3: 130 K 256 K 128K 256 KP3: 35 K 256 K 128K 256 K64K

OBS: o SO mantém listas de alocação por potência de 2

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

13

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Quando um programa é carregado na memória o enrereço real (atual) é determinado

RELOCAÇÃO

memória, o enrereço real (atual) é determinado

Um processo pode ocupar diferentes posiçoes de memória durante a execução (causado por swapping)

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

14

EndereçosLogico

Referente a uma localização de memória independente de associações atuais É necessário tradução para end. físico

RelativoExpressado como um enrereço relativo a algum ponto conhecido

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

FísicoEnrereço absoluto ou atual na memória principal

Relocação e Proteção

Endereçamento relativoEnd. Relativo (X)

Reg. Base

Reg Limite

LDA X

X

Somador

Comparador

Início do Processo

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Interrupção

Reg. Limite

15

Tópicos

IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Swapping

ação de mover processos entre a memória e o discomecanismo para superar a limitação do tamanho de memóriap pswap space: área para armazenar processos no disco durante swappingalgoritmos de alocação do processo no disco semelhantes aos de alocação na memória

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

16

Tópicos

IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Memória Virtual

o tamanho total da área de código, dados e pilha pode exceder o tamanho da memória físicao sistema operacional mantém as partes do programa em uso na memória e as outras partes em discoos endereços gerados nos programas são chamados endereços virtuaisos endereços virtuais formam o espaço de endereçamento virtual

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

17

Suporte de hardware necessárioPara memória virtual

Suporte de HW para paginação e segmentaçãosegmentação

O SO tem que gerenciar o deslocamentod á i t t ó i

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

de páginas e segmentos entre a memória e o disco

PaginaçãoCada processo possui uma tabela de páginaspáginas

Cada entrada na tabela de página contêm o número de um frame para a memória principal

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Um bit é necessário para indicar se a página está na memória

18

Bit de modifiação

Outro bit é necessário para indicar se a pagina foi modificada desde sua últimapagina foi modificada desde sua última carga na memória

Caso não tenha ocorrido alterações, a página não necessita ser “swapped out”

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

página não necessita ser swapped out

Entradas da tabela de página

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

19

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Two-Level Scheme for 32-bit Address

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

20

Tabelas de Páginas

A tabela de páginas pode ocupar espaço demais da memóriademais da memóriaTabelas de páginas são também colocadas em memória virtualQuando o processo está rodando, parte da tabela de página está na memória

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

da tabela de página está na memória

Translation Lookaside Buffer

Each virtual memory reference can cause two physical memory accessescause two physical memory accesses

one to fetch the page table entryone to fetch the data

To overcome this problem a high-speed cache is set up for page table entries

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

p p gcalled the TLB - Translation Lookaside Buffer

21

Translation Lookaside Buffer

Contains page table entries that have been most recently usedbeen most recently usedFunctions same way as a memory cache

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Translation Lookaside Buffer

Given a virtual address, processor examines the TLBexamines the TLBIf page table entry is present (a hit), the frame number is retrieved and the real address is formedIf page table entry is not found in the

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

If page table entry is not found in the TLB (a miss), the page number is used to index the process page table

22

Translation Lookaside Buffer

First checks if page is already in main memorymemory

if not in main memory a page fault is issuedThe TLB is updated to include the new page entry

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

23

Page Size

Smaller page size, less amount of internal fragmentationgSmaller page size, more pages required per processMore pages per process means larger page tablesLarger page tables means large portion of page

bl i i l

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

tables in virtual memorySecondary memory is designed to efficiently transfer large blocks of data so a large page size is better

Page Size

Small page size, large number of pages will be found in main memorywill be found in main memoryAs time goes on during execution, the pages in memory will all contain portions of the process near recent references. Page faults low.Increased page size causes pages to

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Increased page size causes pages to contain locations further from any recent reference. Page faults rise.

24

Page Size

Small page size, large number of pages will be found in main memorywill be found in main memoryAs time goes on during execution, the pages in memory will all contain portions of the process near recent references. Page faults low.Increased page size causes pages to

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Increased page size causes pages to contain locations further from any recent reference. Page faults rise.

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

25

Memória Virtual (cont.)

Placa com CPU

a CPU envia endereçosvirtuais para a UGM

CPUMemória Controlador

de disco

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Unidade de Gerenciamentode Memória (UGM)

Barramentoa UGM enviaendereços físicospara a memória

Paginação

Idéia BásicaDividir a memória (page frames) e o processo em (p g f ) ppedaços pequenos (páginas virtuais)

Semelhante às partições de tamanho fixoPáginas são menoresUm processo pode ocupar mais que uma páginaA á i ã i l d i

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

As páginas não precisam ser alocadas continuamente

26

Tabela de Páginas0-4K 2

4K-8K 18K-12K 6

0-4K4K-8K

8K-12Kd12K-16K 0

16K-20K 420K-24K 324K-28K X28K-32K X32K-36K X36K-40K 540K-44K X

12K-16K16K-20K20K-24K24K-28K28K-32K

page frame

espaçode end.virtual

endereçosde memória

física

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

40K-44K X44K-48K 748K-52K X52K-56K X56K-60K X60K-64K X

página virtual

Paginação: Tabelas de Páginas

0

1

Memória Principal

0 0 0 2 0 32

3

4

5

6

7

0

1

2

3

0

1

6

7

0

1

2

3

2

9

10

11

0

1

2

3

4

5

Tabelas de Páginas

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

8

9

10

11

27

Operação Interna da UGM0 010 1 1 001 12 110 13 000 13 000 14 100 15 011 16 000 07 000 08 000 09 101 110 000 0

0010 000000000100 110 000000000100

endereço virtual: 8196

endereço físico de saída: 24580

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

11 111 112 000 013 000 014 000 015 000 0

Paginação: Endereçamento

Ilustração do Procedimento de Endereçamento

lExemploTamanho da Página: 2KTamanho do Processo: 4,5 KEndereço Relativo: 05DE

Número de Página

Deslocamento

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Processo

0

1

2

0

1

7

Tabela de Página

00000 10111011110

05DE

5DE

28

Exemplo de Entrada da Tabela de Páginas

presente/ausentemodificada

p

número do page frame

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

referenciada proteção

Exemplos de tamanho de páginas

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

29

Objetivos da Substituição de Páginas

Objetivo PrincipalMinimizar o número de faltas de páginas

Conseqüentemente...Minimizar a sobrecarga do sistema operacionalMinimizar o número de I/Oetc

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Páginas virtuais referenciadas são colocadas na memória até quetodas as molduras (frames) estejam preenchidas

Substituição de Páginas

Quando não há mais molduras vazias, escolhe-se uma dasque estão ocupadas. Qual ????

Fatores que influenciam:

1) A üê i d f ê i ( d d á i )

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

1) A seqüência de referências (endereços das páginas)2) O número de molduras disponíveis3) O algoritmo de substituição

30

Algoritmos de Substituição de Páginas

1. Algoritmo ótimo2. Página não usada recentemente: NRU (Not-Recently-Used page)g ( y p g )3. First-In, First Out (FIFO)4. Segunda Chance5. Algoritmo do Relógio6. Substituição da página menos recentemente usada: LRU (Least

Recently Used)

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Anomalia de Balady : nem sempre é verdadeiro que quantomais molduras, menos faltas de página ocorrerão., p g

Quando uma página referenciada não está na

memória

Exemplo :

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Seqüência : 0 1 2 3 0 1 4 0 1 2 3 43 e 4 moldurasAlgoritmo FIFO

31

Algoritmo Ótimo

o frame a ser substituído é o que será referenciado por últimoi í l d i l t dimpossível de ser implementadoútil para análises comparativas de comportamento de algoritmos

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

os seguintes bits são mantidos para cada página:R- página referenciada (lida ou escrita)

á i difi d

Página não Usada Recentemente (NRU)

M -página modificada

classesClasse 0: R=0 e M=0Classe 1: R=0 e M=1Classe 2: R=1 e M=0Classe 3: R=1 e M=1

Algoritmo: remover aleatoriamente uma páginaprocurando da classe 0 à classe 3

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

fácil de programar, bom desempenho e simples

32

mantém-se uma lista de páginas ordenada por tempo de cargaalgoritmo:

Algoritmo FIFO

algoritmo:primeira página carregada, primeira página a sair

simplicidadeponto fraco: o critério não é bom

páginas antigas podem estar sendo muito referenciadas

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

baseado no algoritmo FIFOusa o bit R Se R=1 faz R=0 e coloca a página no final da fila

Algoritmo da Segunda Chance

usa o bit R. Se R=1, faz R=0 e coloca a página no final da fila

Lista de Páginas

R=1R=1R=0R=0R=1 Lista de Páginas

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Lista de Páginas

R=0R=0 R=0R=0R=1

R=0R=0 R=0R=1R=0

33

forma alternativa de implementação do algoritmo de segunda chancemantém uma lista circular de páginas com um apontador para a

Algoritmo do Relógio

mantém uma lista circular de páginas com um apontador para a página mais antigase R=0, substitui a página e atualiza o apontadorse R=1, atualiza o apontador

Lista de Páginas R=1 R=1Lista de

Pá iR=1

Lista de Páginas

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Páginas

R=1

R 1

R=0R=0

R=0 R=0

R=0R=0

R=0

PáginasR=0

R=0R=0

R=0Páginas

baseia-se no princípio da localidade de referênciaá i d há i t

Algoritmo da Página Menos Recentemente Usada (LRU)

remove a página usada há mais tempoalgumas implementações:

em hardwareem software

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

34

Implementação de LRU em hardware (1)

equipar o hardware com um contador C que automaticamente tem seu valor incrementado a cada instruçãoçcada entrada na tabela de páginas tem um campo para um valor do contadordepois de cada acesso à memória, o valor de C é armazenado na entrada da página acessadaquando uma página tiver que sair, escolhe-se a página com menor valor do contador

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

menor valor do contador

mantém-se uma matriz M(n x n), onde n é o número de páginas

Implementação de LRU em hardware (2)

algoritmoM ← 0se página k for referenciada

M[k,*] ← 1M[*,k] ← 0

a linha com menor número de bits será a página referenciada há mais tempo

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

tempoProblema: SO dependente do Hardware

35

pequena variação de LRU (aging)manter um contador associado a cada página e periodicamente:

d l bi d d di i

Implementação de LRU por software

deslocar os bits do contador para a direita somar o bit R à parte mais significativa

escolhe a página com menor valor do contador

P1 P2 P3 P4 P5

C1: 1000C2: 0000C 1000

C1: 0100C2: 1000C 0100

Obs.: dentro de um intervalo pode

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

R: 1 0 1 1 0

R: 0 1 0 1 0

C3: 1000C4: 1000C5: 0000

C3: 0100C4: 1100C5: 0000

intervalo pode haver várias referências

Questões de Projeto de Sistemas de Paginação

políticas de carregamento de páginaslíti d l ã ( l b l/l l) d á ipolíticas de alocação (global/local) de páginas

tamanho das páginasaspectos de implementação

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

36

Políticas de Carregamento de Páginas

por demandauma página é carregada apenas quando uma referência a ela é feita (falta de página)pode haver muitas faltas de página no início do processo, depois há uma estabilização

pré-paginaçãoantecipa-se às faltas de páginas, trazendo para a memória um conjunto de páginaspode ser usada no início do processo ou quando o processo é re-

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

pode ser usada no início do processo ou quando o processo é reescalonado para executar (trazido do disco para memória)baseia-se no working set do processo (conjunto de páginas sendo acessadas pelo processo)

alocação local: considera-se somente um processol ã l b l id t d ó i

Políticas de Alocação (global/local) de páginas

alocação global: consideram-se todos os processos na memóriaem geral funciona melhor, principalmente quando o working set pode variar

quantas páginas alocar por processoa cada processo um número fixo de frames

se for menor que o conjunto de trabalho do processo?a cada processo um número variável de frames

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

a cada processo um número variável de framesse o número de faltas for alto, mantém mais páginas na memóriacusto de gerenciamento: mais um ponto para ser controlado

37

páginas pequenas x páginas grandes:páginas pequenas:

Tamanho das Páginas

páginas pequenas: tendem a uma menor fragmentação internatendem a um melhor uso da memória

páginas grandes:tendem a melhor eficiência (menos páginas sendo movidas para/de o disco (swapped))

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Aspectos de Implementação

trancas (locks) em moldurasalgumas molduras podem ser trancadas (locked) e não podem ser retiradas da memória (suporte a operação de I/O)

quando uma página modificada será escrita em memória secundária

por demandasomente quando a página é selecionada para ser substituídaminimiza o número de escritas aumenta o tempo de substituição de páginas

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

aumenta o tempo de substituição de páginaspré-atualização

antes de ser substituída (periodicamente, várias páginas que sofreram atualização são escritas no disco)manutenção de um conjunto de frames livres

38

Aspectos de Implementação (cont.)

buffer de informação sobre a tabela de páginas em cache interno à UGM (translation lookaside buffer)

reduzir o número de acessos à memória

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Tópicos

IntroduçãoP ti i t d ó iParticionamento de memóriaSwappingMemória virtual/PaginaçãoSegmentaçãoExercícios

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

39

Segmentação

Idéia BásicaDividir o processo em segmentos não necessariamente de tamanhos iguaisDividir o processo em segmentos não necessariamente de tamanhos iguais

CaracterísticasEsquema de endereçamento

tabelas de segmentos para indicar o tamanho do segmento e o endereço basePodem ser de tamanhos diferentesVisível para o programador ou para o compilador

geralmente definem-se segmentos de dados, código, pilha etc

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

partes de um programa podem mudar de tamanho independentemente de outrasauxilia na implementação de bibliotecas compartilhadas

Exemplo de Segmentação:Tabelas de um Compilador

segmento 0 segmento 1 segmento 2 segmento 3 segmento 4

tabelade

símbolos

textofonte

constantesárvore

deparsing

pilhade

chamadas

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Array ...

40

Segmentação Pura

segm.04K

segm.04K

segm.7

segm.04K

segm.7

segm.04K

segm.7

segm.04K

segm.7segm.1

8K

segm.25K

segm.38K

g5K

segm.25K

segm.38K

3K

g5K

segm.25K

segm.38K

3K

g5K

segm.25K

segm.64K

3K segm.25K

segm.64K

segm.54K

g5K

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

8K

segm.47K

8K

segm.47K

8K

segm.54K3K

segm.54K3K

4K

10K

Segmentação com Paginação

pág. 0

pág. 1

tabela de descritoresde segmentos

tabela de páginas para segmento 0

ponteirosá isegm. 0

segm. 1

segm. 2

segm. 3

segm. 4

segm 5

pág. 1

pág. 2

pág. 0

tabela de páginas para segmento 1

para páginas

i

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

segm. 5pág. 1

pág. 2

ponteirospara páginas

41

Obtenção de Endereço Físico com Segmentação

seletor desegmento

deslocamento

Endereco virtual : {#seg, deslocamento)

segmento

descritorendereço base

limite

outros campos

+

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

endereço linear

endereço físico

tradução de endereço em segmentação pura

#seg Deslocmento d

Tam | Base | bit P

base + d

tam

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Tabela de Segmentopor processo

42

tradução de endereço em segmentação com paginação

#seg Deslocmento

num página #p, desl. página d

#tab Página

#P

#p’

#p’ end físico #p’ + d

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Tabela de Segmentopor processo

tab de páginas, uma por seg.

Entrada da tabela de segmentos

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

43

P t ãProteção

E

Compartilhamento

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

Exercícios

Extraídos de Modern Operating Systems, A.S.Tanenbaum, Prentice Hall, Inc. 1992

1. Considere um sistema de swapping em que a memória consiste dos seguintes tamanhos de espaços (em ordem de memória): 10K, 4K, 20K, 18K, 7K, 9K, 12K e 15K. Qual espaço é usado para pedidos sucessivos de segmentos de(a) 12K(b) 10K

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

(c) 9Kusando-se first fit? Repita a questão para best fit, worst fit e next fit.

44

Exercícios (cont.)

2. Um minicomputador usa o sistema buddy para gerenciamento de memória. Inicialmente ele tem um bloco de 256K no endereço 0. çDepois de pedidos sucessivos de 5K, 25K, 35K e 20K, quantos blocos existirão no sistema e quais serão seus tamanhos e endereços?

3. Qual a diferença entre um endereço físico e um endereço virtual?4. Usando a tabela de página da Fig. 3-11, dê o endereço físico

correspondente a cada um dos endereços virtuais seguintes:

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

co espo de te a cada u dos e de eços v tua s segu tes:(a) 20(b) 4100(c) 8300

Exercícios (cont.)5. Um computador tem 4 page frames. O tempo de carregamento,

tempo de último acesso e os bits M e R para cada página estão mostrados abaixo (tempos em clock ticks):mostrados abaixo (tempos em clock ticks):Page frame Carregado Últ.referência R M

0 126 279 0 01 230 260 1 02 120 272 1 13 160 280 1 1

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

(a) que página seria substituída por NRU?(b) que página seria substituída por FIFO?(c) que página seria substituída por LRU?(d) que página seria substituída por Segunda Chance?

45

Exercícios (cont.)

6. Se o algoritmo FIFO de substituição de páginas é usado com quatro page frames e oito páginas virtuais, quantas faltas de páginas ocorrerão para a cadeia de referências 0172327103 se os quatro page frames estão inicialmente vazios? Repita o problema para LRU.

7. Um pequeno computador tem quatro page frames. No primeiro clock tick os bits R são 0111 (página 0 à esquerda). Em clock ticks subseqüentes os valores são 1011, 1010, 1101, 0010, 1010,

LaSiD - Laboratório de Sistemas Distribuídos http://www.lasid.ufba.br

1100 e 0001. Se o algoritmo de aging for usado com um contador de 8 bits, dê os valores dos quatro contadores depois do último tick.