Considere um sistema que gerencia seus 256K de memória usando uma partição de 64K para o sistema operacional e partições fixas de 16K para os processos de usuário. O SO possui 48K, e existem na memória processos de usuário de 10K, 4K, 7K, 9K, 12K, 13K, 5K, 16K e 6K. Determine a memória alocada, a memória efetivamente utilizada, a memória desperdiçada (através de uma porcentagem em relação ao total alocado) e a fragmentação média em cada partição (em termos porcentuais).
Soluções para a tarefa
Em um sistema operacional a memória alocadada é a memória que está sendo destinada para a execução de um processo .
Assim, um sistema que possui processos de usuário de 10K, 4K, 7K, 9K, 12K, 13K, 5K, 16K e 6K, tem cerca de 82K de memoria sendo usados na execução deles
Para cada um desses processos o sistema alocou uma partição fixa de 16K, então mesmo que o processo consuma apenas 6K de memória o valor alocado ainda é 16K, o que gera um desperdício.
Desta forma, em termos de desperdício, em K para os 8 processos, é:
- 10K -> 6K
- 4K -> 12K
- 7K -> 9K
- 12K - > 4K
- 13K -> 3K
- 5K -> 11K
- 16K -> 0K
- 6K - 10K
Dando um total de 55K desperdiçados em processos.
Quando a partição do sistema operacional, também temos desperdício para o valor destinado. Pois o sistema ocupa 48k e foi destinado 64k para ele.
Assim, a memória alocada é a soma de todas as alocações de memória realizadas:
64K + (16K * 8) = 192K
A memoria efetivamente utilizada é a soma da memoria utilizada, ou seja:
82k + 48k = 130k
Já a memória desperdiçada é a diferença entre a memória alocada e a memoria efetivamente utilizada:
192K - 130K = 62K
Como a questão nos pede a memória desperdiçada através de porcentagem em relação ao total alocado iremos realizar uma regra de 3.
192k ----- 100%
62k ------ x %
x = 32,29 %
Espero ter ajudado, bons estudos :)