[์ด์์ฒด์ ] ๋ฐ์ดํฐ ๋ธ๋ก(Data Block)์ ๊ด๋ฆฌ
ํ์ผ ์์คํ ์์์ Data Blcok
ํ์ผ์์๋ Block์ด๋ผ๊ณ ํ๋ ๊ฒ์ ์ ์ฅ๋จ์๋ก ์ฌ์ฉํ๋ค.
์ด Block ํ๋์ ํฌ๊ธฐ๋ 4096๋ฐ์ดํธ์ด๋ค.
๋์คํฌ์์ ํ์ผ์ ์ ์ฅํ ๋, Block์ ๋ฌด์์๋ก ์ ์ฅํ์ง๋ ์๋๋ค. ์ด๋ป๊ฒ ๋ฐฐ์นํ๋๋์ ๋ฐ๋ผ ๊ทธ ์ ๋ต์ด ๋ฌ๋ผ์ง๋ค.
์ฐ์ , ์ง๊ธ์ ์ ์ฌ์ฉํ์ง ์๋ _Contiguous Allocation_์ ๋ํด ์์๋ณด์.
Contiguous Allocation
์ด๋ฆ์ ๋ณด๊ณ ์ ์ถํ ์ ์๋ฏ์ด, _Contiguous Allocation_๋ฐฉ์์ ํ์ผ์ ์ ์ฅํ ๋ ์ฐ์์ ์ผ๋ก Block์ ๋ฐฐ์นํ๋ค.
์ด ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด File Allocation Table์ ์ฌ์ฉํ๋๋ฐ, ์ฌ๊ธฐ์ ํ์ผ์ ์์ Block๊ณผ Block์ ๊ธธ์ด๋ฅผ ์ ์ฅํ๋ค. ๋ฌผ๋ก ํ์ผ์ FCB์์๋ ํ์ผ์ ์์ Block๊ณผ Block์ ๊ธธ์ด ์ ๋ณด๋ฅผ ๊ฐ์ด ์ ์ฅํ๋ค.
ํ์ง๋ง, ์ด ๋ฐฉ์์ ๊ต์ฅํ ์ข์ง ๋ชปํ๋ฐ ๊ทธ ์ด์ ๋ ํฌ๊ฒ ๋ ๊ฐ์ง๋ค.
์ฒซ ๋ฒ์งธ๋ก, _external fragmentation_์ด ๋ฐ์ํ๋ค.
fragmentation์ ๋ฐ์ดํฐ๊ฐ ์ฐ์์ ์ผ๋ก ์ ์ฅ๋จ์ผ๋ก ์ธํด ๋ถ๋ถ์ ์ผ๋ก ๋น ๊ณต๊ฐ์ด ๋ฐ์ํ๋ ๊ฒ์ ๋งํ๋ค. ์ด๋ ๊ฐ ํ์ผ์ ์ธ๋ถ ๊ณต๊ฐ์ ๋ํด์ fragmentation์ด ๋ฐ์ํ๋ ๊ฒ์ _external fragmentation_์ด๋ผ๊ณ ํ๋ค.
ํ์ผ ๋ด๋ถ์์ ๋ฐ์ํ๋ fragmentation์ internal fragmentation์ด๋ผ๊ณ ํ๋ค.
๋ ๋ฒ์งธ๋ ํ์ผ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๊ธฐ๊ฐ ํ๋ค๋ค๋ ๊ฒ์ด๋ค.
๊ฐ๊ฐ์ ํ์ผ๋ค์ ์ฐ์์ ์ผ๋ก ์๋ฆฌ๋ฅผ ์ฐจ์งํ๊ณ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ fragmentation์์๋ ๋ถ๋ถ์ ์ผ๋ก ๊ณต๊ฐ์ ๋๋ฆด ์๋ ์์ผ๋, ์ํ๋ ๋งํผ ํฌ๊ฒ ๋๋ฆฌ์ง ๋ชปํ๋ค. ๋ง์ฝ ์ฎ๊ธฐ๊ณ ์ถ๋ค๋ฉด ์ ์ฒด๋ฅผ ๋ณต์ฌํด์ ์๋ก์ด ๊ณต๊ฐ์ ํ ๋นํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์๊ฐ๋ ๊ต์ฅํ ๋ง์ด ๋ ๋ค.
์์ ๊ฐ์ ๋จ์ ๋ค๋ก ์ธํด Contiguous Allocation์ ์ฌ์ฉํ์ง ์๋๋ค.
Chained Allocation(Linked Allocation)
์ด ๋ฐฉ์์ Linked List๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์๊ฐํ๋ฉด ์ฝ๋ค.
๊ฐ Block์ด ๊ทธ๋ค์ Block์ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง๋ค. ๋ฐ๋ผ์ _external fragmentaion_๊ณผ ๊ฐ์ ๋ฌธ์ ๋ ์์ด์ง๋ค.
ํ์ง๋ง ์ด๋ ๊ฒ ์ฐธ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ค๋ ํน์ฑ ๋๋ฌธ์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๋จผ์ , Block์ ํ์ํ๋ค๊ฐ ์ค๊ฐ์ ์ฐธ์กฐ๊ฐ ๋์ด์ง๋ฉด ๊ทธ ๋ค์ ์๋ Block์ ์ฝ์ง ๋ชปํ๋ค. ๋ํ ํ๋์ ํ์ผ ์์์ ํน์ ๋ธ๋ก์ ๋ํด ๋ฐ๋ก ์ ๊ทผํ๋ _direct access_๊ฐ ๋ถ๊ฐ๋ฅํ๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋์จ ๊ฒ์ด _indexed allocation_์ด๋ค.
Indexed Allocation
_index allocation_์ ์ฌ๋ฌ Block ์ค ์์๋ก ํ๋๋ฅผ ํ์ผ์ ์ธ๋ฑ์ค๋ฅผ ๊ด๋ฆฌํ๋ Block์ผ๋ก ๋ง๋๋ ๋ฐฉ์์ด๋ค.
์ด ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ฉด, ํด๋น Block์ ํ์ผ์ ๊ตฌ์ฑํ๋ ๋ค๋ฅธ Block๋ค์ ๋ํ ์ ๋ณด๋ฅผ ์์๋๋ก ์ง๋๊ณ ์๊ฒ ๋๋ค.
์ฆ, _Direct Access_๊ฐ ๊ฐ๋ฅํ๊ณ , _Fragmentation_๋ ์๋ค.
Free-Space Management
๋น ๊ณต๊ฐ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์๋ค.
counting
counting ๋ฐฉ์์ ๊ฐ๋จํ๊ฒ ์์ Block ๋ฒํธ์ ํด๋น Block์ผ๋ก ๋ถํฐ ์ผ๋ง๋งํผ Free Block์ธ์ง ์ธ๋ ๋ฐฉ๋ฒ์ด๋ค.
Linked List (free list)
์์ ํ์ผ์ ๊ด๋ฆฌํ๋ ๋ฐฉ์ ์ค, Chained allocation๊ณผ ๊ต์ฅํ ์ ์ฌํ๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก Free Block ๋ค์ Linked List๋ก ๊ด๋ฆฌํ์ฌ ๊ณต๊ฐ์ ๊ด๋ฆฌํ๋ค.
์ด๋, ์๋ก์ด Free Block์ ํ ๋นํ๊ธฐ ์ํด์ ๋งจ ์์ head ๊ฐ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํ ๋น์ ๊ฐ๋จํ๋ค.
ํ์ง๋ง, ์ฌ์ ํ ํ๋์ Block์ ์ฐธ์กฐ๊ฐ ๋ํค๋ฉด ๋ค๋ฅธ Block๋ค๋ ๋ค ๋ชป ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ข์ง ์๋ค.
Grouping
์ด ๋ฐฉ์์ ์์ Indexed Allocation ๋ฐฉ์๊ณผ ์ ์ฌํ๋ค.
์์์ Block์ด Free Block๋ค์ ๋ํด ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด๋ค.
ํ์ง๋ง Free Block๋ค์ด ์ ์ง๋ ์๋ค. ๊ณ ์ 4096๋ฐ์ดํธ ๋ฐ์ ๋์ง ์๊ณ , ํ๋์ Free Block์ ๊ธฐ๋กํ๊ธฐ ์ํด 4๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด 1024๊ฐ์ Free Block์ ์ ์ ์ ์์ ํ ๋ฐ, ์ด๋ป๊ฒ ๋ง์ Free Block์ ๊ด๋ฆฌํ ์ ์์๊น?
์ด๋ ๋ฐ๋ก Grouping์์ ์ฌ์ฉํ๋ ํน์ํ ์ ์ฅ ๋ฐฉ์์ผ๋ก ํด๊ฒฐ ๊ฐ๋ฅํ๋ค.
์ด๊ธฐ์ Free Block๋ค์ ๊ด๋ฆฌํ๊ธฐ ์ํด Super Block List์ ๋ชจ๋ Free Block ์ ๋ณด๋ฅผ ๋ฃ๋๋ค. ์ฌ๊ธฐ ์์์ ํ๋์ฉ ๊บผ๋ด์ ๊ฐ๊ฐ์ Free Block๋ค์ ํ ๋นํ๋๋ฐ, ๋ง์ฝ Free Block๋ค์ด ๋๋ฌด ๋ง์์ง๋ค๋ฉด ๋ง์ง๋ง์ผ๋ก ์ ์ฅํ Free Block์ผ๋ก ์ด๋ํ์ฌ ์๋กญ๊ฒ Free Block์ ์ ์ฅํ๋ค.
์์ ์์์์๋ 109๋ฒ์ด ๋ง์ง๋ง์ผ๋ก ์ ์ฅ๋๋ฏ๋ก 109๋ฒ Block์ผ๋ก ๊ฐ์ ๋ค์ ์ฒ์๋ถํฐ Free Block์ ์ ์ฅํ๋ค.
์ฌ์ฉํ๋ ๊ฒ๋ ๋ง์ฐฌ๊ฐ์ง๋ค.
109๋ฒ Block์์ ๋ชจ๋ Block์ ์ ๋ถ ์ฌ์ฉํ๋ค๋ฉด 109๋ฒ Block์ Free Block์์ Block์ผ๋ก ํ ๋นํ๊ธฐ ์ํด, 109๋ฒ Block ์์ ์๋ ๋ชจ๋ ์ ๋ณด๋ฅผ Super Block List๋ก ์ ๋ถ ์ด๋์ํจ๋ค.
Bit-vector
๋ง์ง๋ง์ผ๋ก Bit-vector ๋ฐฉ์์ธ๋ฐ, ์ด ๋ฐฉ์์ ๋ชจ๋ Block ๋ค์ ๋ํด Free Block์ 1๋ก, ํ ๋น๋ Block์ 0์ผ๋ก ๋๋ ๋ฐฉ์์ด๋ค.
๊ฐ๋ ์ ์ผ๋ก๋ ์์ฃผ ๊ฐ๋จํ๊ณ ์ข์ ๋ฐฉ์์ด๋ ๋ชจ๋ Block๋ค์ ์ ์ฅํ๋๋ฐ 8K disk Block์ด ํ์ํ๋ค.