열렬히.뛰기

2. 접근 방법들

운영체제 > part 6 : 파일 시스템 > 공룡책 13장 : 파일 시스템 인터페이스 > 2. 접근 방법들

파일에 있는 정보들을 어떻게 접근할 것인지 알아보자.

순차 접근

테이프를 읽듯, 처음부터 끝까지 순서대로 읽는 방법.

  • 저장되어 있는 레코드 순서대로 접근
  • 가장 일반적이며, 편집기나 컴파일러가 쓰는 방식

이를 적용하는 연산이 읽기와 쓰기

  • 읽기를 적용하면 파일 포인터(오프셋)이 자동으로 증가
  • 쓰기를 적용하면 파일의 제일 끝에 써지며, 역시 파일 포인터가 자동으로 증가
  • 오프셋을 옮길 수 있음. fseek() 함수 등…

직접 접근

인덱스를 이용해 배열처럼 접근하는 방식

  • 파일의 정의 = 고정 길이를 가진 논리 레코드(블록)의 집합.
  • 파일의 각 블록은 번호를 통해 접근할 수 있다.
  • 대규모의 정보를 다룰 때 유용하다.
  • 파일 연산 (=함수)의 파라미터로 블록 번호가 들어가 있어야 한다.

상대 번호 : 파일의 시작을 0이나 1로 보고 계산한 것.

  • 대부분의 블록 번호는 상대 블록 번호
  • 상대 블록 번호를 지정하는 문제를 할당 문제라고 함.
상대 블록 번호 절대 디스크 주소
1번 블록 18270
2번 블록 29000

💡 모든 운영체제가 직접 접근 파일과 순차 접근 파일을 동시에 제공하지는 않는다. 다만, 직접 접근 파일이 있으면 이를 통해 순차 접근 기능을 제공할 수 있다.

기타 접근법

색인 접근법

💡 색인(index) = 여러 부분에 대한 포인터

  • 찾고자 하는 레코드가 있으면 이 색인부터 찾아 그에 대응하는 포인터를 얻음
  • 해당 포인터로 파일을 직접 접근하고, 원하는 레코드를 얻음

색인 테이블 접근법

파일이 너무 크다면, 색인을 모아 색인 파일을 만든다.

색인 파일조차 너무 크다면 색인 파일을 가리키는 색인을 만들 수 있다.

IBM의 ISAM (indexed sequentail access methods) 마스터 색인 → 2차 색인 → 실제 파일 블록

마스터 색인 : 메모리에 유지 2차 색인 : 실제 블록 파일을 가리킴.