1. Allocation Methods
(1) Continuous allocation
: File을 디스크의 연속된 block에 저장
- cons : 효율적인 file 접근 (순차적, 직접적 접근)
- pros- 공간 확보의 어려움 (외부 단편화, External fragmentation 발생) - File 공간 크기 결정이 어려움 (파일이 커질 경우 고려사항이 많음)
(2) Discontinuous allocation
(2.1) Linked Allocation
- File이 저장된 block 들을 linked list로 연결
- Directory는 각 file에 대한 첫 번째 block에 대한 포인터를 갖는다.
- cons : 간단하고 외부 단편화가 없음
- pros- 직접 접근에 비효율적- 포인터 저장을 위한 공간 필요- 신뢰성 문제 (사용자의 포인터 미스)
(2.1.1) Linked Allocation : variation (FAT)
: File Allocation Table (FAT), 각 block의 시작 부분에 다음 블록의 번호를 기록하는 방법
(MS-DOS, Windows 등에 사용 된다)
(2.2) Indexed Allocation
- File이 저장된 block의 정보(pointer)를 Index block에 모아 둔다.
- 직접 접근에 효율적 (순차 접근에는 비효율적임, 계속 Index table을 참조해야하므로)
- File당 Index block을 유지한다. (Space overhead가 발생, Index block 사이즈에 따라 파일 크기 제한)
- Unix 등에 사용된다.
2. Free Space Manegement
(2.1) Bit vector
- 시스템 내 모든 block 들에 대한 사용 여부를 1 bit flag로 표시한다. (Bitmap)
- pros : 간단하고 효율적임
- cons : Bit vector 전체를 메모리에 보관하므로, overhead 발생(대형 시스템에는 부적합)
(2.2) Linked list
- 빈 block을 linked list로 연결한다
- 모든 가용공간을 순회해야 하므로, 비효율적임
(2.3) Grouping
- n개의 빈 block을 그룹으로 묶고, 그룹 단위로 linked list 연결 (링크의 수가 줄어든다)
- 연속된 빈 block을 쉽게 찾을 수 있음
(2.4) Counting
- 연속된 빈 block들 중 첫 번째 block의 주소와 연속된 block의 수를 table로 유지한다.(ex start = 0, cnt = 6 => 0번 블럭부터 5번 블럭까지 free인 상태)
출처 : 한기대 김덕수 교수님 운영체제 강의
https://www.youtube.com/watch?v=3VOqyi-wbJU&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=40&ab_channel=HPCLab.KOREATECH
'CS > OS' 카테고리의 다른 글
[OS - File System] I/O System (0) | 2021.03.03 |
---|---|
[OS - File System] File Protection (0) | 2021.03.03 |
[OS - File System] Directory Structure (0) | 2021.03.03 |
[OS - File System] Overview (0) | 2021.03.03 |