1. 디렉토리(Directory)

  • 파일(File)을 특정한 기준으로 분류(Categorize)해둔 네임스페이스
  • UNIX 계열 운영체제에서는 디렉토리도 파일의 일종으로 취급

 

 

2. 디렉토리의 구조(Structure)

  • 평면 구조(Flat Directory Structure)
    • 파일시스템 내에 하나의 디렉토리만이 존재하는 구조
    • 모든 파일이 하나의 디렉토리 내에 위치함
    • 구조가 간단하여 구현이 쉽고 파일 생성, 삭제, 탐색, 갱신도 쉬움
    • 파일의 수가 늘어날수록 관리에 드는 비용이 증가
    • 하나의 디렉토리 내에 모든파일이 존재하기에 모든 파일 이름이 서로 달라야함
    • 파일의 분류가 불가능(다중 사용자 환경에서 문제가 생김)

  • 2-level 구조(2-level Directory Structure)
    • 사용자마다 하나씩의 디렉토리를 배정
    • 루트에 해당하는 MFD(Master File Directory)와 유저디렉토리인 UFD(User File Direcotry)로 구성
    • 기존 평면 구조에서의 문제점을 어느정도 완화
    • 그러나 결국 각 유저가 평면구조를 사용하는 형태일 뿐이기에 근본적인 문제는 해결되지 않음
    • 서브 디렉토리를 임의로 생성할 수 없기에 파일 분류나 이름 충돌 문제는 여전히 존재
    • 사용자간 파일 공유 또한 보안문제나 이름 충돌 문제로 불가능
  • 계층 구조(Hierarchical Directory Structure)
    • Tree 형태의 계층적 디렉토리 구조
    • 사용자가 디렉토리 내에 서브 디렉토리를 생성하고 관리
    • 디렉토리 연산은 OS가 system call의 형태로 지원
    • 대부분의 OS는 이 구조를 사용

  • 비순환 그래프 구조(Acyclic Graph Directory Structure)
    • 루프가 발생하지 않는 그래프 형태의 디렉토리 구조
    • link 개념의 사용으로 디렉토리 구조가 그래프 형태를 보임 => UNIX의 Symbolic Link가 대표적
    • 루프가 발생하는것을 허용하지 않기 때문에 루프가 발생하는 링크의 생성을 허용하지 않음

  • 일반 그래프 구조(General Directory Structure)
    • 비순환 그래프 구조에서 링크로 인한 루프 발생을 허용한 디렉토리 구조
    • 탐색시 링크로 인한 무한루프를 고려해야함

+ Recent posts