ARQUITETURAS DE COMPUTADORES II

Slides:



Advertisements
Apresentações semelhantes
Coerência de Cache em Multiprocessadores
Advertisements

Integridade de Dados em Memórias Cache
INTRODUÇÃO À COMPUTAÇÃO Sistemas Operacionais
Sistemas Operacionais
Exercícios de Dimensionamento de Memórias Cache
Introdução à Hierarquia de Memória
Gerência de Memória Principal
Sistemas operacionais
Aula 16: Memória Principal e Memória Virtual
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais Francis Berenger Machado
SSC541 - SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Processos Conceitos Básicos.
Estruturas de Controle
Sistemas Operacionais Turmas MBI1 e NBI2. Prof: Marcelo Mendes.
Debian Gerência de Memória.
Threads.
Sistemas Operacionais I
Sistemas Operacionais I
Resumindo Na arquitetura x86 (32 e 64 bits), são usadas a segmentação e a paginação. O espaço de endereçamento de uma aplicação é dividido em segmentos,
Capítulo 9: Memória Virtual
Arquitetura de Sistemas Operacionais – Machado/Maia 10/1 Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência.
Arquitectura de Computadores II
Sistemas Operacionais Gerenciamento de Memória
SISTEMAS OPERACIONAIS
SSC SISTEMAS OPERACIONAIS I Aula 11 – Gerenciamento de Memória 2
Fundamentos da Arquitetura de Computadores
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Gerência de Memória Fundamentos Swapping Alocação Contígua de memória
SISTEMAS OPERACIONAIS
Subsistemas de memória
Gerência de Memória Virtual
Circuitos Combinacionais Exercícios 2 POSCOMP e ENADE
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Introdução à Hierarquia de Memória
Sistemas Operacionais
Sistemas Operacionais
SO Paginação de Memória Algoritmos de Substituição de Página
SISTEMAS OPERACIONAIS I
Gerência de Memória Principal
ARQUITETURAS DE COMPUTADORES II
DEPARTAMENTO DE INFORMÁTICA UFPE GRECO Gerenciamento de Memória.
Sistemas Operacionais
Localidade Princípio da localidade è um programa acessa uma
Ch7b-1 Capítulo Sistemas de Memória - Memória Virtual.
ARQUITETURAS E ORGANIZAÇÃO DE COMPUTADORES
Infra-Estrutura de Software Gerenciamento de Memória.
Gerenciamento de Memória
Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Bruno Iran Ferreira Maciel
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Infra-estrutura Hardware
Memória Virtual.
MEMÓRIAS.
Gerência de Memória Sidney Cunha de Lucena Baseado no livro
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Gerenciamento de Memória Capítulo Gerenciamento básico de memória 3.2 Troca de processos.
Memória Virtual ARQUITETURAS DE COMPUTADORES II Prof. César Augusto M. Marcon.
Integridade de Dados em Memórias Cache ARQUITETURAS DE COMPUTADORES II Prof. César Augusto M. Marcon.
Gerência de Memória Principal ARQUITETURAS DE COMPUTADORES II César A. Marcon, César De Rose e Fernando Moraes.
Hierarquia de Memória – Parte 2 Prof. André Luis M. Silva
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
SISTEMAS OPERACIONAIS MEMÓRIA VIRTUAL. INTRODUÇÃO Memória Virtual é um técnica sofisticada e poderosa de gerenciamento de memória, onde a MP e a MS são.
Transcrição da apresentação:

ARQUITETURAS DE COMPUTADORES II Memória Virtual Prof. César Augusto M. Marcon

Memória Virtual Na gerência de memória convencional páginas ou segmentos (unidades) de um programa são todos carregados para MP antes de sua execução Devido a localidade, um programa só precisa de algumas dessas unidades em um dado momento É possível gerenciar a memória de forma que só unidades necessárias em um dado momento estejam na MP Memória física pode ser melhor aproveitada, sendo possível: Executar um programa maior que a MP Executar vários programas “ao mesmo tempo” que somados são maiores que a MP UCP gera endereços para espaço de endereçamento lógico maior que tamanho da MP física (daí o nome virtual)

Memória Virtual SO aplica regras Quando processo inicia não são carregadas todas suas unidades para MP Tabelas de conversão de endereços indicam unidades que estão na MP (bit de validade)

Memória Virtual SO aplica regras (continuação) Quando necessário, sistema gera um page-fault e manda buscar página do disco Carregadas por demanda O processo perde o processador Processo só retorna para fila de pronto quando unidade estiver disponível na MP Se MP ficar cheia, novas unidades são colocadas no lugar das menos recentemente usadas (LRU) Essa técnica tem os seguintes custos associados Miss-penalty alto pois unidades têm que ser buscadas do disco Aumenta número de trocas de contexto por causa de page-faults e de eventos a serem tratados (evento gerado quando a unidade foi trazida)

