Вы находитесь на странице: 1из 7

Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

A. Carissimi -10-mai-07

Sistemas Operacionais

Alocação de memória Algoritmos para alocação local

Aula 19

Introdução

! Constatações sobre o uso de memória

! Cada processo necessita de um conjunto mínimo de páginas para executar eficientemente

! O conjunto de páginas necessárias é dinâmica, isto é, evolui com a execução do processo

! O objetivo é manter o conjunto ótimo de páginas de um processo em memória

! Cada processo tem um comportamento (característica local)

! Premissa: a falta de página de um processo não pode ser resolvida reduzindo o conjunto de páginas de outro processo

 

Sistemas Operacionais

 

2

 

Algoritmos locais de substituição de páginas

 

Algoritmo ótimo

 
 

! Algoritmo ótimo

! Ajusta o número de páginas em memória de acordo com as futuras referências

 

! Modelo de conjunto de trabalho (working set)

! Método de freqüência de falta de páginas

! Princípio básico:

 

! Página P é acessada no instante de tempo t

Instituto de Informática - UFRGS

 

Instituto de Informática - UFRGS

 

! Se página P não será acessada nas próximas τ referências, ela pode ser removida da memória

"

Define um janela de tempo ( t; t + τ)

 

"

Tamanho da janela é τ + 1 acessos

Carissimi -10-mai-07

 

Carissimi -10-mai-07

! Fator τ é uma constante de projeto de sistema

 

! Não realizável devido a necessidade de conhecimento do futuro

A.

A.

 

Sistemas Operacionais

3

Sistemas Operacionais

 

4

Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

Carissimi -10-mai-07

Carissimi -10-mai-07

A.

A.

Modelo working-set

! Aproximação do algoritmo ótimo que estima o futuro com base no passado

! Baseado no princípio da localidade

! Idéia é manter em memória, em um instante t, o conjunto de páginas acessadas por um processo no intervalo (t - τ ; t)

! τ é constante do projeto do sistema

τ = 10 unidades

2 6

1

5

7

7

7

7

5

1

6

