운영체제 13 File System Interface

milkbottle·2022년 12월 9일
0

OS

목록 보기
13/15

File System Interface

File System의 필요성

  • 데이터를 관리할 때 메모리는 휘발성이기 때문에 부적절

  • 보조기억장치에 어떠한 특수한 형태로 잘 저장을 해야함

  • 그래서 나온 개념이 File이며 이 File을 어떻게 정의했는지가 File System

File

  • 보조기억장치에 저장되어 있는 관련된 정보의 한 덩어리

  • OS가 이 파일의 구분, 분류, 관리를 책임

  • 파일에는 다양한 속성과 메타데이터가 포함되어 있음

  • File을 열고 닫기, 저장, 읽기, 쓰기 등의 System call또한 존재

File Structure

  • Flat: 바이트의 연속으로 저장된 데이터
  • 고정길이 레코드: 고정된 길이의 데이터 ex) exe, 사진
  • 가변길이 레코드: 길이가 변하는 데이터 ex) 한컴 hwp, 메모장 txt

File Types

  • 운영체제가 File system으로 이해하는 부류
    device, directory, symbolic link(바로가기 링크)

  • 운영체제가 알지는 못하고 그 주변 middleware이 이해하는 부류
    exe, dll, 소스코드, 오브젝트 파일, txt 등

  • application들이 이해하는 부류
    hwp, jpg, mpg, mp3 등

Encoding file types

운영체제마다 파일 타입을 어떻게 인코딩하는지가 다름

  • 윈도우
    exe, bat, dll, jpg 등 확장자 명을 뒤에 나타내줌

  • Unix
    magic number, initial character → Type마다 약속된 상수값 존재

File Access

  • Sequential Access
    디스크에 순차적으로 저장된 데이터를 순차적으로 A부터 Z까지 접근
    반대되는 개념은 아래 3가지의 Random Access 방식

  • Direct Access
    블록, 바이트 주소를 통해 직접적인 접근

  • Record Access

  • Index Access
    특정 파일의 레코드가 어떤 위치에 있는지 위치정보가 필요

Index Access


DB에서 인덱스를 통해 접근하는 방식과 유사

Directory

  • 파일은 디렉토리라고 부르는 공간에 위치

  • 디렉토리 또한 파일로 취급하여 관리

  • 흔히 폴더라고 부르기도 함

  • 이 Directory를 Hierarchical하게 관리해서 Path(경로)가 등장

  • (파일 이름, 파일 속성)의 리스트를 나열

  • 정렬이 되어있지는 않음(랜덤하게 액세스하기 때문)
    하지만, 사용자에게 GUI로 보여질때는 정렬해서 보여줌

Path

  • UNIX
    / 슬래쉬를 통해 경로 구분
    절대경로: root 디렉토리는 ~ 틸다로 표시해서 접근
    상대경로: ./ 현재경로나 ../ 부모경로로 접근하는 방식

  • Window
    C:\ 역슬래쉬를 통해 경로 구분

Mounting

  • SSD나 HDD등 보조기억장치가 있으면 컴퓨터와 연결해서 디렉토리로 접근
  • 디렉토리가 산처럼 보이기 때문에 Mountain의 Mount를 따온 것이 유래

File Sharing - Remote File Systems

  • NFS
    UNIX에서 사용되는 원격 파일을 공유할 수 있는 프로토콜

  • CIFS
    윈도우에서 사용되는 원격 파일을 공유할 수 있는 프로토콜

  • Distributed Information Systems
    LDAP, DNS, NIS 등 다양한 방식 존재

Protection

  • Access Control Lists(ACLs)
    Column 세로 레벨로 관리(파일이 관점)

  • Capabilities
    Row 가로 레벨로 관리(사용자의 관점)

  • 실제에서는 효율적이고 쉬운 ACL을 사용

  • Capabilities는 하나의 사용자가 모든 파일을 다뤄야하므로 오버헤드가 큼

UNIX / LINUX 에서의 ACLs


총 10비트의 데이터로 1은 디렉토리인지 아닌지
2~4 / 5~7 / 8~10으로 owner / group / public 의 권한을 설정

Memory Mapped File

  • Memory Mapped I/O처럼 파일 또한 메모리에 매핑해서 위치시킬 수 있음
  • mmap()이라는 시스템콜로 존재

0개의 댓글

관련 채용 정보