dearbeany
[OS] 파일, 디렉토리 본문
※ (참고) 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 |