Você está na página 1de 5

Sistemas Operacionais

Lista de Exercícios – Aulas 11 e 12


Gerenciamento de Memória; Exercícios de Gerenciamento de Memória

Instruções:
Para a realização dos Laboratórios abaixo é necessário que o(a) aluno(a) tenha qualquer
distribuição Linux instalado. Sugere-se o uso de Máquinas Virtuais para aqueles(as) que utilizam
o Windows como sistema operacional principal. Há possibilidade de que os laboratórios abaixo
possam ser realizados no WSL, mas não há garantias.

É muito importante que todos os laboratórios sejam realizados na prática para melhor
entendimento dos assuntos abordados. Porém, caso não for possível, o(a) aluno(a) pode ignorar
a parte prática e ir direto para o Resultado da Execução de cada código. Os binários deste
laboratório podem ser encontrados aqui.

Questão 01. MFT (Multiprogramming with a Fixed number of Tasks) - Execute o programa mft e
responda ao questionário conforme abaixo:

● Informe o total de memória disponível (em Bytes): 1000


● Informe o tamanho do bloco - block size (em Bytes): 300
● Informe o número de processos: 5
● Informe a quantidade de memória necessária para o processo 1 (em Bytes): 275
● Informe a quantidade de memória necessária para o processo 2 (em Bytes): 400
● Informe a quantidade de memória necessária para o processo 3 (em Bytes): 290
● Informe a quantidade de memória necessária para o processo 4 (em Bytes): 293
● Informe a quantidade de memória necessária para o processo 5 (em Bytes): 100
● No. de blocos disponíveis em memória: 3

Resultado da Execução:

PROCESSO MEMÓRIA NECESSÁRIA ALOCADA FRAGMENTAÇÃO INTERNA


1 275 SIM 25
2 400 NÃO ---
3 290 SIM 10
4 293 SIM 7
Memória está cheia. Alguns processos não foram acomodados.

Total de Fragmentação Interna é 42


Total de Fragmentação Externa é 100

Perguntas:
a. Houve algum processo com memória não alocada? Qual? Justifique.
b. Houve fragmentação interna? Justifique.
c. Houve fragmentação externa? Justifique.
Sistemas Operacionais
Lista de Exercícios – Aulas 11 e 12
Gerenciamento de Memória; Exercícios de Gerenciamento de Memória

Questão 02. MVT (Multiprogramming with a Variable number of Tasks) - execute o programa mvt e
responda ao questionário conforme abaixo:
● Informe o total de memória disponível (em Bytes): 1000
● Informe a quantidade de memória necessária para o processo 1 (em Bytes): 400
● Memória está alocada para o Processo 1
● Você deseja continuar (s/n): s
● Informe a quantidade de memória necessária para o processo 2 (em Bytes): 275
● Memória está alocada para o Processo 2
● Você deseja continuar (s/n): s
● Informe a quantidade de memória necessária para o processo 3 (em Bytes): 550

Resultado da Execução:
Memória está cheia

Total de Memória Disponível -- 1000

PROCESSO MEMÓRIA ALOCADA


1 400
2 275

Total de Memória Alocada é 675


Total de Fragmentação Externa é 325

Perguntas:
a. Informe o total de memória alocada e justifique a resposta.
b. Houve fragmentação interna? Justifique.
c. Quem utiliza recursos de forma mais eficiente? MFT ou MVT?

Questão 03. Worst-Fit - execute o programa worst_fit e responda ao questionário conforme abaixo:
● Informe o número de blocos: 3
● Informe o número de arquivos: 2
● Informe o tamanho dos blocos:
● Bloco 1: 5
● Bloco 2: 2
● Bloco 3: 7
● Informe o tamanho dos arquivos:
● Arquivo 1: 1
● Arquivo 2: 4

Resultado da Execução:
Arquivo_no: Tamanho Arquivo : Bloco_no: Tamanho Bloco: Fragmento
1 1 1 5 4
2 4 3 7 3

Perguntas:
a. Comente o resultado observado.
Sistemas Operacionais
Lista de Exercícios – Aulas 11 e 12
Gerenciamento de Memória; Exercícios de Gerenciamento de Memória

Questão 04. Best-Fit - execute o programa best_fit e responda ao questionário conforme abaixo:
● Informe o número de blocos: 3
● Informe o número de arquivos: 2
● Informe o tamanho dos blocos:
● Bloco 1: 5
● Bloco 2: 2
● Bloco 3: 7
● Informe o tamanho dos arquivos:
● Arquivo 1: 1
● Arquivo 2: 4

