Sei sulla pagina 1di 37

Sistemas Operacionais

Gerncia de Memria

GERNCIA DE MEMRIA
memria = vetor de palavras (ou bytes), cada uma com endereo prprio a memria usada para armazenar os diversos programas em execuo, bem como os dados sobre a execuo dos programas na multiprogramao diversos processos so colocados na memria ao mesmo tempo para que o chaveamento entre eles seja o mais rpido possvel o SO deve permitir que os processos compartilhem a memria de forma segura e eficiente, usando os recursos disponveis no hardware
1

Sistemas Operacionais

Gerncia de Memria

MEMRIA LGICA E FSICA (1)


memria lgica aquela que o processo enxerga, ou seja, aquela que o processo capaz de acessar
os endereos manipulados pelo programa so lgicos em geral capa processo possui uma memria lgica independente da memria lgica dos outros processos

memria fsica aquela que efetivamente acessada pelo circuito integrado de memria
dois processos podem ter espaos de endereamento iguais que correspondem a reas diferentes do espao de endereamento fsico

a unidade de gerncia de memria (MMU):


prov mecanismos de gerncia de memria para o SO converte/mapeia endereos lgicos em fsicos
2

Sistemas Operacionais

Gerncia de Memria

MEMRIA LGICA E FSICA (2)


quando os endereos lgicos coincidem com os endereos fsicos, pode-se implementar proteo de memria usando dois registradores de limite
os endereos do programa so gerados a partir de 0 e devem ser ajustados por um carregador realocador durante a carga relocao em tempo de carga

Sistemas Operacionais

Gerncia de Memria

MEMRIA LGICA E FSICA (3)


quando os endereos lgicos no coincidem com os fsicos, pode-se trabalhar com um registrador de limite e outro de base
os endereos so gerados a partir de 0, mas no necessria nenhuma alterao de endereo o carregador chamado de absoluto relocao em tempo de execuo

Sistemas Operacionais

Gerncia de Memria

MEMRIA LGICA E FSICA (4)


o acesso aos registradores de limite e de base feito atravs de instrues privilegiadas o contedo desses registradores faz parte do contexto do processo tcnicas de gerncia de memria
parties fixas parties variveis swapping paginao segmentao segmentao paginada
5

Sistemas Operacionais

Gerncia de Memria

PARTIES FIXAS (1)


simples reserva-se uma rea de memria para o SO o resto da memria dividido em parties fixas de tamanhos diferentes o nmero de parties/processos em execuo fixo novos processos devem aguardar que uma partio de tamanho suficiente fique livre h desperdcio de memria com:
fragmentao interna fragmentao externa
6

Sistemas Operacionais

Gerncia de Memria

PARTIES FIXAS (2)


Memria Fsica

Sistema Operacional 225 Kbytes

Partio 1 200 Kbytes

Partio 2 100 Kbytes Partio 3 50 Kbytes Partio 4 25 Kbytes


7

Sistemas Operacionais

Gerncia de Memria

PARTIES VARIVEIS (1)


as parties so ajustadas dinamicamente s necessidades dos processos o tamanho e o nmero de parties varivel o SO mantm uma lista de reas livres de memria quando for necessrio alocar memria, percorre-se a lista usando uma das seguintes tcnicas:
first-fit: a primeira rea suficiente best-fit: a que deixa a menor sobra worst-fit: a que deixa a maior sobra circular-fit (ou next-fit): a prxima a partir da ltima alocao last-fit: a ltima rea

Sistemas Operacionais

Gerncia de Memria

PARTIES VARIVEIS (2)


a rea necessria alocada e o restante continua livre quando um processo termina, a memria que ele ocupava liberada reas livres adjacentes devem ser agrupadas a alocao pode ser:
exata:
no ocorre fragmentao interna podem surgir reas de memria pequenas, difceis de serem alocadas

em pargrafos (ou blocos):


h uma pequena fragmentao interna facilita o alinhamento de variveis na memria so necessrios menos bits para enderear uma rea de memria
9

Sistemas Operacionais

Gerncia de Memria

PARTIES VARIVEIS (3)


