Você está na página 1de 30

1

Sistemas Operacionais Sistemas Operacionais


Gerncia de Memria
2
Gerncia de Memria
Eduardo Nicola F. Zagari
Gerncia Gerncia de de Memria Memria
n Introduo
n Atribuio de Endereos, Carregamento Dinmico, Ligao
Dinmica
n Espao de Endereamento Fsico versus Lgico
n Alocao Contgua Simples
n Overlay
n Alocao Particionada
n Fragmentao Externa e Interna
n Gerncia de Memria com Mapeamento de Bits
n Gerncia de Memria com Listas Ligadas
n Algoritmos de Alocao de Parties
n Swapping
2
3
Gerncia de Memria
Eduardo Nicola F. Zagari
Introduo Introduo
n Memria um dos mais importantes recursos de um computador
l necessidade de ser gerenciada
n Programas devem ser colocados dentro de um processo e ento
carregados em memria para serem executados.
n Input queue coleo de processos no disco que esto aguardando
carregamento em memria para executarem o programa.
n Funes de um Gerente de Memria
l controlar quais partes da memria esto em uso
l controlar quais partes esto livres
l alocar memria a processos quando estes precisarem
l desalocar quando eles no mais necessitarem
l gerenciar a troca (swapping ) dos processos entre memria principal e
disco, quando a memria no grande o suficiente para guardar todos os
processos
4
Gerncia de Memria
Eduardo Nicola F. Zagari
Introduo Introduo
n A CPU busca instrues da memria de acordo com o valor do
contador de instrues (PC) do programa em execuo. Essas
instrues podem:
l buscar novos valores de endereos especficos da memria
l armazenar novos valores em posies especficas da memria
n Programas de usurio passampor vrios passos antes de
comearema ser executados.
Memria
Principal
UC
Registrador
PC
Instruo
Parmetros
Resultado
Registrador
UAL
3
5
Gerncia de Memria
Eduardo Nicola F. Zagari
Atribuio de Endereos Atribuio de Endereos
n A maioria dos sistemas permite que os processos de usurios
sejam colocados em qualquer parte da memria
l assim, embora o espao de endereamento comece em 0000, o
endereo inicial de um processo no precisa ser este.
n A ligao de endereos de
instrues e de dados para os
endereos de memria podem
acontecer em3 estgios
diferentes:
l Em tempo de compilao
4cdigo absoluto: se o programa vai
ser carregado no endereo E, o
cdigo gerado pelo compilador
inicia-se neste endereo (se for
alterado, deve ser recompilado).
Ex.: .COM do DOS
Programa
Fonte
Programa
Fonte
compilador ou
montador
compilador ou
montador
Cdigo
Objeto
Cdigo
Objeto
tempo de
compilao
6
Gerncia de Memria
Eduardo Nicola F. Zagari
Atribuio de Endereos Atribuio de Endereos
n Em tempo de carga
l cdigo relocvel: quando no
se conhece em tempo de
compilao a posio em que o
programa ser armazenado.
Ex.:
4Compilador: 14 bytes do
incio
4Carregador: 74000 + 14
Cdigo
Objeto
Cdigo
Objeto
ligador
ligador
Cdigo
Relocvel
Cdigo
Relocvel
tempo
de carga
Cd Obj
de outros
mdulos
Cd Obj
de outros
mdulos
carregador
carregador
Biblioteca
de sistema
Biblioteca
de sistema
4
7
Gerncia de Memria
Eduardo Nicola F. Zagari
Atribuio de Endereos Atribuio de Endereos
n Em tempo de execuo
l se o processo pode ser movido
durante sua execuo, a
determinao do endereo deve
ser atrasada para o tempo de
execuo
l h a necessidade de suporte de
hardware para o mapeamento
de endereos (p.ex.:
registradores base e limite)
carregador
carregador
tempo de
execuo
Biblioteca
de sistema
Biblioteca
de sistema
Cdigo
binrio
executvel
Cdigo
binrio
executvel
Biblioteca
de sistema
carregada
dinamica-
mente
Biblioteca
de sistema
carregada
dinamica-
mente
8
Gerncia de Memria
Eduardo Nicola F. Zagari
Espao de Espao de
Endereamento Fsico Endereamento Fsico versus versus Lgico Lgico
n O conceito de um espao de endereamento lgico que est
associado a um espao de endereamento fsico separado
central ao adequado gerenciamento da memria.
l Endereo Lgico gerado pela CPU; tambm conhecido como
endereo virtual.
l Endereo Fsico endereo visto pela unidade de memria.
n Endereos Lgico e Fsico so os mesmo nos esquemas de
atribuio de endereos emtempo de compilao e emtempo
de carga.
n Endereos Lgico e Fsico diferemquando se usa esquema de
atribuio de endereos emtempo de execuo.
5
9
Gerncia de Memria
Eduardo Nicola F. Zagari
Unidade Unidade de de Gerenciamento Gerenciamento de de Memria Memria ( (MMU MMU) )
n Dispositivo de hardware que mapeia endereos virtuais em
endereos fsicos.
n Atravs da MMU, o valor do registrador de relocao
adicionado a todo endereo gerado pelo processo do usurio no
instante emqueee enviado memria.
n O programa do usurio lida com endereos lgicos; ele nunca
v o endereo fsico real.
10
Gerncia de Memria
Eduardo Nicola F. Zagari
Relocao Relocao Dinmica Dinmica
usando um registrador de usando um registrador de relocao relocao
CPU
Memria
Principal
14000
+
Endereo
Lgico
MMU
Unidade de
Gerenciamento
de Memria
Endereo
Fsico
#346 #14346
Registrador
Base
6
11
Gerncia de Memria
Eduardo Nicola F. Zagari
Carregamento Carregamento Dinmico Dinmico (usurio) (usurio)
n Rotina no carregada at que ela seja chamada
n Melhor utilizao do espao de memria
l Rotinas que no so usadas nunca so carregadas.
n til quando grandes quantidades de cdigo so necessrias
para manipular casos pouco freqentes.
n Nenhumsuporte especial do S.O. requerido
l Implementado atravs do projeto do programa.
12
Gerncia de Memria
Eduardo Nicola F. Zagari
Ligao Dinmica ( Ligao Dinmica (sist sist. operacional) . operacional)
n A ligao (linking) adiada at o tempo de execuo.
n Stub: um pequeno pedao de cdigo usado para a localizao
da rotina dinmica, residente emmemria, apropriada.
n O stub substitui a si prprio com o endereo da rotina e a
executa.
n necessrio o suporte do S.O. para verificar se a rotina est no
endereo de memria dos processos.
n Ligao Dinmica particularmente til para bibliotecas.
4Economia de espao
4Atualizao
4Controle de concorrncia
7
13
Gerncia de Memria
Eduardo Nicola F. Zagari
Organizao e Gerncia da Memria Organizao e Gerncia da Memria
n Toda vez que desejarmos executar um programa (residente em
memria secundria), deveremos, de alguma forma, carreg-lo
para a memria principal, para que o processador possa
referenciar suas instrues e seus dados
n Nos sistemas monoprogramados a gerncia da memria no
muito complexa, mas nos sistemas multiprogramados ela se
torna crtica
n A seguir apresentaremos os principais esquemas de
organizao e gerncia da memria principal
14
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao Contgua Simples Alocao Contgua Simples
n Implementada nos primeiros SOs e ainda est presente em
alguns sistemas monoprogramados
n Esquema mais simples para gerncia de memria
n A memria principal dividida em duas partes:
l uma para o Sistema Operacional
l outra para o(s) programa(s) do(s) usurio(s)
n SO pode ocupar tanto a parte baixa quanto a parte mais alta da
memria, dependendo da localizao do vetor de interrupes
8
15
Gerncia de Memria
Eduardo Nicola F. Zagari
Sistema
Operacional
em RAM
(cont.) Alocao Contgua Simples (cont.) Alocao Contgua Simples
n No IBM-PC utilizado o terceiro modelo: nos 8KB mais altos dos
1 MB de endereamento existe uma ROM com um programa
chamado BIOS (Basic Input Output System), correspondente a
todos os drivers
Memria Principal
rea para o
processo
do usurio
0x00
0xFF
Sistema
Operacional
em ROM
Memria Principal
rea para o
processo
do usurio SO
em RAM
Memria Principal
rea para o
processo
do usurio
Drivers de dispo-
sitivos em ROM
16
Gerncia de Memria
Eduardo Nicola F. Zagari
(cont.) Alocao Contgua Simples (cont.) Alocao Contgua Simples
n Usurio tem controle sobre toda a memria principal, podendo
acessar at a rea do SO (caso do DOS)
n PROTEO: Pode-se implementar um esquema de proteo
usando um registrador que delimite as reas do SO e usurio
Memria Principal
Sistema
Operacional
rea para o
processo
do usurio
Registrador
9
17
Gerncia de Memria
Eduardo Nicola F. Zagari
(cont.) Alocao Contgua Simples (cont.) Alocao Contgua Simples
n Sempre que um programa do usurio faz referncia a um endereo
de memria, o sistema verifica se o endereo est nos seus limites
(registrador base e registrador limite). Caso no esteja, o programa
de usurio pode ser cancelado e ser gerada uma mensagem de
erro
CPU
Memria
Principal
+
Endereo
Lgico
MMU
Endereo
Fsico
Registrador
Limite
<
interrupo de software; erro de endereamento
Registrador
Base
18
Gerncia de Memria
Eduardo Nicola F. Zagari
(cont.) Alocao Contgua Simples (cont.) Alocao Contgua Simples
n Problemas: no permite a utilizao
eficiente do processador e nem da
memria principal, alm de limitar o
tamanho do programa do usurio
n Em SOs que suportam o conceito de
MULTIPROGRAMAO, preciso que
existam outras formas de organizao da
memria principal, a fim de suportar
vrios processos na memria
simultaneamente
rea Livre
Memria Principal
Sistema
Operacional
Processo
do Usurio
10
19
Gerncia de Memria
Eduardo Nicola F. Zagari
Overlays Overlays
n Sobreposio (Overlay) (usurio)
l O que fazer quando se tem um programa que ocupa mais memria
do que a disponvel?
l Verifica-se se o programa tem sees que no necessitem
permanecer na memria durante toda a execuo
4Mantm-se na memria somente aquelas instrues e dados
que so necessrios a qualquer hora.
l Essas sees, uma vez executadas, podem ser substitudas por
outras
l A substituio ocorre pela transferncia da seo do disco para a
memria na rea de overlay, cobrindo a seo anterior
l O programa inicialmente carregado mais rapidamente, entretanto,
a execuo ficar um pouco mais lenta, devido ao tempo extra
gasto com a sobreposio
20
Gerncia de Memria
Eduardo Nicola F. Zagari
rea
de
Overlay
Rotina de
controle
de overlay
(cont.) (cont.) Overlay Overlay
Parte fixa
do
processo
Armazenamento
Primrio Armazenamento
Secundrio
Fase inicial
Fase
intermediria
Fase final
50K
20K
80K
50K
30K
80K
11
21
Gerncia de Memria
Eduardo Nicola F. Zagari
(cont.) (cont.) Overlay Overlay
n O mecanismo de overlay pouco transparente, pois a definio
das reas de overlay funo do programador (no do SO),
atravs de comandos especficos da linguagem utilizada.
n Dependendo da definio, pode ocasionar srias implicaes no
desempenho das aplicaes, devido transferncia excessiva
dos mdulos entre o disco e a memria
22
Gerncia de Memria
Eduardo Nicola F. Zagari
Multiprogramao Multiprogramao
n Motivao:
l tornar mais fcil programar uma aplicao, dividindo-a em dois ou
mais processos
l existncia de servio interativo para vrios usurios
simultaneamente (tempo de resposta)
l utilizao da CPU (existncia de processos I/O bound )
n Modelos de Multiprogramao
l Modelos Simplista
4Se cada processo gasta 20% de seu tempo na memria usando
o processador, ento 5 processos alcanam um fator de
utilizao da CPU de 100%
l E se os 5 processos esperam por E/S simultaneamente?
12
23
Gerncia de Memria
Eduardo Nicola F. Zagari
(cont.) (cont.) Multiprogramao Multiprogramao
l Modelo Probabilistico
4Cada processo gasta p% de seu tempo com E/S
4n processos probabilidade de estarem aguardando E/S
simultaneamente: p
n
4Exemplo:
1 MB de memria, SO de 200K, processos de 200K e cada
um gasta 80% do tempo com E/S 4 processos na
memria FU
CPU
60%
Adio de 1 MB de RAM grau de 4 p/ 9 FU 87%
Adio de mais 1 MB de RAM grau de
multiprogramao de 9 para 14 FU 96%
F.U.
CPU
= 1 - p
n
24
Gerncia de Memria
Eduardo Nicola F. Zagari
8 KB
Partio 2
Alocao Particionada Esttica Alocao Particionada Esttica
n Nos primeiros SOs multiprogramados a memria principal era dividida em
pedaos de tamanho fixo (possivelmente distintos), chamados parties
Memria Principal
Sistema Operacional
Partio 1
Tabela de parties
Partio 3
Partio Tamanho
n O tamanho das parties era estabelecido na fase de inicializao do
sistema (boot), em funo dos tamanhos dos programas que iriam ser
executados
l alterao de tamanho de partio
reinicializao
1 2 KB
2 5 KB
3 8 KB
Programas a
serem executados
2 KB
5 KB
E D C B A
3KB 6KB 1KB 4KB 2KB
13
25
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao Alocao
Particionada Esttica Particionada Esttica - - Proteo Proteo
n A proteo baseia-se em dois registradores, que indicam os limites inferior
e superior da partio onde o programa est sendo executado
n Acessos do processo usurio provocam a comparao com o registrador
limite, caso haja invaso, o processo terminado com uma mensagem de
erro.
Partio 2
Memria Principal
Sistema Operacional
Partio 1
Partio 3
Endereo inicial
Endereo final
26
Gerncia de Memria
Eduardo Nicola F. Zagari
n E as chamadas aos servios do SO ?
l Isto resolvido atravs da instruo chamada ao supervisor
(supervisor call )
n Modo Usurio:
l Execuo das instrues disponveis aos usurios
n Modo Supervisor:
l Todas as instrues permitidas (no feita comparao com o
registrador limite)
n A passagem do modo usurio para o modo supervisor ocorre
quando da solicitao de um servio
Alocao Alocao
Particionada Esttica Particionada Esttica - - Proteo Proteo
Modo Usurio versus Modo Supervisor
14
27
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao Particionada Esttica Alocao Particionada Esttica
n Parties Fixas com Filas Mltiplas:
l processo colocado em uma partio determinada. Se estiver ocupada,
aguarda na fila;
l ou, processo colocado na fila da menor partio em que caiba
n Problema: parties no utilizadas
Partio 2
Memria Principal
Sistema Operacional
Partio 1
Partio 3
Programas a
serem executados
28
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao Particionada Esttica Alocao Particionada Esttica
n Parties Fixas com Fila nica:
l fila nica para todas as parties;
l processo colocado na fila da menor partio disponvel em que caiba
Partio 2
Memria Principal
Sistema Operacional
Partio 1
Partio 3
Programas a
serem executados
15
29
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao Particionada Esttica Alocao Particionada Esttica
n Problema:
l colocao de um programa pequeno em uma partio grande
l parties vazias por falta de clientes
n Uma tentativa de soluo:
l correr toda a fila antes de escolher o cliente
l Problema:
4discrimina pequenos processos
30
Gerncia de Memria
Eduardo Nicola F. Zagari
Aloc Aloc. Particionada Esttica Absoluta . Particionada Esttica Absoluta
n Em sistemas em que os compiladores e montadores geram
apenas cdigo absoluto, os processos podem executar em
apenas uma das parties, mesmo que outras estejam livres
Partio 2
Memria Principal
Sistema Operacional
Partio 1
Partio 3
Programas a
serem executados
2 KB
5 KB
8 KB
E
D
C
B
A
n Se os processos A e
B estivessem
executando e a
partio 3 estivesse
livre, os processos C
e E no poderiam ser
executados
16
31
Gerncia de Memria
Eduardo Nicola F. Zagari
Aloc Aloc. Particionada Esttica . Particionada Esttica Relocvel Relocvel
n Com a evoluo dos compiladores, linkers e loaders, tornou-se
possvel a gerao de cdigo relocvel, permitindo que os
processos sejam carregados em qualquer uma das parties
Processo A
Memria Principal
Sistema Operacional
Processo C
Processo B
Programas a
serem executados
2 KB
5 KB
8 KB
E D
n Se os processos A e
B terminarem de
executar, o processo
E pode ser carregado
e executado em
qualquer uma das
duas parties
6KB 3KB
32
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao Particionada Esttica Alocao Particionada Esttica
n Problema da APE: fragmentao excessiva
l Fragmentao o problema que surge quando pedaos de
memria ficam impedidos de serem utilizados por outros processos.
Processo A
Memria Principal
Sistema Operacional
Processo C
Processo E
Programas a
serem executados
1 KB
3 KB
3 KB
B D
6KB 4KB
17
33
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao Particionada Dinmica Alocao Particionada Dinmica
n Visa reduzir o problema da fragmentao e, consequentemente,
aumentar o grau de compartilhamento da memria
n eliminado o conceito de parties de tamanho fixo
n Na APD, cada processo utiliza o espao necessrio, passando
esse pedao a ser a sua partio
Processo C
Sistema Operacional
Processo B
Processo E
Programas a
serem executados
4 KB
1 KB
2 KB
A E C B
2KB 3KB 1KB 4KB
Memria Principal
Sistema Operacional
11 KB
Processo A
3 KB
1 KB
34
Gerncia de Memria
Eduardo Nicola F. Zagari
Memria Principal
Sistema Operacional
0
400K
2560K
Fila de processos
Processo Tamanho Tempo
P
1
P
2
P
3
P
4
P
5
600K
1000K
300K
700K
500K
10
5
20
8
15
Alocao Alocao
Particionada Dinmica Particionada Dinmica - - Exemplo Exemplo
18
35
Gerncia de Memria
Eduardo Nicola F. Zagari
P
2
termina
Alocao Alocao
Particionada Dinmica Particionada Dinmica - - Exemplo Exemplo
0
400K
1000K
so so so so so
2560K 2560K 2560K 2560K 2560K
2000K
2300K
0
400K
1000K
2000K
2300K
0
400K
1000K
2000K
2300K
0
400K
1000K
2000K
2300K
0
400K
1000K
2000K
2300K
P
1
P
1
P
1
P
5
900K
P
2
P
3
P
3
P
3
P
3
P
3
P
4
P
4
P
4
1700K
aloca
a P
4
P
1
termina
1700K 1700K
aloca
a P
5
36
Gerncia de Memria
Eduardo Nicola F. Zagari
n Neste esquema, a fragmentao comea a ocorrer quando os
processos forem terminando e deixando espaos cada vez
menores na memria, no permitindo o ingresso de novos
processos
Alocao Particionada Dinmica Alocao Particionada Dinmica
Processo C
Sistema Operacional
Programa a
ser executado
4 KB
1 KB
2 KB
6KB
Memria Principal
Processo A
3 KB
1 KB
D
n Apesar da
existncia de 8
Kbytes de
memria livre, o
processo D no
poder ser
carregado
19
37
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao Particionada Dinmica Alocao Particionada Dinmica
n Solues para a fragmentao:
l Primeira: aglutinar espaos livres adjacentes em um nico espao
de tamanho maior. No exemplo anterior, caso o processo C
termine, teramos:
Processo C
Sistema Operacional
4 KB
1 KB
2 KB
Memria Principal
Processo A
3 KB
1 KB
Sistema Operacional
8 KB
2 KB
Processo A
1 KB
Memria Principal
38
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao Particionada Dinmica Alocao Particionada Dinmica
l Como gerenciar? (ver tpico Gerncia de Uso da Memria)
4Mapa de Bits
4Lista de parties ocupadas
4Lista de parties livres
4Ao trmino do processo, um buraco pode ser:
adicionado lista de parties livres (caso a nova partio
livre esteja cercada de parties ocupadas)
incorporada a uma das parties da lista de parties livres
(caso o buraco seja adjacente a uma partio livre)
l No resolve completamente o problema (pode haver buracos
pequenos...)
20
39
Gerncia de Memria
Eduardo Nicola F. Zagari
2 KB
Processo A
Alocao Particionada Dinmica Alocao Particionada Dinmica
l Segunda: fazer uma relocao de todas as regies ocupadas
(movimento de todos os processos), eliminando todos os espaos
entre elas e criando-se uma nica rea livre contgua. Este mtodo
conhecido como compactao.
Processo C
Sistema Operacional
4 KB
1 KB
2 KB
Memria Principal
Processo A
3 KB
1 KB
Sistema Operacional
8 KB
1 KB
Memria Principal
Processo C
40
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao Particionada Dinmica Alocao Particionada Dinmica
l Problemas:
4Consumo de recursos (grande quantidade de rea em disco e
de tempo de processador consumido em sua implementao)
4Sistema necessita parar (pode ser desastroso para sistemas de
tempo real)
21
41
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao Alocao
Particionada Dinmica Particionada Dinmica - - Exemplo Exemplo
0
300K
1000K
so
2100K
1500K
1900K
P
1
P
2
P
3
P
4
500K
600K
1200K
400K
300K
200K
Configurao
inicial
0
300K
800K
so
2100K
P
1
P
2
P
3
P
4
500K
600K
1200K
900K
600K
transferidos
0
300K
so
2100K
P
1
P
2
P
3
P
4
500K
600K
1200K
900K
400K
transferidos
1000K
0
300K
so
2100K
P
1
P
2
P
3
P
4
500K
600K
900K
200K
transferidos
1500K
1900K
Modos de Compactao
42
Gerncia de Memria
Eduardo Nicola F. Zagari
Fragmentao Externa e Interna Fragmentao Externa e Interna
n Fragmentao Externa:
l existe memria suficiente para satisfazer uma requisio, mas ela no
contnua
4Estatisticamente, de cada N blocos alocados, N/2 blocos so
perdidos devido fragmentao (33%)
n Fragmentao Interna:
l memria interna a uma partio,
mas que no usada. Ex.:
requisio de 18462 bytes
n Uma soluo para fragmentao
externa compactao
Memria Principal
Sistema Operacional
Processo 1
Processo 43
18464
bytes
22
43
Gerncia de Memria
Eduardo Nicola F. Zagari
Gerncia de Gerncia de Uso da Memria Uso da Memria
com com Mapeamento de Bits Mapeamento de Bits
n Memria subdividida em unidades de alocao
n A cada unidade de alocao 1 bit no mapa
l Se bit 0, esta parte da memria est livre
l Se bit 1, est ocupada
n Tamanho da unidade de alocao versus tamanho do mapa
l Se a unidade de alocao for de 4 bytes a parte da memria gasta
com este mapa de apenas 3%
l Se a unidade for maior tamanho do mapa menor, mas aumenta o
desperdcio de memria (fragmentao interna)
n Desvantagem: para encontrar k unidades de alocao livres
percorrer mapa inteiro procurando k bits iguais a zero muito
lento!
44
Gerncia de Memria
Eduardo Nicola F. Zagari
Gerncia de Gerncia de Uso da Memria Uso da Memria
(a) Parte da memria (b) Mapa de bits correspondente
(c) Lista ligada correspondente
23
45
Gerncia de Memria
Eduardo Nicola F. Zagari
n Lista ligada de segmentos alocados e de segmentos livres
n Ordenao por endereos
l rpida atualizao quando do trmino/remoo da memria
l Possveis combinaes para a concluso de um processo X:
l Com listas duplamente encadeadas a tarefa ainda mais simples!
B
Gerncia Gerncia de Uso da Memria de Uso da Memria
com com Listas Ligadas Listas Ligadas
A X
A X
B A
A aps o trmino
de X fica
B X
X
B
46
Gerncia de Memria
Eduardo Nicola F. Zagari
Algoritmos de Alocao de Parties Algoritmos de Alocao de Parties
n Como atender uma requisio de tamanho n a partir de uma lista
de buracos livres?
l Estratgias de alocao de memria para escolher o ponto em que
deve ser carregado um processo recm criado ou que veio do disco
por troca (swapped in)
l Listas separadas para processos e buracos:
4mais rpido na busca por buracos
4mais lento na liberao de memria
4variante: os prprios buracos podem ser usados para implementar
a lista de parties livres
n First-fit:
l A lista de parties livres percorrida e a primeira partio
suficientemente grande para o pedido escolhida
l A lista pode ser mantida em ordem aleatria ou ordenada em ordem
crescente de endereo
4rpido
24
47
Gerncia de Memria
Eduardo Nicola F. Zagari
First First- -fit fit
Processo C
Sistema Operacional
3 KB
Memria Principal
Processo A
4 KB
2 KB
1 KB
F Processo C
2 KB
Memria Principal
Processo A
Processo F
Sistema Operacional
48
Gerncia de Memria
Eduardo Nicola F. Zagari
Algoritmos de Alocao de Parties Algoritmos de Alocao de Parties
n Next-fit:
l Idntico ao First-fit com a diferena que a busca se inicia a partir do
ltimo ponto em que encontrou um buraco
4desempenho ligeiramente mais lento que o First-fit
n Best-fit:
l A lista de parties livres percorrida e a menor partio
suficientemente grande para o pedido escolhida
l A lista ordenada em ordem crescente de tamanho
4lento se a lista no estiver ordenada (teria que percorrer a lista
inteira)
4desempenho ruim devido a muitos buracos pequenos
(fragmentao externa)
25
49
Gerncia de Memria
Eduardo Nicola F. Zagari
Best Best- -fit fit
Processo C
Sistema Operacional
3 KB
Memria Principal
Processo A
4 KB
2 KB
1 KB
F Processo C
1 KB
Memria Principal
Processo A
Processo F
Sistema Operacional
50
Gerncia de Memria
Eduardo Nicola F. Zagari
Algoritmos de Alocao de Parties Algoritmos de Alocao de Parties
n Worst-fit:
l A lista de parties livres percorrida e a maior partio
suficientemente grande para o pedido escolhida
l A lista ordenada em ordem decrescente de tamanho
4diminui um pouco o problema da fragmentao
n Quick-fit:
l Listas separadas para alguns tamanhos mais comuns especificados
(por exemplo, uma fila para 2K, outra para 4K, outra para 8K, etc)
4busca por buraco rpida
4entretanto, a liberao de memria lenta (reagrupar buracos e
modific-los de fila)
26
51
Gerncia de Memria
Eduardo Nicola F. Zagari
Processo A
Processo F
Worst Worst- -fit fit
Processo C
Sistema Operacional
3 KB
Memria Principal
Processo A
4 KB
2 KB
1 KB
F Processo C
3 KB
Memria Principal
Sistema Operacional
52
Gerncia de Memria
Eduardo Nicola F. Zagari
Swapping Swapping
n Mesmo com o aumento da eficincia da multiprogramao e da
gerncia de memria, muitas vezes um programa no podia ser
executado por falta de uma partio livre disponvel
n Em todos os esquemas apresentados anteriormente, um
programa permanecia na memria principal at o final de sua
execuo, inclusive nos momentos em que esperava por um
evento, como uma operao de E/S
n Uma soluo a tcnica de swapping, cujo objetivo o de
liberar espao na RAM para que outros processos possam ser
carregados e executados
l Backing store disco rpido e grande o suficiente para acomodar
cpias de todas as imagens de memria para todos os usurios
l Verses modificadas de swapping so encontradas em vrios
sistemas (p.ex., UNIX, Linux e Windows).
27
53
Gerncia de Memria
Eduardo Nicola F. Zagari
Swapping Swapping
n Neste esquema, o SO escolhe um programa residente na
memria principal, levando-o da memria para o disco (swap
out)
Processo A
Memria Principal
Sistema Operacional
Processo C
Processo B
H
4 KB
A
S
w
a
p

