Você está na página 1de 61

Sistemas de Computao

Gerenciamento de memria Gerenciamento de memria

Localizao de processos
Sistemas de Computao

Um programa fica armazenado em disco como um arquivo executvel binrio e tem que ser colocado na memria para comear a ser executado Os processos podem ser movidos entre a memria e o disco durante sua execuo Fila de entrada coleo de processos no disco que esto esperando para serem colocados na memria para poderem ser executados Processos podem ser carregados em qualquer endereo da memria

Mapeamento entre espaos de endereamento


Sistemas de Computao

Endereos no programa fonte so simblicos Compiladores geram endereos relocveis para os endereos simblicos O linker ou loader iro transformar este endereos relocveis em endereos absolutos

Definio de endereos para instrues e dados


Sistemas de Computao

Tempo de compilao: Ocorre quando o endereo onde o processo ir ser carregado conhecido. Um cdigo absoluto com os endereos gerado e caso o endereo mude, o programa tem que ser recompilado Tempo de carga: Caso o endereo no seja conhecido, o compilador tem que gerar cdigo relcavel Tempo de execuo: Caso um processo possa ser movido de um segmento de memria para outro durante a sua execuo

Processamento do programa do usurio


Sistemas de Computao

Espao lgico versus fsico


Sistemas de Computao

O conceito de espao de endereamento lgico ligado a um espao de endereamento fsico o ponto principal nos mecanismos de gerenciamento de memria
Endereo lgico gerado pela CPU: tambm conhecido como

endereo virtual
Endereo fsico endereo recebido pela memria

Endereos lgicos (virtuais) diferem dos endereos fsicos em tempo de execuo

Unidade de gerenciamento de memria


Sistemas de Computao

Dispositivo de hardware que mapeia endereos virtuais para fsicos Um valor base armazenado no registrador de relocao adicionado a cada endereo gerado pelo processo O programa do usurio manipula endereos lgicos; nunca v os endereos reais A localizao final de uma referncia memria s definida quando a referncia executada.

Relocao dinmica utilizando registrador de relocao


Sistemas de Computao

Carregamento dinmico
Sistemas de Computao

Rotina s carregada quando ativada Melhor utilizao do espao de memria; rotina no utilizada nunca carregada Particularmente til quando grande quantidade de cdigo utilizado para casos que ocorrem raramente No precisa de suporte do sistema operacional, mas S.O pode prover rotinas para que o programador possa realiz-lo

Ligao dinmica
Sistemas de Computao

A ligao adiada at o tempo de execuo Utilizada para otimizar uso de biblioteca de rotinas do sistema Pedao de cdigo denominado stub utilizado para localizar a rotina necessria residente na memria O stub substitui o seu prprio cdigo pelo endereo da rotina e a executa O sistema operacional tem que verificar se a rotina j est no espao de endereamento de algum processo e se pode ser compartilhada

Overlays
Sistemas de Computao

Necessrio quando o processo maior que a quantidade de memria que pode ser alocada para ele Mantm na memria somente as instrues e dados necessrios em um dado momento Implementado pelo usurio, no precisa de suporte do sistema operacional Usurio programa leitura de arquivos do disco para a memria e fora o programa a ir para a posio de memria Complexo de utilizar

Overlays para um montador em dois passos


Sistemas de Computao

Swapping
Sistemas de Computao

Um processo pode ser trocado ( swapped) temporariamente da memria para um outro dispositivo de apoio (disco), e trazido de volta para a memria para continuar a sua execuo Roll out, roll in variante do swapping utilizada para algoritmos de escalonamento baseados em prioridade; processo com menos prioridade vai para disco para processo de maior prioridade ser carregado e executado Caso a definio dos endereos fsicos seja feita em tempo de compilao ou carga, o processo que foi para o disco tem que voltar para o mesmo lugar na memria

