gerenciamento memoria

31
Gerenciamento de Gerenciamento de memória memória Qual é mesmo o tópico?.... Qual é mesmo o tópico?....

Upload: rodrigo-piovesana

Post on 09-Jun-2015

9.156 views

Category:

Education


0 download

DESCRIPTION

Aula sobre Gerenciamento de Memória, livro Sistemas operacionais modernos - Andrew Tanenbaum.

TRANSCRIPT

Page 1: Gerenciamento memoria

Gerenciamento Gerenciamento de memóriade memóriaQual é mesmo o tópico?....Qual é mesmo o tópico?....

Page 2: Gerenciamento memoria

Gerenciamento de Gerenciamento de memóriamemória

Computadores hoje possuem 100 vezes Computadores hoje possuem 100 vezes mais memórias que o maior computador mais memórias que o maior computador da década de 60.da década de 60.

Sobre memórias sempre dizemos “que Sobre memórias sempre dizemos “que quanto mais, melhor”...sempre...quanto mais, melhor”...sempre...

RAMRAM

ROMROM

HDHD

Page 3: Gerenciamento memoria

Gerenciamento de Gerenciamento de MemóriaMemória

O que é gerenciamento de memória ?

Parte do sistema operacional responsável em particionar a memória para acomodar múltiplos processos, essa memória deve ser alocada de forma eficiente afim de acomodar o número máximo de processos

Page 4: Gerenciamento memoria

Gerenciamento de Gerenciamento de MemóriaMemória

A multiprogramação implica em manter-A multiprogramação implica em manter-se vários processos em memória.se vários processos em memória.

A memória necessita ser alocada de A memória necessita ser alocada de forma eficiente para permitir o máximo forma eficiente para permitir o máximo possível de processospossível de processos

Existem diferentes técnicas para Existem diferentes técnicas para gerência de memória, que dependem do gerência de memória, que dependem do hardware do processador.hardware do processador.

Page 5: Gerenciamento memoria

Gerenciamento de Gerenciamento de MemóriaMemória

processadorvirtual

mem

óriavirtual

arquivos

memóriaperene

read, write copy

i) visão do usuário

endereçode memóriafísica

processadorreal

mapeamentode endereços

memóriaprincipal

memóriaauxiliar

endereçovirtual

swapping

ii) visão do projetistado SO

Page 6: Gerenciamento memoria

Gerenciamento de Gerenciamento de MemóriaMemória

Idealmente, o que todo programador deseja é Idealmente, o que todo programador deseja é dispor de uma memória que sejadispor de uma memória que seja

grandegranderápidarápidanão volátilnão volátil

Hierarquia de memórias Hierarquia de memórias pequena quantidade de memória rápida, de alto pequena quantidade de memória rápida, de alto custo - cache custo - cache quantidade considerável de memória principal de quantidade considerável de memória principal de velocidade média, custo médiovelocidade média, custo médiogigabytes de armazenamento em disco de gigabytes de armazenamento em disco de velocidade e custo baixosvelocidade e custo baixos

O gerenciador de memória trata a hierarquia de O gerenciador de memória trata a hierarquia de memóriasmemórias

Page 7: Gerenciamento memoria

Gerenciamento de Gerenciamento de MemóriaMemória

Page 8: Gerenciamento memoria

Gerenciamento de Gerenciamento de MemóriaMemória

Duas grandes ClassesDuas grandes ClassesAs que movem processos de um lado para As que movem processos de um lado para o outro...(entre memória principal e o o outro...(entre memória principal e o disco durante execução)disco durante execução)

E aquelas que não o fazem.E aquelas que não o fazem.

As memórias que não fazem As memórias que não fazem paginação/troca são mais simples... paginação/troca são mais simples... Vamos a elas...Vamos a elas...

Page 9: Gerenciamento memoria

MonoprogramaçãMonoprogramaçãoo

Um programa por vezUm programa por vez

Não havia troca/paginaçãoNão havia troca/paginação

Quando o SO está organizado dessa Quando o SO está organizado dessa maneira, somente um processo por vez maneira, somente um processo por vez pode estar em execução.pode estar em execução.

Page 10: Gerenciamento memoria

MonoprogramaçãMonoprogramaçãoo

Page 11: Gerenciamento memoria

MultiprogramaçãoMultiprogramaçãoPartições Fixas da memória Partições Fixas da memória (possivelmente desiguais)(possivelmente desiguais)

Múltiplos processosMúltiplos processos

Pelo Sistema operacionalPelo Sistema operacional

Fila de entrada para ocupar a memóriaFila de entrada para ocupar a memóriaPode ser por tamanho do jobPode ser por tamanho do job

Pode ser sem classificaçãoPode ser sem classificação

Page 12: Gerenciamento memoria

