애플리케이션이 대용량 파일을 저장할 때 디스크에는 어떤 일이 발생합니까?

애플리케이션이 대용량 파일을 저장할 때 디스크에는 어떤 일이 발생합니까?

자주 저장해야 하는 파일(doc, pptx 등)을 처리할 때 저장 버튼을 눌렀을 때 디스크는 어떻게 되는지 궁금합니다.

파일 어딘가에 문자를 삽입하고 저장한다고 가정하면 원본 파일 내용이 디스크에 정렬되어야 한다고 생각합니다. 제가 생각할 수 있는 가장 순진한 방법은 디스크의 이전 데이터를 모두 지우고 쓰는 것입니다.모두파일 내용이 작으면 괜찮지만, 파일이 100MB 등 큰 경우에는 너무 비효율적입니다.

제 경우에는 대용량 PDF 파일을 자주 저장해야 하는데(하이라이트와 주석을 추가한 후) 이러한 파일을 저장할 때 컴퓨터는 정확히 무엇을 합니까?

답변1

모든 것은 사용되는 프로그램에 따라 다릅니다.

기존 MS Office는 새 파일을 생성하고 정상적으로 저장 시 이름을 바꾸었지만 기존 파일에 "덮어쓰기" 정보를 추가하는 빠른 저장 옵션이 있었습니다. 이렇게 하면 이전에 로드된 정보(예: X 줄의 단어 바꾸기), 문자 위치가 변경됩니다. 와이)

따라서 일부 프로그램은 단순히 새 파일을 생성하고 교체하고, 다른 프로그램은 파일 위치를 직접 편집하는 반면, 다른 프로그램은 데이터베이스처럼 작동하고 필요한 것과 일치하도록 파일 구조(사용 가능한 블록, 새 블록 추가)를 변경할 수 있습니다. 그런 다음 여러 구성 요소가 포함된 파일에 저장(예: ODF 파일, 그냥 zip임), 필요한 각 구성 요소를 변경한 다음 새 병합된 문서를 작성하거나 변경 사항 구성 요소만 업데이트하는 등 더 복잡한 설정이 혼합되어 있습니다. zip으로 파일을 업데이트하는 것과 같은)

따라서 모든 경우에 적용되는 일률적인 접근 방식은 없으며, 더 복잡한 프로그램은 블록을 이동하는 데이터베이스와 같은 구조를 사용하는 경우가 많으며 내부 구조는 실제 형식과 분리됩니다. 파일 형식이 문서 구조와 거의 일치하는 파일의 경우 일반적으로 파일을 다시 만들고 이름을 바꾸는 것이 더 간단합니다.

일부 프로그램은 동작을 변경합니다. 예를 들어 vim은 작은 파일(임시 파일에서 작동하므로 기본적으로 파일을 다시 만들고 이동함) 및 대용량 파일(백업 및 기타 제한 없이 원본 파일을 직접 변경)에 대한 작동 방식을 변경합니다.

IIRC, PDF에는 여러 레이어가 있으며 그 중 일부는 다른 부분을 건드리지 않고 "데이터베이스"처럼 직접 변경할 수 있습니다.

관련 정보