File-System Structure
- 논리적인 저장단위이다.
- 파일시스템은 보조 저장장치(디스크) 에 위치한다.
- 파일시스템은 디스크에 대한 효율적이고 편리한 접근을 제공한다.
- File control block (Linux 의 inode) : 파일에 대한 속성들을 저장하고 있는 저장 구조이다.
- Device driver : 물리적인 장치를 통제한다.
File System Implementation
- 부트 제어 블록 : 시스템이 운영체제를 그 파티션으로부터 부트 시키는데 필요한 정보를 저장한다.
- 볼륨 제어 블록 : 볼륨(파티션) 의 블록 수, 블록의 크기, 가용 블록의 수와 포인터와 같은 파티션 정보를 저장한다.
- UFS 는 슈퍼 블록
- 디렉터리 구조는 파일을 조직화 하는데 사용한다. (UFS 에서는 파일 이름 및 inode 저장)
- 파일별 FCB 는 자세한 파일 정보를 저장한다. (고유한 식별 번호를 가지고 있음)
- inode 에는 권한, 크기, 날짜 정보등이 있다.
File Control Block (FCB)
= inode
Allocation Method - Contiguous
- 연속할당
- 간단하다. (디렉토리는 시작위치와 크기만 필요로 함)
- 파일의 접근이 쉽다 (파일의 블록 i 의 위치 = 파일의 start disk 블록번호 + i)
- 외부 단편화로 인한 저장공간의 낭비가 생길 수 있다. -> compaction 으로 해결가능
Allocation Methods - Linked
- 각 파일은 디스크 블록들의 linked list 로 구성된다.
- 블록들이 디스크에 분산해서 위치해 있을 수 있다.
Linked Allocation 의 변형 - FAT
- File Allocation Table
- 디스크 블록마다 한 개의 항목을 가지고 다음 디스크 블록을 가리킨다.
- 디렉터리 항목은 파일의 첫 번째 블록 번호를 가리킨다.
- 임의 접근 시간을 개선할 수 있다.
Allocation Methods - Indexed
- 디스크 블록의 pointer 을 저장하는 인덱스 블록을 사용한다.
- random access 가 가능하고, 외부 단편화가 발생하지 않는다.
- 그러나 index block 이 필요하기 때문에 오버헤드가 발생한다.
- 파일이 커질시 index 공간도 매우 커지게 된다. -> 여러 level 의 index block 을 사용함으로써 해결 가능
Allocation Methods - Indexed
Free-Space Management
- 파일 시스템은 free-space list 를 bit vector 나 bit map 으로 구현하여 관리한다.
- 할당 가능한 block 개수 ->
(number of bits per word) *(number of 0-value words) + offset of first 1 bit
예)
Linked Free Space List on Disk
'운영체제(OS)' 카테고리의 다른 글
Operating Systems 11. Mass-Storage Systems (0) | 2021.12.05 |
---|---|
Operating Systems 15. File System Internals (0) | 2021.12.05 |
Operating Systems 13. File System Interface (0) | 2021.12.05 |
Operating Systems 12. File Management (0) | 2021.12.05 |
Operating Systems 8. Deadlocks (0) | 2021.12.05 |
댓글