Melhor resposta
Obrigado pelos (múltiplos) A2As.
Dados em cache são alguns dados que seu computador / telefone / o que quer que antes tenha trabalhado muito (carregado em uma rede potencialmente lenta, ou teve que usar muita CPU, ou mesmo teve que ler do disco). Ele é armazenado em algum lugar mais rápido do que o que foi usado para obtê-lo / criá-lo primeiro. Portanto, se um arquivo em seu disco é armazenado em cache, ele não é armazenado em cache em seu disco, mas sim em sua memória. Se um arquivo da rede for armazenado em cache, ele pode ser armazenado em cache na memória ou no disco (ou em ambos).
Os computadores têm muitos caches diferentes. Lotes . Mesmo coisas que você possa considerar “rápidas” como a RAM em seu computador são, na verdade, lentas o suficiente para que sua CPU tenha um cache para os valores de RAM. Os programas freqüentemente têm vários caches para várias coisas. O sistema operacional armazena em cache arquivos de disco na RAM e freqüentemente fornece coisas que armazenam páginas da web em cache na RAM e / ou disco.
Quaisquer dados armazenados em cache “deveriam” ser algo que pode ser criado ou buscado novamente. Em alguns casos, realmente não pode, por exemplo, se você tem uma imagem de uma página da web em cache e por algum motivo o cache é limpo quando você não tem rede, você não pode obter essa imagem de volta até que a rede volte … ou a página da web pode ter mudado, caso em que o valor nunca pode voltar.
Alguns caches têm métodos embutidos para evitar que fiquem obsoletos (como se um site muda uma imagem todos os dias, você não quero ver a foto do último mês apenas porque é “mais rápida”). Este é realmente um dos problemas mais difíceis na ciência da computação (invalidação de cache). Existem muitas e muitas políticas. Alguns comuns são “jogar fora coisas velhas”, “perguntar ao site / sistema de arquivos / seja lá o que for se a coisa mudou” e um favorito pessoal “quem se importa”.
Então, “em teoria”, jogar longe, um cache não pode causar um problema … e também não pode resolver um. Exceto no mundo real, a política de invalidação de cache pode estar errada e os dados antigos são armazenados em cache e agora obsoletos, limpar o cache corrigirá isso (woot!). No mundo real, os dados também podem estar “obsoletos”, mas não podem ser recuperados, portanto, limpar o cache exporá um problema (boo!).
Limpar um cache também fará com que o mais lento enquanto as coisas que estavam no cache e de que você precisa novamente são calculadas / buscadas / qualquer outra coisa novamente.
Resposta
No seu computador 🙂
o cache é uma peça de hardware também conhecida como SRAM (RAM estática). Possui um desempenho extremamente bom. No entanto, isso tem um custo. Literalmente. Um custo como em muitos $$$ porque SRAM também é extremamente caro. Se nossos computadores fossem compostos inteiramente de SRAM, eles seriam incrivelmente caros. Tanto que ninguém teria condições de comprá-los. Então, podemos ver por que gostaríamos de usar SRAM (ela tem um desempenho substancialmente melhor do que DRAM ou espaço em disco), mas se é tãããão caro, por que usaríamos? É inviável caro, certo?
Sim, é. No entanto, alguns engenheiros inteligentes pensaram em um acordo. E se a maior parte da arquitetura do computador ainda fosse composta de DRAM e espaço em disco (para torná-lo acessível), mas para ainda manter um desempenho que mantenha os consumidores felizes, e se tudo que precisássemos fosse um pequeno pedaço de SRAM para acelerar nosso desempenho do computador em muito. Palavra-chave: “tiny sliver”
Então, onde o “cache LRU” é usado? Bem, não há realmente uma coisa em si chamada de “cache LRU”. Caches modernos, que você pode considerar como nossos minúsculos fragmentos de SRAM, não têm espaço infinito para armazenar dados e, se você for um consumidor típico navegando na web, constantemente indo de página em página, plataforma em plataforma, os dados a rotatividade em seu computador será muito alta.
Então, como podemos utilizar essa “pequena porção” de SRAM quando nossa rotatividade de dados tende a ser tão alta? O que fazemos é decidir quais pedaços de dados provavelmente usaremos novamente, e tentamos nosso melhor para manter esses pedaços de dados dentro de nossa pequena porção de SRAM (nosso cache) para que da próxima vez precisemos acessar um parte dos dados, seu computador é capaz de acessar esses dados muito rápido porque eles estão sendo mantidos naquele fragmento de SRAM. E como exatamente decidimos o que manter e o que não manter? É precisamente aqui que entra o conceito de “cache LRU”. Existem muitos layouts de cache diferentes usados por diferentes razões (totalmente associativo, conjunto associativo, mapeamento direto, etc.), cada um tem suas vantagens / desvantagens, mas a maioria Uma forma comum de seu sistema operacional decidir quais dados manter na SRAM e o que jogar fora é examinar os dados que foram acessados mais recentemente. Faz sentido certo? Se você acabou de clicar em algo, e você clicou no dia anterior, e no dia anterior, e no dia anterior, etc…. Provavelmente faz sentido manter esse pedaço de dados na SRAM para que, da próxima vez que você clicar nele, BOOM, ele apareça em um piscar de olhos. Mas e quanto a algum site em que você clicou há três meses e não acessou desde então?Bem, à medida que sua rotatividade de dados continua a crescer, em um determinado ponto seu sistema operacional terá que determinar o que precisa ser retirado da SRAM e dirá este site que não foi clicado em três meses? Este é o dado menos usado recentemente em nosso cache, então vamos expulsá-lo.
O cache é uma peça de hardware conhecida como SRAM que tem um desempenho muito bom. O algoritmo de remoção de LRU é como seu sistema operacional decide quais dados devem ser mantidos e removidos daquela preciosa SRAM.