Você está na página 1de 6

Centro de Ciências e Tecnologia CCT Departamento de Computação DC Curso de Bacharelado em Computação

RESOLUÇÃO

4ª Lista de Exercícios

1. Descreva o método de alocação contínuo da memória principal. Explique as abordagens first-fit, best-fit e worst-fit para a alocação de um novo processo.

A memória principal é geralmente dividida em duas partições:

Uma parte para Sistema Operacional, geralmente na memória baixa, junto com o vetor de interrupções.

Outra parte para os processos do usuário, geralmente na parte alta da memória.

São utilizados registradores de relocação para proteger os processos dos usuários uns dos outros e também para evitar alterações em dados e códigos do sistema operacional.

O registrador base contém o menor endereço de memória permitido.

O registrador de limite define o tamanho do espaço de endereçamento cada endereço lógico deve ser menor que o registrador de limite.

A MMU mapeia os endereços lógicos dinamicamente.

A Alocação com múltiplas partições gera “Buracos”, que são blocos de memória disponível, ou seja, buracos de

vários tamanhos são espalhados na memória. E quando um processo é criado ele é alocado em um buraco grande

o suficiente para suas necessidades de memória. O sistema operacional mantém informações sobre:

Partições alocadas

Partições livres (conjunto de buracos)

Para escolher qual buraco um novo processo deverá ser alocado é utilizado um dos algoritmos de alocação:

o

First-fit: Aloca o primeiro buraco que for grande o suficiente para alocar o processo.

o

Best-fit: Aloca o menor buraco que for grande o suficiente; precisa pesquisar o conjunto inteiro a menos que esteja ordenada por tamanho.

Produz o menor buraco remanescente.

o

Worst-fit: Aloca o maior buraco; também precisa percorrer todo o conjunto.

Produz o maior buraco remanescente.

OBS. First-fit e best-fit são melhores que o worst-fit em termos de velocidade e utilização do espaço!

2. O que é fragmentação interna e externa?

A fragmentação interna é quando ocorre desperdício de espaço da memória e a memória principal é subdivida em espaços iguais, um processo ocupa apenas uma parcela desse espaço, assim ele fica parcialmente utilizado e não mais disponível para outro processo. Fragmentação Externa é quando se têm espaços livres na memória suficientes para atender uma requisição (alocação de processo), mas os espaços livres não são contíguos.

3.

processo), mas os espaços livres não são contíguos. 3. Dado o esquema de paginação acima, responda

Dado o esquema de paginação acima, responda as seguintes questões:

a)

Onde inserir o end. Lógico 0?

No endereço físico = 20

b) Onde inserir o end. Lógico 3?

No endereço físico = 23

c) Onde inserir o end. Lógico 4?

No endereço físico = 24

d) Onde inserir o end. Lógico 6?

No endereço físico = 26

e) Onde inserir o end. Lógico 11?

No endereço físico = 7

f) Onde inserir o end. Lógico 13?

No endereço físico = 9

4. Com a paginação eliminamos o problema de fragmentação interna. Essa afirmação está correta? Explique.

Afirmação está incorreta. Com a paginação conseguimos garantir a eliminação da fragmentação externa, porém a fragmentação interna ainda pode existir.

5. Explique e mostre visualmente como se dá os seguintes esquemas de paginação:

a) Paginação em dois níveis:

Quebra o espaço de endereçamento lógico em múltiplas tabelas de paginação.

endereçamento lógico em múltiplas tabelas de paginação. b) Paginação com hash Comum em espaço de endereçamento

b) Paginação com hash

Comum em espaço de endereçamento com mais de 32 bits. O número da página virtual é submetido a uma função hash e o resultado aponta para uma entrada na tabela de paginação (tabela hash). Cada entrada na tabela de paginação (tabela hash) contém uma lista encadeada de elementos cujo hash apontou para a mesma localidade (afim de lidar com colisões). O número da página virtual é então comparado com os valores nessa lista para localizar o quadro na memória física.

O número da página virtual é então comparado com os valores nessa lista para localizar o

c)

Paginação invertida

