Cap ítulo 9: Gerência de Memória

68
Video Capítulo 9: Gerência de Memória

description

Cap ítulo 9: Gerência de Memória. Assuntos. Cenário Swapping Alocação contígua Paginação Segmentação Paginação com segmentação. Cenário. Programa tem que ser carregado em memória e colocado dentro de um processo para rodar Fila de entrada - PowerPoint PPT Presentation

Transcript of Cap ítulo 9: Gerência de Memória

Video

Capítulo 9: Gerência de Memória

Silberschatz, Galvin and Gagne 20023.2Operating System Concepts

Video

Assuntos

Cenário Swapping Alocação contígua Paginação Segmentação Paginação com segmentação

Silberschatz, Galvin and Gagne 20023.3Operating System Concepts

Video

Cenário

Programa tem que ser carregado em memória e colocado dentro de um processo para rodar

Fila de entradaConjunto de processos esperando ser

carregados Programas de usuário passam por

vários passos antes de rodar

Silberschatz, Galvin and Gagne 20023.4Operating System Concepts

Video

Definição de Endereços

Quando são definidos osendereços de memória de instruções e dadosTempo de compilaçãoTempo de cargaTempo de execução

Silberschatz, Galvin and Gagne 20023.5Operating System Concepts

Video

Compilação

Se a locação de memória éconhecida a priori, códigoabsoluto é gerado

Código absoluto tem que ser recompilado se a localização do programa em memória tem que ser mudada

Silberschatz, Galvin and Gagne 20023.6Operating System Concepts

Video

Tempo de Carga

Para que o programa possa sercarregado em qualquer posiçãode memória, o código deve serrelocável

Código relocável possui uma tabela com todas as posições do programa onde deve-se somar o valor da posição de memória inicial

Silberschatz, Galvin and Gagne 20023.7Operating System Concepts

Video

Tempo de Execução

É possível trocar endereços durante a execução desde quese tenha hardware que suporteisto (transparente ao programa)

O hardware produz mapas de endereços (com registradores base e limite)

Silberschatz, Galvin and Gagne 20023.8Operating System Concepts

Video

Passos no Processamento de um Programa de Usuário

Silberschatz, Galvin and Gagne 20023.9Operating System Concepts

Video

Endereços Lógicos e Físicos

Diferença básicaEndereços lógicos são usados

pela CPU (endereços virtuais)Endereços físicos são vistos pela

memória Endereços lógicos e físicos são os

mesmos se a definição de endereços é feita em tempo de compilação ou carga

Silberschatz, Galvin and Gagne 20023.10Operating System Concepts

Video

Unidade de Gerência de Memória (MMU)

Hardware que mapeia endereços virtuais em endereços físicos

O registrador de relocação é adicionado a cada endereço gerado na CPU antes de ser visto pela memória

Programas usam endereços lógicos, nunca vendo os endereços físicos

Silberschatz, Galvin and Gagne 20023.11Operating System Concepts

Video

Relocação Dinâmica usando Registrador de Relocação

Silberschatz, Galvin and Gagne 20023.12Operating System Concepts

Video

Carga Dinâmica

Rotina só é carregada quandochamada

Melhor utilização de memóriaRotinas que não são usadas nunca são

carregadas Útil quando muito código é

necessário para situações infrequentesTratamento de erros

Não necessita de suporte do SO

Silberschatz, Galvin and Gagne 20023.13Operating System Concepts

Video

Ligação Dinâmica

Ligação (linking) feito em tempo de execução

Um stub fica no lugar da rotina é usado para localizá-la na biblioteca

O stub é substituído pelo endereço da rotina, que é então executada

O SO tem que saber se a rotina está no espaço de memória do processo

Isto é especialmente útil para bibliotecas

Silberschatz, Galvin and Gagne 20023.14Operating System Concepts

Video

Overlays

Mantém em memória só as intruções e dados necessárias no momento

Necessário quando o processo é maior que a memória alocada para ele

Implementado pelo usuárioNão é necessário suporte do SOProjeto dos overlays é complexo

Silberschatz, Galvin and Gagne 20023.15Operating System Concepts

Video

Overlays para um Montador de Duas Passadas

Silberschatz, Galvin and Gagne 20023.16Operating System Concepts

Video

Swapping

Método que tira um processo temporariamente da memóriaEle é armazenado em discoPode ser recarregado e continuar a

execução Área de Swap

Partição ou arquivo usado para swapping Roll out, roll in – variante de swap usada