MultiprogramaçãoMultiprogramação

Page 13: Gerenciamento memoria

Quais os Quais os problemas problemas

gerados pela gerados pela multiprogramaçãmultiprogramaçã

o?o?Isso mesmo.... Realocação e Proteção.Isso mesmo.... Realocação e Proteção.

Pode ficar a vontade para pesquisar....Pode ficar a vontade para pesquisar....

Page 14: Gerenciamento memoria

Gerenciamento de Gerenciamento de MemóriaMemória

RealocaçãoRealocação

Capacidade de mover um programa de uma Capacidade de mover um programa de uma região da memória principal para uma outra região da memória principal para uma outra sem invalidar as referencias de memória dentro sem invalidar as referencias de memória dentro do programa;do programa;

O programador não sabe onde o programa é O programador não sabe onde o programa é colocado na memória quando ele é executadocolocado na memória quando ele é executado

O hardware do processador e o SO devem ser O hardware do processador e o SO devem ser capazes de traduzir os endereços de referencia capazes de traduzir os endereços de referencia de memória no código do programa para o de memória no código do programa para o endereço físico da memória.endereço físico da memória.

Page 15: Gerenciamento memoria

Gerenciamento de Gerenciamento de MemóriaMemória

ProteçãoProteção

Cada processo deve ser protegido contra Cada processo deve ser protegido contra interferências não desejáveis de outros processos de interferências não desejáveis de outros processos de forma acidental ou intencionalforma acidental ou intencional

Processos não devem ser capazes de referenciar Processos não devem ser capazes de referenciar localizações de memória de outro processo sem localizações de memória de outro processo sem permissão;permissão;

O hardware é responsável por fazer a verificação, O hardware é responsável por fazer a verificação, caso a violação ocorra, o mesmo deve abortar tais caso a violação ocorra, o mesmo deve abortar tais instruções no ponto da execução;instruções no ponto da execução;

O SO não pode prever todas as referencias de O SO não pode prever todas as referencias de memória que o programa fará (custo muito alto).memória que o programa fará (custo muito alto).

Page 16: Gerenciamento memoria

Gerenciamento de Gerenciamento de MemóriaMemória

CompartilhamentoCompartilhamento

Permitir que vários processos acessem a Permitir que vários processos acessem a mesma área de memória principalmesma área de memória principal

É vantajoso, que :É vantajoso, que :processos que são executados em um mesmo processos que são executados em um mesmo programa acessem a mesma cópia do programa eprograma acessem a mesma cópia do programa eProcessos que estão cooperando em uma mesma Processos que estão cooperando em uma mesma tarefa compartilhem acesso a uma mesma tarefa compartilhem acesso a uma mesma estrutura de dadosestrutura de dados

Deve permitir o compartilhamento sem Deve permitir o compartilhamento sem comprometer o requisito de proteçãocomprometer o requisito de proteção

Page 17: Gerenciamento memoria

Gerenciamento de Gerenciamento de MemóriaMemória

Organização lógicaOrganização lógica

Capacidade de manipular com programas e dados do Capacidade de manipular com programas e dados do usuário organizado em módulosusuário organizado em módulos

Memória -> seqüências de Bytes e palavrasMemória -> seqüências de Bytes e palavrasProgramas -> módulosProgramas -> módulos

Vantagens:Vantagens:Módulo podem ser escritos e compilados Módulo podem ser escritos e compilados independentemente, as referencias de um módulo independentemente, as referencias de um módulo para o outro são resolvidas em tempo de execução;para o outro são resolvidas em tempo de execução;Com um overhead adicional, diferentes graus de Com um overhead adicional, diferentes graus de proteção (read only, execute only) podem ser dados proteção (read only, execute only) podem ser dados para diferentes módulospara diferentes módulosÉ possível introduzir mecanismo de compartilhamento É possível introduzir mecanismo de compartilhamento entre módulosentre módulos

Page 18: Gerenciamento memoria

Gerenciamento de Gerenciamento de MemóriaMemória

Organização físicaOrganização física

Organização da memória do computador:Organização da memória do computador:Dois níveis: Dois níveis:

Memória principal -> mais rápida, volátil e Memória principal -> mais rápida, volátil e custo altocusto alto

Memória secundária -> lenta, Memória secundária -> lenta, armazenamento permanente e barataarmazenamento permanente e barata

Capacidade de mover informações entre Capacidade de mover informações entre os 2 níveis de memóriaos 2 níveis de memória

Page 19: Gerenciamento memoria

TrocaTrocaAs vezes a memória principal não é As vezes a memória principal não é suficiente para armazenar todos os suficiente para armazenar todos os processosprocessos

Troca entre disco rígido e memória Troca entre disco rígido e memória intenso.intenso.

