Vous êtes sur la page 1sur 7

Introduo

Unix implementado sobre muitos computadores diferentes

UNIX Gerncia de Memria

baseada, segmentada, paginada, segmentada/paginada

A gerncia de memria garante:


Proteo do espao de endereamento Permitir modificao dinmica do espao de endereamento

Existem ainda requisitos de desempenho:


Manter em memria o maior nmero de processos Minimizar as transferncias entre disco e memria

Dois grupos de implementaes:


Transferncia (Swapping) nas arquiteturas baseadas e segmentadas Paginao nas arquiteturas paginadas e segmentadas/paginadas
Profa.Patrcia D. Costa LPRM/DI/UFES 2 Sistemas Operacionais 2008/1

Transferncia (Swapping)
Arquiteturas baseadas

(1)

Transferncia (Swapping)

(2)

Processos so carregados na memria fsica por inteiro

Existem 4 casos que provocam a transferncia:


chamada fork - preciso espao para o novo processo chamada brk - expande o segmento de dados do processo A funo malloc da biblioteca em C deflagra brk se no houver espao livre para satisfazer a solicitao crescimento natural do stack sistema operacional precisa de espao para carregar em memria um processo que estava swapped-out

Arquiteturas segmentadas:
regies (texto, dados, stack) carregadas de forma contnua em memria

Transfere para disco processos que estejam bloqueados ou com menor prioridade
3

Principal desvantagem
Apenas um pequeno nmero de processos podem encontrar-se simultaneamente na memria fsica

Profa.Patrcia D. Costa LPRM/DI/UFES

Sistemas Operacionais 2008/1

Profa.Patrcia D. Costa LPRM/DI/UFES

Sistemas Operacionais 2008/1

Paginao Conceitos Gerais (1)


A introduo de mquina de 32 bits de espao de endereamento, especialmente o VAX-11/780 (1978) 3BSD foi a primeira verso do UNIX a suportar paginao sob demanda A partir de 1980, a maioria dos UNIXs suportam memria virtual paginada
Promoveu a oportunidade do Unix expandir seus servios de memria virtual

Paginao Conceitos Gerais (2)


Requisitos funcionais para o sub-sistema de memria
Gerncia do espao de endereamento
O kernel aloca espao de end. para um novo processo durante o fork, e desaloca quando o processo exits No caso de um exec, o kernel libera o antigo espao de end. alocando um novo p/ o novo programa So comuns operaes p/ mudar o tamanho das regies de pilha, dados e adicionar novas regies (e.g. memria compartilhada)

Traduo de endereos
Usando-se a MMU (address translation maps) Na ocorrncia de page faults, o fault handler do kernel deve trat-la (ex: trazendo a nova pgina p/ memria)

Gerncia da memria fsica


O sistema a utiliza como uma cache O kernel deve garantir uso otimizado e consistncia

Profa.Patrcia D. Costa LPRM/DI/UFES

Sistemas Operacionais 2008/1

Profa.Patrcia D. Costa LPRM/DI/UFES

Sistemas Operacionais 2008/1

Paginao Conceitos Gerais


Proteo de memria

(3)

Gerncia do Espao de Endereamento Virtual (1)


O espao de endereamento de um processo organiza-se em regies de memria

Requisitos funcionais para o sub-sistema de memria (cont.)


O kernel implementa proteo usando os mecanismos de hardware disponveis. Se ele detecta uma tentativa de acesso a uma localizao ilegal, ele notifica o processo atravs de um sinal (SIGSEGV)

Memria compartilhada
Exemplos:

processos executando um mesmo programa podem compartilhar uma mesma regio de texto; bibliotecas compartilhadas Em algumas implementaes, aps um fork, pai e filho compartilham regio de dados enquanto no feita nenhuma alterao na mesma
Aumenta o desempenho da gerncia de memria paginada

rea de texto (cdigo do programa) rea de dados, inicializados ou no (variveis alocadas estaticamente) pilha (variveis automticas ou locais, passagem de parmetros, salvar e restaurar endereos de retorno) Alm disso: heap, shared memory,
shared libraries

Low Address (0x00000000)

Text (shared) Initialized Data

app1 Address space

Unitialized Data Heap (Dynamic)

Monitoramento da carga do sistema


A carga depende do nmero de processos, do tamanho dos mesmos, e do padro de acesso memria

Cada regio tem uma tabela de pginas prpria

High Address (0x7fffffff)

stack (dynamic) Environment

Profa.Patrcia D. Costa LPRM/DI/UFES

Sistemas Operacionais 2008/1

Profa.Patrcia D. Costa LPRM/DI/UFES

Sistemas Operacionais 2008/1

Gerncia do Espao de Endereamento Virtual (2)