a lista de reas livres contm um descritor para cada rea com: o endereo, o tamanho e apontadores para lacunas adjacentes este descritor pode ser armazenado no incio do prprio pargrafo, evitando a necessidade de alocar memria para a lista de reas livres a fragmentao externa um problema grave pode-se compactar a memria, agrupando as reas livres de memria, o que exige:
certo tempo de processamento e algum mecanismo de relocao dinmica
10

Sistemas Operacionais

Gerncia de Memria

PARTIES VARIVEIS (4)


exemplo: os seguintes processos devem ser executados em um sistema com 256Kbytes de memria fsica (o SO ocupa 40Kbytes da memria fsica)
Processo Mem. (K) Tempo

P1 P2 P3 P4 P5

60 100 30 70 50

10 5 20 8 15
11

Sistemas Operacionais

Gerncia de Memria

PARTIES VARIVEIS (5)


Processo Mem. (K) Tempo

0K SO SO SO SO SO SO

P1 216K

P1

P5 60K 10K

P5 60K

P5 60K

P1 P2 P3 P4 P5

60 100 30 70 50

10 5 20 8 15

156K P2

P4 100K

P4 100K

110K 166K

216K

30K P3 56K 26K 256K T=0 P3 26K T=5

30K P3 26K T=10 P3 26K T=13 T=20 T=25

12

Sistemas Operacionais

Gerncia de Memria

EXERCCIO (1)
Considere um sistema cuja gerncia de memria feita atravs de parties variveis. Nesse momento, existem as seguintes lacunas (reas livres): 10K, 4K, 20K, 18K, 7K, 9K, 12K e 13K, nessa ordem. Quais espaos sero ocupados pelas solicitaes: 5K, 10K e 6K, nessa ordem, se:
first-fit for utilizado? best-fit for utilizado? worst-fit for utilizado? circular-fit for utilizado? last-fit for utilizado?
13

Sistemas Operacionais

Gerncia de Memria

EXERCCIO (2)
Gerencie uma rea de memria de usurios de 640 KB atravs da utilizao de mltiplas parties variveis para as seguintes requisies:
Processo: Chegada: Memria (KB): Durao: A 0 320 10 B 0 192 15 C 0 128 8 D 11 224 10 E 12 64 9

use a poltica first-fit use a poltica best-fit use a poltica worst-fit

14

Sistemas Operacionais

Gerncia de Memria

SWAPPING (1)
utilizado quando no possvel manter todos os processos simultaneamente na memria um processo sofre swap-out quando ele retirado da lista de prontos, inserido na lista de suspensos e copiado da memria para o disco um processo sofre swap-in quando ele retorna para a memria o swapping permite que o SO execute mais processos do que a memria normalmente suportaria
15

Sistemas Operacionais

Gerncia de Memria

SWAPPING (2)
o custo para os processos alto o processo deve ficar no disco um um tempo razovel para justificar o swapping mais aceitvel para processos que executam em segundo plano do que para processos interativos pode ser usado tanto com parties fixas quanto com parties variveis
16

Sistemas Operacionais

Gerncia de Memria

PAGINAO (1)
acaba com a necessidade de colocar o programa em uma rea contgua de memria elimina a fragmentao externa o espao de endereamento lgico (memria lgica) dividido em pginas de tamanho fixo
cada endereo lgico pode ser dividido em duas partes: nmero de pgina e deslocamento todos os bytes de uma mesma pgina possuem o mesmo nmero de pgina, porm, deslocamentos diferentes
17

Sistemas Operacionais

Gerncia de Memria

PAGINAO (2)
o espao de endereamento fsico (memria fsica) dividido em quadros (frames ou pginas fsicas), de tamanho igual ao tamanho da pgina
cada endereo fsico pode ser dividido em duas partes: nmero de quadro e deslocamento

as pginas de um programa podem ser colocadas em quaisquer quadros disponveis da memria fsica o SO gerencia a carga do programa montando uma tabela de pginas que contm o nmero do quadro onde cada pgina foi carregada

18

Sistemas Operacionais

Gerncia de Memria

