gerenciamento de memóriacruz/courses/eel770/slides/9...proteção •processos não podem...
TRANSCRIPT
![Page 1: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/1.jpg)
EEL770 – Sistemas Operacionais
Gerenciamento de memória
Pedro Cruz
![Page 2: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/2.jpg)
Lembretes
• Trabalho
– Dia 22 de setembro de 2017
• Calendário Gregoriano
• James Kurose
– Amanhã, CT2, 15h
2
![Page 3: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/3.jpg)
Relembrando: processo namemória
3
Pilha
Dados
Livre
Programa
![Page 4: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/4.jpg)
Gerenciamento de memória
• Sistema de processo único
– Memória dividida entre operacional e programa do usuário
• Sistema de multiprocessos
– Memória dividida entre operacional e múltiplos programas de usuário
4
![Page 5: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/5.jpg)
Requisitos do gerenciamento de memória
• Realocação
• Proteção
• Compartilhamento
• Organização lógica
• Organização física
5
![Page 6: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/6.jpg)
Realocação
• Garantir que informação entre e saia da memória
– Processos
• Código
• Dados
• Garantir que referências dentro do programa estejam corretas
6
![Page 7: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/7.jpg)
Proteção
• Processos não podem interferir na memória dos outros
– Leitura
– Escrita
• Referências só são conhecidas em tempo de execução
– Como o operacional pode garantir que não haja referências à memória que não é do processo?
7
![Page 8: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/8.jpg)
Proteção
• Processos não podem interferir na memória dos outros
– Leitura
– Escrita
• Referências só são conhecidas em tempo de execução
– Como o operacional pode garantir que não haja referências à memória que não é do processo?
• Operacional não pode garantir
• Processador dá suporte a isso
8
![Page 9: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/9.jpg)
Compartilhamento
• Diversos processos podem precisar acessar a mesma área
– Processos com o mesmo código
– Processos que compartilham dados
9
![Page 10: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/10.jpg)
Organização lógica
• Memória é um espaço linear de endereçamento
• Programas não são lineares
– Módulos que se relacionam
• Referências não podem ser decididas em tempo de compilação
• Permissões de leitura e escrita não são uniformes
• Módulos podem ser compartilhados por diversos processos
10
![Page 11: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/11.jpg)
Organização física
• Programas devem ser organizados na memória
– Primária
• “Rápida”
• “Pequena”
• Volátil
– Secundária
• “Lenta”
• Grande
• Permanente
• Programadores não sabem a memória disponível em tempo de execução
• Operacional deveria organizar os programas nas memórias11
![Page 12: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/12.jpg)
Sem abstração de memória
• Processo único em execução
• Processo único em memória
– Outros em disco
• Chaves de memória
– Memória é dividida em blocos
• Cada um tem uma chave
– Processador só permite acesso a um bloco com a chave
– Processos são escritos para começar no endereço 0x00
• Realocação estática
– Somar o endereço inicial do programa a cada referência de memória realizada no programa em tempo de carga
12
![Page 13: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/13.jpg)
Casos de uso
• IBM 360
– Mainframe
• Sistemas embarcados
• Internet das Coisas
13
![Page 14: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/14.jpg)
Abstrações de memória
• Espaços de endereçamento
• Memória virtual
14
![Page 15: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/15.jpg)
Espaços de endereçamento
• Representa uma fatia independente de memória
– Cada processo recebe uma fatia
• Implementado na forma de registradores (realocação dinâmica)
– Registrador base
– Registrador limite
– Referência do processo sofre alterações e verificações em tempo de execução
• Somada ao registrador base
• Comparada com registrador limite
Problema da abordagem?15
![Page 16: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/16.jpg)
Fome de memória
• Processos nem sempre cabem na memória
– Limitar o uso de memória
• Executar um número limitado de processos
• Matar processos que precisarem de memória indisponível
– Elaborar estratégias para “criar memória”
• Troca de processos – Swapping
• Memória virtual
16
![Page 17: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/17.jpg)
Troca de processos – Swapping
• Processo fica completamente armazenado em disco
• Processo é trazido de forma completa quando é acordado
17
![Page 18: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/18.jpg)
Expansão da alocação
• Processo pode precisar de mais memória
• Expansão pode se dar de duas maneiras
18
B – em uso
B – para expansão
Operacional Operacional
Pilha B
Dados B
B – para expansão
Programa B
Pilha A
Dados A
A – para expansão
Programa A
A – em uso
A – para expansão
![Page 19: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/19.jpg)
Gerenciamento de memória livre
• Processos entram e saem da memória
– Processos recém-criados precisam entrar na memória
• Vamos assumir que processos são contíguos
• Operacional deve manter controle sobre o que pode ser alocado e o que já está alocado
– Mapas de bits
– Listas livres
19
![Page 20: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/20.jpg)
Mapa de bits
• Memória é dividida em palavras
– k bytes para cada
• Cada palavra é mapeada em um bit
– 0 se memória está livre
– 1 se memória está ocupada
• Mapa de bits ocupa 1/k da memória
• Alocação de n palavras deve procurar por n 0’s contíguos
20
![Page 21: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/21.jpg)
Lista encadeada
• Lista encadeada guarda posições livres da memória
– Cada elemento da lista representa um segmento contíguo de memória
• Localização
– Início
– Tamanho
• Estado
– Livre
– Ocupado
21
A 0 3 A 13 3L 3 10 A 16 16
![Page 22: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/22.jpg)
Algoritmos de alocação
• Processos recém-criados precisam ir pra memória
– Onde?
• Algoritmos de alocação
– Primeiro encaixe (first fit)
• Gerenciador procura o primeiro espaço livre mínimo
– Melhor encaixe (best fit)
• Gerenciador procura o menor espaço livre mínimo
– Pior encaixe (worst fit)
• Gerenciador procura o maior espaço livre
22
![Page 23: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/23.jpg)
Problemas dos algoritmos de alocação
• Primeiro encaixe (first fit)
– Pode deixar espaços livres na memória
• Melhor encaixe (best fit)
– Deixa espaços pequenos livres na memória
• Inúteis
– Demora pra achar o melhor
• Pior encaixe (worst fit)
– Não funciona tão bem quanto promete
23
![Page 24: Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem interferir na memória dos outros –Leitura –Escrita •Referências só são conhecidas](https://reader031.vdocuments.mx/reader031/viewer/2022020416/5c5f08d609d3f2dd6a8cb193/html5/thumbnails/24.jpg)
EEL770 – Sistemas Operacionais
Gerenciamento de memória
Pedro Cruz