블록 장치 쓰기 작업 방법을 이해하려고합니다. 나의 이해는 모든 글쓰기가 섹터 조정되어야한다는 것이다. 따라서 섹터 크기가 512 바이트이면 모든 쓰기 크기는 512 바이트입니다. 이제 파일을 만들고 순차적으로 쓰기 시작한다고 가정 해 보겠습니다 (응용 프로그램 쪽에서 버퍼링 없음). 이제 파일의 오프셋 0에 16 바이트를 쓰는 것으로 시작한다고 가정 해 보겠습니다. 이것이 블록 수준에서 어떻게 쓰이게됩니까? "섹터 크기"의 데이터 양을 쓴 다음 디스크에 푸시 할 때까지 버퍼링됩니까? fsync가 호출되면 남은 바이트가 채워진 다음 쓰여지는 것입니까? 이해가 정확합니까? 아니면 빠릅니다.블록 장치 쓰기
후속 질문은 다음과 같습니다. 파일 크기가 64K라고하면 우리가 오프셋 64에서 16 바이트의 랜덤 쓰기를 수행한다고 가정 해 보겠습니다. 그런 다음 512 바이트의 적절한 섹터가 읽히고 16 바이트가 버퍼에 64 바이트로 기록 된 다음 512 바이트가 디스크에 기록됩니다. 이해가 정확합니까?