1. 파일 = 관련된 정보 자료(책 등)들의 집합
: 레코드 혹은 블록 단위로 보조 기억장치에 저장된다.
2. 파일시스템 = 사용자의 자료(데이터, 프로그램 등)를 저장하는 파일들의 집합
: 파일을 분류하고 관리하는 방법이다.
3. 파일의 속성
1) 파일의 이름
2) 이름 이외의 속성 = 메타 데이터
- 인식자 : 숫자로 표현된 파일을 인식하는 고유 태그
- 유형 : 확장자로 파일의 종류 구분
- 위치
- 크기
- 보호, 소유자, 생성시간, 수정 및 접근 시간 등
4. 파일 연산
- 파일 생성 및 삭제
- 파일 열기 및 닫기
- 파일 읽기 및 쓰기
- 파일 공유 및 보호
- 파일 내의 위치 재설정
- 파일 절단 : 파일의 내용은 지우지만, 속성은 유지
5. 파일 열기
: 파일에 대한 입출력 준비 단계
< Open File Table >
- 파일 포인터
- 파일 오픈 계수
- 파일의 디스크 위치
- 접근 권한
6. 파일의 유형
- 일반적인 파일의 유형
1) 데이터 : 숫자, 아스키 문자, 이진 데이터
2) 원시 프로그램, 목적 프로그램
3) HWP, MS Word 문서
- 파일 형식 구별
: 파일 이름에 형식 정보를 포함해야 한다.( 확장자 사용 -> 리눅스 )
7. 파일의 접근 방법
1) 순차 접근
: 파일의 정보는 레코드 단위의 순서로 처리한다.
2) 직접 접근
: 주소를 가지고 임의의 레코드에 접근한다.
: 대규모 정보 접근에 유용하다.
8. 디렉토리 구조
1) 장치 디렉토리
: 각 파티션에 존재하는 파일에 대한 정보를 기록한다. (C드라이브, D드라이브, ...)
: 각 파일이 있는 장소를 쉽게 찾도록 디스크의 요소를 분할 및 검색하는 정보를 포함하는 레코드의 집합이다.
2) 디렉토리 관리 동작들
: 파일 탐색, 생성, 복사, 삭제
: 디렉토리 나열
: 파일 재명명, 파일 시스템 횡단
3) 디렉토리 속성
: 이름, 인식자, 주소, 현재크기, 최대크기
: 마지막 접근 시간, 마지막 갱신 시간, 소유자 ID, 보호
4) 저장 장치의 구조
9. 1단계 디렉토리
: 가장 간단한 디렉토리 구조
: 파일이 많아지거나, 다수의 사용자에 사용을 제약한다.
- 이름 명명 및 그룹화 문제
10. 2단계 디렉토리
: 1단계 디렉토리에서 서브폴더 하나 추가
1) Master File Directory
: 사용자가 로그인하면 검색가능
2) User File Directory
: 각 사용자에게 개별 디렉토리를 제공
3) 효율적인 탐색 방법이다. 다만, 그룹화 기능은 없다.
11. 3단계 디렉토리
: 한 디렉토리에 파일들과 부 디렉토리들을 가진다.
- 효율적인 탐색, 그룹화가 가능하다.
: 현재 디렉토리
- 사용자가 현재 관심을 가지는 대부분의 파일을 수록한다.
12. 비순환 그래프 디렉토리 -> 바로가기
: 파일이나 부 디렉토리들의 공유를 허용한다.
- 공유 파일 또는 디렉토리의 구현
: 링크라는 새로운 디렉토리 항목을 생성한다.
: 공유 파일 정보를 복사한다.
- 삭제 문제 : dangling pointer
back pointer : 링크를 추적하여 삭제한다.
파일 참조 목록을 유지한다.
참조 계수를 유지한다. (다른 애가 참조하고 있으면 파일 말고 링크만 삭제한다.)
13. 일반 그래프 디렉토리
: 비순환 그래프 디렉토리와 다르게 링크가 아래서 위 방향으로도 나 있는 디렉토리
- 순환 탐색으로 무한 루프 가능성(Live Lock)
- 순환의 자기 참조 문제점
: 참조 계수가 0일 때, 파일을 삭제할 수 있다.
: 순환으로 인해 참조되지 않은 디렉토리의 참조 계수가 양수이면 삭제할 수 없다.
: 쓰레기를 수집하게 될 수 있다.
14. 파일 시스템 마운팅
1) 파일 시스템 장착 : 프로세스가 파일 시스템을 사용하도록 접근 경로를 지정한다.
2) 미장착 파일 시스템은 접속 지점에서 마운트 된다.