• Nenhum resultado encontrado

Política de alocação global x local

N/A
N/A
Protected

Academic year: 2018

Share "Política de alocação global x local"

Copied!
21
0
0

Texto

(1)

INFRA-ESTRUTURA DE

SOFTWARE

Aspectos de projeto sobre gerenciamento de

memória

(2)

Roteiro

Política de alocação global x local

Controle de carga

Tamanho de página

Páginas compartilhadas

Envolvimento do SO com paginação

Fixação de páginas na memória

Memória secundária

Segmentação

(3)

Política de alocação global x local

Uma questão adiada até agora:

(4)

Política de alocação global x local

O algoritmo da figura (b) é um algoritmo de substituição

(5)

Política de alocação global x local

Alocação global:

• Molduras de páginas são alocadas entre processos em execução

• O número de frames para cada processo varia no tempo

• Em geral, funcionam melhor quando comparados aos locais

• Pense sobre a variação de páginas do conjunto de trabalho durante a execução de um processo

• Quando a alocação é local:

• Se o conjunto de trabalho aumentar pode ocorrer ultrapaginação mesmo havendo molduras disponíveis

• Se o conjunto de trabalho de um processo diminuir os algoritmos locais desperdiça memória

Alguns algoritmos de substituição são usados nas duas

políticas (FIFO, LRU, etc), mas outros só fazem sentido para

alocação local (como o WSClock)

(6)

Controle de carga

Mesmo que se use PFF e algoritmos de substituição

global eficientes, pode ocorrer ultrapaginação

• É preciso se livrar temporariamente de alguns processos!

• Voltamos ao conceito de levar processos da RAM para o disco

• É importante considerar outros aspectos quando os processos são

escolhidos para evitar ultrapaginação

(7)

Tamanho de página

Geralmente é uma decisão do sistema operacional

Se o hardware for projetado para páginas de 512 bytes, o

SO pode escolher múltiplos maiores

Os objetivos na escolha do tamanho são conflitantes:

• Argumentos a favor de páginas pequenas:

• É provável que em algumas situações não se ocupe uma página inteira

• Tamanhos de páginas grandes farão com que partes do programa não usadas ocupem memória desnecessariamente (conjunto de trabalho) • Argumentos a favor de páginas grandes:

• Páginas pequenas implicam em uma grande tabela de páginas

Tamanhos de páginas reais estão entre 4 KB e 8 KB

• No passado era comum 1 KB então é provável que isso cresça

(8)

Páginas compartilhadas

É útil sempre que possível compartilhar páginas para

economizar memória

• Duas execuções do mesmo programa podem compartilhar páginas

(9)

Envolvimento do SO com paginação

Situações nas quais o SO se envolve com paginação:

1. Criação do processo

• Determina o tamanho do programa e cria tabela de páginas

2. No tempo de execução do processo

• Inicia a MMU e esvazia a TBL

3. Na ocorrência de falta de página

• Determina o EV causador da falta de página (lendo registradores)

• Procura uma moldura de página e descarta antiga caso necessário

• Carrega a página do disco para o frame

4. Na finalização do processo

(10)

Fixação de páginas na memória

O foco desta seção não é em E/S mas é preciso entender

que pode ocorrer interação entre E/S e memória virtual

Considere o processo 1 que emite uma chamada de

sistema para ler do disco para um buffer

• O processo 1 bloqueia

• Um processo 2 inicia a execução e a página que era buffer de E/S

do processo 1 é liberada para o processo 2

• O que acontece quando o bloqueio de E/S termina?

• É preciso evitar problemas nestas situações!

Uma solução é impedir que páginas envolvidas com E/S

sejam liberadas em faltas de páginas

(11)

Memória secundária

Quando é necessário fazer swap a área do disco pode se

apresentar em diversas formas:

• Pode ser usada uma área de troca (swap area) no disco em que os

arquivos normais ficam

