운영체제

[OS] Disk free space 관리

KyooDong 2020. 11. 30. 16:31
728x90

Free space 관리

Bit vector, bit map

디스크의 free space 를 관리하는 기법으로 디스크 블럭 사이즈만한 bit 배열을 두고, 가용하면 1, 누군가 사용중이면 0으로 표시하는 기법

free space 계산법

(0 인 word 수) * (word 의 bit 수) + offset 1비트

bit map 크기 계산

block size = 4KB = 212 bytes

disk size = 1TB = 240 bytes

n = 240 / 212 = 228 bits = 32 MB

 

32MB 에서 더 줄이고 싶다면 block 단위에서 N 개의 block 을 묶은 cluster 단위로 available list 를 관리하면 됨

예를 들어 4개를 한 묶으로 관리하면 8MB 로 줄어듦 → 대신 internal fragmentation 이 발생

 

Linked list 방식

위와 같이 free space 가 다음 free space 를 가리키는 방법으로 사용함. 이 또한 포인터 정보로 블럭이 낭비된다는 단점이 있지만 디스크 용량이 워낙 크기에 요즘 많이 사용하는 방법임

단점 : 연속된 공간을 찾는게 어렵다.