A named collection of related information (이름을 가지고 저장)
일반적으로 비휘발성의 보조기억장치에 저장
운영체제는 다양한 저장 장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해 줌
Operation (연산)
create, read, write, reposition(lseek), delete, open, close 등
파일 이름, 유형, 저장된 위치, 파일 사이즈
접근 권한(읽기/쓰기/실행), 시간(생성/변경/사용), 소유자 등
search for a file, create a file, delete a file
list a directory, rename a file, traverse the file system
open("/a/b/c")


디스크로부터 파일 c의 메타데이터를 메모리로 가지고온다.
메모리를 가져오기 위해 directory path를 search
- 루트 디렉토리 /를 open하고 그 안에서 파일 a의 위치 획득
- 파일 a를 open한 후 read하여 그 안에서 파일 b의 위치 획득
- 파일 b를 open한 후 read하여 그 안에서 파일 c의 위치 획득
- 파일 c를 open
Directory path의 search에 너무 많은 시간 소요
Open을 read/write와 별도로 두는 이유임
한번 open한 파일은 read/write 시 directory search 불필요
Open file table
현재 open된 파일들의 메타데이터 보관소 (in memory)
디스크의 메타데이터보다 몇 가지 정보가 추가
- Open한 프로세스의 수
- File offset : 파일 어느 위치 접근 중인지 표시 (별도 테이블 필요)
File descriptor (file handle, file control block)
Open file table에 대한 위치 정보 (프로세스 별)
Access control Matrix
Access control list : 파일 별로 누구에게 어떤 접근 권한이 있는지 표시
Capability : 사용자별로 자신이 접근 권한을 가진 파일 및 해당 권한 표시
Grouping
전체 user를 owner, group, public의 세 그룹으로 구분
각 파일에 대해 세 그룹의 접근 권한(rwx)을 3비트씩으로 표시
ex. UNIX (owner : rwx, group : r--, other : r--)
Password
파일마다 password를 두는 방법 (디렉토리 파일에 두는 방법도 가능)
모든 접근 권한에 대해 하나의 password : all-or-nothing
접근 권한별 password : 암기 문제, 관리 문제


시스템이 제공하는 파일 정보의 접근 방식
순차 접근 (sequential access)
카세트 테이프를 사용하는 방식처럼 접근
읽거나 쓰면 offset은 자동적으로 증가
직접 접근 (direct access, random access)
LP 레코드 판과 같이 접근
파일을 구성하는 레코드를 임의의 순서로 접근할 수 있음