- 파일: 논리적 저장 단위
- 파일을 정리하고 메모리에 매핑
- 디렉터리로 계층적 연결 (폴더와 비슷)
- 디렉토리란?/ 디스크에 존재하는 파일에 대한 정보를 가진 테이블
- DOS, Linux, Unix 등 텍스트 기반은 디렉토리
- GUI에선 폴더, 폴더에는 네트워크 설정 같은 특수 폴더가 포함됨
- 사용자가 생성, 수정 삭제 가능
- 비트 < 바이트 < 워드 < 필드 < 레코드 < 파일
- 레코드 단위 작업
- Read, Write, Update, Insert, Delete, Search
- 파일 단위 작업
- Open, Close, Copy, Destroy, Rename, List
- 열린 파일의 목록을 관리하는 테이블의 인덱스
- 0 또는 양수 값을 가짐
- 정보
- 파일이름 및 크기
- 보조기억장치 위치
- 파일 구조(순차, 색인 순차, 색인 파일)
- 엑세스 제어 정보
- 엑세스 횟수
- 파일 유형
- 생성, 수정, 제거 날짜
- 무결성 보장
- 백업과 복구
- 암호화
계층 구조에 따라 여러 분류가 있음
- 1단계(단일)
- 루트에 모든 파일이 속함
- 관리 어렵고 중복이름 X
- 2단계
- 루트 및에 유저별 폴더
- 파일이름은 폴더명 안에서만 유니크하면 됨
- 트리 구조
- 폴더 안의 폴더
- 절대경로: 루트부터
- 상대경로: 현재 dir 부터
- 비순환 그래프
- 하위파일이나 dir 공유(바로가기)를 지원함
- 다른 경로로 2번 이상 찾아 성능 저하 가능성 있음
- 공유된 파일을 삭제했는데 포인터가 남아있으면 허상포인터 문제 발생
- 일반 그래프
- 트리 구조에 링크 추가
- 순환 가능
- 파일이나 디렉터리 공유 가능
- 접근 용이
- 디스크에 여러 파일이 저장될 때 배치하는 방법
- 연속할당
- 배열처럼 인접하여 할당
- 물리적으로 연속이라 엑세스 시간 감소
- 새 파일공간의 크기를 미리 결정해야 함
- 공간 확볼르 위해 재배치 및 압축 필요
- 연결할당
- 파일을 블록 크기로 나누고 디스크 내에서 포인터로 연결
- 외부단편화X, 재배치 및 압축 불필요
- 포인터 잃으면 파일 날아감
- 크기 고정 불필요
- 색인 할당
- 색인(index)로 각 블록의 주조 지정
- 모든 블록 크기 같음
- 작은 파일에 대한 색인할당은 오버헤드 좀 있음
- 비트벡터
- 각 블록을 비트로 표현해서 자유블록 여부를 배열로 저장
- 연결리스트
- 모든 자유블록을 연결리스트로 연결