Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem...

24
EEL770 – Sistemas Operacionais Gerenciamento de memória Pedro Cruz

Transcript of Gerenciamento de memóriacruz/courses/eel770/slides/9...Proteção •Processos não podem...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

EEL770 – Sistemas Operacionais

Gerenciamento de memória

Pedro Cruz