<운영체제> Directory

본 게시물은 영남대학교 곽종욱 교수님 강의를 기반으로 작성되었습니다


<Organization of the Directory>

  • 스마트 폰에서의 디렉토리 -> 앱들이 묶여있는 폴더 내에 새로운 폴더 생성이 안되므로 tree구조를 가진다고 볼 수 없다
  • 예전 MP3에서의 디렉토리 또한 필요성에 의해 tree구조를 가질 수도 가지지 않을 수도 있다.
  • Efficiency - locating a file quickly(파일을 적절하게 위치시킬수 있음)
  • Naming - 사용자 입장에서 굉장한 편리성을 제공
    • 같은 파일이 서로다른 이름을 가지는 방식 -> acyclic-graph
    • 서로 다른유저가 같은 이름의 다른 파일을 가지는 방식
  • Gruoping - 같은 종류의 파일끼리 묶는 행위

<Single-Level Directory>

  • flat하게 디렉토리 및 파일이 생성되는 구조
  • a single directory for all users
  • it can occur naming problem and grouping problem

<Two-level Directory>

  • Separeate directory for each user!
  • 스마트폰의 디렉토리 구조라고 이해하면 쉽다
  • Path name이 도입됨 -> 같은 파일에 다른 pathname을 가질 수 있다.
  • 완전한 기능의 grouping은 가지지 못함
  • Efficient searching

<Tree-Structured Directories>

  • 완전한 grouping 개념
  • Efficient searching
  • Current Directory(Working Directory) 개념이 발생 : 현재 머물러 있는 디렉토리
  • 절대경로 / 상대경로 개념 발생
  • Sub-Directory 생성 가능

<Acyclic-Graph Directories>

  • Tree인데 cycle이 없는 구조의 directory
  • 같은 파일에 서로 다른 이름을 가질 수 있다.(aliasing)
  • Link를 통해 구현(HardLink,Symbolic Link)
  • Delete시 reference counter를 고려해서 삭제해 줘야함.
  • Incoming Edge가 2개인경우 두개다 삭제해줘야 완전히 삭제가 된다.
  • window의 디렉토리 구조

<General Graph Directory>

  • Link를 아무 제약 없이 생성할 수 있는 구조
  • graph may have cycle
  • 장점 : file system traverse가 용이함
  • 단점 : Duplicated Searching, Infinite searching
  • Self-Refrerencing is possible : 영원히 사라지지 않는 파일 존재
book->avi가 cycle을 가진다.