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)
- 비순환 그래프 구조에서 링크로 인한 루프 발생을 허용한 디렉토리 구조
- 탐색시 링크로 인한 무한루프를 고려해야함
'CS > 운영체제' 카테고리의 다른 글
#22 파일 시스템 구현(File System Implementation) (0) | 2022.02.04 |
---|---|
#21 파일 보호(File Protection) (0) | 2022.02.02 |
#19 파일 시스템(File System) (0) | 2022.01.28 |
#18 디스크 시스템(Disk System) (0) | 2022.01.27 |
#17 페이지 교체 정책(Page Replacement Startegies) (0) | 2022.01.21 |