본문 바로가기

쓰기 정책·보조기억장치

write-through·write-back과 적재 정책을 구분하고 HDD·SSD·광디스크·테이프의 접근 특성을 비교합니다.

캐시에서 값을 7에서 9로 수정했는데 주기억장치에는 아직 7이 남아 있을 수 있습니다. 읽기 적중만큼 중요한 것이 수정한 데이터를 언제 아래 계층으로 전달하는가입니다.

쓰기 정책의 두 질문

write-through는 캐시 쓰기와 함께 아래 계층에도 쓰기를 보냅니다. 단순한 동기 모델에서는 둘의 값이 함께 갱신되지만, 실제 쓰기 버퍼가 있으면 전달 완료 시점과는 구분해야 합니다. write-back은 캐시를 먼저 수정하고 더티(dirty) 비트를 표시합니다. 수정된 라인을 내보낼 때 아래 계층에 기록합니다.

쓰기 실패에서 write-allocate는 블록을 캐시에 적재한 뒤 수정합니다. no-write-allocate는 해당 쓰기를 아래 계층으로 보내고 캐시에 새 블록을 넣지 않습니다. 이것은 write-through/write-back과 별개의 선택입니다. 교육용 모델에서 조합을 명시하고, 모든 실제 구현이 한 조합으로만 동작한다고 단정하지 않습니다.

사건캐시 블록 값주기억장치 값더티
읽어서 블록 적재770
write-back으로 9 쓰기971
수정 블록 교체·기록내보냄9새 블록에 따라 초기화

더티 비트가 0인 라인을 교체할 때는 다시 쓰지 않아도 됩니다. write-back을 “데이터를 버린다”는 뜻으로 읽으면 안 됩니다. 아래 계층으로 기록하는 책임과 시점을 옮긴 것입니다.

파일 보존은 별도 계층입니다

주기억장치와 저장장치의 사이에도 운영체제 캐시·장치 내부 버퍼 등이 있을 수 있습니다. CPU 캐시를 갱신했다고 파일이 저장장치에 영구 기록됐다고 보장하지 않습니다. 응용 프로그램의 저장, 운영체제의 기록, 장치의 내구성 조건을 구분해야 합니다. 이 절의 계산 모델은 정전 시 파일 보존까지 모델링하지 않습니다.

저장 매체를 접근 방식으로 비교하기

HDD는 회전하는 자기 디스크입니다. 작은 임의 접근에는 헤드 이동·회전 대기·전송 시간이 영향을 줍니다. 평균 탐색 4 ms+평균 회전 대기 3 ms+전송 1 ms라면 단순 모델의 접근 시간은 8 ms입니다. 순차 접근에서는 매번 같은 탐색 비용이 들지 않을 수 있습니다.

SSD는 주로 플래시 메모리를 사용하며 기계적 탐색이 없습니다. 그러나 쓰기·지우기 단위, 수명 관리, 내부 정리 작업 때문에 모든 접근 시간이 같지는 않습니다. FTL은 논리 주소를 플래시의 물리 위치로 연결하는 관리 계층입니다. 갱신이 다른 위치에 기록될 수 있으므로 논리 주소와 매체 위치를 동일시하지 않습니다.

광디스크는 광학적 특성으로 기록·읽기하며 CD·DVD·Blu-ray는 기록 형식·용량이 다릅니다. 자기 테이프는 순차 접근과 대용량 보관에 유리한 용도로 이해합니다. 플로피·자기 드럼 등의 역사적 매체는 기술 변화 사례로만 다룹니다. “영구 보존” 대신 비휘발성과 보존 수명·손상 가능성을 구분합니다.

독립 문제: 언제 아래에 쓰는가

초기 아래 계층의 A=5, B=8이고 캐시는 비어 있습니다. 라인이 하나인 캐시가 write-back+write-allocate로 동작합니다. A 읽기→A에 6 쓰기→B 읽기를 실행할 때 각 단계의 캐시 내용·더티·아래 A를 적으세요. 같은 과정의 write-through 결과와도 비교하세요.

힌트

B를 읽으려면 유일한 라인의 A를 내보내야 합니다. 수정됐는지 먼저 확인합니다.

풀이와 오개념

A 읽기 후 캐시 A=5·더티 0·아래 A=5입니다. A 쓰기 후 캐시 A=6·더티 1·아래 A=5입니다. B 읽기 때 A=6을 아래로 기록한 뒤 캐시는 B=8·더티 0, 아래 A=6입니다. 단순 write-through 모델에서는 A 쓰기 시점에 아래 A도 6이 됩니다.

새 블록을 넣는 정책과 수정 전달 정책을 섞었다면 두 질문을 따로 적어 다시 풀어 보세요. 다음 칩의 폭·뱅크 확장에서 메모리 주소와 데이터 폭을 계산하고, RAID와 복원에서 저장장치의 장애 경계를 살펴봅니다.