본문 바로가기

BASIC/OS

[운영체제] 디렉터리 구조

1. 디렉터리 구조의 개요

- 디렉터리는 파일 시스템 내부에 있는 것으로, 효율적인 파일 사용을 위해 디스크에 존재하는 파일에 대한 여러 정보를 가지고 있는 특수한 형태의 파일이다.

- 디렉터리는 각 파일의 위치, 크기, 할당 방식, 형태, 소유자, 계정 정보 등의 정보를 가지고 있다.

- 디렉터리 구조의 종류에는 1단계 디렉터리, 2단계 디렉터리, 트리 디렉터리, 비순환 그래프 디렉터리, 일반적인 그래프 디렉터리가 있다.


2. 1단계(단일) 디렉터리 구조

- 1단계 디렉터리는 가장 간단하고, 모든 파일이 하나의 디렉터리 내에 위치하여 관리되는 구조이다.

- 모든 파일들이 유일한 이름을 가지고 있어야 한다.

- 모든 파일이 같은 디렉터리 내에 유지되므로 이해가 용이하다.

- 파일이나 사용자의 수가 증가하면 파일 관리가 복잡해진다.

- 파일명은 일반적으로 내용과 관련된 이름을 사용하고, 파일명의 길이는 시스템에 따라 제한을 받는다.


3. 2단계 디렉터리 구조

- 2단계 디렉터리는 중앙에 마스터 파일 디렉터리(MFD)가 있고, 그 아래에 사용자별로 서로 다른 파일 디렉터리(UFD)가 있는 2계층 구조이다.

- 마스터 파일 디렉터리는 각 사용자들의 이름이나 계정 번호, 그리고 사용자 파일 디렉터리를 가리키는 포인터를 갖고 있으며, 사용자 파일 디렉터리를 관리한다.

- 사용자 파일 디렉터리는 오직 한 사용자가 갖고 있는 파일들에 대한 정보만 갖고 있으며, 해당 사용자의 파일을 관리한다.

- 하나의 사용자 파일 디렉터리에서는 유일한 파일 이름을 사용해야 하지만 서로 다른 사용자 파일 디렉터리에서는 동일한 파일 이름을 사용할 수 있다.

- 각 사용자는 다른 사용자의 파일 디렉터리를 검색할 수 없으므로 업무 협력 및 파일의 공유가 어렵다.

- 특정 파일을 저장할 때는 사용자 이름과 파일 이름을 함께 지정해야 하므로 파일 이름이 길어진다.


4. 트리 디렉터리 구조

- 트리 디렉터리는 하나의 루트 디렉터리와 여러 개의 종속(서브) 디렉터리로 구성된 구조이다.

- DOS, Windows, UNIX 등의 운영체제에서 사용되는 디렉터리 구조이다.

- 각 디렉터리는 서브디렉터리나 파일을 가질 수 있다.

- 서로 다른 디렉터리 내에 동일한 이름의 파일이나 디렉터리를 생성할 수 있다.

- 디렉터리의 생성과 파괴가 비교적 용이하다.

- 디렉터리의 탐색은 포인터를 사용하며, 경로명은 절대 경로명과 상대 경로명을 사용한다.


5. 비순환(비주기) 그래프 디렉터리 구조(Acyclic Graph Directory)

- 비순환 그래프 디렉터리는 하위 파일이나 하위 디렉터리를 공동으로 사용할 수 있는 것으로, 사이클이 허용되지 않는 구조이다.

- 디스크 공간을 절약할 수 있다.

- 하나의 파일이나 디렉터리가 여러 개의 경로 이름을 가질 수 있다.

- 디렉터리 구조가 복잡하고, 공유된 하나의 파일을 탐색할 경우 다른 경로로 두 번 이상 찾아갈 수 있으므로 시스템 성능이 저하될 수 있다.

- 공유된 파일을 삭제할 경우 고아 포인터(Dangling Pointer)가 발생할 수 있다.


6. 일반적인 그래프 디렉터리 구조

- 일반적인 그래프 디렉터리는 트리 구조에 링크(Link)를 첨가시켜 순환(Cycle)을 허용하는 그래프 구조이다.

- 디렉터리와 파일 공유에 완전한 융통성이 있다.

- 탐색 알고리즘이 간단하며, 파일과 디렉터리를 액세스하기가 쉽다.

- 사용되지 않은 디스크 공간을 되찾기 위해 쓰레기 수집(자투리 모음)이 필요하다.

- 불필요한 파일을 제거하여 사용 공간을 늘리기 위하여 참조 계수기가 필요하다.

'BASIC > OS' 카테고리의 다른 글

[운영체제] 다중 처리기의 구현  (0) 2018.02.27
[운영체제] 자원 보호  (0) 2018.02.27
[운영체제] 파일의 구조  (0) 2018.02.26
[운영체제] 파일과 파일 시스템  (0) 2018.02.26
[운영체제] 디스크 스케줄링  (0) 2018.02.26