sistemas operacionais gerenciamento de...
TRANSCRIPT
![Page 1: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/1.jpg)
Sistemas Operacionais
Gerenciamento de Memória
Carlos Ferraz ([email protected])
Jorge Cavalcanti Fonsêca ([email protected])
![Page 2: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/2.jpg)
Gerenciamento de Memória
Idealmente, o que todo programador deseja é dispor de uma
memória que seja
grande
rápida
não volátil
Hierarquia de memórias
pequena quantidade de memória rápida, de alto custo - cache
quantidade considerável de memória principal de velocidade média, custo
médio
gigabytes de armazenamento em disco de velocidade e custo baixos
O gerenciador de memória trata a hierarquia de memórias
![Page 3: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/3.jpg)
Software
Memória
Programa Proces-
sador
Processo
Como rodar um programa?
Disco
Programa Programa
1. Dado o comando
para executar um
programa, é
realizada uma
seqüência de
instruções para
copiar código e
dados do
programa objeto
do disco para a
memória
principal 2. PC aponta para o
endereço de
memória onde o
programa foi escrito
3. Processador
executa instruções
do programa
trazidas da
memória
![Page 4: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/4.jpg)
Sem Abstração de Memória
Memória disponível é a memória física
Memória
Física Processo 1 Processo 2
Problemas:
1- processos usando mesmo endereço de memória
2- toda memória disponível: processos de usuários podem prejudicar S.O.
3- Difícil executar múltiplos programas simultaneamente (1 por vez)
![Page 5: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/5.jpg)
Sem Abstração de Memória
![Page 6: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/6.jpg)
Relocação estática
Não se sabe com certeza onde o programa será
carregado na memória
Localizações de endereços de variáveis e de código de
rotinas não podem ser absolutos
Incremento durante a inicialização
Carregamento lento
Problema: “mov register1, 28”
![Page 7: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/7.jpg)
Particionamento da memória
Dividir memória em partições
Memória com vários programas.
O que podemos alcançar com isso?
Multiprogramação (troca de contexto eficiente)
Permite aumentar a utilização do processador
![Page 8: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/8.jpg)
Partições Fixas
Memória dividida em partições de tamanhos fixos
Tamanhos podem ser os mesmos ou não
Quando programa é carregado
Entra em uma fila de processos para utilizar uma partição
livre
O número máximo de processos concorrentes é
baseado no número de partições
![Page 9: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/9.jpg)
Partições Fixas
Partições fixas de memória a) filas de entrada separadas para cada partição
b) fila única de entrada
![Page 10: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/10.jpg)
Conceito: Espaço de Endereçamento
Espaços de Endereçamento
Conjunto de endereços que um processo pode usar para
endereçar a memória.
Ex. Telefone, IPv4 (32 bits)
Endereço 28 de um programa P1, seja diferente de 28 de
um programa P2.
![Page 11: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/11.jpg)
Registrador Base e Limite
Uma solução para relocação: uso de valores base e
limite
Base(A)
Limite(B)
Limite(A)
Base(B)
Usados para dar a cada processo um espaço de endereçamento separado (protegido)
Base = início do processo
Limite = tamanho do processo
![Page 12: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/12.jpg)
Registrador Base e Limite
Uma solução para relocação e proteção: uso de
valores base e limite
Usados para dar a cada processo um espaço de endereçamento separado (protegido)
Base = início do processo
Limite = tamanho do processo
Desvantagem: Necessidade de adição e comparação para cada instrução!
Mesmo com auxílio de hardware…
![Page 13: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/13.jpg)
Troca de memória/processos
P
Memória
Física
P
P P P
P P
P
P
P P
P
P P P
P
P P
P
P
P P
P
P P P
P
P
Quantidade de RAM p/ todos os processos > memória pode comportar
...
![Page 14: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/14.jpg)
Swapping
Troca de memória/processos Quando colocar um processo em disco?
Alocação e desalocação de processos criam “buracos” na
memória
Podem ser combinados com a compactação de memória (Não
usada em virtude do tempo de processamento gasto)
![Page 15: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/15.jpg)
Swapping
Troca de memória/processos
Espaço para expansão
![Page 16: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/16.jpg)
Gerenciando Memória Livre
Mapa de Bits
Tamanho da unidade de locação é inversamente proporcional ao tamanho do
mapa de bits
Unidade grande = muita memória desperdiçada
Simples
Problema para encontrar sequência de bits livres (busca muito lenta)
![Page 17: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/17.jpg)
Gerenciando Memória Livre
Lista Encadeada
Lista com posições de memória livre
![Page 18: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/18.jpg)
Gerenciando Memória Livre
Lista Encadeada
E os buracos?
![Page 19: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/19.jpg)
Gerenciando Memória Livre
Lista Encadeada
Algoritmos de busca usado: First Fit (primeiro encaixe)
![Page 20: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/20.jpg)
Gerenciando Memória Livre
Lista Encadeada
Algoritmos de busca usado: Next Fit (próximo encaixe)
![Page 21: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/21.jpg)
Gerenciando Memória Livre
Lista Encadeada
Algoritmos de busca usado: Best Fit (melhor encaixe)
Desvantagens? Lento, buracos pequenos.
![Page 22: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/22.jpg)
Gerenciando Memória Livre
Lista Encadeada
Algoritmos de busca usado: Worst Fit (pior encaixe)
Porque esse poderia ser uma opção válida?
![Page 23: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/23.jpg)
Gerenciando Memória Livre
Lista Encadeada
Algoritmos de busca usado: Quick Fit (encaixe mais rápido)
Lista separadas para alguns tamanhos mais solicitados (4KB, 8KB, 12KB etc)
![Page 24: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/24.jpg)
Gerenciando Memória Livre
Lista Encadeada
Alguns implementações guardam também lista separadas (processos vs. Livres)
Vantagens vs. Desvantagens
![Page 25: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/25.jpg)
Exercício
1) Considere um sistema cuja gerência de memória
é feita através de partições variáveis.
Nesse momento, existem as seguintes lacunas:
10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k, nessa ordem.
Quais espaços serão ocupados pelas solicitações:
5k, 10k e 6k, nessa ordem, se:
First-fit for utilizado
Next-fit for utilizado
Best-fit for utilizado
Worst-fit for utilizado
![Page 26: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/26.jpg)
Exercício
Memória livre
10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k
Solicitações
5k, 10k e 6k
![Page 27: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/27.jpg)
Exercício 2
1) Considere novamente um sistema cuja gerência
de memória é feita através de partições variáveis.
Nesse momento, existem as seguintes lacunas:
10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k, nessa ordem.
Quais espaços serão ocupados pelas solicitações:
15k, 4k e 8k, nessa ordem, se:
First-fit for utilizado?
Next-fit for utilizado?
Best-fit for utilizado?
Worst-fit for utilizado?
![Page 28: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/28.jpg)
Exercício
Memória livre
10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k
Solicitações
15k, 4k e 8k
![Page 29: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/29.jpg)
Exercício
1. Quais são as principais dificuldades encontradas
para gerenciar uma memória sem abstração?
2. Defina espaço de endereçamento
3. Diferencie os algoritmos first fit e next fit.
4. Quais as dificuldades de se trabalhar com listas de
unidades de memória livres e ocupadas separadas?
![Page 30: Sistemas Operacionais Gerenciamento de Memóriajcbf/if677/2015-1/slides/Aula_09_Memoria.pdfGerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória](https://reader034.vdocuments.pub/reader034/viewer/2022050222/5f67be7e3100f16c653784f3/html5/thumbnails/30.jpg)
Sistemas Operacionais
Gerenciamento de Memória
Carlos Ferraz ([email protected])
Jorge Cavalcanti Fonsêca ([email protected])