Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

dearbeany

[OS] 파일, 디렉토리 본문

OS

[OS] 파일, 디렉토리

dearbeany 2022. 5. 25. 19:51

※ (참고) PCB(Process Control Block)

- 프로세스가 만들어질 때, OS가 만드는 자료구조(프로세스 생성~종료 함께 함)

- 프로세스는 메인메모리(실행되는 프로그램이기에)에 위치하므로 PCB도 메인메모리에서 생성, 보관, 운영

 

FCB ( = File Control Block)

- 파일이 만들어질 때, OS가 만드는 자료구조(파일 생성~종료 함께 함)

- 문서 자체 = 파일 / 문서에 대한 정보 = FCB

- 보조기억장치에 위치하므로, 전원 Off 시에도 사라지지 않음

- FCB는 파일 내부에 만드는 게 아닌, 정보만 별도의 자료구조(FCB)로 모아놈

- 파일의 속성(attribute)이 저장됨

- 유닉스/리눅스에선 inode라고 부름

 

※ 이 때 File attribute를 FCB, File Directorty 중복저장하면 비효율적!

따라서 논리적으론 Directory가 가지지만, 물리적으론 중복해서 저장하진 않음. 파일 이름과 파일 이름에 해당하는 FCB의 식별자만을 저장한다.

 

1. 파일

- 사용자가 작성한 서로 관련있는 레코드의 집합체

- 프로그램 구성의 기본 단위로 보조기억장치에 저장

- 각 파일마다 이름, 위치, 크기, 작성 시기 등의 여러 속성 가짐

 

 

2. 파일 시스템

- 거대한 자료구조로, 디스크(보조기억장치)에 만들어짐

- 파일이라는 정보를 담는 자료구조이자 자료구조 내부에 접근해서 처리하는 알고리즘까지 포함

- 파일의 저장, 액세스, 공유, 보호 등 보조기억장치에서의 파일을 총괄하는 파일 관리 기술

 

(1) 파일 시스템의 기능 및 특징

- 사용자와 보조기억장치 사이에서 인터페이스를 제공

- 사용자가 파일을 생성, 수정, 제거할 수 있도록 함

- 적절한 제어 방식 통해 타인의 파일을 공동 사용할 수 있도록 함

- 파일 공유 위해 판독만 허용, 기록만 허용, 수행만 허용 또는 이들을 여러 형태로 조합 등 여러 종류의 액세스 제어방법 제공

- 사용자가 적합한 구조로 파일을 구성할 수 있도록 함

- 불의의 사태 대비해 파일의 예비(Backup), 복구(Recovery) 등의 기능 제공

- 사용자가 물리적 장치 이름 대신 기호화된 이름 사용할 수 있도록 함

- 사용자가 파일 편리하게 사용할 수 있도록 파일의 논리적 상태(디렉터리)를 보여줘야 함

- 파일을 안전하게 사용할 수 있도록 하고, 파일이 보호돼야 함

- 파일의 정보 손실되지 않도록 데이터 무결성 유지해야 함

 

 

 

3. 파일 디스크립터 (= FCB, File Control Block)

- 파일 관리하기 위한 시스템(=OS)이 필요한 파일에 대한 정보를 갖는 제어블록, FCB

- 파일마다 독립적으로 존재, 시스템에 따라 다른 구조 가질 수 있음

- 보통 파일 디스크립처는 보조기억장치 내 저장돼있다가 해당 파일이 Open 될 때 주기억장치로 옮겨짐

- 파일 디스크립터는 파일 시스템이 관리하므로 사용자가 직접 참조할 수 없음

 

 


 

1. 디렉터리

- 파일에 대한 정보(file attribute)를 담고 있는 특수한 파일(논리적). 단, 물리적으론 파일 이름과 파일 이름에 해당하는 FCB의 식별자만을 저장

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

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

 

 

2. 트리 디렉터리

- 1 루트 디렉터리多 서브 디렉터리로 구성

- DOS, Windows, UNIX 등 OS에서 사용

- 디렉터리의 생성/파괴가 비교적 용이

- 디렉터리 탐색은 포인터 사용, 경로명은 절대/상대 경로명 사용

 

 

3. 비순환 그래프 디렉터리

- 하위 파일 or 하위 디렉터리를 공동 사용가능, 사이클을 비허용

- 디스크 공간 절약

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

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

- 공유된 파일 삭제할 경우 Dangling Pointer 발생 가능성

 

 

※ Dangling Pointer

- 링크가 만들어져 있던 파일이 나중에 필요없어져서 지워졌을 때, 파일 자체는 없어졌는데도 그 링크는 계속해서 남게 됨. 결국 존재하지 않는 파일을 가리킴

 

- 해결방법?

(1) (윈도우) OS가 아무 것도 하지않고, 사용자가 알아서 처리

(2) (유닉스/리눅스) FCB 내에 Entry-Count 저장하는 필드를 생성

 

'OS' 카테고리의 다른 글

[OS] Virtual Machine  (0) 2022.05.24
[OS] 세마포어와 뮤텍스(Semaphore and Mutex)  (0) 2022.05.01