Memória Virtual - Trashing Problema que pode ocorrer na gerência de memória virtual é o Trashing Trashing vem de trash (lixo) e indica que nada de produtivo está sendo feito Ocorre quando sistema fica maior parte do tempo trocando páginas e processador não consegue executar nenhum processo Ocorre quando muitos processos estão ativos e MP é proporcionalmente pequena para acomodar as unidades Assim, quando processo ganha CPU ele manda trazer suas unidades e volta a dormir, quando essas unidades são trazidas. A gerência de memória apaga unidades de outro processo por causa da falta de espaço na memória. Quando for a vez desse outro, suas páginas já não estão mais na memória, e assim por diante ... Acima de um certo número de processos ativos o desempenho da máquina começa a diminuir Este número é bastante dinâmico e depende: Da arquitetura da máquina Do tamanho da MP Do número de processos ativos Do tipo de processos que estão ativos (io-bound, cpu-bound)

Memória Virtual - Trashing A taxa de utilização do processador cai exponencialmente, quando o mesmo está em trashing, assim como ilustrado abaixo

Acesso Completo a Endereços ENDEREÇO LÓGICO CPU TABELA DE PÁGINAS TLB CACHE HIT Envia dado para a CPU CACHE MISS MEMÓRIA PRINCIPAL PAGE HIT Disco FAULT MEMÓRIA CACHE TLB HIT TLB MISS HIT MISS

Memória Virtual - Estudo de Casos Maioria dos SOs aplica técnicas de memória virtual na gerência de memória No caso de sistemas que executam em múltiplas plataformas a gerência de memória pode variar, dependendo do hardware disponível (MMU – Memory Management Unity) UNIX Versões antigas do UNIX aplicavam um particionamento variável da memória sem memória virtual Versões mais modernas (SVR4 e Solaris2.x) implementam memória virtual paginada Substituição de páginas feita com variações do algoritmo do relógio Para o kernel (pequenos blocos) é utilizado uma variação do algoritmo de buddy

Memória Virtual - Linux Tem várias características em comum com UNIX, mas tem suas peculiaridades Implementa memória virtual paginada com tabela de página de 3 níveis (diretório, diretório intermediário, página)

Memória Virtual - Linux Conceito de diretório reduz tamanho das tabelas Aumenta complexidade de acesso (várias consultas para converter endereço) Tabelas usadas em conversão mas estrutura das tabelas não é linear e sim uma árvore Várias tabelas de diretórios intermediários para cada entrada da tabela de diretórios Várias tabelas de páginas para cada entrada de cada tabela de diretórios intermediários!!! Páginas de 4Kbytes na família X86 e 8Kbytes na família Alpha Para facilitar portabilidade tem um nível intermediário de gerência de memória Architecture Independent Memory Model Substituição de páginas feita com variação do algoritmo do relógio Alocação dinâmica feita na pilha do sistema (stack) Para o kernel é utilizado uma variação do algoritmo de buddy Linux implementa o Buddy sobre páginas mas subdivide-as em menores unidades para melhor atender as necessidades do kernel

Memória Virtual – OS2

Memória Virtual Windows 2000 Utiliza memória virtual paginada Divide espaço de memória virtual de 4 Gbytes (registrador de 32 bits) em 2 GB para processos de usuário e 2 GB para SO Quando processo de usuário é disparado recebe um número de frames de memória (Working Set - WS) Substituições de páginas efetuadas apenas dentro deste WS, ou seja, só páginas do mesmo processo são candidatas para a substituição Se número de substituições de um processo for grande e bastante memória estiver disponível, o WS pode ser aumentado Se memória livre ficar escassa, o SO diminui o WS dos processos de usuário retirando suas páginas menos recentemente utilizadas

Exercícios (POSCOMP 2004 - 32) Considere as seguintes afirmativas: Uma modificação em uma CPU fez o cycle time e o CPI aumentarem de 10% enquanto o número de instruções executadas para uma dada aplicação decresceu de 20%. Podemos concluir que o tempo de execução desta aplicação será mantido. Um page fault ocorre quando a entrada correspondente à página requerida não é encontrada no translation lookside buffer. Para armazenar uma mesma quantidade de dados, uma cache direct mapped é tipicamente menor que uma cache set associative, assumindo blocos de mesmo tamanho. Aumentando–se o tamanho do bloco de uma cache aumentam–se as vantagens obtidas com a localidade espacial. Memória virtual tipicamente usa a estratégia write–through ao invés de estratégia write–back. Quais são as alternativas verdadeiras? Somente as afirmativas I, II, III e IV são verdadeiras. Somente as afirmativas I, III e IV são verdadeiras. Somente as afirmativas II, III e IV são verdadeiras. Somente as afirmativas III e IV são verdadeiras. Todas as afirmativas são verdadeiras.