PAGINAO (3)
viso geral:
o compilador gera cdigo para os programas como se eles fossem executar de forma contgua na memria o SO carrega as pginas do processo em quaisquer quadros livres e cria a tabela de pginas o hardware converte endereos lgicos em fsicos durante a execuo com a ajuda da tabela de pginas

19

Sistemas Operacionais

Gerncia de Memria

PAGINAO (4)
exemplo: (pginas de 4Kbytes)
qual o endereo fsico correspondente ao endereo lgico 7K? 0K Tabela de 0 4K pginas 0K 1 Pgina A 8K Pgina A 0 1 4K 2 12K Pgina B 1 4 3 Pgina C 16K 8K Pgina C 2 3 4 Pgina B 20K 12K Pgina D 3 6 5 16K 24K 6 Pgina D 28K Memria 7 lgica 32K (pginas) Memria fsica (quadros)
20

Sistemas Operacionais

Gerncia de Memria

PAGINAO (5)
Endereo lgico pgina Endereo deslocamento fsico

deslocamento

frame

frame

Tabela de pginas

21

Sistemas Operacionais

Gerncia de Memria

PAGINAO (6) - EXERCCIOS


considerando a tabela de pginas apresentada anteriormente, quais os endereos fsicos correspondentes aos seguintes endereos lgicos?
1K? 14K? 17K?

calcule o nmero de bits para pgina, quadro e deslocamento.


Memria lgica = 512K, Memria fsica = 512K, Tamanho de pgina = 8K Tamanho de pgina = 4K, Nmero de pginas = 8, Nmero de quadros = 16
22

Sistemas Operacionais

Gerncia de Memria

PAGINAO (7)
a paginao no apresenta fragmentao externa, apenas uma pequena fragmentao interna, referente ltima pgina do processo dimenses tpicas:
tamanho das pginas: 1Kbyte at 8Kbytes endereamento lgico: 64Kbytes at vrios Gbytes endereamento fsico: geralmente menor do que o lgico

se as pginas forem maiores:


um processo ter menos pginas e a tabela de pginas ser menor a leitura do disco ser mais eficiente maior fragmentao interna
23

Sistemas Operacionais

Gerncia de Memria

PAGINAO (8) - IMPLEMENTAO


o controle dos quadros livres pode ser implementado atravs de:
um mapa de bits (pode ser lento com tabelas grandes com alta ocupao) lista encadeada de quadros livres

a tabela de pginas pode ser implementada:


atravs de registradores dedicados de acesso rpido na prpria memria principal usando Translation Lookaside Buffer (TLB)

24

Sistemas Operacionais

Gerncia de Memria

PAGINAO (9) - IMPLEMENTAO


TP em registradores dedicados de acesso rpido:
s pode ser usado com tabela pequenas rpido na troca de contexto, os registradores devem ser salvos no descritor de processo

TP na memria principal:
usa dois registradores: PTBR (Page Table Base Register) e PTLR (Page Table Limit Register) suporta tabelas grandes o tempo de acesso memria duplicado na troca de contexto, o PTBR e o PTLR devem ser salvos no descritor de processo
25

Sistemas Operacionais

Gerncia de Memria

PAGINAO (10) - IMPLEMENTAO


TP usando Translation Lookaside Buffer (TLB):
as entradas mais acessadas ficam em uma memria cache quando uma entrada pesquisada pode ocorrer um acerto (um nico acesso memria) ou uma falha (dois acessos memria e a informao atualizada no TLB) o TLB geralmente implementado usando memria associativa na troca de contexto, o PTBR e o PTLR devem ser salvos no descritor de processo e a cache deve ser esvaziada esquemas alternativos salvam o nmero do processo nas entradas do TLB

26

Sistemas Operacionais

Gerncia de Memria

PAGINAO (11) - EXERCCIO


Qual a taxa efetiva de acesso memria, quando se tem tempo de acesso memria associativa de 5ns, tempo de acesso memria principal de 60ns e taxa de acerto de 80%?

27

Sistemas Operacionais

Gerncia de Memria

PAGINAO (12) - PROTEO


alm do n. do quadro, cada entrada da TP pode conter:
bit de vlido/invlido bit de apenas leitura (read-only, RO) bit de apenas execuo (execute-only, XO) bit de leitura e escrita (read-write, RW)

