Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira –...

30
Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – [email protected] Gerenciamento de Memória Virtual

Transcript of Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira –...

Page 1: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Sistemas Operacionais

Sistemas Operacionais IDionisio Gava Junior

Reynaldo G. de Oliveira – [email protected]

Gerenciamento de Memória Virtual

Page 2: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

MEMÓRIA VIRTUAL

• Sistemas não virtuais.• Necessidades da memória virtual.• Memória virtual.• Paginação por demanda.• Interrupção por falta de página.• Carga por demanda.• Remoção de páginas.• Tabela de blocos.• Execução com memória virtual.• Paginação por demanda.• Exercícios.

FATEC - Sistemas Operacionais IGerenciamento da Memória Virtual

Page 3: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

FATEC - Sistemas Operacionais I

Sistemas não Virtuais

Em todos os esquemas vistos previamente, o serviço não executaria caso não existisse memória suficiente para a carga do programa inteiro. Esta restrição frequentemente resulta em áreas livres e serviços esperando para ser carregado e executado.

Mais do que isso, os programadores quando pressionados a manter o espaço de endereçamento do programa pequeno, diminuem a produtividade bem com a qualidade da programação.

Muitos estudos realizados tem mostrado que um programa quando restrito em termos de espaço de memória, implicará em um custo crescente de programação ao longo de sua manutenção.

Gerenciamento da Memória Virtual

Page 4: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

• O tamanho da memória de um computador não deve influir na programação, ou mesmo na estruturação aplicativa.

• Se o programa for muito grande, em relação a memória, o sistema operacional, não o programador, deverá alocá-lo adequadamente na memória.

• O programa deverá utilizar somente a memória necessária durante a sua execução.

• O sistema operacional não deve permitir que a memória torne-se fragmentada ou qualquer outra situação de sub-utilização.

• O sistema deverá se adaptar a demanda das atividades aplicativas, alocando, desalocando ou adicionando quando necessário, de forma transparente e automática.

Necessidades da Memória Virtual

Page 5: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Espaço Simbólico

Os programas contém descrições dos dados, de instruções e descrições de E/S. Os dados são descritos com nomes simbólicos, tais como “salário”, “campoa”, “endereço”, etc.

Algumas instruções ou grupos de instruções, da mesma forma que um campo na memória, poderão possuir nomes simbólicos, os quais são referenciados nas operações de desvio.

O programa fonte será efetivamente uma combinação de instruções simbólicas, descrições de dados e descrições de operações de E/S, todos estes existindo em um espaço construído pelo programador.

Este espaço é denominado "ESPAÇO SIMBÓLICO".

Esta combinação de instruções simbólicas e nomes simbólicos e parte integrante do processo de desenvolvimento, estão presentes em quase todas as linguagens de programação, sendo fundamentais na implementação das aplicações.

Page 6: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Tradução

Na preparação de um programa fonte para execução, o programador executa a compilação de um conjunto de símbolos que constituem o Espaço Simbólico.

O compilador converte os elementos simbólicos de uma determinada linguagem de programação utilizada, para instruções de máquina, para dados e outros blocos de informações.

O compilador substitui os nomes simbólicos por endereços reais. Este processo é chamado "Tradução".

Após a tradução os endereços que compreendem o programa denominado "Espaço de Endereçamento".

O compilador assinala endereços iniciando na localização zero de memória, atribuindo crescentemente os endereços, as instruções e demais constantes.

Page 7: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Formas de Tradução de Endereços

A tradução de endereços poder ser realizada de três formas:

Somente na Compilação. O programa compilado e o resultado da compilação criará um módulo cujos, endereços são absolutos. Exemplo "mover 10 bytes da posição 100 para posição 200 da memória". Neste caso não haverá tradução de "endereços na memória".

Na compilação e na execução (não virtuais). A compilação traduz os símbolos em endereços não absolutos, os quais serão ainda traduzidos no momento da execução, porém não exigem consulta em tabelas.

Na compilação e na execução (virtuais). Idem ao anterior, porém o endereço não absoluto exigirá ainda

Page 8: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Tradução de Endereços

O programa visto pelo sistema como um conjunto de endereços virtuais, mapeados em páginas em uma tabela específica do programa.

No momento da execução de suas instruções, acontecerá tradução dos endereços virtuais para reais. A tradução feita por circuitos de hardware a qual consultará a tabela de páginas do programa para obter o bloco correspondente à página.

A tradução ocorrerá tanto na busca de uma instrução como no endereçamento de operandos.

Page 9: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Tipos de Relocação

EstáticaÉ feita no momento em que o programa carregado para a memória. A tradução feita em uma única vez na compilação do programa. O resultado um espaço de endereçamento que terá a origem zero, e por isso deverá ser carregado na localização zero da memória real.

Este programa denominado PROGRAMA ABSOLUTO. Não existirá relocação de endereços do espaço de endereços no programa e a memória real.

