Escolar Documentos
Profissional Documentos
Cultura Documentos
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:
Resultado da Execução:
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
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:
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:
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
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.