em escalonamento por prioridades

Silberschatz, Galvin and Gagne 20023.17Operating System Concepts

Video

Swapping

A maior parte do tempo é gasta na transferência para discoO tempo depende da quantidade de

memória a ser copiada Versões de swapping são

encontradas em vários sistemas (Unix, Linux, Windows)

Silberschatz, Galvin and Gagne 20023.18Operating System Concepts

Video

Diagrama

Silberschatz, Galvin and Gagne 20023.19Operating System Concepts

Video

Alocação contígua

A memória principal é divididanormalmente em duas partesSO residente

Memória baixa, junto com vetor de interrupções

Processos do usuárioMemória alta

Silberschatz, Galvin and Gagne 20023.20Operating System Concepts

Video

Partição Única

Processos são protegidos deoutros usando o registrador derelocaçãoIsto protege também código e dados do SO

O registrador de relocação contém o valor do menor endereço físico

O registrador de limite contém o valor do maior endereço físicoEndereços tem que ser menores que o

limite

Silberschatz, Galvin and Gagne 20023.21Operating System Concepts

Video

Suporte de Hardware

Silberschatz, Galvin and Gagne 20023.22Operating System Concepts

Video

Alocação em várias partições

Processo é colocado em árealivre grande suficiente para ele

SO mantém info sobre partições alocadas e “buracos”

OS

process 5

process 8

process 2

OS

process 5

process 2

OS

process 5

process 2

OS

process 5

process 9

process 2

process 9

process 10

Silberschatz, Galvin and Gagne 20023.23Operating System Concepts

Video

Como Fazer Alocação Dinâmica

First-Fit: a primeira área livregrande o suficiente é alocada

Best-Fit: A área que gera a menor sobra é escolhidaÉ necessário varrer toda a lista de

“buracos” Worst-Fit: A maior área é escolhida

Gera a maior sobra

Silberschatz, Galvin and Gagne 20023.24Operating System Concepts

Video

Fragmentação

Externa: existe memória parasatisfazer um pedido, mas estanão é contígua

Interna: existe uma sobra em cada partição de memória alocada

Silberschatz, Galvin and Gagne 20023.25Operating System Concepts

Video

Eliminando a Fragmentação Externa

CompactaçãoMover as partições de forma a

juntar os “buracos”Só é possível se a relocação é

dinâmica, e pode ser feita em tempo de execução

Silberschatz, Galvin and Gagne 20023.26Operating System Concepts

Video

Problemas com E/S

Se um bloco de memória estásendo usado como “buffer”para E/S, ele não pode serretirado da memória

SoluçãoManter o bloco em memória (latch)Só fazer E/S para buffers no espaço de

memória do SO

Silberschatz, Galvin and Gagne 20023.27Operating System Concepts

Video

Paginação

O espaço de endereçamento lógico de um processo pode não ser contíguoMemória física é alocada quando necessário

Memória é dividida em partes do mesmo tamanho chamadas quadros (frames)

Memória lógica é dividida em páginas do mesmo tamanho

Silberschatz, Galvin and Gagne 20023.28Operating System Concepts

Video

Paginação

Para rodar um programa comn páginas, n quadros livres sãousados

Uma tabela faz a tradução dos endereços lógicos para físicos

Paginação gera fragmentação interna

Silberschatz, Galvin and Gagne 20023.29Operating System Concepts

Video

Esquema de Tradução de Endereços

Os endereços gerados pela CPU são divididos em Página (p)

Usado como índice na tabela de páginas que contém o endereço inicial de cada página na memória física

Offset (d)Combinado com o endereço inicial

define o endereço físico

Silberschatz, Galvin and Gagne 20023.30Operating System Concepts

Video

Arquitetura de tradução de Endereços

Silberschatz, Galvin and Gagne 20023.31Operating System Concepts

Video

Exemplo de Paginação

Silberschatz, Galvin and Gagne 20023.32Operating System Concepts

Video

Exemplo de Paginação

Silberschatz, Galvin and Gagne 20023.33Operating System Concepts

Video

Quadros Livres

Antes da Alocação Depois da Alocação

Silberschatz, Galvin and Gagne 20023.34Operating System Concepts

Video

Implementação de uma Tabela de Páginas

Tabela de páginas mantida namemória principal

Registrador de base da tabela de páginas (PTBR) aponta para a tabela de páginas

Registrador de tamanho da tabela de páginas (PTLR) indica o tamanho