τ = 10 unidades 2 6 1 5 7 7 7 7 5 1 6 WS={1,

WS={1, 2, 5, 6, 7}

t 1

2

3

4

1

2

3

4

4

4

4

3

4

3

4

4

4

1

t 1 2 3 4 1 2 3 4 4 4 4 3 4 3 4

WS={ 3,4}

t 2

3

2

3 4

Problemas com working set

! Estimar o valor de τ

! τ = valor pequeno: não abrange toda a localidade do processo

! τ = valor grande: abrange várias localidades

" τ = : abrange todo o programa

! Custo da implementação em tempo de processamento

! Working set é recalculado a cada referência

! Para reduzir o custo emprega-se aproximações baseadas no bit de referência em data de acesso (time stamp)

Sistemas Operacionais 5 Sistemas Operacionais 6 Definição e manutenção do working set (aproximação 1)
Sistemas Operacionais
5
Sistemas Operacionais
6
Definição e manutenção do working set (aproximação 1)
Definição e manutenção do working set (aproximação 2)
! Aproximação baseada na consulta periódica do bit de referência
! Baseada no bit de referência e no tempo de acesso
!
Aumento da freqüência de interrupção e do número de bits de referência
melhora a precisão da aproximação
! A cada δ referências:
! Tamanho da janela é δ x n
se (bit_referência = 1)
então {bit_referência = 0;
! Página é eliminada do working set quando chega a zero
tempo_acesso = tempo_atual;}
senão {toff = tempo_atual - tempo_acesso;
se (toff > tmax ) Remove página do WS;}
δ referências
Bit de
referência
δ referências
descarte
t
Shift-register
t 1
0
t 2
(n bits)
t
t 1
0
t 2
Sistemas Operacionais
7
Sistemas Operacionais
8
Instituto de Informática - UFRGS
A.
Carissimi -10-mai-07
Instituto de Informática - UFRGS
A.
Carissimi -10-mai-07

Instituto de Informática - UFRGS

Carissimi -10-mai-07

A.

Método de freqüência de falta de páginas (FFP)

! A cada falta de páginas avalia o conjunto de páginas residentes em memória

! Remove da memória todas as páginas não referenciadas durante t i - t i-1 > τ onde t i é o instante de tempo do acesso em que ocorre a falta de página

! Carrega na memória a página faltante

! Efeito prático é o estabelecimento de uma taxa de falta de páginas

! Se a taxa é alta, processo necessita de mais frames

! Se a taxa é baixa, processo libera frames

Método da freqüência de falta de páginas

Instituto de Informática - UFRGS A. Carissimi -10-mai-07
Instituto de Informática - UFRGS
A.
Carissimi -10-mai-07
 

Sistemas Operacionais

9

Sistemas Operacionais

 

10

 

Thrashing

 

Conseqüências do thrashing (1)

 
 

! Situação que ocorre quando um processo não possui um número mínimo adequado de frames alocados para sua execução

 

!

Queda de desempenho

! Baixa taxa de uso do processador para execução de processos de usuários

!

Provoca uma alta taxa de falta de páginas (page fault)

! Um processo está em thrashing quando ele passa a maior parte de seu tempo de processamento paginando que executando

! Sistema operacional pode “pensar” que está faltando processos aptos para execução e permite a criação/adição de novos processos

 

"

Escalonador de médio e longo prazo

Instituto de Informática - UFRGS

   

Instituto de Informática - UFRGS

 

! Adição de processos implica em maior necessidade de frames

 
   

"

Agrava a situação (efeito “bola de neve”)

Carissimi -10-mai-07

Carissimi -10-mai-07

A.

A.

 

Sistemas Operacionais

11

Sistemas Operacionais

 

12

Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

Carissimi -10-mai-07

Carissimi -10-mai-07

A.

A.

Conseqüências do thrashing (2)

! Existe um ponto onde o grau de multiprogramação compromete o desempenho do sistema

! Efeito do thrashing pode ser limitado através de alocação local mas ainda afeta o desempenho global devido ao tratamento de page-fault

! Solução é evitar que o sistema entre em thrashing

! Solução é evitar que o sistema entre em thrashing Prevenção do thrashing ! Memória virtual

Prevenção do thrashing

! Memória virtual é baseada no princípio da localidade

! Thrashing sempre que:

! Σ da memória necessária a localidade > memória física disponível (frames)

! Solução é providenciar os frames necessários a execução do processo

! Baseado nos algoritmos de alocação

 

Sistemas Operacionais

13

Sistemas Operacionais

14

 

Usando working set para controlar thrashing

 

Usando FFP para controlar thrashing

 
 

! Define-se WSS i como o working set size do processo P i

 

! Thrashing é a alta falta de páginas

! Σ WSS i é a quantidade total de frames necessários no sistema em um dado instante

!

Objetivo é controlar a taxa de faltas de páginas para manter dentro de um limite razoável

! Thrashing ocorre quando Σ WSS i > m (quantidade de frames)

! Se muitos processos apresentam alta taxa de falta de páginas o escalonador (médio prazo) seleciona processo(s) para o estado de suspenso

 

Instituto de Informática - UFRGS

 

!

Suspende um ou mais processos para evitar essa situação

Instituto de Informática - UFRGS

 

Carissimi -10-mai-07

Carissimi -10-mai-07

A.

A.

 

Sistemas Operacionais

15

Sistemas Operacionais

16

Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

Carissimi -10-mai-07

Carissimi -10-mai-07

A.

A.

Política de controle de carga

! Problema: como balancear a taxa global de falta de páginas do sistema e o grau de multiprogramação?

! Controle da carga é a política para manter um número de processos ativos sem prejudicar o desempenho global do sistema

! Como decidir quando aumentar ou diminuir o grau de multiprogramação?

! Baseado na taxa de paginação

" Regra L=S (tempo médio entre page faults/tempo médio de atendimento)

" regra 50% (disco é usado metade do tempo para paginação)

! Qual processo deve sofrer swap se é necessário diminuir o grau de multiprogramação?

Escolhendo o processo “vítima”

! Critérios possíveis:

! O processo de menor prioridade

! O processo que provocou a falta de página

! O último processo que executou

! O menor processo

! O maior processo

! O melhor critério é dependente do sistema e de sua aplicação

 

Sistemas Operacionais

17

Sistemas Operacionais

 

18

 

Fatores adicionais

 

Pré-paginação

 
 

! Pré-paginação

! Consiste em trazer para a memória todo o working-set de um processo

 

! Seleção do tamanho da página

! Estrutura do programa

!

Possível para caso em que processos que estão realizando transições dos estados bloqueado/suspenso para apto

Instituto de Informática - UFRGS

 

Instituto de Informática - UFRGS

 

! Custo da pré-paginação deve ser menor que custo de tratamento de falta de páginas

!

Qual fração (α) de páginas carregadas pela pré-paginação são efetivamente utilizadas?

 

Carissimi -10-mai-07

Carissimi -10-mai-07

"

Vale a pena: se o custo de trazer (1- α) páginas é menor que o tratamento de falta de α páginas.

A.

A.

 

Sistemas Operacionais

19

Sistemas Operacionais

 

20

Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

Carissimi -10-mai-07

Carissimi -10-mai-07

A.

A.

Fatores a considerar na definição do tamanho de páginas

! Fragmentação

! Tamanho de estruturas internas do sistema operacional

! e.g.: tabela de páginas

! Custo das operações de E/S

! Localidade

Influência do tamanho de páginas no sistema (1)

! Menor a página, menor a quantidade de fragmentação interna

! Menor a página, maior a quantidade de páginas que podem ser mantidas na memória principal

! Execução tende a deixar em memória apenas as páginas que são necessárias (localidade)

" Com muitas páginas, tendência é reduzir a taxa de page-fault

! Menor a página, maior a quantidade de páginas por processo

! Tabela de páginas maior, ou seja, mais necessidade de memória

 

Sistemas Operacionais

21

Sistemas Operacionais

22

 

Influência do tamanho de páginas no sistema (2)

 

Estrutura do programa

 
 

! Maior a página, melhora a taxa de acerto da TLB

 

! Exemplo

! Programa 1 (1024 x 1024 page faults)

! Maior a página, menor a tabela de página

! Vetor A[1024, 1024] de inteiros

for j := 1 to 1024 do

! Cada linha é armazenada em uma página

for i := 1 to 1024 do

! Maior a página, maior a fragmentação interna

A[i,j]=0;

! Maior a página, maior o tempo de page-in/page-out

 

Instituto de Informática - UFRGS

 

! Maior a página, tendência a desperdiçar a memória pois mantém além das referência necessárias, outras não utilizadas

 

Instituto de Informática - UFRGS

 

! Compilador reorganiza o código para evitar page-faults

! Programa 2 (1024 page faults)

! Estrutura de dados

for i := 1 to 1024 do

!

Conseqüência é um aumenta na taxa de page-faults

! Pilha

for j := 1 to 1024 do

Carissimi -10-mai-07

Carissimi -10-mai-07

A[i,j]=0;

A.

A.

 

Sistemas Operacionais

23

Sistemas Operacionais

24

Instituto de Informática - UFRGS

A. Carissimi -10-mai-07

Leituras complementares

! R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais Editora Sagra-Luzzato, 2001.

! Capítulo 7, seções 7.4 e 7.5

! A. Silberchatz, P. Galvin Operating System Concepts Addison- Wesley.

! Capítulo 9, seções 9.6 a 9.8

Sistemas Operacionais

25