Resultado da Execução:

Arquivo_no: Tamanho Arquivo : Bloco_no: Tamanho Bloco: Fragmento


1 1 2 2 1
2 4 1 5 1

Perguntas:
a. Comente o resultado observado.

Questão 05. First-Fit - execute o programa first_fit e responda ao questionário conforme abaixo:
● Informe o número de blocos: 3
● Informe o número de arquivos: 2
● Informe o tamanho dos blocos:
● Bloco 1: 5
● Bloco 2: 2
● Bloco 3: 7
● Informe o tamanho dos arquivos:
● Arquivo 1: 1
● Arquivo 2: 4

Resultado da Execução:

Arquivo_no: Tamanho Arquivo : Bloco_no: Tamanho Bloco: Fragmento


1 1 3 7 6
2 4 1 5 1

Perguntas:
a. Comente o resultado observado.
b. Faça uma análise comparativa e justifique através dos resultados obtidos em Worst-Fit,
Best-Fit e First-Fit, qual deles apresentou melhor desempenho e porque.
Sistemas Operacionais
Lista de Exercícios – Aulas 11 e 12
Gerenciamento de Memória; Exercícios de Gerenciamento de Memória

Questão 06. Paginação (Paging) - execute o programa paging e responda ao questionário


conforme abaixo:
● Informe o tamanho da memória: 1000
● Informe o tamanho da página: 100
● O no. de páginas disponíveis na memória são 10
● Informe o número de processos: 3
● Informe o número de páginas necessárias para p[1]: 4
● Informe a tabela de página para p[1]: 8 6 9 5
● Informe o número de páginas necessárias para p[2]: 5
● Informe a tabela de página para p[2]: 1 4 5 7 3
● Informe o número de páginas necessárias para p[3]: 5
Resultado da Execução:
Memória está cheia
O endereço físico é 760

Perguntas:
a. A memória está cheia? Comente.
● Informe o no. do Processo, o número da página e o offset: 2 3 60
b. O que seria o offset? Faça um paralelo entre o seu conceito e o resultado apresentado
para o endereço físico.
Lógica de Programação
Lista de Exercícios – Aula 15
Exercícios com Matrizes e Funções

Exercício 1
Implemente um programa com uma matriz de 5 linhas e 3 colunas. O seu algoritmo receberá uma
quantidade indefinida de números inteiros, até que o valor -1 seja informado.
• Os números ímpares deverão ser armazenados na primeira coluna da matriz (lateral
esquerda) e os pares na terceira coluna (lateral direita).
• Se a coluna esquerda ou coluna direita ficarem cheias (completarem as 5 posições) durante
a leitura dos valores, você deverá "mover" o valor mais antigo (a posição mais acima da
coluna) para a coluna central e, então, deslocar os elementos subsequentes em "uma casa
para cima", para que seja possível armazenar o valor na 5ª posição da coluna (direita ou
esquerda). Repita essa operação todas as vezes em que for necessário.
• Caso a coluna central seja completamente preenchida, descarte o valor mais antigo (a primeira
linha da coluna) e, então, mova os valores em uma linha para cima e armazene o novo valor
na 5ª posição da coluna central (a posição mais abaixo da coluna).
• Seu programa encerra quando o valor -1 for recebido (não armazene o valor -1). Caso ainda
restem posições vazias na matriz, essas deverão ser preenchidas com 0 (zero).

Ao final, o algoritmo deverá escrever a matriz 5x3. Se valores recebidos pelo algoritmo são 1, 2,
3, 4, 5, 6, 7, 8, 9, 2, 3, 4 e -1, a saída esperada é:
314
525
708
902
304

Exercício 2
Considere o trecho de código abaixo, ele será responsável pelo teste das funções soma, produto,
media e mdc que você deverá implementar. O programa abaixo não poderá ser alterado.
Acrescente suas funções (nas linhas anteriores a declaração da variável n1). Obs.: O cálculo é
uma média ponderada em 4, 5 e 6 respectivamente.

escreva "Informe n1:"


var n1 := leia_numero
escreva "Informe n2:"
var n2 := leia_numero
escreva "Informe n3:"
var n3 := leia_numero

escreva "Soma: {soma(n1,n2)}"


escreva "Produto: {produto(n1,n2)}"
escreva "Média: {media(n1,n2,n3)}"
escreva "Menor Divisor Comum: {mdc(n1,n2,n3)}"

Você também pode gostar