A gerência de memória tem a função de compartilhar a memória de forma segura e eficiente entre os processos. A memória é dividida em lógica e física, e a unidade de gerência de memória mapeia os endereços lógicos nos físicos. Há diferentes estratégias como partições fixas e variáveis, paginação e segmentação para alocar a memória de forma a evitar fragmentação.
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
Gerencia de memoria
1. GERÊNCIA DE MEMÓRIA
A gerência de memória do Sistema Operacional tem
a função de fazer com que os processos
compartilhem da memória de forma segura e
eficiente.
2. MEMÓRIA LÓGICA
• É aquela que o processo é capaz de endereçar e
acessar usando as suas instruções.
3. MEMÓRIA FÍSICA
• É usada para endereçar os circuitos integrados de
memória, ou seja, implementado pelos circuitos
de memória.
4. • O espaço de endereçamento lógico de um
processo é formado por todos os endereços
lógicos que este processo pode gerar;
• O espaço de endereçamento físico é formado
por todos os endereços aceitos pelos circuitos
de memória;
• O endereço lógico é transformado através da
gerência de memória em endereço físico.
5. Processador Endereço Lógico MMU Endereço Físico Memória
Unidade de gerência de memória – Memory
Management Unit, MMU- é o componente do
hardware responsável por prover os mecanismos
básicos que serão usados pelo sistema
operacional para gerenciar a memória.
A MMU é que irá mapear os endereços lógicos
gerados pelos processos nos correspondentes
endereços físicos que serão enviados para a
memória.
6. PARTIÇÕES FIXAS
• As partições fixas é a forma mais simples de
gerência de memória para a multiprogramação.
7. • Há desvantagens com este tipo de gerência de
memória, que são:
- Fragmentação interna- acontece quando o
programa é carregado em uma partição maior que
o necessário;
- Fragmentação externa- acontece quando temos
duas partições livres, uma de 25 e 100 kbytes,
então, estaremos executando um programa de 110
Kbytes, a memória total livre é de 125 Kbytes. Mas
ela não é contígua.
8. PARTIÇÕES VARIÁVEIS
• Os sistemas operacionais implementam,
basicamente, quatro estratégias para determinar
em qual partição livre um programa será
carregado para execução.Essas estratégias
tentam evitar, ou diminuir, o problema da
fragmentação antes que ela ocorra.
9. Memória Principal
Sistema Operacional
Área livre 1 4 kb
Áreas Livres Tamanho
Programa C
1 1 Kb
2 5 Kb Área livre 2 5 kb
Programa A
3 3 Kb
Área livre 3 3 kb
10. • Quando empregamos a técnica de partições
variáveis, o tamanho das partições é ajustado
automaticamente as necessidades apresentadas
pelo programa;
• A lista de lacunas, que é espaços livres na
memória física, quando usada em um processo
ele percorre a lista, será usado um tamanho de
lacuna maior ou igual ao programa.
11. Há quatro maneiras de percorrer a lista até
encontrar um lacuna de tamanho eficiente, que
são:
• BEST FIT
Esse mecanismo escolhe a melhor partição
(bestfit), ou seja, aquela em que o processo deixa
o menor espaço sem utilização;
• WORST FIT
Esse mecanismo escolhe a pior partição
(worstfit), ou seja, aquela em que o processo
deixa o maior espaço sem utilização;
12. • FIRST FIT
Esse mecanismo escolhe a primeira partição
(firstfit) livre, de tamanho suficiente para carregar
o processo;
• CIRCULAR FIT
Inicia a procura por lacunas após a última sobra.
13. • Alguns sistemas organizam a memória em blocos
de 32 bytes, os blocos são chamados de
parágrafos e a unidade de alocação passa a ser
ele;
• O processo vai então possuir um número fixo de
parágrafos, ou seja, um múltiplo de 32 bytes.
14. SWAPPING
• Resolver o problema de insuficiência de memória
para todos os usuários;
• O swapping é uma técnica aplicada à gerência de
memória, para processos que esperam por
memória livre para serem processadas. O sistema
escolhe um processo residente que é levado da
memória para o disco (swapped out), retornando
posteriormente para a memória principal
(swapped in), como se nada tivesse ocorrido.
15. Memória Principal Memória Principal
Sistema Operacional Sistema Operacional
Programa A B Swapping out Programa A
Programa B Programa H
Programa E Programa E
Programa G Área livre
Swapping
B
16. • Seu maior problema é o custo das operações de
entrada e saída.
• Vantagens:
- Maior compartilhamento da memória
- Maior troughput
- Eficiente
• Desvantagens:
- Elevados custos das operações de entrada e
saída.
17. PAGINAÇÃO
A paginação permite que o programa possa
ser espalhado por áreas não contíguas de
memória.
• O espaço de endereçamento lógico de um
processo é dividido em páginas lógicas de tamanho
fixo;
• Memória física é dividida em páginas com
tamanho fixo, com tamanho igual ao da página
lógica;
• Um programa é carregado página por página, a
página lógica do processo ocupa uma página física
da memória física.
18. • Tabela de páginas é montada durante o processo,
sua função é informar para cada pagina lógica sua
pagina física correspondente;
• Não existe fragmentação externa, pois cada
pagina lógica pode ser carregada em qualquer
página física livre.
19. O endereço lógico de Y2 – 001 01 passa pela
tabela de páginas e cria-se seu endereço físico-
101 01.
20. • Existe fragmentação interna (se um programa de
500Kb é carregado na memória e as páginas são
de tamanho 7Kb, ele será alocado em 71 páginas
sobrando 3Kb de fragmentação);
• Quando usamos páginas grandes significa que o
processo terá menos páginas, tabela de páginas
será menor, a leitura de disco será mais eficiente.
21. • O tamanho das páginas é fixado pelo hardware
que suporta a gerencia de memória, ou seja, a
MMU;
• A gerência de memória deve controlar as áreas
livres da memória, as áreas são representadas
através de um mapa de bits , onde 0 representa
um página livre e 1 uma pagina ocupada.
22. Carregar/Remover Página:
• O maior problema do gerenciamento de memória
não é decidir que página carregar, mas sim, qual
página deve ser removida da memória.
23. Estratégias para realocação de
páginas:
1 – ALEATÓRIA: não utiliza nenhum critério de
seleção, todas as páginas possuem a mesma
chance;
2 – FIFO: a página que entrar primeiro vai ser a
primeira a sair;
3 – LRU: seleciona a página que está a mais tempo
sem ser referenciada;
4 – LFU: seleciona a página menos freqüentemente
usada.
24. Tamanho da página:
• A fragmentação é conseqüência do tamanho da
página, páginas pequenas diminuem a
fragmentação, mas aumenta o acesso a memória
secundária.
25. SEGMENTAÇÃO
• O conceito de página, fundamental para a
paginação, é uma criação do sistema
operacional para facilitar a gerência de
memória;
• Programadores e compiladores não enxergam
a memória lógica dividida em páginas, mas
sim em segmentos.
26. • Um programa dividi-se em quatro segmentos:
– código;
– dados alocados estaticamente;
– dados alocados dinamicamente;
– pilha de execução.
27. SEGMENTAÇÃO PAGINADA
• Segmentos grandes podem não caber na
Memória;
• Espaço lógico é formado por segmentos;
• Cada segmento é dividido em páginas lógicas;
• Cada segmento possui uma tabela de página:
usada para mapear o endereço de página
lógica do segmento em endereço de página
física;
28. Obtém na tabela
de segmentos
o endereço da Da tabela de
tabela de páginas páginas obtém
para aquele o endereço
segmento; físico.