Directory
파일의 수가 많아졌을 때 파일을 효율적으로 관리하기 위한 수단이다.
partition과 유사한 개념이다.
하나의 disk를 여러개의 partition으로 사용할 수 있다.
물리적으로 여러개의 disk를 하나의 partition으로 사용할 수 있다.
Directory의 발전
Single-level directory
운영체제의 초창기에는 directory라는 개념이 없었다.
이는 single-level directory로 볼 수 있다.
Two-level directory
이후에 two-level directory가 등장하면서 지금과 유사한 구조가 되었다.
Tree-structured directory
root directory 아래에 여러 하위 directory가 존재한다.
Acyclic graph directory
현재의 바로가기와 유사하다.
원본 파일이 있고, 그 파일에 서로 다른 directory에서 접근이 가능하다.
원본 파일을 여러 directory에서 공유한다.
원본이 여러개 있는 것이 아니다.
UNIX에서 link라고 부른다.
- soft link
- 이름으로 link를 구현한다.
- original file의 이름을 바꾸면 link file에서는 접근할 수 없다.
- <pre>ln -s original.txt new.txt</pre>
- hard link
- inode(file control block)으로 link를 구현한다.
- original file의 이름이 바뀌어도 link가 유지된다.
- <pre>ln exsit.txt new.txt</pre>
여러 문제가 발생할 수 있다.
- aliasing
- 동일한 이름을 여러 directory에서 사용하기 때문에 발생한다.
- file을 검색할 때 동일한 file을 여러번 검색한다.
- dnagling pointer
- 하나의 원본파일에 여러 개의 link가 있을 때 하나의 link를 통해서 원본파일을 삭제할 수 있다.
- 이 때 나머지 link들은 없는 원본파일에 대해 참조를 하고 있다.
- 2가지 해결 방법
- 운영체제에서 dangling pointer를 남겨둔다.
- 운영체제에서 모든 link가 사라질 때 까지 원본 파일을 남겨둔다
General graph directory
Acyclic graph directory는 cycle을 허용하지 않는다.
General graph directory는 cycle을 허용한다.
directory 구조를 탐색할 때 무한 loop를 탐색할 수 있다.
따라서 이전에 방문한 node를 기억해서 재방문하지 않아야 한다.
'Computer Science > Operating System' 카테고리의 다른 글
File System과 관련된 이슈들 (0) | 2021.06.21 |
---|---|
File System의 구조와 작동원리 (0) | 2021.06.21 |
File System, File (0) | 2021.06.20 |
I/O Register, Device Driver (0) | 2021.06.20 |
I/O Devices (0) | 2021.06.20 |
댓글