Consiste em manter uma tabela onde cada entrada representa uma tabela de página ao invés de um endereço virtual. Desta forma, a entrada deve monitorar qual página virtual está associada àquela tabela de página. Apesar de diminuir a quantidade de memória necessária para armazenar a tabela de paginação, aumenta o tempo necessário para consultar a tabela.

Usar hash para limitar a busca a uma, ou pelo menos, a umas poucas entradas.

a busca a uma, ou pelo menos, a umas poucas entradas. 6. Utilizando o conceito de

6. Utilizando o conceito de memória associativa na implementação da tabela de paginação, calcule o tempo efetivo de acesso (EAT) para o seguinte cenário:

I. Tempo para busca na memória associativa: 20ns

II. Tempo de acesso à memória: 100ns

III. Taxa de acerto (porcentagem das vezes em que o número de uma página é encontrado na memória associativa): 80%

= ( + ) + 1 + 2

= 0,80 (20 + 100) + 1 0,80 20 + 2100 = 0,80 120 + 0,20 220 = 96 + 44 = 140

7. Utilizando o conceito de páginas compartilhadas, suponhamos que um determinado sistema suporta 50 usuários. Onde cada usuário executa um editor de texto. O editor de texto consiste em basicamente duas partes: (i) 350KB de código (compartilhável) e (ii) 150KB de espaço de dados (não compartilhável). Na abordagem de páginas não-compartilhadas quantos KB seriam necessários para suportar os 50 usuários? E na abordagem de páginas compartilhadas?

Abordagem de páginas não-compartilhadas para suportar 50 usuários:

50 * (350 + 150) = 25000KB Abordagem de páginas compartilhadas para suportar 50 usuários:

350 + (50 * 150) = 7850KB

8.

8.  Dado o esquema de segmentação acima, responda as seguintes questões: a) Uma referência ao

Dado o esquema de segmentação acima, responda as seguintes questões:

a) Uma referência ao byte 53 do segmento 2 é mapeado para qual local?

O segmento 2 tem 400 bytes de comprimento e começa na posição 4300. Assim, uma referência ao byte 53

do segmento 2 é mapeada na posição 4300 + 53 = 4353

b) Uma referência ao byte 852 do segmento 3 é mapeado para qual local?

O segmento 3 que tem 1100 de comprimento e começa na posição 3200. Assim, uma referência ao byte 852

do segmento 3 é mapeada na posição 3200 + 852 = 4052

c) Uma referência ao byte 1222 do segmento 0 é mapeado para qual local?

Uma referência ao byte 1222 do segmento 0 resultaria em uma exceção de sistema operacional (Trap), pois esse segmento só tem 1000 bytes de comprimento.

9. Explique o passo a passo do que ocorre quando ocorre uma falta de página no sistema. Se preferir pode explicar visualmente.

1. O Sistema Operacional verifica se houve uma:

o

Referência inválida Aborta o processo

o

Apenas uma referência a uma página fora da memória principal

2. Lança uma trap para o S.O.

3. Sabe-se que a página está na memória de retaguarda.

4. Busca a página e a aloca num quadro livre da memória principal

5. Indica na tabela de paginação que a página está alocada (seta o bit de validade para v)

6. Re-executa a instrução que gerou a falta de página

que a página está alocada (seta o bit de validade para v) 6. Re-executa a instrução

10. Calcule o tempo efetivo de acesso (EAT) para o seguinte caso de uma paginação sob demanda:

I. Tempo de acesso à memória: 300ns

II. Tempo para tratamento da falta de página: 8500000ns

III. Probabilidade de falta de página: 0,1%

= (1 ) +

= tempo de acesso à memoria : O tempo para realizar aqueles passos que vimos anteriormente!

= (1 ) + = (1 0,1) 300 + 0,1 8500000 = 0,9 * 300 + 850.000 = 270 + 850.000 = 850.270ns

OBS. - 1ms = 1000000ns - Um acesso a cada 1000 resultam em falta de página: p = 1/1000 = 0,001

11. Joãozinho pretende comprar um computador, porém ele só comprará um computador que

compromete, no máximo, 5% do seu desempenho com problemas de falta de página. Considere os seguintes valores:

