CS/운영체제

09. File System

호프 2023. 12. 3. 00:21

File Systems

File and File System

File

  • A named collection of related information
  • 일반적으로 비휘발성 보조 기억장치(영구 기억 장치)에 저장
  • OS는 다양한 저장 장치를 file이라는 동일한 논리적 단위로 볼 수 있ㄱ 해 줌

File attribute(metadata)

  • 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들

File system

  • OS에서 파일을 관리하는 부분 - 파일, 파일의 메타데이터, 디렉토리 정보 등 관리
  • 파일의 저장 방법 결정, 파일 보호

Directory

  • 파일과 다른 디렉토리를 포함하는 특별한 종류의 파일
  • 파일의 메타데이터 중 일부를 보관하고 있는 일종의 특별한 파일

Partition (Logical Disk)

  • 하나의 (물리적) 디스크 안에 여러 파티션을 두는 게 일반적
  • 여러 개의 물리적 디스크를 하나의 파티션으로 구성하기도 함 (RAID)
  • 물리적 디스크를 파티션으로 구성한 뒤 각각의 파티션에 file system을 깔거나 swapping 등 다른 용도로 사용할 수 있음

 

open() 연산

open()

  • retrieve metadata from disk to main memory
  • searching directory path: 루트 디렉토리부터 시작
    • 많은 시간 소요 -> open을 read/write와 별도의 명령어로 두는 이유
    • 한 번 open한 파일은 read/write 작업 시 directory search 불필요
  • Open file table: 현재 open된 파일들의 메타데이터 보관소 (in memory)
    • 메타데이터 + open한 프로세스의 수, file offset(파일의 어떤 위치로 접근 중인지 표시)
    • system-wide open file table
  • File descriptor(file handle, file control block): Open file tabled에 대한 위치 정보(프로세스 별)
    • per-process file descriptor table

 

 

File Protection

File Protection: Access Control

  1. Access control Matrix
    • Access control list: 파일 별로 누구에게 어떤 접근 권한이 있는 지 표시
    • Capability: 사용자 별로 자신이 접근 권한을 가진 파일 및 해당 권한 표시 (rwx)
  2. Grouping - Linux에서 사용하는 방식
    • 전체 user를 owner, group, public 세 그룹으로 구분
    • 각 파일에 대해 세 그룹의 접근 권한(rwx)을 각각 3 bit씩 표시
    • ex. rwxr--r-- (owner/group/other)
  3. Password
    • 파일마다 password를 두는 방법(디렉토리 파일에 두는 방법도 가능)
    • 모든 접근 권한에 대해 하나의 password를 설정하면 -> all-or-nothing
    • 암기 문제, 관리 문제

 

File System Mounting

다른 파티션에 설치되어 있는 파일 시스템을 접근할 때

  • 루트 파일 시스템의 특정 디렉토리 이름에 또 다른 파티션에 있는 파일 시스템을 mounting

 

Access Methods

Sequential access(순차 접근)

  • read, write 연산 수행하면 offset이 자동으로 증가 -> 시간이 오래 걸린다는 단점

Direct Access(직접 접근, random access)

  • 파일을 구성하는 레코드를 임의의 순서로 접근 가능
  • HDD, SSD, DRAM