Duas estratégiasDuas estratégiasTroca (trazer o processo inteiro para Troca (trazer o processo inteiro para execução)execução)

Memória Virtual (execução mesmo que Memória Virtual (execução mesmo que parcialmente na memória principal).parcialmente na memória principal).

Page 20: Gerenciamento memoria

TrocaTroca

Page 21: Gerenciamento memoria

Então o meu Então o meu computador faz computador faz

troca-troca?troca-troca?Hummmm......Hummmm......

É possível realizar compactação de memória?É possível realizar compactação de memória?

Os processos são criados com tamanhos Os processos são criados com tamanhos fixos, mas temos variáveis dinâmicas (heap).fixos, mas temos variáveis dinâmicas (heap).

Um processo pode “crescer” na memória?Um processo pode “crescer” na memória?

Recomendo a leitura sobre pilhas!Recomendo a leitura sobre pilhas!

Page 22: Gerenciamento memoria

Memória VirtualMemória VirtualÉ o tamanho combinado do programa, É o tamanho combinado do programa, dos dados e da pilha pode exceder a dos dados e da pilha pode exceder a quantidade de memória física disponível quantidade de memória física disponível para ele.para ele.

Um programa de 16 Mb pode ocupar um Um programa de 16 Mb pode ocupar um região de 4 Mb.região de 4 Mb.

Disco é mais lento que a RAMDisco é mais lento que a RAM

Page 23: Gerenciamento memoria

Memória VirtualMemória VirtualPaginação Paginação

Páginas – espaço do endereço virtual que Páginas – espaço do endereço virtual que é dividido para receber dados.é dividido para receber dados.

Mapeamento de Páginas e Molduras.Mapeamento de Páginas e Molduras.

Bit de mapeamento (presente/ausente) XBit de mapeamento (presente/ausente) X

Interrupção em caso de falha de páginaInterrupção em caso de falha de página

Tabela de PáginasTabela de PáginasMultiníveisMultiníveis

Page 24: Gerenciamento memoria
Page 25: Gerenciamento memoria
Page 26: Gerenciamento memoria

Memória VirtualMemória VirtualAlgoritmos de substituição de PaginasAlgoritmos de substituição de Paginas

Problema de desempenho caso o programa for muito Problema de desempenho caso o programa for muito utilizadoutilizado

O melhor algoritmo é fácil de descrever amas O melhor algoritmo é fácil de descrever amas impossível de por em prática. Não há como saber impossível de por em prática. Não há como saber se página será novamente referenciada. se página será novamente referenciada.

Realizar pesquisa sobre os algoritmos Realizar pesquisa sobre os algoritmos NUR (Não recente usado)NUR (Não recente usado)

First-in/First-out (primeiro a entrar primeiro a sair)First-in/First-out (primeiro a entrar primeiro a sair)

Second Chance (segunda-chance) Second Chance (segunda-chance)

ClockClock

MRU (menos recente usado)MRU (menos recente usado)

Page 27: Gerenciamento memoria

Memória VirtualMemória VirtualFIFOFIFO

Imagina que você tem um programa que Imagina que você tem um programa que irá começar a rodar neste instante e irá começar a rodar neste instante e ocupará boa parte da sua memória. ocupará boa parte da sua memória.

A mais antiga das aplicações que esta A mais antiga das aplicações que esta rodando esta no topo da lista. Na rodando esta no topo da lista. Na ocorrência de uma falta de página, a ocorrência de uma falta de página, a primeira aplicação a dar espaço será a primeira aplicação a dar espaço será a mais antiga.mais antiga.

Page 28: Gerenciamento memoria

SegmentaçãoSegmentaçãoMemória Virtual é unidimensional. Memória Virtual é unidimensional. Endereço vai de ZERO a algum lugar (end. Endereço vai de ZERO a algum lugar (end. Maximo).Maximo).

Ou seja, todo o seu programa deve estar Ou seja, todo o seu programa deve estar alocado uma porção contínua na memória.alocado uma porção contínua na memória.

Segmentação é a possibilidade de dar Segmentação é a possibilidade de dar espaços independentes para que cada espaços independentes para que cada tabela do programa possa usar. Pode tabela do programa possa usar. Pode crescer ou diminuir de tamanho sem crescer ou diminuir de tamanho sem afetarem uns aos outros.afetarem uns aos outros.

Page 29: Gerenciamento memoria

SegmentaçãoSegmentação

Page 30: Gerenciamento memoria

SegmentaçãoSegmentação

Page 31: Gerenciamento memoria

SegmentaçãoSegmentaçãoBiblioteca CompartilhadaBiblioteca Compartilhada

• Vários programas acessam o segmento Vários programas acessam o segmento que será uniforme para ambos os que será uniforme para ambos os softwaressoftwares