A pginas se diferem!
Proteo
Pginas da rea de texto so em geral e

Algoritmos de Substituio A maioria dos UNIX utiliza poltica global de substituio


So usadas variantes do LRU Quando liberar pginas da memria?
garantido um nmero mnimo de pginas residentes por processo

heap so read-write

read-only, enquanto

pilha, dados

Inicializao
Cdigo e dados inicializados: lidos do arquivo executvel Dados inicializados:

zero filled

u area e kernel stack: tm suas pginas copiadas do pai c/ alguns elementos alterados

Shared pages podem conter tanto dados quanto cdigo


Dados podem ser compartilhados apenas at serem modificados

Na hora em que ocorre um page fault: soluo ineficiente que degrada o desempenho do sistema. Em geral, os kernels implementam um esquema onde as pginas so periodicamente liberadas e colocadas em um pool de pginas livres free page list (molduras) Prepaging: as pginas do working set so trazidas para memria antes que o processo seja escalonado
10 Sistemas Operacionais 2008/1

Profa.Patrcia D. Costa LPRM/DI/UFES

Sistemas Operacionais 2008/1

Profa.Patrcia D. Costa LPRM/DI/UFES

Requisitos de Hardware
O subsistema de gerncia de memria se apia no hardware para a execuo de vrias tarefas Traduo de endereos

Tabela de Pginas por Regio


Tabela de Regies
Text

(1)

MMU

Tabelas de p ginas
empty

8K

Data 32K Stack 64K Endere os Virtuais 87K 541K 783K 986K 897K
. . . . . . . .

Tabelas de pginas

Tabelas de pginas Translation Lookaside Buffer (TLB) O hardware dita o formato dessas estruturas, mas o S.O. responsvel pelo set up e a manuteno das mesmas uma tabela de pginas para endereos de kernel uma ou mais tabelas de pginas para cada processo
11

137K 852K 764K 433K 333K


. . . . . . . .

552K 727K 941K 1096K 2001K


. . . . . . . .

Em geral cada regio/rea tem uma tabela de pginas prpria


Sistemas Operacionais 2008/1 Profa.Patrcia D. Costa LPRM/DI/UFES 12

Profa.Patrcia D. Costa LPRM/DI/UFES

Sistemas Operacionais 2008/1

Tabela de Pginas por Regio


O que ocorre aps um fork()?

(2)

Estruturas de Dados para Gerncia de Memria


Tabela de Processos do Kernel Kernel Region Table Espao de Endereamento de um Processo
...

Tabelas de Pginas

proc structure

...

Per Process Region Table

Text
File Descriptor Table

Data Stack
14 Sistemas Operacionais 2008/1

U Area
Profa.Patrcia D. Costa LPRM/DI/UFES 13 Sistemas Operacionais 2008/1 Profa.Patrcia D. Costa LPRM/DI/UFES

Page Faults
Faltas de Presena Faltas de Proteo Faltas de Validao
A pgina no est presente na tabela de pginas ( h PTE) PTE marcada como invlida (pgina residente na memria) O acesso pretendido no est de acordo com a proteo definida para a pgina

Memria Virtual do 4.3 BSD


Baseada no VAX-11 (32 bits c/ pginas de 512 bytes) Trs estruturas de dados principais

Core map (tabela de frames da memria fsica) Page tables (tabelas de pginas p/ traduo) Disk maps
Mapeia pginas do espao de endereamento virtual em blocos de discos da rea de swap Localizados na u-area

Na ocorrncia de um Page Fault, a MMU gera uma interrupo, e o controle transferido para o respectivo handler no kernel
O handler pode:
tentar resolver o problema (ex: trazendo a pgina para a memria) notificar o processo enviando um sinal (SIGSEGV)

Profa.Patrcia D. Costa LPRM/DI/UFES

Poder eventualmente ser tratado pelo processo, por exemplo, aumentando a regio de dados.
15

Sistemas Operacionais 2008/1

Profa.Patrcia D. Costa LPRM/DI/UFES

16

Sistemas Operacionais 2008/1

Memria Virtual do 4.3 BSD

Core map
Kernel code e parte dos dados do kernel

Memria Virtual do 4.3 BSD


Virtual Address Space

Memria Fsica
cmap[]

Paged pool descrito como um array de estruturas cmap:


Identificao < owner(pid), type, virtual page number> Free list pointers <next, prev> (mantido em LRU aproximado) Text page cache <device, block number> Synchronization flags

P0 (regio de programa): user text e data P1 (regio de controle): user stack, kernel stack, u area

S0 (regio de sistema): kernel text e data Reserved: no suportada Data e stack podem crescer livremente

Profa.Patrcia D. Costa LPRM/DI/UFES