Cada acesso a dados/instruções requer dois acessos à memória

Silberschatz, Galvin and Gagne 20023.35Operating System Concepts

Video

TLB

O problema pode ser resolvidousando um cache de hardwarechamado memória associativaou translation lookaside buffer(TLB)

Silberschatz, Galvin and Gagne 20023.36Operating System Concepts

Video

Memória Associativa

Permite busca paralela

Para traduzir um endereço lógico Se ele está na tabela, o endereço físico é

obtido imediatamente Se não, a tabela de páginas é lida da memória

Page # Frame #

Silberschatz, Galvin and Gagne 20023.37Operating System Concepts

Video

Hardware de Paginação com TLB

Silberschatz, Galvin and Gagne 20023.38Operating System Concepts

Video

Tempo Efetivo de Acesso

Busca Associativa = unidades de tempo

Assuma ciclo de memória dura1 microsegundo

Hit ratio – porcentagem em que a página é encontrada nos registradores associativos

Hit ratio = Tempo Efetivo de Acesso (EAT)

EAT = (1 + ) + (2 + )(1 – )= 2 + –

Silberschatz, Galvin and Gagne 20023.39Operating System Concepts

Video

Proteção de Memoria

Proteção de memória usa um bit de proteção para cada quadro

O bitVálido-inválido indica“válido” a página está no espaço de

endereçamento lógico do processo A página é “legal”

“inválido” a página não pertence ao espaço de endereçamento lógicoEla não pode ser acessada

Silberschatz, Galvin and Gagne 20023.40Operating System Concepts

Video

Bit Válido (v) ou Inválido (i) na Tabela de Páginas

Silberschatz, Galvin and Gagne 20023.41Operating System Concepts

Video

Estrutura da Tabela de Páginas

Paginação Hierárquica Tabela de Páginas

“Hashed” Tabela de Páginas

Invertida

Silberschatz, Galvin and Gagne 20023.42Operating System Concepts

Video

Tabela de Páginas Hierárquica

O espaço de endereçamento lógico é dividido em várias tabelas de páginas

A técnica mais simples é uma tabela em dois níveis

Silberschatz, Galvin and Gagne 20023.43Operating System Concepts

Video

Exemplo de Paginação em Dois Níveis

Um endereço lógico (numa máquina de 32 bits com páginas de 4K) é dividido em Um número de página de 20 bitsUm offset de 12 bits

Como a tabela também é paginada, o número de página também é dividido emUm número de página de 10 bits Um offset de 10 bits

Silberschatz, Galvin and Gagne 20023.44Operating System Concepts

Video

Exemplo de Paginação em Dois Níveis

O endereço lógico é dado por

Onde pi é um índice para a tabela de páginas externa, e p2 é em que linha da tabela a página está na tabela externa

page number page offset

pi p2 d

10 10 12

Silberschatz, Galvin and Gagne 20023.45Operating System Concepts

Video

Esquema de Dois Níveis

Silberschatz, Galvin and Gagne 20023.46Operating System Concepts

Video

Tradução de Endereços

Tradução de endereços para dois níveis de paginação com endereços de 32 bits

Silberschatz, Galvin and Gagne 20023.47Operating System Concepts

Video

Tabelas de Página usando Hash

Comum em espaços de endereçamento maiores que 32 bits

O número da página virtual é distribuido na tabela de página usando uma função de hashEle contêm uma seqüência ou lista de

elementos que caem na mesma posiçãoOs números virtuais são comparados

nesta lista quando procura-se por uma página. Se encontrada, o quadro físico pode ser acessado

Silberschatz, Galvin and Gagne 20023.48Operating System Concepts

Video

Tabela de Página usando Hash

Silberschatz, Galvin and Gagne 20023.49Operating System Concepts

Video

Tabela de Página Invertida

Uma entrada para cada página real (bloco) de memória

Cada entrada contém o endereço virtual da página armazenada naquele bloco da memória, com informações sobre o processo do qual essa página faz parte

Silberschatz, Galvin and Gagne 20023.50Operating System Concepts

Video

Tabela de Página Invertida

Diminui a quantidade de memória necessária para armazenar cada tabela de páginas, mas aumenta o tempo de pesquisa na tabela em cada referência a uma página

Uso de tabela hash para limitar a pesquisa a apenas uma — ou no máximo a algumas — entradas na tabela de páginas

Silberschatz, Galvin and Gagne 20023.51Operating System Concepts

Video

