캐시 된 데이터 란 무엇입니까? 캐시 된 데이터를 지우면 문제가 발생합니까?


최상의 답변

(여러 개의) A2A에 감사드립니다.

캐시 된 데이터는 컴퓨터 / 전화 / 한때 매우 열심히 일한 데이터 (잠재적으로 느린 네트워크를 통해로드되거나 CPU를 많이 사용하거나 디스크에서 읽어야 함). 먼저 가져 오거나 만드는 데 사용 된 것보다 더 빨리 어딘가에 저장됩니다. 따라서 디스크의 파일이 캐시 된 경우 디스크에 캐시되지 않고 메모리에 캐시됩니다. 네트워크의 파일이 캐시되면 메모리 나 디스크 (또는 둘 다)에 캐시 될 수 있습니다.

컴퓨터에는 다양한 캐시가 있습니다. 많은 . 컴퓨터의 RAM처럼 “빠르다”고 생각할 수도있는 것조차도 실제로 CPU가 RAM 값에 대한 캐시를 가질만큼 충분히 느립니다. 프로그램은 종종 다양한 것을위한 여러 캐시를 가지고 있습니다. 운영 체제는 RAM에 디스크 파일을 캐시하고 RAM 및 / 또는 디스크에 웹 페이지를 캐시하는 항목을 자주 제공합니다.

캐시 된 모든 데이터는 다시 만들거나 가져올 수있는 항목이어야합니다. 어떤 경우에는 실제로 불가능합니다. 예를 들어 웹 페이지의 사진이 캐시되어 있고 어떤 이유로 네트워크가 없을 때 캐시가 지워지면 네트워크가 다시 돌아올 때까지 해당 이미지를 다시 가져올 수 없습니다. 웹 페이지가 변경되었을 수 있으며이 경우 값이 다시 돌아올 수 없습니다.

일부 캐시에는 부실화되지 않도록하는 방법이 내장되어 있습니다 (예 : 웹 사이트가 매일 그림을 변경하는 경우 “빠르기 때문에”지난 달의 사진을보고 싶습니다.) 이것은 실제로 컴퓨터 과학에서 더 어려운 문제 중 하나입니다 (캐시 무효화). 많은 정책이 존재합니다. 몇 가지 일반적인 것은 “오래된 물건을 버리십시오”, “웹 사이트 / 파일 시스템에 물어보십시오 / 물건이 변경된 경우 무엇이든 물어보십시오”, 개인적으로 좋아하는 “관심있는 사람”입니다.

그래서 “이론상”던지기 캐시는 문제를 일으킬 수 없으며 하나도 고칠 수 없습니다. 현실 세계를 제외하고는 캐시 무효화 정책이 잘못 될 수 있으며 오래된 데이터가 캐시되어 이제 부실하므로 캐시를 지우면 문제가 해결됩니다 (woot!). 현실 세계에서 데이터는 “현재 부실”할 수도 있지만 현재 다시 가져올 수 없으므로 캐시를 지우면 문제가 발생합니다 (boo!).

캐시를 지우면 문제가 발생합니다. 한 번 캐시에 있었고 다시 필요한 항목을 계산 / 가져 오기 / 다시 계산하는 동안 느려집니다.

답변

컴퓨터에서 🙂

캐시 SRAM (static ram)이라고도하는 하드웨어입니다. 그것은 매우 좋은 성능을 가지고 있습니다. 그러나 이것은 비용이 듭니다. 말 그대로. SRAM도 매우 비싸기 때문에 $$$의 많은 비용. 우리 컴퓨터가 완전히 SRAM으로 구성 되었다면 엄청나게 비쌀 것입니다. 아무도 그들을 감당할 수 없을 정도로. 그래서 우리는 왜 SRAM (DRAM이나 디스크 공간보다 성능이 훨씬 뛰어남)을 사용하고 싶은지 알 수 있지만, 너무 비싸다면 왜 사용합니까? 비실용적입니다. 비용이 많이 듭니다.

예, 그렇습니다. 그러나 일부 똑똑한 엔지니어는 타협을 생각했습니다. 컴퓨터 아키텍처의 대부분이 여전히 DRAM과 디스크 공간으로 구성되어 있지만 (저렴한 가격으로) 소비자를 만족시킬 수있는 성능을 유지하기 위해 필요한 것은 속도를 높이기 위해 작은 SRAM 조각 만 있으면 어떨까요? 많은 컴퓨터 성능. 핵심어 : “작은 은색”

그러면 “LRU 캐시”는 어디에 사용됩니까? 글쎄요, 그 자체로는“LRU 캐시”라는 것이 없습니다. SRAM의 작은 조각으로 생각할 수있는 최신 캐시에는 데이터를 저장할 수있는 무한한 공간이 없으며 웹을 탐색하는 일반적인 소비자라면 웹 페이지에서 웹 페이지로, 플랫폼에서 플랫폼으로, 데이터를 끊임없이 이동합니다. 컴퓨터의 회전율이 매우 높아질 것입니다.

데이터 회전율이 너무 높은 경향이있을 때이 SRAM의 “작은 조각”을 어떻게 활용할 수 있습니까? 우리가하는 일은 우리가 다시 사용할 가능성이 가장 높은 데이터 조각을 결정하는 것입니다. 그리고 우리는 이러한 데이터 조각을 SRAM (캐시)의 작은 조각 내에 보관하기 위해 최선을 다하여 다음에 공통된 데이터에 액세스해야 할 때 데이터 조각은 SRAM 조각에 저장되어 있기 때문에 컴퓨터가 해당 데이터에 매우 빠르게 액세스 할 수 있습니다. 그리고 무엇을 보관하고 무엇을 보관하지 않을지 정확히 어떻게 결정합니까? 이것이 바로 “LRU 캐시”의 개념이 등장하는 곳입니다. 서로 다른 이유로 (완전히 연관, 세트 연관, 직접 매핑 등) 사용되는 다양한 캐시 레이아웃이 있습니다. 각각 장단점이 있지만 OS가 SRAM에 보관할 데이터 조각을 결정하는 일반적인 방법은 가장 최근에 액세스 한 데이터를 보는 것입니다. 말이 맞습니까? 방금 무언가를 클릭하고 그 전날, 그 전날, 그 전날 등을 클릭했다면… 해당 데이터 조각을 SRAM에 보관하는 것이 이치에 맞습니다. 그러면 다음에이를 클릭하면 BOOM이 심장 박동으로 표시됩니다. 하지만 3 개월 전에 클릭했지만 그 이후로하지 않은 웹 사이트는 어떻습니까?데이터 회전율이 계속 증가함에 따라 특정 시점에서 OS가 SRAM에서 쫓아내는 데 필요한 항목을 결정해야하며 3 개월 동안 클릭하지 않은이 웹 사이트를 표시하게 될까요? 이것은 캐시에서 가장 최근에 사용되지 않은 데이터이므로 시작하겠습니다.

캐시는 SRAM으로 알려진 매우 우수한 성능을 가진 하드웨어입니다. LRU 제거 알고리즘은 OS가 소중한 SRAM에서 어떤 데이터를 보관하고 제거할지 결정하는 방법입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다