DinâmicaÉ feita no momento da execução do programa. A cada instrução ou dados referenciado, haverá a tradução de endereços. O programa não tendo endereçamento absoluto, não necessitará estar carregado continuamente.

Este tipo de tradução denominado RELOCAÇÃO DINÂMICA e executado por dispositivos especiais de hardware.

Page 10: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Memória Virtual

Em todos os esquemas não virtuais vistos anteriormente, notou-se que um serviço não poderia ser executado, caso não houvesse memória suficiente para carregar todo o espaço de endereçamento.

Esta restrição resulta em áreas livres não utilizadas e serviços que ficam esperando para ser carregados e executados.

Embora os custos de memória decrescem com o passar do tempo, a necessidade de utilização sempre foi, e sempre será consideravelmente maior que a capacidade oferecida pelos computadores.

A solução para estes problemas basicamente foi a utilização de MEMÓRIA VIRTUAL.

Com o uso de memória virtual, o sistema operacional produz a ilusão de existir uma memória extremamente grande. Como isto é somente uma ilusão, pois e memória não existe fisicamente, é denominada memória virtual.

A utilização de memória virtual possui várias implementações. Analisaremos a seguir uma delas denominada "PAGINAÇÃO POR DEMANDA".

Page 11: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Paginação por Demanda

A técnica de gerenciamento denominada Paginação por Demanda, permitirá que a soma dos espaços de todos os programas seja maior que a memória física disponível.

Esta será permitida pelo fato de que todo o espaço do programa não necessitará estar na memória física de uma vez, ao contrário disto, somente as partes ativas de cada programa terá de ser carregada.

Page 12: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Implementação de Memória Virtual

• A memória física será dividida em blocos iguais. Em algumas arquiteturas, a área em que estará carregado o sistema operacional não sofre a divisão em blocos.

• Será criado para cada programa no momento de a execução uma tabela de páginas que conterá: uma entrada para cada página a ser mapeada. Cada entrada contém o número da página ( de 0 a n), o estrado da página ( S - está presente na memória física, N - não está presente na memória física).

• Bloco - Número do bloco, ou seja, a localização da página na memória física.O programa possuirá um conjunto de endereços "VIRTUAIS" compreendido por páginas, que analisaremos a seguir.

• Uma página poderá ter tamanho variado, entretanto a formatação mais comumente encontradas nas arquiteturas utilizam paginas de 4 Kbytes de tamanho.

Page 13: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Interrupção por Falta de Página

Caso o hardware no momento da tradução encontrar o estado "N" na tabela de páginas, para aquela página específica, gerado neste instante uma interrupção por falta de página.

Este tipo de interrupção faz com que o sistema operacional carregue de volta para a memória e atualize a tabela de páginas.

Neste momento o programa espera a resolução da página demandada. Exatamente por isso o esquema denominado "PAGINAÇÃO POR DEMANDA".

Desta forma todas as páginas necessárias serão carregadas por demanda. Isto garante que páginas não necessárias não sejam carregadas.

Page 14: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Carga por Demanda

Uma cópia de todo o espaço de endereço do programa armazenada na memória auxiliar quando o programa carregado para execução.

Durante a execução, no momento de uma tradução, a página pode não estar na memória, isto implicar na interrupção por falta de página, que por sua vez fará com que a página demandada seja carregada do disco para a memória.

A técnica de gerenciamento de paginação por demanda torna-se eficiente, a medida que o programa não fica restrito ao tamanho da memória física. Em outras palavras, o programa poderia ser maior que a memória física disponível.

Page 15: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Remoção de Páginas

Uma vez que a memória física esteja totalmente cheia, o sistema não poderá carregar do disco para a memória uma página que fosse demandada. Neste caso dever haver uma política de remoção de páginas a ser realizada.Para liberar blocos na memória física, o sistema avaliará os blocos menos utilizados, fará a liberação dos mesmos e atualizará as tabelas.

Page 16: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Tabela de Blocos

O controle da memória física será feito através da tabela de blocos. No momento da iniciação do sistema, a tabela será criada e existirá uma entrada para cada bloco existente.

O sistema operacional de tempos em tempos atualiza a tabela com base na utilização do bloco.(Exemplo 1 em 1 segundo).

Na utilização é verificado se o bloco foi ou não referenciado, e caso não tenha sido, será somado "1" no contador de não referência (CNR ou UIC). Caso o controle do bloco tenha sido alterado, o bit de alteração conterá o valor "1".

Para liberar blocos, o sistema pesquisar os blocos com maior UIC, e caso o bit de alteração esteja em 1, fará uma cópia para o disco antes da liberação.

Page 17: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Execução com Memória Virtual

A memória virtual visualisa o programa através de seus endereços virtuais. Ao ser executado, o sistema deverá traduzir os endereços virtuais do programa para os endereços reais.

A tradução realizada normalmente por dispositivos de hardware (circuitos) que garantem uma alta velocidade na execução desta tarefa.

O programa fisicamente estará residindo na memória real (memória física), ou na memória auxiliar (disco).