Swapping
Caso a definio dos endereos fsicos seja feita em tempo de execuo, o processo que foi para o disco pode voltar para lugar diferente na memria O dispositivo de apoio tem que ser um disco rpido com capacidade suficiente para acomodar cpias de todas as imagens de programas de todos usurios e deve prover acesso direto e estas imagens Fila de prontos consiste dos processos que esto no dispositivo de apoio e na memria prontos para serem executados O dispatcher acionado e no caso do processo selecionado no estar na memria e no existir espao livre na memria, um processo tirado da memria e colocado no disco
Sistemas de Computao

Esquema de swapping
Sistemas de Computao

Swapping
Sistemas de Computao

A troca de contexto em um sistema com swapping alta


Ex. 1M bytes devem ser transferidos para um disco que tem taxa de

transferncia de 5MB/s e tempo de latncia mdio igual a 8 ms. Tempo total = 208 milisegundos, time slice deve ser substancialmente maior que 416 milisegundos

A maior parte do tempo utilizada para realizar a transferncia entre a memria e dispositivo de apoio, ento deve se fazer a transferncia somente das posies de memria que esto sendo realmente utilizadas pelo processo

Swapping
Sistemas de Computao

Processos que utilizam alocao dinmica de memria devem informar ao sistema operacional as suas necessidades de memria atravs de chamadas ao sistema (request memory e release memory) Caso um processo v para o disco e exista uma operao de E/S pendente para ele, podem ocorrer problemas, porque o dispositivo de E/S pode escrever na rea de um novo processo que foi colocado no lugar dele

Swapping
Sistemas de Computao

Solues: no permitir swapping para processos com E/S pendente ou s permitir acesso pelo dispositivo de E/S a buffer do sistema operacional, que atualiza buffer do processo quando ele estiver na memria Mecanismo pouco utilizado e com algumas modificaes Unix inicia swapping quando sistema muito carregado
muitos processos no sistema limite de memria livre atingido

Alocao contgua
Sistemas de Computao

Geralmente a memria principal dividida em duas parties:


Sistema operacional colocado nos endereos de memria mais

baixos (memria baixa) junto com vetor de interrupes


Processos do usurio ficam na memria mais alta

Alocao contgua da memria


O sistema operacional tem que ser protegido do acesso dos

processos do usurio, os quais devem ser protegidos de acesso entre eles


O registrador de relocao contm o valor do menor endereo fsico

e o registrador de limite contm a faixa de endereamento lgico cada endereo lgico tem que ser menor que o registrador limite

Suporte de hardware para registradores limite e de relocao


Sistemas de Computao

Mltiplas parties
Sistemas de Computao

Alocao de mltiplas parties


Hole (buracos) bloco de memria disponvel ; buracos de vrios

tamanhos ficam espalhados pela memria


Quando um processo chega no sistema, o sistema procura por um

buraco que tenha uma quantidade de memria livre suficiente para acomodar o processo
O sistema operacional mantm informaes sobre:

parties alocadas parties livres (buraco)

Mltiplas parties
Sistemas de Computao

OS process 5

OS process 5

OS process 5 process 9

OS process 5 process 9 process 10

process 8 process 2 process 2 process 2

process 2

Alocao dinmica de memria


Sistemas de Computao

Como satisfazer um pedido de tamanho n tendo uma lista de buracos livres ?


First-fit: Aloca o primeiro buraco da lista que seja grande o

suficiente para o processo


Best-fit: Aloca o menor buraco que seja grande o suficiente para

o processo; precisa procurar a lista toda, caso no esteja ordenada. Produz o menor buraco
Worst-fit: Aloca o maior buraco possvel; precisa procurar toda

a lista Produz o maior buraco

First-fit e best-fit so melhores que worst-fit em termos de velocidade e utilizao de armazenamento

Fragmentao
Sistemas de Computao

Fragmentao externa existe a quantidade de memria que o processo precisa, mas no contgua Fragmentao interna memria alocada um pouco maior que a requerida pelo processo; esta diferena memria interna a uma partio de tamanho fixo que no est sendo utilizada

