File abstraction

운영체제는 블록 배열 위에 파일이라는 이름 있는 단위를 만든다

디스크는 블록 번호만 알지만, 파일 시스템은 이름, 위치, 권한, 시간 정보를 묶어 프로그램이 안전하게 데이터를 다루도록 한다.

1

사용자 요청

사람과 프로그램은 물리 주소 대신 파일 이름으로 데이터를 찾는다.

open("report.txt")
2

파일 시스템 변환

이름을 inode와 메타데이터로 해석하고 실제 블록 위치를 찾는다.

name -> inode -> blocks
3

디스크 블록

장치는 파일 의미를 모르며, 번호가 붙은 블록 읽기와 쓰기만 수행한다.

block 104, 105, 220

사용자에게 보이는 속성

이름 report.txt처럼 사람이 읽는 식별자
유형 확장자 또는 매직 넘버로 판별
크기 사용자에게 보이는 바이트 수

커널이 관리하는 속성

위치 inode와 데이터 블록 목록
보호 소유자, 그룹, rwx 권한
시간 mtime, atime, ctime 기록

파일 시스템 추상화가 동시에 해결하는 세 가지 문제

  • 이름 부여블록 주소 대신 경로와 파일명으로 접근한다.
  • 일관성여러 프로세스 접근을 커널 상태로 조정한다.
  • 보호권한과 소유자 정보로 데이터 범위를 나눈다.