[운영체제] 파일의 구조(순차 파일, 직접 파일, 색인 순차 파일)

[운영체제] 파일의 구조(순차 파일, 직접 파일, 색인 순차 파일)

파일의 구조는 파일을 구성하는 레코드들이 보조기억자치에 편성되는 방식을 의미함
편성방식에 따라 순차 파일, 색인 순차 파일, 랜덤 파일, 분할파일이 있다.
파일 편성방법에 따라 파일 접근 방법을 분류할 수 있으므로 파일 접근 방법이라고도 한다.


순차 파일(Sequential File, 순서 파일)

  • 순차 파일은 레코드를 논리적인 처리 순서에 따라 연속된 물리적 공간으로 기록하는 것을 의미한다.
  • 급여 업무처럼 전체 자료를 처리 대상으로 일괄 처리하는 업무에 사용된다.
  • 대화식 처리보다 일괄 처리에 적합한 구조이다.

장점

  • 파일의 구성이 용이하고, 순차적으로 읽을 수 있으므로 기억공간의 이용 효율이 높다
  • 레코드만 저장하고 북합적인 정보는 저장하지 않으므로 기억공간의 낭비를 방지할 수 있다.
  • 물리적으로 연속된 공간에 저장되므로 접근 속도가 빠르다
  • 어떠한 기억 매체에서도 실현 가능하다

단점

  • 파일에 새로운 레코드를 삽입하거나 삭제하는 경우 파일 전체를 복사한 후 수행해야 하므로 시간이 많이 걸린다.
  • 파일의 특정 레코드를 검색하려면 순차적으로 모든 파일을 비교하면서 검색해야 하므로 검색 효율이 낮다.



직접 파일(Direct File)

  • 파일을 구성하는 레코드를 임의의 물리적 저장공간에 기록하는 것으로, 직접 접근 방식(DAM; Direct Access Method)이라고도 한다.
  • 레코드의 특정 기준으로 키가 할당되며, 해싱 함수(Hashing Function)를 이용하여 키에 대한 보조기억장치의 물리적 상대 레코드 주소를 계산한 후 해당하는 주소에 레코드를 저장한다.
  • 레코드는 해싱 함수에 의해 계산된 물리적 주소를 통해 접근할 수 있다.
  • 입의 접근이 가능한 자기 디스크나 자기 드럼에 사용한다.

장점

  • 직접 접근 기억장치(DASD)의 물리적 주소를 통하여 파일의 각 레코드에 직접 접근하거나 기록할 수 있으며, 접근 및 기록의 순서에는 제약이 없다.
  • 접근 시간이 빠르고 레코드의 삽입, 삭제, 갱신이 용이하다

단점

  • 레코드의 주소 변환 과정이 필요하며, 이 과정으로 인해 시간이 소요된다.
  • 기억공간의 효율이 저하될 수 있다.
  • 기억장치의 물리적 구조에 대한 지식이 필요하고, 프로그래밍 작업이 복잡하다.


색인 순차 파일(Indexed Sequential File)

  • 순차 파일과 직접 파일에서 지원하는 편성 방법이 결합된 형태이다.

  • 색인(인덱스)을 이용한 순차적인 접근 방법을 제공하여 색인 순차 접근 방식(ISAM; Index Sequential Access Method)이라고도 한다.
  • 순차 처리와 랜덤 처리가 모두 가능하도록 레코드들을 키 값 순으로 정렬(sort)시켜 기록하고, 레코드의 키 항목만을 모은 색인을 구성하여 편상하는 방식
  • 각 레코드는 키 값 순으로 논리적으로 저장하고, 시스템은 각 레코드의 실제 주소가 저장된 색인을 관리한다.
  • 레코드를 참조하려면 색인을 탐색한 후 색인이 가리키는 포인터(주소)를 사용하여 참조할 수 있다.
  • 색인 순차 파일은 기본영역, 색인 영역, 오버플로 영역으로 구성된다.
    • 기본 영역(Prime Area) : 실제 레코드가 기록되는 데이터 영역으로, 각 레코드들은 키 값 순으로 저장된다.
    • 색인 영역(Index Area) : 기본 영역에 있는 레코드들의 위치를 찾아가는 색인이 기록되는 영역으로, 트랙 색인 영역, 실린더 색인 영역, 마스터 색인 영역으로 분류한다.
    • 오버 플로 영역(Overflow Area) : 기본 영역에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비하여 예비로 확보해 둔 영역이다.

장점

  • 순차 처리와 임의 처리가 모두 가능하다.
  • 효율적인 검색이 가능하고 삭제, 삽입, 갱신이 용이하다

단점

  • 색인 영역이나 오버플로 영역을 설정해야 하므로 기억공간이 필요하다.
  • 색인을 이용하여 참조하기 때문에 접근 시간이 직접 파일보다 느리다.




분할 파일

  • 분할 파일은 하나의 파일을 여러 개의 파일로 분할하여 저장하는 형태를 의미한다.
  • 분할된 파일은 여러 개의 순차 서브 파일로 구성된 파일이며 Backup과 같이 하드디스크에 있는 내용을 테이프와 같은 보조기억장치에 저장할 때 사용된다.
  • 일반적으로 크기가 클 경우에 사용된다.




출처

댓글

댓글 쓰기

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?