Fragmentao
Sistemas de Computao

Reduo de fragmentao externa por compactao


Arruma-se o contedo da memria de modo a colocar toda

a memria livre junta em um nico bloco Compactao s possvel caso a relocao seja dinmica e seja realizada em tempo de execuo

Paginao
Sistemas de Computao

Gerenciamento de memria que permite que o espao de endereamento fsico no precise ser contguo Divide a memria fsica em blocos de tamanho fixo denominados frames (tamanho em potncia de 2, entre 512 bytes e 8192 bytes). Divide memria lgica em blocos de mesmo tamanho denominadas pginas. Gerencia os frames livres

Paginao
Sistemas de Computao

Para executar um programa de tamanho igual a n pginas, precisa-se encontrar n frames livres e carregar o programa nestes frames Possui uma tabela de pginas para traduzir o endereo lgico em fsico No ocorre fragmentao externa, mas pode ocorrer interna

Esquema de traduo de endereo


Sistemas de Computao

O endereo gerado pela CPU dividido em duas partes:


Nmero de pgina (p) utilizada como um ndice para a tabela de

pginas que contm o endereo base de cada pgina na memria fsica


Deslocamento de pgina (d) combinada com o endereo base da

pgina para definir o endereo da memria fsica que ser enviado para a unidade de memria

Arquitetura para traduo de endereos


Sistemas de Computao

Exemplo de paginao
Sistemas de Computao

Exemplo de paginao
Sistemas de Computao

Frames livres
Sistemas de Computao

Antes da alocao

Depois da alocao

Implementao da tabela de pginas


Sistemas de Computao

Tabela de pginas mantida na memria Registrador base da tabela de pginas (PTBR) aponta para a tabela de pginas Registrador de tamanho de tabela de pgina (PRLR) indica o tamanho da tabela Neste esquema, cada acesso memria para obter dado ou instruo requer dois acessos memria: um para acessar a tabela de pginas e outro para obter a instruo ou dado

Implementao da tabela de pginas


Sistemas de Computao

O problema de acessar a memria duas vezes pode ser resolvido utilizando-se uma memria cache denominada translation look-aside buffers (TLBs)

Hardware de paginao com TLB


Sistemas de Computao

Tempo efetivo de acesso


Sistemas de Computao

Procura na TLB = unidades de tempo Assuma que o ciclo de memria 1 microsegundo Taxa de acerto percentagem de vezes que o nmero de pgina encontrado na TLB (depende do tamanho da TLB) Taxa de acerto = Tempo efetivo de acesso (EAT) EAT = (1 + ) + (2 + )(1 ) =2+

Proteo de memria
Sistemas de Computao

Proteo de memria implementada utilizando-se um bit de proteo para cada frame Bit vlido-invlido adicionado a cada entrada da tabela de pginas:
vlido indica que a pgina associada pode estar no espao de

endereamento lgico do processo e portanto uma pgina legal


invlido indica que a pgina no pode estar no espao de

endereamento lgico do processo

Bit vlido (v) ou invlido (i) na tabela de pginas


Sistemas de Computao

Estruturao da tabela de pginas


Sistemas de Computao

Paginao hierrquica Paginao por hash Tabela de pgina invertida

Tabelas de pginas hierrquicas


Sistemas de Computao

Divide o espao lgico de endereamento em mltiplas tabelas de pginas Uma opo simples dividir a tabela de pginas em dois nveis

Exemplo de paginao em dois nveis


Sistemas de Computao

Um endereo lgico (em uma mquina de 32 bits com tamanho de pgina de 4K) dividida em: um nmero de pagina consistindo de 20 bits um deslocamento de pgina consistindo de 12 bits. Com o tabela de pgina paginada, o nmero de pgina dividido em: um nmero de pgina de 10 bits um deslocamento de pgina de 10 bits

Exemplo de paginao em dois nveis


Sistemas de Computao

