본문 바로가기
Computer Science/Operating System

File System, Directory

by Gofo 2021. 6. 21.

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

댓글