Resposta de Exercícios (POSCOMP 2004 - 32) Considere as seguintes afirmativas: Uma modificação em uma CPU fez o cycle time e o CPI aumentarem de 10% enquanto o número de instruções executadas para uma dada aplicação decresceu de 20%. Podemos concluir que o tempo de execução desta aplicação será mantido. Um page fault ocorre quando a entrada correspondente à página requerida não é encontrada no translation lookside buffer. Para armazenar uma mesma quantidade de dados, uma cache direct mapped é tipicamente menor que uma cache set associative, assumindo blocos de mesmo tamanho. Aumentando–se o tamanho do bloco de uma cache aumentam–se as vantagens obtidas com a localidade espacial. Memória virtual tipicamente usa a estratégia write–through ao invés de estratégia write–back. Quais são as alternativas verdadeiras? Somente as afirmativas I, II, III e IV são verdadeiras. Somente as afirmativas I, III e IV são verdadeiras. Somente as afirmativas II, III e IV são verdadeiras. Somente as afirmativas III e IV são verdadeiras. Todas as afirmativas são verdadeiras.

Exercícios (ENADE 2005 - questão 22) Com relação ao gerenciamento de memória com paginação em sistemas operacionais, assinale a opção correta. As páginas utilizadas por um processo, sejam de código ou de dados, devem ser obrigatoriamente armazenadas na partição de swap do disco, quando o processo não estiver sendo executado Todas as páginas de um processo em execução devem ser mantidas na memória física enquanto o processo não tiver terminado Um processo somente pode ser iniciado se o sistema operacional conseguir alocar um bloco contíguo de páginas do tamanho da memória necessária para execução do processo O espaço de endereçamento virtual disponível para os processos pode ser maior que a memória física disponível Um processo somente pode ser iniciado se o sistema operacional conseguir alocar todas as páginas de código desse processo

Resposta de Exercícios (ENADE 2005 - questão 22) Com relação ao gerenciamento de memória com paginação em sistemas operacionais, assinale a opção correta. As páginas utilizadas por um processo, sejam de código ou de dados, devem ser obrigatoriamente armazenadas na partição de swap do disco, quando o processo não estiver sendo executado Todas as páginas de um processo em execução devem ser mantidas na memória física enquanto o processo não tiver terminado Um processo somente pode ser iniciado se o sistema operacional conseguir alocar um bloco contíguo de páginas do tamanho da memória necessária para execução do processo O espaço de endereçamento virtual disponível para os processos pode ser maior que a memória física disponível Um processo somente pode ser iniciado se o sistema operacional conseguir alocar todas as páginas de código desse processo

Exercícios Porque utilizar sistemas de memória virtual? Diga quando pode ocorrer page-fault Quais são as técnicas de escrita em memória virtual? Compare vantagens e desvantagens de cada uma O mapeamento em sistemas de memória virtual é indexado ou associativo? Por quê? (ENADE 2010 - questão 36) Técnicas eficientes para o uso de memória, como memória virtual e caching, podem ser utilizadas, por quê? a) aumentou o espaço de armazenamento em RAM b) memórias dinâmicas são mais rápidas que memórias estáticas c) aumentou a velocidade de acesso para a memória RAM d) o princípio da localidade pode ser aplicado e) o thrashing não pode ocorrer em memórias modernas

Resposta de Exercícios Porque utilizar sistemas de memória virtual? Diga quando pode ocorrer page-fault Quais são as técnicas de escrita em memória virtual? Compare vantagens e desvantagens de cada uma O mapeamento em sistemas de memória virtual é indexado ou associativo? Por quê? (ENADE 2010 - questão 36) Técnicas eficientes para o uso de memória, como memória virtual e caching, podem ser utilizadas, por quê? a) aumentou o espaço de armazenamento em RAM b) memórias dinâmicas são mais rápidas que memórias estáticas c) aumentou a velocidade de acesso para a memória RAM d) o princípio da localidade pode ser aplicado e) o thrashing não pode ocorrer em memórias modernas

Exercícios (POSCOMP 2009 questão 26) Considere uma arquitetura de memória com as seguintes características: Memória logicamente particionada em segmentos paginados. Endereços virtuais de 32 bits: 8 para segmentos 11 para páginas O restante para o endereçamento na página Endereços físicos de 20 bits e páginas de 8KB; Caso o particionamento lógico fosse o de paginação pura, a relação entre o número de páginas virtuais e o número de frames seria equivalente a: A) 8192 B) 4096 C) 1024 D) 128 E) 32

Resposta de Exercícios (POSCOMP 2009 questão 26) Considere uma arquitetura de memória com as seguintes características: Memória logicamente particionada em segmentos paginados. Endereços virtuais de 32 bits: 8 para segmentos 11 para páginas O restante para o endereçamento na página Endereços físicos de 20 bits e páginas de 8KB; Caso o particionamento lógico fosse o de paginação pura, a relação entre o número de páginas virtuais e o número de frames seria equivalente a: A) 8192 B) 4096 C) 1024 D) 128 E) 32