• É possível ter uma partição do disco apenas para swap (fica fora

(12)

Memória secundária

Alternativas:

(13)

Segmentação

Para muitos problemas, ter 2 ou mais espaços de

endereçamentos separados pode ser melhor do que um

• O modelo de memória que discutimos até agora é unidimensional

Um compilador pode ser beneficiado por uma memória

virtual que possuísse várias tabelas com crescimento

independente

• O que acontece se um programa tem uma quantidade grande de

(14)

Segmentação

Em um espaço de endereçamento unidimensional com

(15)

Segmentação

Uma solução é prover a máquina com muitos espaços de

endereçamento independentes chamados segmentos

Um segmento é uma sequência linear de endereços de 0

até um máximo

• Segmentos diferentes podem ter tamanhos variados

• O tamanho dos segmentos podem variar durante a execução

Para especificar um endereço de memória segmentada e

bidimensional, o processo precisa especificar:

1. O número do segmento

(16)

Segmentação

(17)

Segmentação x paginação

Item Paginação Segmentação

O programador precisa saber que a técnica é usada?

Não Sim

Há quantos espaços de endereçamento linear? 1 Muitos

O espaço de endereçamento total pode superar o tamanho da memória física

Sim Sim

Rotinas e dados podem ser distinguidos e protegidos separadamente?

Não Sim

As tabelas cujo tamanho flutuam podem ser facilmente acomodadas?

Não Sim

O compartilhamento de rotinas entre usuários é facilitado

(18)

Segmentação x paginação

Porque a paginação foi inventada?

• Para permitir obter um grande espaço de endereçamento linear sem a necessidade de comprar mais memória física

Porque a segmentação foi inventada?

• Para permitir que programas e dados sejam divididos em espaços de endereçamento logicamente independentes

(19)

2ª Prova

Assuntos:

• Introdução ao gerenciamento de memória

• Espaços de endereçamento • Swap

• Gerenciamento de memória livre • Memória virtual

(20)

Referências

1.

Tanenbaum, Andrew S. Sistemas Operacionais

Modernos. Pearson Brasil, 2010.

2.

Weber, Raul Fernando. Fundamentos de

Arquitetura de Computadores. Sagra-Luzzatto.

2004.

3.

Machado, Francis B. e Maia, Luiz Paulo.

Arquitetura de Sistemas Operacionais. LTC, 2002.

4.

Toscani, Simão et. Al. Sistemas Operacionais.

Sagra-Luzzatto, 2004.

5.

Holcombe, Jane e Holcombe, Charles. Dominando

(21)

INFRA-ESTRUTURA DE

SOFTWARE

Aspectos de projeto sobre gerenciamento de

memória

Referências

Documentos relacionados

Therefore, the time required for desorption (~ 120 min or more) was always one order of magnitude higher than the time required for complete sorption (~ 30 min). In the

A Manuela e o João com o MIRA FORUM, foram intensificando também a sua programação e na altura pediram-me para eu diminuir o número de atividades por

Para estes autores, os sintomas da doença ficam algumas vezes, raramente, estacionários durante o primeiro período por eles considerado na ges- tação, e, logo no começo do

Dessa forma, para que o método seja considerado com boa seletividade os excipientes isolados não devem apresentar eventos na faixa de temperatura de

Nosso estudo evidenciou que as atividades relacionadas à temática ambiental citadas pelos professores, em sua maioria, foram desenvolvidas de forma esporádica, em

The COMPASS Collaboration at CERN has measured the transverse spin azimuthal asymmetry of charged hadrons produced in semi-inclusive deep inelastic scattering using a 160 GeV µ +

O Documento Orientador da CGEB de 2014 ressalta a importância do Professor Coordenador e sua atuação como forma- dor dos professores e que, para isso, o tempo e

O relatório encontra-se dividido em 4 secções: a introdução, onde são explicitados os objetivos gerais; o corpo de trabalho, que consiste numa descrição sumária das