17

Sistemas Operacionais 2008/1

Profa.Patrcia D. Costa LPRM/DI/UFES

18

Sistemas Operacionais 2008/1

Memria Virtual do 4.3 BSD Tabelas de Pginas (1)


O hardware do VAX suporta diretamente tabelas de pginas para traduo A proc structure possui uma descrio incluindo a localizao e o tamanho de cada tabela de pgina do processo Existe uma nica tabela de pginas de sistema
Ela encontra-se de forma contgua na memria fsica

Memria Virtual do 4.3 BSD Tabelas de Pginas


(2)
length register base address register

Tabela de Pginas de Sistema (kernel)

reo Ende o fsic


Tabela de

Cada processo possui 2 tabelas de pginas: para mapear P0 e P1


Elas encontram-se de forma contgua no espao de endereamento virtual do kernel

length register base address register

reo Ende al virtu

Pginas de P0

Cada tabela de pginas definida por um par de registradores


base address register length register
length register base address register Endereo virtual

Tabela de Pginas de P1

Profa.Patrcia D. Costa LPRM/DI/UFES

19

Sistemas Operacionais 2008/1

Profa.Patrcia D. Costa LPRM/DI/UFES

20

Sistemas Operacionais 2008/1

Memria Virtual do 4.3 BSD Traduo de Endereos


A traduo de um endereo virtual dentro do espao de endereamento do processo envolve dois acessos memria
O primeiro, para a tabela de pginas de sistema, para calcular o endereo fsico da tabela de pginas do processo O segundo, para a tabela de pginas (de uma das regies) para calcular o endereo fsico do elemento especificado

Memria Virtual do 4.3 BSD Estados das Pginas


Resident Fill-on-demand
Fill-from-text Zero-fill

Troca de contexto
Os registradores so atualizados TLB dividida em duas sees
Uma para traduo de endereos de sistema Outra (per-process

Swapped out

base address

length

das tabelas de pginas de P0 e P1

Estados codificados nas PTEs

section) para traduo de endereos de processo


descarregada durante a troca de

Somente a contexto

per-process section

Profa.Patrcia D. Costa LPRM/DI/UFES

21

Sistemas Operacionais 2008/1

Profa.Patrcia D. Costa LPRM/DI/UFES

22

Sistemas Operacionais 2008/1

Memria Virtual do 4.3 BSD rea de Swap

Memria Virtual do 4.3 BSD


Free Page List
Page deamon
(1)

(dmap- disk map)

Quando um processo criado o kernel aloca espao na rea de swap para os dados e pilhas As pginas de text (e dados no modificados) teoricamente no precisam de ser swapped out
No BSD, elas tambm so colocadas em swap, para evitar a recomputao do

Processo que mantm a lista de frames livres Acordado periodicamente para checar o nmero de page frames livres (indicado pela varivel freemem):
minfree
<= freemem <=

system block number

file

maxfree

Alocao de rea de swap controlada em estruturas


dmap
Cada regio possuiu uma

Se for inferior, o page daemon transfere pginas do disco para a memria O critrio de substituio padro o NRU, implementado atravs do algoritmo two handed clock (similar ao Algoritmo do Relgio)
A tabela cmap[] tratada como circular So mantidos dois ponteiros que avanam juntos O ponteiro da frente zera o O ponteiro de traz verifica o

Em geral mantm-se freemem = 1/4 da memria)

dmap de tamanho fixo

refrenced bit reference bit

Profa.Patrcia D. Costa LPRM/DI/UFES

23

Sistemas Operacionais 2008/1

Profa.Patrcia D. Costa LPRM/DI/UFES

24

Sistemas Operacionais 2008/1

Memria Virtual do 4.3 BSD


Free Page List
(2)

Discusso
Tamanho de pgina reduzido (512 bytes). Quantidade reduzida de regies Normalmente necessita-se de 3 segmentos (cdigo/dados/pilha), VAX/VMS tem 2. Cdigo e dados na mesma regio Pouco modular S.O. completamente amarrado ao hardware No h suporte para memria ou biblioteca compartilhadas Sem suporte para memory mapped files

Core Map
Profa.Patrcia D. Costa LPRM/DI/UFES 25 Sistemas Operacionais 2008/1 Profa.Patrcia D. Costa LPRM/DI/UFES 26 Sistemas Operacionais 2008/1

Memory mapped files

(1)

Memory mapped files

(2)

Dois processos lendo uma mesma pgina de um arquivo

Profa.Patrcia D. Costa LPRM/DI/UFES

27

Sistemas Operacionais 2008/1

Profa.Patrcia D. Costa LPRM/DI/UFES

28

Sistemas Operacionais 2008/1