2011-09-08 3 views
0

100MB 파일을 열 때 처음에 어딘가에 1 바이트를 삽입하면 어떻게됩니까? 리눅스 커널은 문자 그대로 모든 것을 1 바이트 뒤로 이동 시키며 (따라서 모든 페이지를 변경 함), 삽입 후 모든 바이트를 다시 저장합니다 (&)? 매우 비효율적 인 것 같습니다!파일의 1 바이트를 일찍 삽입 할 때 파일 페이징

또는 나는 커널이이 삽입을 유지하기 위해 단지 1 바이트 페이지를 삽입 할 수 있다고 생각하지만, 그런 일은 결코 들어 본 적이 없다. 나는 모든 페이지가 표준 크기로 줄 알았는데 (예를 들어, 4킬로바이트 또는 4메가바이트하지만 1 바이트)

내가 수많은 리눅스/OS에서의 활동 체크 한 (bovet/cesati, kerrisk, 타넨 바움), & 주위 해왔다 커널 코드가 약간 씩 듭니다. 그리고 이것을 알아낼 수 없습니다.

답변

0

대답은 OS가 이 아닙니다.은 일반적으로 파일 내의 임의의 위치에 임의의 바이트 수를 삽입 할 수 있도록합니다. 분석 결과를 보여주는 이유는 단지 파일의 일반적인 구현에서 효율적인 작업이 아닙니다.

일반적으로 파일 끝에는 바이트 만 추가하거나 제거 할 수 있습니다.

관련 문제