개발공부/OS
[Chapter-9] file system
tae_98
2024. 8. 24. 19:11
-이대 반효경 교수님 강의 기반으로 작성되었습니다-
File and file system
- 파일 : 논리적인 저장 단위
- 파일 시스템 : 운영체제와 모든 데이터, 프로그램의 저장과 접근을 위한 기법
- 파티션 : 연속된 저장 공간을 나누어 사용할수 있도록 정의한 규약
Access Methods
- 순차접근 : 파일의 정보가 레코드 숱서대로 처리
- 직접 접근 : 파일의 레코드를 임의의 순서로 접근 가능
- index 접근 : index를 먼저 찾고 대응되는 포인터를 얻는다.
Directory
- 제공하는 기능들
- 파일 찾기
- 파일 생성
- 파일 삭제
- 디렉터리 나열
- rename
- 파일 시스템 순회 ==> find로 찾을때 트리 아래 도 찾는기능
- dir 구성
- 1단계 디렉터리 : 모든 파일들이 디렉터리 밑에 (별로다)
- 2단계 디렉터리 : 사용자 별로 별도의 디렉터리
- 트리 구조 디렉터리 : 흔히 사용하는거, 절대 경로/ 상대 경로를 가진다.
파일이면 0 디렉터리면 1로 구분
여기서 부터 심볼릭 링크 등을 사용해서 dir 구조를 만듬 - 비순환 그래프 디렉터리 : 디렉터리들이 서브 디렉터리들과 파일을 공유(트리와 유사)
- 일반 그래프 디렉터리 : 비순환 그래프 dir + 순환을 허용 but 무한 루프 가능

Allocation of File Data in Disk
- Contiguous allocation
- 파일을 디스크에 연속되게 저장
- 시작부분 위치 + 파일의 길이에 대한 정보
- 외부 단편화(빈 공간), 유연성 부족...
- Linked Allocation
- 빈 위치면 자유롭게 할당
- linked list 저장 방식이랑 비슷함
- random access 불가능, 포인터 공간때문에 효율성 저하
- 포인터 유실시 데이터 유실 ==> FAT 파일시스템(포인터 별도 위치 보관) 으로 해결
- Indexed Allocation
- 한블록 하나의 파일에 대한 데이터의 index 모두 저장
- 외부 단편화 발생 x, random access 가능
- ++Journaling File system
- 데이터 무결성을 보장하기 위해 로그에 기록 ==> 실제 디스크에 반영
