Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS OPERACIONAIS 1 Gerência de Memória Prof. Mateus Novaes (Adaptação dos slides de Silberschatz) SUMÁRIO � Fundamentos � Swapping � Alocação contígua de memória � Paginação Segmentação S istem a s O p era cio n a is � Segmentação � Segmentação com paginação 2 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA FUNDAMENTOS � O programa precisa ser trazido para a memória e colocado dentro de um processo para que possa ser executado � Fila de entrada – o conjunto de processos no disco que estão esperando para serem trazidos para S istem a s O p era cio n a is que estão esperando para serem trazidos para execução na memória � Os programas do usuário passarão por várias etapas antes de serem executados � Compilação � Carregamento � Execução 3 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA FUNDAMENTOS � Associação do endereço físico de memória � Tempo de compilação: � Se a posição de memória for conhecida, antecipadamente, então o código absoluto pode ser gerado Tempo de carga: S istem a s O p era cio n a is � Tempo de carga: � Se o local da memória não for conhecido na compilação, será preciso gerar código relocável � Tempo de execução (runtime): � Se o processo puder ser movido durante a execução então o vínculo será adiado até o momento da execução. É necessário o suporte do hardware. 4 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA FUNDAMENTOS S istem a s O p era cio n a is 5 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA FUNDAMENTOS � Endereçamento lógico vs físico � A resolução de endereços em tempo de compilação e de carga resultam em endereços lógicos e físicos iguais S istem a s O p era cio n a is � A resolução em tempo de execução resultam em endereços lógicos e físicos diferentes � O mapeamento de endereços lógicos em endereços físicos em tempo de execução é feito pelo MMU �Memory Management Unit 6 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA FUNDAMENTOS S istem a s O p era cio n a is 7 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA FUNDAMENTOS S istem a s O p era cio n a is 8 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA FUNDAMENTOS � Endereçamento lógico vs físico � O usuário não vê endereços físicos reais � Endereços lógicos � 0 a máx S istem a s O p era cio n a is � 0 a máx � Endereços físicos � Entre R+ 0 e R+max para R valor do registrador de relocação � O conceito de um espaço de endereçamento lógico associado a um espaço de endereçamento físico é central a uma gerência de memória 9 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA FUNDAMENTOS � Carga dinâmica � A rotina não é carregada até ser chamada � Melhor utilização do espaço na memória � Uma rotina não utilizada nunca é carregada S istem a s O p era cio n a is � Uma rotina não utilizada nunca é carregada � Útil quando grandes quantidades de código são necessárias para tratar de casos que não ocorram com freqüência. � Nenhum suporte especial do sistema operacional é necessário � Implementado pelo projeto do programa 10 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA FUNDAMENTOS � Ligação dinâmica e bibliotecas compartilhadas � Ligação estática carrega biblioteca na compilação � Ligação dinâmica o link é adiado até o tempo de execução � Pequeno segmento de código, stub, usado para S istem a s O p era cio n a is � Pequeno segmento de código, stub, usado para localizar a rotina correta na biblioteca residente na memória � O sistema operacional precisa verificar se a rotina está no endereço de memória dos processos � É particularmente útil para bibliotecas 11 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA FUNDAMENTOS � Overlays � Utilizado quando a quantidade de memória reservada para o processo é menor do que o necessário � Mantém na memória somente o necessário no momento S istem a s O p era cio n a is � Implementado pelo usuário � Ex: Passo 1 70K Passo 2 80K Tabela de símbolos 20K Rotinas comuns 30K 12 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA SWAPPING � Um processo pode ser retirado temporariamente da memória para um armazenamento auxiliar � swaped-out e swaped-in � Disco rápido e grande o suficiente para acomodar cópias de todas as imagens da memória para todos os S istem a s O p era cio n a is cópias de todas as imagens da memória para todos os usuários � Num escalonamento round-robin ao acabar o quantum o processo seria descarregado no disco e outro processo seria carregado na memoria � Num escalonamento de prioridade um processo de maior prioridade tiraria um processo de menor prioridade da memória 13 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA SWAPPING S istem a s O p era cio n a is 14 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA SWAPPING � Se a resolução de endereço for a nível de compilação ou carga o processo precisa voltar para a mesma posição de memória S istem a s O p era cio n a is 15 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA ALOCAÇÃO CONTÍGUA DE MEMÓRIA � A memória normalmente é dividida em duas partes: � Sistema operacional residente, em geral mantido na memória baixa com o vetor de interrupção � Processos do usuário, mantidos na memória alta S istem a s O p era cio n a is � Alocação de partição única � O esquema de registrador de relocação é usado para proteger os processos do usuário uns dos outros e da alteração de código e dados do sistema operacional � O registrador de relocação contém o valor do menor endereço físico � O registrador de limite contém o intervalo de endereços lógicos 16 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA ALOCAÇÃO CONTÍGUA DE MEMÓRIA S istem a s O p era cio n a is 17 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA ALOCAÇÃO CONTÍGUA DE MEMÓRIA � Alocação de múltipla partição � Espaço livre – bloco de memória disponível � Quando chega um processo, ele recebe alocação de memória de um espaço livre grande o suficiente para S istem a s O p era cio n a is memória de um espaço livre grande o suficiente para acomodá-lo � O sistema operacional mantém informações sobre: a) partições alocadas b) partições livres 18 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA ALOCAÇÃO CONTÍGUA DE MEMÓRIA S istem a s O p era cio n a is OS process 5 OS process 5 OS process 5 OS process 5 19 S istem a s O p era cio n a is process 5 process 8 process 2 process 5 process 2 process 5 process 2 process 5 process 9 process 2 process 9 process 10 GERENCIA DE MEMÓRIA ALOCAÇÃO CONTÍGUA DE MEMÓRIA � Alocação de múltipla partição � Espaço livre – bloco de memória disponível � Quando chega um processo, ele recebe alocação de memória de um espaço livre grande o suficiente para S istem a s O p era cio n a is memória de um espaço livre grande o suficiente para acomodá-lo � O sistema operacional mantém informações sobre: a) partições alocadas b) partições livres 20 S istem a s O p era cion a is GERENCIA DE MEMÓRIA ALOCAÇÃO CONTÍGUA DE MEMÓRIA � Existem algumas estratégias de alocação: � First-Fit: Aloca o primeiro vão que tenha tamanho suficiente � Best-Fit: Aloca o menor vão que seja grande o suficiente e é necessário procurar a lista inteira, a menos que esteja ordenada por tamanho. Produz o S istem a s O p era cio n a is menos que esteja ordenada por tamanho. Produz o menor espaço livre restante � Worst-Fit: Aloca o maior espaço e também é necessário procurar a lista inteira. Produz o maior espaço livre restante. � First-Fit e Best-Fit são melhores que Worst-Fit em termos de velocidade e utilização de memória. 21 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA ALOCAÇÃO CONTÍGUA DE MEMÓRIA � Tipos de fragmentação: � Fragmentação externa – espaço de memória total suficiente para satisfazer a uma requisição, mas ele não é contíguo. S istem a s O p era cio n a is � Fragmentação interna – a memória alocada pode ser ligeiramente maior do que a memória requisitada; essa diferença de tamanho é a memória que é interna a uma partição, mas que não está sendo usada 22 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA ALOCAÇÃO CONTÍGUA DE MEMÓRIA S istem a s O p era cio n a is 23 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA ALOCAÇÃO CONTÍGUA DE MEMÓRIA � Reduzir a fragmentação externa por compactação � Reorganizar o conteúdo da memória de modo a colocar toda a memória livre junta em um grande e único bloco � A compactação é possível apenas se a relocação for dinâmica e feita em tempo de execução S istem a s O p era cio n a is A compactação é possível apenas se a relocação for dinâmica e feita em tempo de execução � O problema da E/S �Segurar a tarefa na memória enquanto está envolvida na E/S �Realizar E/S somente nos buffers do sistema operacional 24 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO � O espaço de endereços lógicos de um processo pode ser não contíguo � Um processo pode utilizar vários “pedaços” de memória disponível S istem a s O p era cio n a is � Divide a memória física em blocos de tamanho fixo, chamados frames � Divide a memória lógica em blocos de mesmo tamanho, chamados páginas 25 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO � O S.O. tem controle de todos os frames livres � Um programa de n páginas, precisa de n frames disponíveis S istem a s O p era cio n a is� Define uma tabela de página para traduzir endereços lógicos em físicos � Não gera fragmentação externa, mas gera fragmentação interna. 26 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO S istem a s O p era cio n a is 27 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO � O endereço lógico agora é dividido em: � Número de página (p) – Usado como um índice para a tabela de página, que contém o endereço de base de cada página na memória física � Deslocamento de página (d) – Combinado com o endereço de base para definir o endereço da memória S istem a s O p era cio n a is endereço de base para definir o endereço da memória física que é enviado para a unidade de memória � Tamanho de endereço lógico: 2m � Tamanho de página: 2n 28 S istem a s O p era cio n a is page number page offset p d m - n n GERENCIA DE MEMÓRIA PAGINAÇÃO S istem a s O p era cio n a is 29 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO S istem a s O p era cio n a is 30 S istem a s O p era cio n a is 32-bytes de memória e 4-bytes de página GERENCIA DE MEMÓRIA PAGINAÇÃO S istem a s O p era cio n a is 31 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO � O sistema operacional aloca uma tabela de página para cada processo � Um ponteiro para tabela de página é armazenada no PCB do processo � No caso mais simples, a tabela de página é S istem a s O p era cio n a is � No caso mais simples, a tabela de página é implementada com um conjunto de registradores dedicados � O uso dos registradores é satisfatório se a tabela de página for razoavelmente pequena (até 256 entradas) 32 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO � Em outro caso a tabela é mantida na memória principal � Um registrador aponta para a tabela na memória � Page-table base register (PTBR) S istem a s O p era cio n a is � Page-table base register (PTBR) � São necessários dois acessos a memória para acessar o dado desejado � Um acesso para a tabela e outro para o dado 33 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO � O acesso duplo a memória pode ser resolvido com o uso de um cache de procura rápida � Registradores associativos ou Translation Lookup- aside buffers (TLBs) � O número de página é comparado com todas as S istem a s O p era cio n a is � O número de página é comparado com todas as chaves ao mesmo tempo � Hardware caro � O acesso completo usando TLBs leva menos de 10% a mais do tempo de um acesso direto � Caso a entrada não seja encontrada a tabela de página é consultada 34 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO S istem a s O p era cio n a is 35 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO � A proteção de memória é implementada associando um bit de proteção a cada frame � Bit válido-inválido é anexado a cada entrada na tabela de página: � “válido” indica que a página associada está no espaço S istem a s O p era cio n a is � “válido” indica que a página associada está no espaço de endereços lógicos do processo e, portanto, é uma página legal (ou válida) � “inválido” indica que a página não está no espaço de endereços lógicos do processo � Alguns sistemas fornecem hardware específico para proteção � Page-table length register – PTLR 36 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO S istem a s O p era cio n a is 37 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO � Paginação multinível � Um endereço lógico de 32 bits é dividido em: � 20 bits que indicam o número da página � 12 bits que indicam o deslocamento da página S istem a s O p era cio n a is � Como a tabela de página é paginada o número da página é novamente dividida em: � Um número de página de 10 bits � Um offset de página de 10 bits � Então o endereço lógico fica dividido em: 38 S istem a s O p era cio n a is page number page offset pi p2 d 10 10 12 GERENCIA DE MEMÓRIA PAGINAÇÃO S istem a s O p era cio n a is 39 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO � Tabela de página invertida � Como cada processo tem sua tabela de página a quantidade de memória gasta com essa alocação é grande S istem a s O p era cio n a is � Uma solução é o uso de uma tabela de página invertida � Cada entrada na tabela invertida se refere a uma página real com informações sobre o processo proprietário � Diminui a quantidade de memória utilizada, mas aumenta o tempo de busca pela página 40 S istem a s O p eracio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO S istem a s O p era cio n a is 41 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO � Páginas compartilhadas � Alguns dados são compartilhados entre processos, assim é importante compartilhar páginas entre processos S istem a s O p era cio n a is � Código compartilhado � A página compartilhada deve possuir o mesmo endereço lógico para todos os processos � Código e dados privados � O código e dos dados podem aparecer em qualquer lugar no espaço de endereçamento lógico 42 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO S istem a s O p era cio n a is 43 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA SEGMENTAÇÃO � Esquema de gerenciamento de memória que suporta visão da memória pelo usuário � Um programa é um conjunto de segmentos, sendo cada segmento uma unidade lógica como: � programa principal procedimento S istem a s O p era cio n a is � procedimento � função � método � objeto � variáveis locais, variáveis globais � bloco comum � pilha � tabela de símbolos, arrays 44 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA SEGMENTAÇÃO S istem a s O p era cio n a is 1 2 1 4 45 S istem a s O p era cio n a is3 4 2 3 user space physical memory space GERENCIA DE MEMÓRIA SEGMENTAÇÃO � O endereço lógico consiste em uma tupla: � <número-segmento, deslocamento> � Tabela de segmentos – mapeia endereços físicos bidimensionais, cada entrada da tabela possui: S istem a s O p era cio n a is bidimensionais, cada entrada da tabela possui: � base – contém o endereço físico inicial onde o segmento reside na memória � limite – especifica a extensão do segmento 46 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA SEGMENTAÇÃO � Registrador de base da tabela de segmentos (STBR) aponta para o local da tabela de segmentos na memória � Registrador de extensão da tabela de segmentos S istem a s O p era cio n a is � Registrador de extensão da tabela de segmentos (STLR) indica o tamanho do segmento usados por um programa � O tamanho do segmento s é válido se s < STLR. 47 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA SEGMENTAÇÃO S istem a s O p era cio n a is 48 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA SEGMENTAÇÃO S istem a s O p era cio n a is 49 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA SEGMENTAÇÃO � Proteção e compartilhamento � Os segmentos podem ter bits de proteção, que os definem como somente leitura, dados ou somente execução � Compartilhamento de código ocorre no nível do segmento S istem a s O p era cio n a is segmento � Como os segmentos variam em extensão, a alocação de memória é um problema de alocação de armazenamento dinâmico � Best-fit ou first-fit � Fragmentação externa � Compactação 50 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA SEGMENTAÇÃO S istem a s O p era cio n a is 51 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO COM SEGMENTAÇÃO � Pode-se utilizar um esquema de paginação com segmentação � O espaço de endereçamento do usuário é quebrado em segmentos S istem a s O p era cio n a is quebrado em segmentos � Cada segmento é então quebrado em páginas de tamanho fixo (igual ao tamanho do quadro) � Associado ao processo estão uma tabela de segmentos e para cada segmento uma tabela de páginas 52 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO COM SEGMENTAÇÃO � O endereço lógico é então dividido em uma parte para endereçar o segmento e outra para o deslocamento � O endereço do segmento é então traduzido para um endereço onde está sua tabela de páginas S istem a s O p era cio n a is endereço onde está sua tabela de páginas � O deslocamento é então dividido em mais duas partes � Uma parte que indica qual a página se deseja acessar � Outra indica o deslocamento dentro daquela página 53 S istem a s O p era cio n a is GERENCIA DE MEMÓRIA PAGINAÇÃO COM SEGMENTAÇÃO S istem a s O p era cio n a is 54 S istem a s O p era cio n a is
Compartilhar