<운영체제> 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 : 영원히 사라지지 않는 파일 존재