파일 제어 블록

파일 제어 블록 또는 파일 컨트롤 블록(File Control Block, FCB)은 열린 파일의 상태를 관리하는 파일 시스템 구조이다. FCB는 운영 체제가 관리하지만 운영 체제 메모리가 아닌, 파일을 사용하는 프로그램의 메모리에 상주한다. 이를 통해 파일 당 FCB에 충분한 메모리 여유가 있는 한 프로세스가 한 번에 원하는 만큼의 파일을 열 수 있게 된다.

FCB는 CP/M에서 기원하며, 대부분의 유형의 도스에도 존재하지만 MS-DOS 버전 2.0 이상에서 하위 호환성을 목적으로만 존재한다. 전체 FCB의 길이는 36바이트이다. 초기 버전의 CP/M에서는 33바이트였다. 응용 프로그램 호환성을 무너뜨리지 않고 증가가 불가능한 이 고정 크기로 인해 파일 접근의 표준 방식으로서 철퇴를 맞았다.

FCB 내의 여러 필드의 의미는 CP/M과 도스간 차이가 있으며 수행되는 동작에 따라서도 달라진다. 다음의 필드는 일정한 의미가 있다:[1]

오프셋 바이트
크기
내용
0x00 1 드라이브 번호 — 0 (기본), 1 (A:), 2 (B:), ...
0x01 8 파일 이름 및 확장자 — 모두 8.3 파일 이름으로 구성됨.
0x09 3
0x0C 20 구현체에 따라 다름. FCB 개방 전에 초기화해야 함.
0x20 1 파일의 현재 섹션의 레코드 번호. 순차 접근 수행 시 사용함.
0x21 3 무작위 접근을 수행할 때 사용하는 레코드 번호.

오프셋 0x0c로 시작하는 20바이트 길이 필드는 파일에 관한 추가 정보를 포함하였다:[2]

오프셋 바이트
크기
내용
0x0E 2 파일의 레코드 길이 (바이트)
0x10 4 전체 파일 크기 (바이트)
0x14 2 마지막 파일 내용 수정 날짜
0x16 2 마지막 수정 시간

각주

[편집]
  1. “FCB - Standard DOS File Control Block”. 
  2. Rodriguez-Rosello, Miguel (1992). 《8088-8086/8087 Programacion Ensamblador En Entorno MSDOS》 (스페인어). Ediciones Anaya Multimedia. ISBN 84-7614-128-9.