2022. 7. 28. 13:20ㆍOperatingSystem
1. 파일 시스템의 할당 방법
파일 시스템에서 파일 데이터를 디스크에 할당하는 방법으로 3가지 방식이 존재합니다.
- 연속 할당(Contiguous Allocation)
- 연결 할당(Linked Allocation)
- 색인 할당(Indexed Allocation)
2. 연속 할당(Contiguous Allocation)
연속 할당은 파일을 디스크의 빈공간에 연속되게 저장하는 방식입니다. 디렉터리에는 파일의 시작 위치와 길이에 대한 정보를 저장하면 전체를 탐색할 수 있습니다.
이 방식은 연속적으로 저장되어 잉쓰므로 한번의 탐색으로 많은 양을 전송할 수 있습니다. 그리고 직접 접근(Radnom Access)이 가능합니다. 하지만 외부 단편화가 발생하며, 파일의 크기가 크면 저장할 수 없는 경우가 있습니다. 파일이 커질 가능성을 고려해서 미리 큰 공간을 할당하면 내부 단편화가 발생할 수도 있습니다.
3. 연결 할당(Linked Allocation)
연속 할당(Contiguous Allocation)의 문제는 외부 단편화와 큰 파일에 대한 압축의 필요성이 있습니다. 이러한 문제를 해결하기 위한 연결 할당(Linked Allocation)은 위 문제를 해결합니다.
연결 할당 방식은 연속적으로 할당하지 않고, 빈 위치면 자유롭게 할당할 수 있습니다. 그리고 다음 읽어야할 위치를 연결 리스트처럼 포인터로 가리키는 방식입니다. 따라서 디렉토리에는 파일이 시작하는 위치와 끝나는 위치만 저장합니다.
하지만 연결 할당의 단점은 오직 순차적인 접근 파일에 대해서만 효율적으로 사용될 수 있고 파일의 i번째 블록을 탐색하기 위해서는 파일의 시작 부분부터 시작하여 탐색해야 한다는 점입니다.
FAT(File Allocation Table)
- 파일 할당 테이블은 연결 할당을 개선한 버전으로써 파일 할당 테이블을 이용하여 효율적인 접근을 수행합니다.
- 각 볼륨(Volume)의 시작 부분에 있는 저장소 영역은 테이블을 포함하도록 따로 설정됩니다.
- 테이블에는 각 블록에 대해 하나의 항목이 있으며 블록 번호로 인덱싱됩니다.
- 즉, 포인터를 별도의 위치에 보관하여 신뢰성 문제와 공간 효율성 문제를 해결합니다.
4. 색인 할당(Indexed Allocation)
색인 할당은 한 블록에 하나의 파일에 대한 데이터의 index들을 모두 저장하는 방식입니다. 따라서 디렉터리에는 해당 블록의 위치만 담게 됩니다.
5. 빈공간 관리(Free-Space Management)
빈 디스크 공간의 트랙을 유지하기 위해서 시스템은 빈공간 리스트(free-space list)를 유지보수합니다.
References
source code : https://github.com/yonghwankim-dev/OperatingSystem_Study
Operating System Concepts, 10th Ed. feat. by Silberschatz et al.
[인프런] 운영체제 공룡책 강의
[운영체제(OS)] 11. 파일 시스템(File System)
'OperatingSystem' 카테고리의 다른 글
[운영체제][보호와보안] Security & Protection #2 Protection (0) | 2022.07.29 |
---|---|
[운영체제][보호와보안] Security & Protection #1 Security (0) | 2022.07.29 |
[운영체제][저장장치관리] 저장장치와 입출력(Storage & Input/Output) #3 파일 시스템 인터페이스 (0) | 2022.07.28 |
[운영체제][저장장치관리] 저장장치와 입출력(Storage & Input/Output) #2 입출력 시스템 (0) | 2022.07.28 |
[운영체제][저장장치관리] 저장장치와 입출력(Storage & Input/Output) #1 대용량 저장장치 구조(Mass-Storage Structure) (0) | 2022.07.26 |