Durante a tradução de um endereço, o sistema poderá detectar a ausência de uma parte do programa na memória, a qual estará no disco e será rapidamente trazida de volta para a memória, permitindo que o programa continue a execução.

Partes muito utilizadas residirão na memória, e partes pouco utilizadas residirão em disco e somente serão trazidas para a memória quando necessárias.

Consequentemente, o programa ocupará uma menor quantidade de memória real, liberando grande parte de memória para que outros programas possam ser executados.

Page 18: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Paginação por Demanda

Vantagens• Ampla memória virtual: Os programas não se limitam ao tamanho da memória física.• Uso eficiente de memória: As partes dos programas pouco ou raramente utilizadas, não residirão na memória física..Aumento da multiprogramação: A memória virtual possibilita o aumento do número de programas em execução, bem como aumento do tamanho.

Desvantagens•.Trabalho não produtivo: O sistema operacional para exercer o gerenciamento consumir ciclos de CPU.

Thrashing: Caso a demanda de páginas seja muito alta, o sistema passa a gastar muito tempo para resolver atividades de paginação, sendo que este gasto poderá coibir a utilização do sistema pelos programas aplicativos.

Page 19: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Paginação por Demanda

SO

Memória Real

Paginas 4K

Memória Auxiliar

Slots 4K

Tabelas

Page 20: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Paginação por Demanda

SO

Memória Real

Memória Auxiliar

Saída dePaginas

Retorno dePaginas

Sáida de Paginas – As paginas não estão sendo necessárias, e portanto podem ser liberadas da memória realRetorno de Pagina – O programa necessita para continuar a executar de uma pagina que não se encontra na memória.

Funcionamento

Page 21: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Mapeamento da Memória Real

SO

Memória Real

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Tabela de BlocosNº Pg Processo UIC Alt

1

2

3

4

5

6

7

8

9

25

Page 22: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Mapeamento da Memória Real

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

A

Processo A entra em execução

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

B

Processo B entra em execução

Page 23: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Mapeamento da Memória Real

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

C

Processo C entra em execução

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

D

Processo D entra em execução

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

E

Processo E entra em execução

Page 24: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Mapeamento da Memória Real

Pontos de Reflexão:

• Sendo um sistema de memória virtual o que deverá ocorrer à partir deste momento?

• O que ocorreria se não fosse Gerenciamento de memória virtual?

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

F

Processo F entra em execução

Page 25: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Mapeamento da Memória Real Tabela de Blocos

Nº Pg Proc. UIC Alt

1 A 121 0

2 A 0 1

3 A 32 0

4 A 67 0

5 A 3 0

6 B 102 1

7 B 76 1

8 B 5 0

9 B 26 0

n 71

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Page 26: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Controle da Memória Real Tabela de Blocos

Nº Pg Proc. UIC Alt

1 0 0 2 A 0 13 A 32 04 0 05 A 3 06 0 07 0 08 B 5 09 B 26 0

n 71

Liberação de Paginas

Menos frequentemente Utilizadas

Maiores UIC

Page 27: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Mapeamento da Memória Real

Processo F

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Questões:

• Como será a alocação de novos programas?

•´Teoricamente seria possível a carga de um programa maior que o espaço memória real disponível?

Fragmentação?

Page 28: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Mapeamento da Memória Real

Processo F

Processo G

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Reflexões:

• Os programas não são carregados continuamente na memória

• Caso necessário o sistema liberará paginas inativas. (MFU ou LRU)

• Somente as partes ativas dos programas permanecerão se houver necessidade de recurso.

• O nivel de multiprogramação tenderá a ser bem maior, uma vez que somente as partes ativas dos programas permanecerão na memória.

Page 29: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Falta de Pagina

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Funcionamento:

• O programa A em execução tenta desviar para endereços da pagina 4.

• A pagina 4 não se encontra disponível na memória real. Havia sido liberada por não estar ativa, e por ter existido necessidade de mais memória para outros processos.

• No momento em que o desvio ocorre, existirá a tentativa de tradução de endereço, porém sem sucesso, pois não existe o corresponde real para a pagina 4. A mesma está somente em disco.

• Neste momento ocorre uma interrupção de FALTA DE PAGINA.

• Como toda interrupção, a Falta de Pagina terá o processo normal de tratamento. (CPU é interrompida, salvamento do estado, etc..)

• O sistema estará tratando a Falta de Pagina, identificando na Tabela de Programa a localização no disco, retornando em seguida.

• O retorno será em uma localidade de memória livre, não sendo necessário em local específico.

Disco

Page 30: Sistemas Operacionais Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree.com.br Gerenciamento de Memória Virtual.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I

Espaço de endereçamento do processo

Virtual Bloco Disco

1 - 31

2 2 6

3 3

4 25 85

5 5

Programa A Aspectos:

• Os endereços virtuais são contínuos• Os endereços na memória real, ou no disco, não necessitam estar contínuos• Haverá sempre a tradução dos endereços, resolvendo o endereçamento do programa.