Arquitetura de Tabela de Página Invertida

Silberschatz, Galvin and Gagne 20023.52Operating System Concepts

Video

Páginas Compartilhadas

Compartilhamento de CódigoUma cópia de código somente

para leitura (reentrante) compartilhada entre processos (ex.: editores de texto,compiladores, sistemas de janelas)

Código compartilhado deve aparecer na mesma localização no espaço de endereçamento lógico de todos processos

Silberschatz, Galvin and Gagne 20023.53Operating System Concepts

Video

Páginas Compartilhadas

Códigos e Dados privadosCada processo mantém uma

cópia separada de códigos e dados

As páginas para códigos e dados privados podem aparecer em qualquer endereço no espaço de endereçamento lógico

Silberschatz, Galvin and Gagne 20023.54Operating System Concepts

Video

Exemplo de Páginas Compartilhadas

Silberschatz, Galvin and Gagne 20023.55Operating System Concepts

Video

Segmentação

Esquemas de gerenciamento de memória que suportam a visão do usuário da memória

Um programa é uma coleção de segmentos. Um segmento é uma unidade lógica, como por exemplo:

programa principal,procedimento,função,variáveis locais, variáveis globais,bloco comum,pilha,tabela de símbolos, vetores

Silberschatz, Galvin and Gagne 20023.56Operating System Concepts

Video

Um Programa na Visão do Usuário

Silberschatz, Galvin and Gagne 20023.57Operating System Concepts

Video

Visão Lógica da Segmentação

1

3

2

4

1

4

2

3

user space physical memory space

Silberschatz, Galvin and Gagne 20023.58Operating System Concepts

Video

Arquitetura da Segmentação

Endereço lógico consiste de duas partes:<número do segmento, posição nesse segmento>

Tabela de Segmentos– mapeia endereços físicos bi-dimensionais

Cada entrada na tabela possui:base – contem o endereço físico inicial

no qual o segmento reside na memórialimite – especifica o tamanho do

segmento

Silberschatz, Galvin and Gagne 20023.59Operating System Concepts

Video

Arquitetura da Segmentação (Cont.)

registrador base da tabela de segmentos (STBR) aponto para a localização da tabela de segmentos na memória.

registrador de tamanho da tabela de segmentos (STLR) indica o número de segmentos usados por um programa;número de segmento s é legal se s <

STLR.

Silberschatz, Galvin and Gagne 20023.60Operating System Concepts

Video

Arquitetura da Segmentação (Cont.)

Relocação.DinâmicaPor tabela de segmento

Compartilhamento.Segmentos compartilhadosMesmo número de segmento

Alocação.Primeira (first fit)/ Melhor (best fit)Fragmentação Externa

Silberschatz, Galvin and Gagne 20023.61Operating System Concepts

Video

Arquitetura da Segmentação (Cont.)

Proteção. Com cada entrada na tabela de segmento é associado: Bit de validação = 0 Þ segmento ilegal Privilégios de leitura/ escrita/ execução

Bits de proteção associados com segmentos; compartilhamento de código ocorre em nível de segmento

Uma vez que segmentos variam em tamanho, alocação dememória é um problema dinâmico

Um exemplo de segmentação é apresentado no diagrama a seguir

Silberschatz, Galvin and Gagne 20023.62Operating System Concepts

Video

Hardware de Segmentação

Silberschatz, Galvin and Gagne 20023.63Operating System Concepts

Video

Examplo

Silberschatz, Galvin and Gagne 20023.64Operating System Concepts

Video

Compartihamento deSegmentos

Silberschatz, Galvin and Gagne 20023.65Operating System Concepts

Video

Segmentação com Paginação – MULTICS

O sistema MULTICS resolveu problemas de fragmentação externa e demora na procura paginando os segmentos

A solução é diferente da segmentação pura pois cada entrada na tabela de segmentos contém não o endereço base do segmento, mas sim o endereço base da tabela de páginas desse segmento.

Silberschatz, Galvin and Gagne 20023.66Operating System Concepts

Video

Esquema de Tradução de Endereçosdo MULTICS

Silberschatz, Galvin and Gagne 20023.67Operating System Concepts

Video

Segmentação com Paginação – Intel 386

Como será apresentado no próximo diagrama, o Intel 386 usa segmentação com paginação para gerenciamento de memória com um esquema de paginação em dois níveis

Silberschatz, Galvin and Gagne 20023.68Operating System Concepts

Video

Tradução de Endereços no Intel 386