하드 드라이브 파티션에 둘 이상의 파일을 동시에 쓰면 조각화가 발생합니까? 이 파일들이 하드 드라이브에 인터레이스로 기록됩니까?
예 :
- 웹에서 동시에 여러 파일 다운로드
- 다양한 소스에서 동일한 파티션으로 파일 복사
- 여러 급류 다운로드
여러 OS간에 다른 점이 있습니까? 전체 파일에 공간을 할당하는 것이 응용 프로그램 특정 기능입니까?
하드 드라이브 파티션에 둘 이상의 파일을 동시에 쓰면 조각화가 발생합니까? 이 파일들이 하드 드라이브에 인터레이스로 기록됩니까?
예 :
여러 OS간에 다른 점이 있습니까? 전체 파일에 공간을 할당하는 것이 응용 프로그램 특정 기능입니까?
답변:
사용중인 파일 시스템, 운영 체제 및 파일을 여는 프로그램에 크게 의존합니다. 새 파일을 만들 때 올바른 저장 공간을 요청하는 것은 응용 프로그램의 몫이며, 공간이 얼마인지 모르는 경우 이러한 앱이 수행하는 열기 및 확장 동작에 영향을주는 것은 운영 체제 및 파일 시스템 기능입니다. 요청합니다.
프로그램이 운영 체제에 4.2GB 파일을 요청하면 OS는 4.2GB의 여유 공간을 찾습니다. 파일을 저장하기에 충분한 여유 공간 조각을 프로그램에 제공하지 못하면 실패합니다. 여기에 몇 가지 변수가 있으며 단순화되었습니다.
프로그램이 운영 체제에 4KB 파일을 요청하면 OS에서 해당 파일을 제공합니다. 프로그램이 4.2GB의 공간을 확보 할 때까지 새로운 연속 4KB 세그먼트 (파일을 다운로드하고 있으며 프로그램의 크기를 알지 못한 경우)를 계속 요구하면 OS에서 공간을 제공합니다. 이것은 파일 시스템과 OS가 차이를 만드는 경우입니다.
예를 들어 XFS는 익스텐트 기반이므로 추가 된 공간은 사용할 수 없을 때까지 연속적입니다. 또한 XFS는 특정 크기의 공간으로 새 파일을 미리 할당하도록 구성하여 조각화를 더욱 최소화 할 수 있습니다 (가상 머신 스토리지 볼륨 및 DVD ISO 볼륨에 유용함).
EXT2 / 3, NTFS, 그리고 Reiser는 더 이상 할 수 없을 때까지 연속적으로 할당 할 것이라고 생각합니다. 그런 다음 새로운 조각을 시작합니다. 각 조각의 크기는 4KB가 될 수 있습니다.
최악의 경우를 보자. 두 개의 병렬 4.2GB 파일이 같은 디렉토리에 한 번에 4KB 씩 병렬로 저장됩니다. '동일한 디렉토리'는 일부 OS / FS 조합이 파일을 서로 가까운 디렉토리에 유지하려고하기 때문에 최악의 경우입니다. 일부 OS / FS 조합의 경우 두 파일이 디스크에 완전히 인터리브됩니다. 다른 자유 세그먼트에 새로 열린 파일을 유지하려는 다른 사람들에게는 조각화가 전혀 또는 거의 없을 수 있습니다.
XFS의 비트 (ext4와 btrfs 도이 작업을 수행 할 수 있다고 생각합니다). 이 경우 인터리브는 4KB가 아니며 볼륨을 마운트 할 때 할당 크기 값을 설정 한 값이됩니다. 256MB로 설정하면 백만 개가 아닌 17 개의 조각으로 구성된 4.2GB 파일이 생성됩니다. 미디어 서버와 같은 대용량 파일을 저장하는 볼륨에 유용합니다. 많은 itty bitty 파일과 몇 개의 큰 파일을 저장하는 볼륨에는 유용하지 않습니다.
이 때문에 Bittorrent 클라이언트는 새 다운로드를 시작할 때 스파 스 파일을 열거 나 시작하기 전에 지정된 크기를 총계로 할당하기 때문입니다.
동일한 파티션의 다른 부분 (또는 다른 파티션의 경우에도)에서 파일을 복사 할 때 복사 프로세스는 이론적으로 복사 된 파일의 크기를 알고 있으므로 처음부터 OS에서 적절한 크기의 공간을 요청합니다. 새 파일에 할당을 추가 할 필요가 없습니다.