o acesso a uma pgina de forma diferente do que foi definido nos seus bits gera uma interrupo de erro a proteo de memria garantida pela MMU:
o SO deve atualizar a tabela de pginas e os registradores PTBR e PTLR em modo monitor a partir da, qualquer processo que tentar acessar uma posio de memria que no seja sua ser abortado
28

Sistemas Operacionais

Gerncia de Memria

PAGINAO (13)
a grande capacidade de endereamento dos processadores atuais exige uma TP muito grande soluo: dividir a TP em dois nveis: diretrio de TP e tabela de pginas o endereo lgico de 32 bits formado por:
10 bits para definir a entrada do diretrio da TP 10 bits para definir o nmero da pgina na TP 12 bits de deslocamento.
29

Sistemas Operacionais

Gerncia de Memria

PAGINAO (14)

30

Sistemas Operacionais

Gerncia de Memria

PAGINAO (15) - EXERCCIO


Considere que os processos da tabela abaixo devem ser executados em um SO com paginao. A memria total de 64K, o tamanho das pginas de 4K e o SO ocupa 8K. Mostre como seria a alocao de quadros para cada processo.
Processo Mem. (K) T. Cheg T. Exec

P1 P2 P3 P4 P5

8 6 15 5 10

0 1 2 3 15

10 15 10 14 5
31

Sistemas Operacionais

Gerncia de Memria

SEGMENTAO (1)
a memria lgica geralmente vista como uma coleo de segmentos de tamanho varivel quatro segmentos tpicos so cdigo, dados estticos, dados dinmicos e pilha o programador atribui nome aos segmentos o compilador transforma esses segmentos em nmeros um endereo lgico formado por um nmero de segmento e por um deslocamento dentro do segmento no momento da carga, o SO cria uma tabela de segmentos, guardando a posio da memria fsica e o tamanho de cada segmento
32

Sistemas Operacionais

Gerncia de Memria

SEGMENTAO (2)
1400 SUBROTINA SEG 0 PILHA SEG 3 PROG. PRINC. SEG 2 SQRT SEG 1

Tabela de Segmentos
0 1 2 3 4 Limite 1000 400 400 1100 1000 Base 1400 6300 4300 3200 4700

SEG 0 2400 3200 SEG 3 SEG 2 SEG 4 5700 SEG 1 6300 6700 4300 4700

TAB. SIMB. SEG 4

33

Sistemas Operacionais

Gerncia de Memria

SEGMENTAO (3)
Trap Endereo lgico segmento
N

deslocamento

<

Endereo endereo absoluto fsico

limite base

Tabela de segmentos
34

Sistemas Operacionais

Gerncia de Memria

SEGMENTAO (4)
a TS usada pelo hardware para converter endereos lgicos em fsicos (implementao igual da TP) tambm so usados os mesmos bits de proteo da TP no apresenta fragmentao interna, mas pode ocorrer fragmentao externa a grande vantagem da segmentao est na facilidade de compartilhar memria vrios processos podem, por exemplo, compartilhar os segmentos de uma biblioteca (marcados como de apenas leitura), evitando-se a necessidade de haver vrias cpias do mesmo cdigo na memria
35

Sistemas Operacionais

Gerncia de Memria

SEGMENTAO PAGINADA
atenua a fragmentao externa da segmentao os programas so formados por segmentos que por sua vez so divididos em pginas apresenta uma pequena fragmentao interna
CPU s d Tabela de Segmentos
Base da Tamanho Tabela de do Pginas Segmento

<= no trap

sim

d p d'

STBR + f f d' Memria Fsica

36

Sistemas Operacionais

Gerncia de Memria

BIBLIOGRAFIA
Material elaborado a partir do livro-texto da disciplina: OLIVEIRA, Rmulo Silva de; CARISSIMI, Alexandre da Silva; TOSCANI, Simo Sirineo. Sistemas Operacionais. Porto Alegre: Instituto de Informtica da UFRGS/Editora Sagra Luzzatto, 2000.

37

Potrebbero piacerti anche