-
Vários algoritmos podem ser utilizados para encontrar uma lacuna de memória para alocação de um processo:
1 - Primeiro ajuste (first fit): varre a lista desde o início e aloca no primeiro espaço (lacuna) suficientemente grande;
2 - Próximo ajuste (next fit): varre a lista da posição atual e aloca no primeiro espaço suficientemente grande;
3 - Melhor ajuste (best fit): varre a lista completamente e aloca no espaço que gerar a menor lacuna de memória;
4 - Pior ajuste (worst fit): varre a lista completamente e aloca no espaço que gerar a maior lacuna de memória disponível, de modo que a lacuna resultante possa ser suficientemente grande para ser útil;
5 - Ajuste rápido (quick fit): mantém diversas listas separadas para os tamanhos de processos mais comuns.
-
De acordo com o próprio livro de SO do Tanenbaum, o algorítmo best fit é um dos que apresenta pior fragmentação, por deixar pequenos fragmentos de memória inúteis (quando não encontra a alocação perfeita, ele aloca em um espaço com uma pequena sobra que acaba não sendo usada com facilidade). Tanto que o worst fit foi criado com a intenção de reduzir a fragmentação deixando espaços maiores que podem ser úteis. Acredito que a alternativas B e C seriam melhores opções que a considerada pelo gabarito.
-
Achei a redação da questão bem confusa!
Fragmentação interna ocorre com paginação, quando sobra espaço dentro da página ocupada pelo processo.
Fragmentação externa ocorre com segmentação, quando vão aparecendo sobras/buracos na memória principal.
Entendo que usando worst-fit ou best-fit ocorrerá fragmentação interna nas partições de tamanho fixa.
As partições disponíveis para alocar 21k são:
39k / 35k / 27k / 22k
(I) Se usarmos worst-fit, colocaremos na 39k. O tamanho do maior processo que poderemos alocar seria 22k.
(II) Se usarmos best-fit, colocaremos na 22k. O tamanho do maior processo que poderemos alocar seria 27k.
Se tivéssemos processos de 23k, 24k, 25k, 26k não conseguiríamos alocar usando (I). Então parece que (II) minimizaria o problema da fragmentação.
-
Questão casca de banana, a perceber pelos comentários.
A questão apresenta um cenário de páginas com várias possibilidades de tamanho fixo a aderir.
Naturalmente, o algortimo que minimiza o espaço livre dentro da página é o best-fit.
-
sss
-
Absurdo, Tanenbaum diz exatamente o oposto, a best-fit vai gerar um monte de fragmentos pequenos inúteis.
-
Best fit usa o menor bloco possivel. Porque esse algoritmo deixa a menor area livre, com o tempo a memoria vai ter mais areas nao contiguas, aumentando fragmentacao
-
Questão bem malandra...
Como mencionado pelos colegas, best fit aumenta a fragmentação. Segue uma definição:
Best-fit
Escolhe a melhor partição, ou seja, aquela que o programa deixa o menor espaço sem utilização.
Desvantagem de deixar pequenas áreas não contíguas, aumentando o problema da fragmentação.
O enunciado fala que best-fit "faz a alocação minimizando a fragmentação interna".
Forçando muito a barra, a única coisa que consigo imaginar para validar essa questão é que esse "minimizar" não se refere à redução da quantidade de fragmentações existentes, mas sim ao tamanho dos fragmentos, gerando desperdício ao deixa pequenas áreas não contíguas tão minúsculas que dificilmente serão utilizadas por outro processo.