Você está na página 1de 3

Leticia Portela Chiu, 3 período, Infraestrutura de Software.

Leitura Recomendada 07 - Seção 9.8, Silberschatz

Questão 1 (tema geral): Discuta situações em que o algoritmo de substituição de


páginas menos-frequentemente utilizadas (LFU) gere menos erros de página que
o algoritmo de substituição de páginas menos-recentemente-utilizadas (LRU).
Discuta também sob que circunstâncias o oposto acontece.

O método LFU tem o objetivo, como diz o próprio nome, de retirar os objetos utilizados
com menor frequência e ignorar a data dos acessos para que assim objetos recém
acessados mais requisitados sejam mais fácil de acessar. Assim, uma vantagem é que
o LFU preserva objetos mais referenciados. Por outro lado, alguns objetos muito
referenciados no passado e que não serão mais referenciados no futuro ficam
acumulados com contadores grandes e não liberam espaço no cache, assim, objetos
inúteis podem permanecer no cache por bastante tempo. Já o LRU, dá destaque e
prioridade aos objetos mais recentes, seguindo assim o princípio da localidade
temporal, o qual diz que documentos recentemente acessados têm maior prioridade de
serem requisitados em futuro próximo. Desse modo, a sequência dos acessos é
considerada (implementada com uma lista ordenada) e a reposição de blocos é
baseada no princípio da localidade (AGGARWAL et al., 1999, apud CALSAVARA e
SANTOS). Na lista de ordem de acesso, adições e remoções são feitas constantemente
na cauda da lista e garante que objetos com 22 acessos mais recentes estejam sempre
no cache, porém, um lado negativo é que a LRU não considera o tamanho do objeto e o
tempo demorado para recuperar a informação dele, assim a implementação LRU não é
mais adequada para cache web, por conta da grande variabilidade no tamanho dos
arquivos.

Questão 2 (Sessão 9.8): O algoritmo de alocação de slabs usa um cache separado


para cada tipo de objeto diferente. Supondo que haja um cachê por tipo de objeto,
explique por que esse esquema não escala bem com múltiplas CPUs. O que
poderia ser feito para resolver esse problema de escalabilidade?
Em distribuições mais novas, o Linux incluiu os alocadores SLOB e SLUB. O SLUB lida
com os problemas de desempenho com a alocação de slabs e também lida com
múltiplas CPUs, inclusive, seu desempenho aumenta quando o número de
processadores aumenta. Isso porque, houve uma alteração e agora a transferência dos
metadados usam a estrutura Página do kernel linux. Apesar do SLAB alocar objetos
mais rapidamente, metadados e hierarquias complexas, ele ocupava muita memória, já
o SLUB, apenas alinha e preenche objetos de tamanho semelhante na página e salva a
lista vinculada de objetos SLAB não alocados e embora não tenha uma estrutura tão
complexa, fica mais fácil de localizar rapidamente quando acessado, visto que não é
mais necessário fazer o deslocamento de fila e cálculo de deslocamento de metadados
de cabeça. A lista relacionada é mantida separadamente em cada nó da CPU (assim
como o SLAB) conjuntamente com um encadeamento independente que mantém os
objetos SLAB globais. Em relação aos objetos não usados pela CPU, eles são
colocados na fila parcial global para o uso compartilhado com outras CPUs e ao
recuperar páginas, os objetos SLAB do SLUB são globalmente inválidos e não
causarão problemas de compartilhamento de objetos. Além disso, SLUB usa um
método de mesclar objetos SLAB semelhantes para reduzir ainda mais o uso de
memória e o SLUB remove as filas por unidade central de processamento que o
alocador SLAB mantém para os objetos em cada cache (SILBERSCHATZ, 2015, p.
497). O algoritmo geral de alocação de memória não foi modificado a fim de garantir
que o desempenho da alocação de grandes blocos de memória não fosse afetado.

REFERÊNCIAS BIBLIOGRÁFICAS:

CALSAVARA, Alcides; SANTOS, Rogério Guaraci dos. Um algoritmo de substituição


em cache na Internet baseado em semântica. Artigo Pontifícia Universidade Católica
do Paraná – PUCPR, 16 pág.

MURTA, Cristina Duarte. Desempenho de sistemas de cache da WW: limitações e


potencial. Minas Gerais, 1999. Disponível em: . Acesso em: 14 de novembro de 2021
SILBERSCHATZ, Abraham; GALVIN, Peter Baer; GAGNE, Greg. Fundamentos de
Sistemas Operacionais. 9. ed. Rio de Janeiro: LTC — Livros Técnicos e Científicos
Editora Ltda, 2015.

TITANWOLF. SLAB & SLUB. Disponível em:


https://titanwolf.org/Network/Articles/Article?AID=ed6d068f-c5b5-49c4-a0e2-c8ed330dc
86f\. Acesso em: 15 out. 2021

Você também pode gostar