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.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.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.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.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.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.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
Top Related