Formato do endereo lgico:


nmero de pgina p1 10 p2 10 deslocamento de pgina d 12

onde p1 um ndice para a tabela de pgina mais externa e p2 o deslocamento na pgina da tabela mais externa

Esquema de tabela de pginas em dois nveis


Sistemas de Computao

Esquema de traduo de endereos


Sistemas de Computao

Tabelas de pginas com hash


Sistemas de Computao

Comum em espao de endereamento > 32 bits. O nmero da pgina virtual mapeado por hashing na tabela de pginas. A entrada da tabela de pginas pode conter uma cadeia de elementos que esto mapeados na mesma entrada Procura-se nesta cadeia pelo nmero da pgina virtual desejada e caso ela seja encontrada, obtmse o frame fsico correspondente

Tabela de pginas com hashing


Sistemas de Computao

Tabela de pginas invertida


Sistemas de Computao

Uma entrada para cada pgina real da memria Cada entrada contm, para um determinado endereo real, o endereo virtual da pgina que est ali armazenada, com informaes do processo que a possui Diminui a memria necessria para armazenar cada tabela de pginas, mas aumenta o tempo necessrio para a procura na tabela quando ocorre uma referncia de pgina Utiliza-se tabelas hash para limitar a procura para uma ou poucas entradas na tabela de pginas

Arquitetura de tabela de pginas invertida


Sistemas de Computao

Pginas compartilhadas
Sistemas de Computao

Cdigo compartilhado
Uma cpia de cdigo somente-leitura (reentrante) compartilhada

entre processos (editores de texto, compiladores, sistemas de janelas)


Cdigo compartilhado deve aparecer no mesmo local no espao de

endereamento lgico de todos os processos

Cdigos e dados privados


Cada processo mantm uma cpia separada do cdigo e dos dados As pginas para o cdigo e dados privados podem aparecer em

qualquer local do espao de endereamento lgico

Exemplo de pginas compartilhadas


Sistemas de Computao

Segmentao
Sistemas de Computao

Esquema de gerenciamento de memria que suporta uma viso da memria fsica mais prxima do usurio Um programa uma coleo de segmentos. Um segmento uma unidade lgica, tal como um programa principal, procedimento, mtodo, objeto, variveis locais e globais, blocos comuns, pilha, tabela de smbolos, arrays

Viso do usurio de um programa


Sistemas de Computao

Viso lgica da segmentao


Sistemas de Computao 1 1 2 4

3 4

2 3

espao do usurio

espao de memria fsica

Arquitetura de segmentao
Sistemas de Computao

Um endereo lgico consiste da tupla: <nmerosegmento, deslocamento> Tabela de segmentos mapeia endereos fsicos de duas dimenses Cada entrada na tabela possui:
base contm o endereo fsico inicial onde o segmento reside na

memria
limite especifica o tamanho do segmento

Arquitetura de segmentao
Sistemas de Computao

Registrador base de segmento de tabela (STBR) aponta para a localizao do segmento na memria Registrador de tamanho do segmento da tabela (STLR) indica o tamanho do segmento

Arquitetura de segmentao
Sistemas de Computao

Relocao
dinmica realizada por tabela de segmentao

Compartilhamento
segmentos compartilhados mesmo nmero de segmento

Alocao
first fit/best fit fragmentao externa

Arquitetura de segmentao
Sistemas de Computao

Proteo fornecida com associao a cada entrada da tabela de segmentos das seguintes informaes:
bit de validao = 0 segmento ilegal privilgios read/write/execute

Bits de proteo so associadas com segmentos; compartilhamento de cdigo ocorre no nvel de segmento Como os segmentos variam em tamanho, a alocao de memria um problema de alocao dinmica de memria

Hardware para segmentao


Sistemas de Computao

Exemplo de segmentao
Sistemas de Computao

Compartilhamento de segmentos
Sistemas de Computao

Traduo de endereos no Intel 30386


Sistemas de Computao