파일 시스템
파일 시스템
- 저장 장치의 데이터를 구성하는 소프트웨어
사용자(user) 관점의 파일 시스템
- 파일 시스템 인터페이스
- 파일 시스템을 사용자에게 보여주는 방법은 무엇인가?
- 파일, 디렉토리, 속성(attribute), 작업(operation)
- 트리 구조
스토리지 관리(storage management) 관점의 파일 시스템
- 파일 시스템 구현
- 논리 파일 시스템을 저장장치에 매핑하는 방법은 무엇인가?
- 레이아웃, 데이터 구조, 알고리즘
- 스토리지 내부를 이해해야 한다.
파일 시스템의 목표
파일 개념
파일
- 이름이 지정된 관련 정보 모음
- 바이트의 시퀀스
- 보조 저장장치에 저장
- 데이터 파일과 프로그램 파일로 나뉜다.
파일 유지 관리를 위한 파일 속성(attributes)
- 이름(Name) : 사람이 읽을 수 있는 형태로 보관된 정보만 제공
- 식별자(Identifier) : 고유 태그(숫자)는 파일 시스템 내의 파일을 식별
- 유형(Type) : 일반 파일, 디렉토리, 심볼릭 링크, 명명된 파이프 등
- 위치(Location) : 장치의 파일 위치에 대한 포인터
- 크기(Size) : 현재 파일 크기
- 보호(Protection) : 읽기, 쓰기, 실행
- 시간(Time), 날짜(Date), 사용자 식별(User identification)
파일 작업(operations)
- Create
- Delete
- Open
- Close
- Read
- Write
- Truncate
- Reposition within file-seek
파일 형식(types)
- 파일 확장자로 인식
파일 형식 | 일반 확장자 | 기능 |
실행 파일 | exe, com, bin, none | 읽기-실행 기계어 프로그램 |
개체 | obj, o | 컴파일됨, 컴퓨터 언어, 연결되지 않음 |
소스 코드 | c, cc, java, pas, asm, a | 다양한 언어로 된 소스 코드 |
배치 | bat, sh | 명령 인터프리터에 대한 명령 |
텍스트 | txt, doc | 텍스트 데이터, 문서 |
워드 프로세서 | wp, text, rtf, doc | 다양한 워드 프로세서 형식 |
라이브러리 | lib, a, so, dll | 프로그래머용 루틴 라이브러리 |
인쇄 또는 보기 | ps, pdf, jpg | ASCII 또는 이진 파일 |
아카이브 | arc, zip, tar | 관련 파일을 하나의 파일로 그룹화(가끔 압축)하여 보관 또는 저장 |
멀티미디어 | mpeg, mov, rm, mp3, avi | 오디오 또는 A/V 정보가 들어 있는 이진 파일 |
Magic number(UNIX)
- 파일의 대략적인 유형을 나타내기 위해 일부 파일의 시작 부분에 저장
- 실행 가능한 프로그램, 배치 파일(또는 셸 스크립트), 포스트스크립트 파일 등.
- 유닉스에서는 확장자가 아닌 Magic number로 구분함
접근 방법
순차 접근(Sequential access)
- 파일은 레코드의 순서대로 액세스
- 파일의 다음 부분을 읽고 쓰고 파일 포인터를 자동으로 진행
- 예: 편집기, 컴파일러
임의 접근(Random access = 직접 액세스)
- 파일은 임의의 순서로 액세스
- 파일 읽기/쓰기 순서에는 제한이 없다.
- 예: DBMS
디렉터리
디렉터리
- 파일 그룹 및 기타 디렉터리가 포함된 가상 컨테이너
- 예: 트리 구조의 디렉터리
유닉스 디렉터리 구조
디렉터리 항목 - (파일 이름, 아이노드 번호)
아이노드 - (속성, 파일 데이터 ptr)
디렉터리에서 수행 작업
- 파일 검색(Search): 이름이 유사한 특정 파일 또는 파일의 항목을 찾기
- 파일 만들기(Create): 새 파일을 만들어 디렉토리에 추가
- 파일 삭제(Delete): 디렉토리에서 파일 제거
- 디렉터리 리스트 : 디렉터리의 파일을 나열
- 파일 이름 변경: 파일 이름을 변경
- 파일 시스템 이동(Traverse): 모든 디렉토리 및 디렉토리 구조 내의 모든 파일에 액세스
트리 구조 디렉터리
비순환 그래프(Acyclic-Graph) 디렉터리
- 하위 디렉터리 및 파일 공유
동일한 파일(또는 하위 디렉토리)이 두 개의 서로 다른 디렉토리에 있을 수 있다.
- 트래버스 문제 및 삭제 문제
- 시나리오
- Kim은 X파일을 가지고 있다.
- Lee의 디렉토리 아래에 동일한 X가 있어야 한다.
- UNIX에서 Lee의 디렉토리에 "link"를 만든다.
- 하드 링크
- X의 메타데이터를 Lee의 디렉토리에 복사
- X를 삭제하면?
- 참조 카운트를 사용
- 심볼릭 링크
- Lee의 디렉토리에 X의 경로 이름을 만든다.
- X를 삭제하면?
- Dangling 참조
파일 시스템 마운트
파일 시스템 마운트
- 파일 시스템이 사용할 준비가 된 운영 체제를 지시하고 시스템의 파일 시스템 계층 구조에 있는 특정 지점(마운트 포인트)과 연결
디스크 2와 디스크 3의 파일에 액세스하려면 어떻게 해야 하는가?
파일 보호(File protection)
파일 소유자는 사용자가 수행할 수 있는 작업을 제어
- what - 권한(읽기, 쓰기, 실행, 추가, 삭제, 목록 등)
- who - 사용자(슈퍼 사용자, foo, kim, park, jane 등)
그룹화가 필요
- 접근 권한 : 읽기, 쓰기, 실행
- 세 가지 사용자 클래스 : 소유자, 그룹, 기타
예
요약
- 파일 시스템 : 저장 장치의 데이터를 구성하는 소프트웨어
- 파일 시스템 인터페이스 : 파일 시스템을 사용자에게 표시하는 방법
- 파일 : 관련 정보의 명명된 모음
- 디렉터리 : 파일 그룹과 다른 디렉터리 그룹이 포함된 가상 컨테이너
- 파일 시스템 마운트 : 파일 시스템이 사용할 준비가 된 운영 체제를 지시하고 마운트 지점과 연결
'운영체제' 카테고리의 다른 글
[OS] 파일 시스템 구현(File System Implementation) (0) | 2023.05.15 |
---|---|
[OS] I/O Systems (0) | 2023.05.15 |
[OS] 대량 저장 구조(Mass-Storage Structure) (0) | 2023.05.08 |
[OS] 가상메모리(Virtual Memory) (0) | 2023.05.01 |
[OS] 메인메모리(Main Memory) (0) | 2023.04.24 |