sistemas operacionais gerenciamento de memória prof. galvez
TRANSCRIPT
![Page 1: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/1.jpg)
Sistemas Operacionais
Gerenciamento de MemóriaProf. Galvez
![Page 2: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/2.jpg)
Considerações Gerais
Multiprogramação implica em manter-se vários processos em memória
Memória necessita ser alocada de forma eficiente para permitir o máximo
possível de processos
Existem diferentes técnicas para gerência de memória
Dependem do hardware do processador
Um sistema de memória possui pelo menos:
Memória principal: acessada pela CPU
Memória secundária: discos
Memória Cache (alguns possuem...)
Programas são armazenados em disco:
Executar um programa se traduz em transferi-lo da
memória secundária à memória principal
Qualquer sistema operacional tem gerência de memória
Monotarefa: gerência é simples
Multitarefa: complexa
![Page 3: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/3.jpg)
Transformação de programa em processo
Programa
Compilador
objeto
Ligador
...
executável
Carregador
RAMBiblioteca
estáticaFase de compilação
Fase de ligação
Fase de carga
![Page 4: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/4.jpg)
Hierarquia de Memória
Na década de 50 e 60 a memória principal era muito cara.
A hierarquia de memória contém níveis caracterizados pela velocidade e custo da memória em cada nível.
![Page 5: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/5.jpg)
Memória Lógica e Física
Memória Lógica
É aquela que o processo “enxerga”, aquela que o processo é capaz de endereçar e acessar usando as suas instruções. Um programa em C manipula variáveis tipo ponteiros (pointer), as quais contêm endereços lógicos.
Endereços lógicos são aqueles manipulados por um processo.
![Page 6: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/6.jpg)
Memória Lógica e Física
Memória Física
Implementada pelos circuitos integrados de memória, pela eletrônica do computador
Endereços físicos são aqueles que correspondem a uma posição real de memória
![Page 7: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/7.jpg)
Gerência de Memória
Unidade de Gerência de Memória (MMU - Memory Management Unit)
É o componente do hardware responsável por prover os mecanismos básicos que serão usados pelo SO para gerenciar a memória.
Mapeia os endereços lógicos gerados´pelos processos nos correspondentes endereços físicos que serão enviados para a memória.
PROCESSADOREnd.lógico
MMU End.físico
Memória
![Page 8: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/8.jpg)
Exemplo de MMU
Processador
Registrador LimiteInferior
Registrador LimiteSuperior
Memória< >
Interrupção(Endereço Ilegal)
Interrupção(Endereço Ilegal)
123 123
100 799
sim
não não
sim
Os endereços lógicos e físicos possuem valores idênticos (123)
O espaço de endereçamento lógico de um processo é limitado pelos
Registradores de Limites ( Inferior [100] e Superior [799] )
Qualquer endereço lógico fora desse intervalo é considerado ilegal.
![Page 9: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/9.jpg)
Exemplo de MMU
O endereço lógico é comparado com o um limite superior [500]. Caso
seja menor ou igual, então é somado ao valor do registrador de base,
resultando o endereço físico quevai para a memória.
Pode gerar endereços entre zero e 200. Valor fora desse limite são
ilegais.
Processador
Registrador de Limite Registrador de Base
Memória> +
Interrupção(Endereço Ilegal)
123 623
200 500
sim
não
![Page 10: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/10.jpg)
Partições Fixas
Forma mais simples de gerência de memória para multiprogramação. A memória é primeiramente dividida em uma parte para uso do SO e uma parte para uso dos processos de usuários.
A seguir, a parte dos usuários, é dividida em várias partições de tamanhos diferentes, porém fixos.
Sistema Operacional – 225 M
Processos de Usuários375 M
Memória Física
Sistema Operacional – 225 M
Partição 1 – 200 M
Partição 3 – 50 M
Partição 4 – 25 M
Partição 2 – 100 M
Memória Física
![Page 11: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/11.jpg)
Partições Fixas
Quando um programa deve ser carregado, é escolhida uma partição ainda livre.
Detalhe: a partição deve ter um tamanho igual ou maior que o programa.
Não existindo uma partição livre que seja grande o bastante para conter o programa, ele não poderá ser executado no momento. Deve esperar a liberação de uma partição com tamanho suficiente.
Dois problemas para esse tipo de gerência de memória!!!
![Page 12: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/12.jpg)
8 M
8 M
5 M
8 M
8 MSist. Operacional
Partições Fixas – Fragmentação Interna
Memória perdida dentro da área alocada para um processo
Um processo, não importando quão pequeno seja, ocupa uma partição inteira
Fragmentação interna
Sist. Operacional8 M
12 M
8 M
8 M
6 M
4 M
2 MSoluçãoPaliativa:Partiçõescom tamanhosdiferentes
![Page 13: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/13.jpg)
Partições Fixas – Fragmentação Externa
Memória perdida fora da área ocupada por um processo
1 M
3 M
4 M
8 M
8 MSist. Operacional
LIVRE
3 M
LIVRE
8 M
8 MSist. Operacional
5 M
Criado Processo 5 M
Não Executa!!Porque???LIVRE
4 M
LIVRE1 M
Memória Livre nãoé Contígua
![Page 14: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/14.jpg)
Partições Variáveis
Técnica mais flexível, pois o tamanho da partição é ajustado dinamicamente às necessidades exatas dos processos.
SO mantém uma lista de lacunas (espaços livres da memória física), que será percorrida sempre que um processo for criado.
Será usada uma lacuna maior ou igual ao tamanho do processo.
Se a lacuna for maior, a diferença (tamanho da lacuna – tamanho do processo) será transformada numa nova lacuna.
O processo recebe o tamanho exato que necessita.
![Page 15: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/15.jpg)
Partições Fixas
SO 225 Kbytes
Processo 1174 Kbytes
Processo 298 Kbytes
Processo 323 Kbytes
Lacuna80 Kbytes
Memória Física
Processo 485 Kbytes SO 225 Kbytes
Processo 1174 Kbytes
Processo 485 Kbytes
Processo 323 Kbytes
Lacuna80 Kbytes
Memória Física
Lacuna 13 Kbytes
Lacuna23 Kbytes
Lacuna116 Kbytes
![Page 16: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/16.jpg)
Partições Variáveis – Fragmentação Externa
A execução de processos pode criar pedaços livres de memória.
Pode haver memória disponível, mas não contígua
SO
Processo 1 320 K
Processo 3 288 K
64 K
Processo 4 128 K
96 K
Exemplo:
Criação Processo 120K
![Page 17: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/17.jpg)
Partições Variáveis – Fragmentação Externa
Possíveis Soluções
Reunir espaços adjacentes de memória.
Empregar compactação
Relocar as partições de forma a eliminar os espaços entre elas e criando uma área contígua
Desvantagem:
Consumo do processador
Acesso a Disco
Acionado somente quando ocorre fragmentação
![Page 18: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/18.jpg)
Algoritmos para alocação contígua dinâmica
Best fit Utiliza a lacuna que resultar na menor sobra Minimizar tam_processo - tam_bloco Deixar espaços livres os menores possíveis
Worst fitUtiliza a lacuna que resultar na maior sobra Maximizar tam_processo - tam_bloco Deixar espaços livres os maiores possíveis
First fitUtiliza a 1ª lacuna que encontrar com tamanho
suficiente tam_bloco > tam_processo
Circular fit Como first-fit, mas inicia a procura na lacuna seguinte à
última sobra
![Page 19: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/19.jpg)
Algoritmos para alocação contígua dinâmica
Exemplo: Criação de Um Processo de 10 K
20k
40k
30k
A
SisOp
A
C
20k
40k
30k
A
SisOp
A
C
20k
40k
30k
A
SisOp
A
C
Best-fit Worst-fit First-Fit
![Page 20: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/20.jpg)
Swap out
Swap in
Memória
Processo necessita estar na memória para ser executado
Se não há mais espaço em memória é necessário fazer um rodízio de processos em memória
Memória secundária suficientemente grande para armazenar cópias de todos os processos de usuários.
Swapping
P2
P1
![Page 21: Sistemas Operacionais Gerenciamento de Memória Prof. Galvez](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc15f497959413d8e749d/html5/thumbnails/21.jpg)
Swapping
P1
P1Swap out
Swap in
Memória
Um processo maior que a memória.