File Systems Interface_운영체제(12)

조권휘·2023년 1월 5일
0

운영체제

목록 보기
12/14

File system basics

Basic Concepts

  • File → 대용량의 정보를 지속적으로(persistence)하게 저장하기 위해 사용
  • HDD, SDD, CD ROM 등도 기한이 있어 주의해야한다.
  • 정보를 file에 담아 여러 process가 공유하기 위해서 사용하기도 한다.

File system

  • file : 물리적인 저장 장치에 저장하는 것이 아닌 추상적인 관점에서 secondary storage를 운영
  • directories : 계층적으로, 논리적으로 file을 모아둔다.
  • process, user, machine들 사이 data를 공유할 수 있도록 한다.
  • 적법한 방법으로 data에 access하도록 security 기능도 존재한다.

Storage : Logical View

  • 512 byte의 크기로 이루어진 N개의 sector로 이루어져 있다.
  • identify() : return N
  • Read(start sector #, # of sectors, buffer) : 시작 sector부터 x개의 sector를 읽어서 buffer에 저장
  • Write(start sector #, # of sectors, buffer) : buffer의 data를 시작 sector부터 x개의 sector까지 작성

File

  • 관련된 정보들의 집합
  • system이 rebooting 한 뒤에도 이전의 정보가 연속적으로 유지된다.
  • OS는 file들을 이용하여 여러 정보를 관리하고 제공한다.
  • File structures
    • Flat : byte sequence
    • Structured : Lines, Fixed/Variable length records

File System Basics

  • File contents(data) : file이 담고 있는 내용
  • File attributes(metadata) : file의 크기, 만든 사람, access 권한, last access time, modify time 등의 정보를 관리하는 정보, metadata 또한 저장이 되어있어야한다.
  • File name(hierarchical) : 계층적인 이름으로 부여가 된다. - 절대경로 / 상대 경로
  • <filename, data, metadata> → < set of blocks >
  • file은 연속된 공간에 저장되는 것이 아니라 block으로 분리되어 각 각 나눠져서 저장된다.
  • 목표 : Performance(수행 능력) + Reliability(신뢰성) + Scalability(확장성)

File Operations


Directory

  • 여러 file들을 구조적, 계층적으로 관리하는 것을 도와준다.
  • 편리하게 이름을 부여하여 user가 생각하는 논리적인 계층 체계와 물리적인 저장 체계를 분리시켜준다.
  • Relative names(상대 경로) : 현재 directory를 기준
  • Absolute names(절대 경로) : root directory를 기준
  • directory도 file이다.
  • Directory = list of (file name, file attributes(metadata))

Mounting

  • file system끼리 연결하는 작업
  • 기존에 있던 file system을 mount point에 연결한 뒤, 해당 mount point를 다른 file system과 연결한다.

File sharing

  • 자신에게 연결된 것처럼 보이지만, 실제로는 NFS protocol을 통해 다른 공간에 있는 file을 가져온다.
  • 동시 접근에 대한 처리 방식(semantics)
    • file이 write 중인데 read하면 어떻게 되는가?
    • 2개의 file이 write를 동시에 하려고 하면 어떻게 되는가?
  • 기본적으로 lock을 사용하고, 각 file마다 protection을 가진다.

Consistency Semantics

  • UNIX
    • file에 대한 write는 즉시 그 file을 열고 있는 다른 user들에게 보여져야한다.(visible)
    • 현재 location의 pointer(r/w offset)을 share하는 방식
  • AFS session
    • open file이 즉시 다른 user에게 보여지는 것이 아니라 close 되면 변화가 나중에 보여진다.
    • lock을 이용해서 진행한다.
  • Immutable-shared-files
    • read only 방식

File locking

  • flock : file 전체에 lock을 거는 방식
    • LOCK_SH, LOCK_EX, LOCK_UN
  • fcntl : record lock 방식
    • cmd : F_GETLK, F_SETLK, F_SETLKW
  • System V mandatory lock
    • group bit를 없애고 setgid를 해서 OS가 책임을 지도록 하는 방식

Protection

Protection system

  • 누가 file에 접근 가능한가, 조작할 수 있는가를 보호해야한다.
  • 어떤 object에 대해서 어떤 subject들이 허용할 수 있는 action을 정의하는 것
    • object : files / subjects : users / action : read, write

Representing protection

  • Access control lists(ACLs) : object 위주로 subject, actions를 관리
    • 주로 ACL을 많이 쓰고 관리하기가 더 쉽다.
  • Capabilities : user 위주로 object, actions를 관리
    • 누군가에게 권한을 넘겨주기(transfer) 쉽다.
profile
안녕하세요 :) Data/AI 공부 중인 한국외대 컴퓨터공학부 조권휘입니다.

0개의 댓글