o
u
t
Processo G
54
Gerncia de Memria
Eduardo Nicola F. Zagari
Swapping Swapping
n Posteriormente, o processo retorna para a memria principal
(swap in), como se nada tivesse ocorrido
Processo H
Memria Principal
Sistema Operacional
Processo C
A
Swap in
Processo G
28
55
Gerncia de Memria
Eduardo Nicola F. Zagari
Consideraes: Consideraes: Relocao Relocao
n Mapeamento de espao lgico em espao fsico de
endereamento, em tempo de carregamento, torna ineficiente
recarregar o processo em outra regio fsica diferente da do
primeiro carregamento
n Soluo:
l Introduo de hardware que faa o mapeamento durante a
execuo do processo: interceptador de endereos lgicos que
soma um valor base aos mesmos, produzindo o endereo fsico
l No h mais necessidade da tabela de endereos relocveis
56
Gerncia de Memria
Eduardo Nicola F. Zagari
Consideraes: Consideraes: Relocao Relocao
n Relocao Esttica:
l Mapeamento em tempo de carregamento
n Relocao Dinmica:
l Mapeamento durante a execuo
n Endereo Lgico = Endereo Virtual
l o valor de um deslocamento em relao ao incio do programa
29
57
Gerncia de Memria
Eduardo Nicola F. Zagari
Consideraes: Consideraes: Relocao Relocao
n Exemplo de hardware para mapeamento
l Contm o endereo fsico onde foi carregado o incio do programa
Registrador Base
Instruo
+
Operao End. Lgico
Endereo Fsico = Endereo Real
(disponvel na memria)
58
Gerncia de Memria
Eduardo Nicola F. Zagari
Consideraes: Proteo Consideraes: Proteo
n Proteo em relocao dinmica
l Consiste em comparar o endereo fsico com o comprimento do
programa
l Instruo de chamada ao supervisor
n Separao entre dados e instrues
l Permite o compartilhamento de instrues por dois ou mais
processos
l Permite duplicar o tamanho mximo do espao lgico
l Exige a duplicao do hardware necessrio para relocao e
proteo
30
59
Gerncia de Memria
Eduardo Nicola F. Zagari
Alocao de Espao de Alocao de Espao de Swapp Swapp
n Garantir espao em disco sempre que algum processo
swapped out
n Os algoritmos para gerenciar o espao alocado em disco para
swapping so os mesmos de gerncia da memria principal
n Em alguns sistemas, isto feito somente no momento da
criao do processo e tal espao permanece reservado
n A nica diferena que a quantidade de espao reservado no
disco deve ser um mltiplo do tamanho dos blocos do disco

Você também pode gostar