OS-12) 파일 시스템

topics 700-컴퓨터과학 704 운영체제
types 이론 학습
tags #file-system #directory #FCB

파일 시스템

file = 연속적인 논리 주소 공간
type: data(숫자, 문자, 이진) & program

논리 장치를 물리 장치로 매핑하여 저장장치에 대한 사용자 인터페이스를 제공한다.

  • 보조 저장장치에 상주함
  • Device driver: 물리 장치 제어
  • 부팅 제어 블록: 첫 번째 볼륨 블록에 시스템이 OS를 부팅하는 데 필요한 정보가 포함됨
  • 볼륨 제어 블록: 볼륨에 대한 세부 정보 포함
  • 논리 파일 시스템: 메타데이터 정보를 관리

파일 속성

속성 설명
이름 파일 이름
식별자 (Identifier) 파일 고유 식별자
유형 (type) 파일 유형
위치 파일 위치
크기 파일 크기
보호 누가 읽고 쓰고 실행하는지 제어
시각, 날짜, 사용자 식별자 보호, 보안, 사용자 감시를 위해 쓰임

파일의 연산

  • create, delete
  • read, write
  • open, close
  • reposition within file
  • truncate

열린 파일 관리를 위한 정보

정보 설명
Open file table 열린 파일의 상태를 추적한다
File pointer 마지막으로 읽고 쓴 위치를 가리킨다
File-open count 파일이 열린 횟수를 나타내는 카운터. 마지막 프로세스가 파일을 닫을 때 open file table에서 데이터가 제거된다
파일의 디스크에서의 위치 데이터 접근 정보의 캐시
접근 권한 프로세스별 접근 모드 정보

File Control Block (FCB)

파일에 관한 정보로 구성된 저장장치 구조다.

정보 설명
file permission 파일 권한
file dates create, write, access 시간
file owner, group 파일 소유자, 그룹
file size 파일 크기
file data blocks 파일 데이터 블록 또는 포인터

디스크 구조

  • 디스크는 파티션으로 나누어질 수 있다
  • 하나의 디스크에 여러 개의 파티션이 있을 수도 있고 여러 개의 디스크가 하나의 파티션일 수도 있다
  • 볼륨: 파일 시스템을 포함하는 개체
    • 각 볼륨은 장치 디렉터리 또는 볼륨 목차에서 해당 파일 시스템의 정보를 추적
  • 범용 파일 시스템과 전용 파일 시스템으로 나뉜다
  • 디스크 또는 파티션은 RAID 방식으로 보호될 수 있다

디렉토리

연산

  • 파일 탐색, 생성, 삭제
  • 디렉터리 리스팅
  • 파일 이름 바꾸기
  • 파일 시스템 순회

구성

기준 설명
효율성 빠른 탐색
이름짓기 for user
그룹핑 특성을 기준으로 논리 그룹 묶기

Level

Level 설명
Single 모든 사용자가 하나의 디렉토리 사용. 그룹핑, 이름짓기의 문제 발생
Two 각 사용자마다 별도의 디렉터리 배정. 경로는 이름으로, 따라서 같은 이름 사용 불가. 효율적인 탐색. 그룹핑 문제 없음
Three 효율적인 탐색, 그룹핑 가능, 현재 디렉터리 개념 존재

마운트

파일 시스템을 접근하려면 마운트되어야 한다.


접근 모드

접근 제어해야 함 - 누가 어떤 작업을 할 수 있는가

RWX (Read Write Execute)

유닉스/리눅스는 3개의 클래스로 나눠서 제어함 (owner, group, others)


할당 방법

방법 설명
연속 할당 각 파일은 연속된 디스크 블록 집합을 차지. 논리 블록을 물리 블록으로 매핑
연결 할당 각 파일은 블록 연결 리스트. 외부 단편화 없음, 압축 없음. 신뢰성에 문제가 생길 수 있고, 많은 디스크 탐색이 필요할 수 있음
색인 할당 (Indexed Allocation) 각 파일은 데이터 블록을 가리키는 자신의 색인 블록을 가짐

가용 공간 리스트 관리

연결 리스트: 연속 공간 확보하기 쉽지 않음, 공간 낭비 없음, 순회할 필요 없음


성능

  • 데이터와 메타데이터를 가깝게 유지
  • 버퍼 캐시

관련 문서

  • OS-11) 보조 저장 장치-%EB%B3%B4%EC%A1%B0-%EC%A0%80%EC%9E%A5-%EC%9E%A5%EC%B9%98.html) - 보조 저장 장치와 디스크 스케줄링
  • OS-10) 가상 메모리-%EA%B0%80%EC%83%81-%EB%A9%94%EB%AA%A8%EB%A6%AC.html) - 가상 메모리와 페이징