I. Tempo de acesso à memória: 300ns

II. Tempo para tratamento da falta de página: 8500000ns

Se eu busco uma perda menor que 5%, ou seja, no máximo 5%, quero que meu EAT seja menor que:

300 + 5/100 * 300 = 315

= (1 ) +

315

> (1 ) 300 + 8500000

315

> 300 300p + 8500000p

15 > 8.499.700p p < 15/8.499.700p = 1.764768168X10 -6 ou 0,000002

12. Explique o passo a passo do processo básico de substituição de página.

1. Localize a página desejada no disco.

2. Localize um quadro livre:

o

Se há um quadro livre, utilize-o.

o

Se não há tal quadro, utilizar um algoritmo de substituição para escolher um quadro vítima.

3. Carregue a página desejada no quadro (recentemente) livre; atualize as tabelas de páginas e de quadros

4. Re-execute a instrução que causou a falta de página.

13. Considerando a seguinte String de Entrada: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. Identifique a quantidade de

falta de páginas para os algoritmos de substituições de página. Considere 3 quadros:

a)

FIFO

Esse algoritmo associa a cada página o instante em que a página foi levada para a memória. Quando é preciso substituir uma página, a página mais antiga é escolhida.

1 2 3 4 1 2 5 1 1 1 4 4 4 5 1
1
2
3
4
1
2
5
1
1 1
4
4
4
5
1
2 2
2
1
1
1
3
3
3
2
2

9 faltas de páginas

1

2

3

4

5

5 5 3 3 2 4
5
5
3
3
2
4

b) Ótimo

Substitui a página que não será acessada pelo maior período de tempo.

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

1

1

7 faltas de páginas

2

c) Menos Recentemente Usada (LRU).

5

1

2

3

4

5

1 3 3 2 2 4 5 5 5
1
3
3
2
2
4
5
5
5

A substituição LRU associa a cada página a data que essa página foi usada pela última vez. Quando uma página precisa ser substituída, o algoritmo LRU seleciona a página que não foi usada pelo maior período de tempo.

1 2 3 4 1 2 5 1 1 1 4 4 4 5 1
1
2
3
4
1
2
5
1
1 1
4
4
4
5
1
2 2
2
1
1
1
3
3
3
2
2

10 faltas de páginas

1

2

3

4

5

3 3 5 1 4 4 2 2 2
3
3
5
1
4
4
2
2
2

14. Descreva os esquemas de alocação de quadros que podem ser adotados pelo sistema para suprir a necessidade mínima de cada processo.

Cada processo precisa de um número mínimo de quadros. Existem dois esquemas principais de alocação:

o

Alocação fixa:

Alocação igualitária: se há 100 quadros e 5 processos, alocar 20 quadros para cada um. Alocação proporcional: quadros são alocados de acordo com o tamanho dos processos.

o

Alocação por prioridade:

Usa uma alocação proporcional baseada na prioridade ao invés do tamanho Se o processo P i causa uma falta de página:

Seleciona um de seus quadros para substituição. Seleciona um quadro de um processo de menor prioridade para substituição.

15. Considerando o esquema de alocação fixa proporcional de quadros, supondo que o sistema possua uma memória principal com 128 quadros. 3 processos serão inicializados em tal sistema: o processo 1 (P1) tem um tamanho de 20 quadros, o processo 2 (P2) tem um tamanho de 80 quadros e o processo 3 (P3) tem um tamanho de 120 quadros. Quantos quadros serão alocados para cada processo?

quadros. Quantos quadros serão alocados para cada processo? S p 1 = 20, S p 2

S p1 = 20, S p2 = 80 e S p3 = 120 S = 20 + 80 + 120 = 220 m = 128

P1

a p1 = 20/220 * 128

a

p1

+ 80 + 120 = 220 m = 128 P1 a p 1 = 20/220 *

12

P2

a p2 = 80/220 * 128

a

p2

P1 a p 1 = 20/220 * 128 a p 1 12 P2 a p 2

46

P3

a p3 = 120/220 * 128

a

p3

P1 a p 1 = 20/220 * 128 a p 1 12 P2 a p 2

70